Difference between revisions of "Proxmox ISCSI installation"

From Proxmox VE
Jump to navigation Jump to search
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Note : text formatting is still to do
+
== 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 is iSCSI? =
+
== What do you need? ==
  
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 .
+
* 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
  
= What do you need?  =
+
You can find some tutorials about iPXE (formerly gPXE) on the [http://etherboot.org/wiki/start gPXE wiki].
  
You need a functionnal iSCSI target (OpenFiler can be a good solution) 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
+
== Here we go! ==
  
= Here we go !  =
+
* 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.
  
<u>'''1 -'''</u> 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.  
+
* Install ''open-iscsi''  
 +
<pre>apt install open-iscsi</pre>  
 +
This utility manages to attach an iSCSI target to the session.
  
<u>'''2 -''' </u>Install ''open-iscsi'' ('''aptitude install open-iscsi'''). This util manages to attach an iSCSI target to the session.<br>  
+
* Attach the ''iSCSI target''
 +
<pre>iscsiadm --mode node --targetname <IQN> -p <IP> --login</pre>  
 +
You should now see your iSCSI target into /dev/sdX.
 +
;Example:
 +
<pre>iscsiadm --mode node --targetname iqn.2006-01.openfiler.com:tsn.dcb5e30d5a -p 188.102.200.254 --login</pre>  
  
<u>'''3 -'''</u> Attach the ''iSCSI target'' ('''iscsiadm --mode node --targetname &lt;IQN&gt; -p &lt;IP&gt; --login'''). You should now see your iSCSI target into /dev/sdX.
+
* Create all ''partitions'' you need for your future Debian installation (you can use ''gpart'' for example).
 +
;NOTE:
 +
:The first partition must begin at the 2048 sector&nbsp;!!! If don't, you will not be able to install Grub on the iSCSI target!
  
'''Example&nbsp;:''' ''iscsiadm --mode node --targetname iqn.2006-01.openfiler.com:tsn.dcb5e30d5a -p 188.102.200.254 --login''  
+
* Create a dir under /mnt (for example /mnt/debian) for ''mounting''
  
<u>'''4 -'''</u> Create all ''partitions'' you need for your future Debian installation (you can use ''gpart'' for exemple).
+
* Mount the ''iSCSI target's'' main partition on this dir
 +
<pre>mount /dev/sdX1 /mnt/debian</pre>  
  
<u>'''NOTE&nbsp;:'''</u> '''The first partition must begin at the 2048 sector&nbsp;!!! If don't, you will not be able to install Grub on the iSCSI target&nbsp;!'''
+
* Install ''debootstrap''  
 +
<pre>apt install debootstrap</pre>  
 +
This utility manages to install a light debian install by using deb packages in the target.
  
<u>'''5 -'''</u> Create a dir into /mnt (for example /mnt/debian) for preparing ''mouting''.  
+
* Install ''debian stretch'' on /mnt/debian by using debootstrap
 +
<pre>debootstrap stretch /mnt/debian http://ftp.us.debian.org/debian</pre>
  
<u>'''6 -'''</u> Mount the''iSCSI target's'' main partition on this dir ('''mount /dev/sdX1 /mnt/debian''')
+
'''You should now have a right lightweight Stretch install on the main partition'''  
  
<u>'''7 -'''</u> Install ''debootstrap'' ('''aptitude install debootstrap'''). This utils manages to install a light debian install by using deb packages to a target.
+
* ''Mount'' this system's dirs - this is necessary for preparing the new stretch installation for iSCSI booting.
 +
<pre>mount -o bind /dev /mnt/debian/dev
 +
mount -o bind /sys /mnt/debian/sys
 +
mount -o bind /proc /mnt/debian/proc</pre>  
  
<u>'''8 -'''</u> 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).<br><br> <u>'''You should now have a right lightweight Squeeze install on the main partition'''</u>  
+
* Use now this Debian by using chroot (by a sn user who can change the root dir by another dir).  
 +
<pre>chroot /mnt/debian</pre>  
  
<br> <u>'''9 -'''</u> ''Mount'' this system's dirs, it is necessary for preparing the new squeeze installation for iscsi booting.
+
'''You are now logged on to your new system'''  
  
'''mount -o bind /dev /mnt/debian/dev'''<br>'''mount -o bind /sys /mnt/debian/sys'''<br>'''mount -o bind /proc /mnt/debian/proc'''<br> <u>'''10 -''' </u>Use now this Debian by using chroot (who can change the root dir by another dir).
+
* Install ''Grub''  
 +
<pre>apt install grub</pre>
 +
It should install Grub into the MBR of your iSCSI target. If not, you can use <tt>grub-install /dev/sdX</tt>
  
'''chroot /mnt/debian'''
+
* Add the ''Proxmox repository'' and update
 +
<pre>echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
 +
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
 +
apt update</pre>
  
<br> <u>'''You are now logged on your new system'''</u>  
+
* 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:
 +
<pre>nano /etc/network/interfaces</pre>
 +
and append this to it:
 +
<pre>auto lo
 +
iface lo inet loopback</pre>  
  
<br> <u>'''11 -'''</u> 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.  
+
* Install the ''proxmox kernel and headers''
 +
<pre>apt install pve-kernel pve-headers</pre>  
 +
This action should update grub automatically.
  
<u>'''12 -'''</u> Add the ''Proxmox repository'' ('''echo deb http://download.proxmox.com/debian lenny pve &gt;&gt; /etc/apt/sources.list''') and update ('''aptitude update''')
+
* Install ''open-iscsi'' for making this installation fully supports iSCSI
 +
<pre>apt install open-iscsi</pre>
  
<u>'''13 -'''</u> 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&nbsp;: <br>'''nano /etc/network/interfaces'''  
+
* Use open-iscsi to manage ''iBFT information'' (iBFT are information made by iSCSI boot firmware like iPXE for the system)  
 +
<pre>echo "ISCSI_AUTO=true" > /etc/iscsi/iscsi.initramfs</pre>
 +
By using this, you don't have to use the iSCSI IQN and the iSCSI Target's IP to access the system; only iSCSI boot firmware needs this.
  
Add this to the file&nbsp;: <br>'''auto lo <br>iface lo inet loopback'''
+
* Install ''initramfs-tools'' and update initramfs
 +
<pre>apt install initramfs-tools
 +
update-initramfs -u</pre>  
  
<u>'''14 -''' </u>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.
+
* Create a ''root password''  
 +
<pre>passwd</pre>  
  
<u>'''15 -'''</u> Install ''open-iscsi'' for making this installation fully supports iSCSI ('''aptitude install open-iscsi''').
+
Your new Debian system should now boot over ''iSCSI''! Once booted you can install Proxmox by simply using:
 +
<pre>apt install proxmox-ve ntp ssh lvm2 </pre>
  
<u>'''16 -'''</u> Precise to open-iscsi to manage ''iBFT informations'' (iBFT are informations made by iSCSI boot firmware like iPXE for the system) <br>'''echo "ISCSI_AUTO=true" &gt; /etc/iscsi/iscsi.initramfs'''
+
[[Category: HOWTO]]
 
 
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''')
 
 
 
<br> Your new Debian system should now boot over ''iSCSI''&nbsp;! Once booted you can install proxmox by simply using&nbsp;: '''aptitude install proxmox-ve-2.6.32 ntp ssh lvm2 '''<br>
 

Latest revision as of 10:40, 19 March 2019

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!

  • 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.
  • Install open-iscsi
apt install open-iscsi

This utility manages to attach an iSCSI target to the session.

  • 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
  • Create all partitions you need for your future Debian installation (you can use gpart for example).
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!
  • Create a dir under /mnt (for example /mnt/debian) for mounting
  • Mount the iSCSI target's main partition on this dir
mount /dev/sdX1 /mnt/debian
  • Install debootstrap
apt install debootstrap

This utility manages to install a light debian install by using deb packages in the target.

  • Install debian stretch on /mnt/debian by using debootstrap
debootstrap stretch /mnt/debian http://ftp.us.debian.org/debian

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

  • Mount this system's dirs - this is necessary for preparing the new stretch 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
  • Use now this Debian by using chroot (by a sn user who can change the root dir by another dir).
chroot /mnt/debian

You are now logged on to your new system

  • Install Grub
apt install grub

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

  • Add the Proxmox repository and update
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
apt update
  • 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
  • Install the proxmox kernel and headers
apt install pve-kernel pve-headers

This action should update grub automatically.

  • Install open-iscsi for making this installation fully supports iSCSI
apt install open-iscsi
  • Use open-iscsi to manage iBFT information (iBFT are information 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 use the iSCSI IQN and the iSCSI Target's IP to access the system; only iSCSI boot firmware needs this.

  • Install initramfs-tools and update initramfs
apt install initramfs-tools
update-initramfs -u
  • Create a root password
passwd

Your new Debian system should now boot over iSCSI! Once booted you can install Proxmox by simply using:

apt install proxmox-ve ntp ssh lvm2