Proxmox ISCSI installation
Introduction
iSCSI is a protocol that can communicate SCSI's commands over the network. The main advantage is that you don't need any hard drives for getting a fully functional server. This can be also realized by using a real Fiber Channel SAN, but it's a lot more expensive. A diskless server will boot over the network, acquiring its disk image from the SAN. Today, a lot of systems support iSCSI but they don't really support iSCSI install and boot (only VMWare supports that). However, you can making this work on some Linux systems using a few tricks explained here.
What do you need?
- A functional iSCSI target (OpenFiler can be a good solution)
- Your diskless server must support iSCSI boot (if not, you can use iPXE for that)
- A DHCP server for network booting
You can find some tutorials about iPXE (formerly gPXE) on the gPXE wiki.
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 and update
echo "deb http://download.proxmox.com/debian lenny pve" >> /etc/apt/sources.list wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add - aptitude update
13 - Add the loopback interface (if not, you will not be able to use nfs-common which is needed by the pve-manager). For this, edit:
nano /etc/network/interfaces
and append this to it:
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 and update initramfs
aptitude install initramfs-tools 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