[HOWTO] Install and Boot Proxmox VE on an iSCSI Target

R

rFlex

Guest
Hello everyone,
This week, I searched around all the web to find information for getting a proper debian install to work over iSCSI. It was a bit hard because no one made a proper HowTo about this. So I decided to make a Tutorial for helping other people.

NOTE : If you found somethings wrong with my English, please correct me.


I. What is iSCSI?


iSCSI is a protocol who can travel SCSI's commands over the network. The main advantage is that you don't need any harddrives for getting a fully functional server. This can be also realized by using a real FiberChannel SAN but it's a lot more expensive. A diskless server will boot over the network, asking its disk image to the SAN. Today, a lot of system supports iSCSI but they don't really support iSCSI install and boot (only VMWare supports that). However, you can making this works on some Linux's system by making some tricks and that's what we will see :).

II. What do you need?

You need a functionnal iSCSI target (I'm using OpenFiler for that) and your diskless server must support iSCSI boot (if not, you can use iPXE for that). You also need a DHCP server for network booting. You can find some tutorials about iPXE (formely gPXE) on the gPXE wiki : http://etherboot.org/wiki/start

III. Here we go !

1 - Install a clean Debian on a physical machine or into a VM. Using a VM is not a problem because we only need this for formating and installing another Debian on the iSCSI target.

2 - Install open-iscsi (aptitude install open-iscsi). This util manages to attach an iSCSI target to the session.

3 - Attach the iSCSI target (iscsiadm --mode node --targetname <IQN> -p <IP> --login). You should now see your iSCSI target into /dev/sdX.
Example : iscsiadm --mode node --targetname iqn.2006-01.openfiler.com:tsn.dcb5e30d5a -p 188.102.200.254 --login

4 - Create all partitions you need for your future Debian installation (you can use gpart for exemple).
NOTE : The first partition must begin at the 2048 sector !!! If don't, you will not be able to install Grub on the iSCSI target !

5 - Create a dir into /mnt (for example /mnt/debian) for preparing mouting.

6 - Mount the iSCSI target's main partition on this dir (mount /dev/sdX1 /mnt/debian)

7 - Install debootstrap (aptitude install debootstrap). This utils manages to install a light debian install by using deb packages to a target.

8 - Install a debian squeeze to /mnt/debian by using debootstrap (debootstrap squeeze /mnt/debian http://ftp.us.debian.org/debian). You can also install another debian like lenny, but squeeze supports iSCSI better (you need to do more tricks on Lenny for having a functional iscsi boot). This can take some time (depending on your connection).

You should now have a right lightweight Squeeze install on the main partition !

9 -
Mount this system's dirs, it is necessary for preparing the new squeeze installation for iscsi booting.
mount -o bind /dev /mnt/debian/dev
mount -o bind /sys /mnt/debian/sys
mount -o bind /proc /mnt/debian/proc


10 - Use now this Debian by using chroot (who can change the root dir by another dir).
chroot /mnt/debian

You are now logged on your new system :)

11 - Install Grub (aptitude install grub). It should install Grub into the MBR of your iSCSI target. If not, you can use grub-install /dev/sdX.

12 - Add the Proxmox repository (echo deb http://download.proxmox.com/debian lenny pve >> /etc/apt/sources.list) and update (aptitude update)

13 - Add the loopback interface (if don't, you will not be able to use nfs-common who is needed by the pve-manager). For this :
nano /etc/network/interfaces

Add this to the file :
auto lo
iface lo inet loopback

14 -Install the proxmox 2.6.32-4 kernel and headers (the 2.6.35 seems to not work with iscsi booting) (aptitude install pve-kernel-2.6.32-4-pve pve-headers-2.6.32-4-pve). This action should update grub automatically.


15 - Install open-iscsi for making this installation fully supports iSCSI (aptitude install open-iscsi).

16 - Precise to open-iscsi to manage iBFT informations (iBFT are informations made by iSCSI boot firmware like iPXE for the system)
echo "ISCSI_AUTO=true" > /etc/iscsi/iscsi.initramfs

By using this, you don't have to precise the iSCSI IQN and the iSCSI Target's IP to the system, only iscsi boot firmware need this.

17 - Install initramfs-tools (aptitude install initramfs-tools) and update initramfs (update-initramfs-u)

18 - Create a root password (passwd)


Your new Debian system should now boot over iSCSI ! Once booted you can install proxmox by simply using : aptitude install proxmox-ve-2.6.32 ntp ssh lvm2

If you need any informations about somethings else like iPXE and DHCP install or OpenFiler configuration, please tell me :)
 
Last edited by a moderator:
...
8 - Install a debian squeeze to /mnt/debian by using debootstrap (debootstrap squeeze /mnt/debian http://ftp.us.debian.org/debian). You can also install another debian like lenny, but squeeze supports iSCSI better (you need to do more tricks on Lenny for having a functional iscsi boot).
... You can now also install Proxmox on this Debian like any others one !
hi,
you should mark, that for pve1.x lenny is the right debian version. Some have pve1.8 (AFAIK) installed on squeeze, but this is not real tested/stable...

Udo
 
Hi,

Thank you very much for this nice tutorial.
Ubuntu has iSCSI support built in installer since 10.04 (partman-iscsi), hope this will come to Debian soon...

Bests
 
Only kernel version 2.6.32.-4 is working properly.

This howto does not work with the kernel 2.6.32-14-pve

Selection_094.png


I was trying to add a module iscsi_ibft to the /etc/initramfs-tools/modules

But my system fails to boot with this screen

Selection_092.png


The iscsi is connected at the beginning of booting , and I can see the messages about /dev/sda, but then the connection was lost

I can't understand why


Do you have any idea how to fix this?
 
Last edited:
This problem has been resolved by two ways:
1. I leave only the value "auto eth3" (iscsi network) in /etc/network/interfaces and removed all values like "auto eth0" (external network). This interfaces will turn on after booting system.
2. I used the latest version of open-iscsi (2.0-873). Need compile this from sources.

In both cases, you need to add iscsi_ibft in the file /etc/initramfs-tools/modules and run command

update-initramfs -u

Both solutions are working properly
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!