Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

developpement:productions:iscsiboot4wheezy [2013/06/13 08:29]
equemene
developpement:productions:iscsiboot4wheezy [2015/01/07 10:04]
Ligne 1: Ligne 1:
-====== Booter iSCSI sous Debian Wheezy ====== 
  
-===== Contexte ===== 
- 
-  * Pourquoi ? 
-    * Pour permettre le démarrage directement sur le réseau d'une machine 
-  * Quoi ? 
-    * Utiliser le protocole iSCSI pour offrir un OS complet sur un périphérique équivalent à un disque 
-  * Quand ? 
-    * N'​importe quand. Seule une demi-heure est nécessaire dans environnement maîtrisé (sous Linux/​Debian) pour réaliser cette opération. 
-  * Qui ? 
-    * N'​importe quel administrateur de 2 machines (ayant un minimum de connaissances,​ notamment pour le copier/​coller des commandes suivantes) 
-  * Où ? 
-    * Sur un réseau local ou distant (un réseau haut débit est préférable,​ un réseau local également mais iSCSI utilise TCP/IP) 
-  * Combien ? 
-    * Pour l'​hôte de cibles iSCSI ou pour le client, n'​importe quelle machine suffit, du moment que la machine cliente peut démarrer en PXE  
-  * Comment ? 
-    * C'est ce que nous allons voir 
- 
-===== iSCSI ou le SCSI par le réseau dans l'​environnement Debian ===== 
- 
-Le protocole [[http://​fr.wikipedia.org/​wiki/​ISCSI|iSCSI]] permet à un hôte d'​offrir un espace disque (du //mode bloc//) à un hôte distant. 
- 
-Linux/​Debian intègre dans la Wheezy (version 7) tout ce qui permet d'​accéder à des volumes iSCSI ou de les créer. 
-  * [[http://​www.open-iscsi.org|Open-ISCSI]] pour accéder à des ressources offertes en iSCSI 
-  * [[http://​iscsitarget.sourceforge.net/​|iSCSItarget]] pour offrir des //targets// iSCSI avec un module noyau 
-  * [[http://​stgt.sourceforge.net/​|TGT]] pour offrir des //targets// iSCSI sans module noyau 
- 
-De mon expérience (près de 5 ans sur iSCSItarget et un 1 et demi mois sur TGT), j'​aurai tendance à préférer iSCSItarget. Le principal avantage de TGT réside dans son absence de module noyau et donc facile implantation sur un serveur, mais il a un problème de taille : impossible de retirer un volume déclaré ! 
- 
-===== Les prérequis ===== 
- 
-  * une machine portant les "​cibles"​ iSCSI, appelée MyHost 
-    * elle dispose d'un espace disque disponible en mode bloc (fichiers, disques, volumes) 
-    * elle a installé une implémentation de cibles iSCSI  
-  * une machine portant un serveur TFTP avec les images PXE, appelée MyPXE 
-  * une machine pouvant démarrer en PXE, d'​adresse MAC simplement 00:​AA:​BB:​CC:​DD:​EE,​ disposant d'une IP fournie par DHCP 
- 
-===== Machine portant les partages iSCSI ===== 
- 
-Il est supposé que la machine MyHost dispose d'une infrastructure LVM : 
-  * son VG est MyVG 
-  * le nom du LV à créer est MyLViSCSI 
- 
-  * Création du volume LVM de 20G sur le VG Raid6<​code>​ 
-lvcreate -L 20G -n MyLViSCSI MyVG 
-</​code>​ 
-  * Formatage en Ext3<​code>​ 
-mkfs.ext3 -m 0 /​dev/​MyVG/​MyLViSCSI 
-</​code>​ 
-  * Montage du volume sur le système hôte<​code>​ 
-mkdir /​media/​MyLViSCSI 
-mount -o noatime /​dev/​MyVG/​MyLViSCSI /​media/​MyLViSCSI 
-</​code>​ 
-  * Etablissement d'un label sur la partition<​code>​ 
-e2label /​dev/​MyVG/​MyLViSCSI MyLViSCSI 
-</​code>​ 
-  * Installation du système de base Wheezy, architecture x86_64 ou i386<​code>​ 
-# pour une architecture x86_64 
-debootstrap --arch amd64 wheezy /​media/​MyLViSCSI http://​ftp.fr.debian.org/​debian 
-# pour une architecture i386 
-debootstrap --arch i386 wheezy /​media/​MyLViSCSI http://​ftp.fr.debian.org/​debian 
-</​code>​ 
-  * Passage dans l'​environnement<​code>​chroot /​media/​MyLViSCSI</​code>​ 
-  * Création d'une nouvelle liste de paquets<​code>​ 
-tee /​etc/​apt/​sources.list <<EOF 
-deb http://​ftp.fr.debian.org/​debian/​ wheezy main contrib non-free 
-deb-src http://​ftp.fr.debian.org/​debian/​ sid main contrib non-free 
-deb-src http://​ftp.fr.debian.org/​debian/​ experimental main contrib non-free 
-deb http://​security.debian.org/​ wheezy/​updates main contrib non-free 
-deb-src http://​security.debian.org/​ wheezy/​updates main contrib non-free 
- 
-EOF 
-</​code>​ 
-  * Effacement du hostname de l'​hôte (nous considérons que le serveur DHCP fait bien son boulot) :<​code>​rm /​etc/​hostname</​code>​ 
-  * Montage du /proc pendant l'​installation<​code>​ 
-mount -t proc none /proc 
-</​code>​ 
-  * Initialisation du mot de passe superutilisateur<​code>​echo "​root:​MyStrongPassword"​ | chpasswd 
-</​code>​ 
-  * Installation de paquets nécessaires<​code>​ 
-apt-get -y install dhcp3-common openssh-server locales initramfs-tools dhcp3-client aufs-tools firmware-linux-nonfree firmware-linux firmware-bnx2 open-iscsi iftop htop iotop emacs mtr lsof tshark mbw memtest86 cpuburn bonnie dbench iozone3 console-setup less && apt-get clean 
-# Pour les architectures i686 
-apt-get -y install linux-image-3.2.0-4-686-pae 
-# Pour les architectures x86_64 
-apt-get -y install linux-image-3.2.0-4-amd64 
-</​code>​ 
-  * Suppression du démarrage du démon iSCSI (en noyau 3.2, le script plante et empêche le démarrage)<​code>​insserv -r open-iscsi</​code>​ 
-  * Paramétrage d'un boot iSCSI<​code>​ 
-touch /​etc/​iscsi/​iscsi.initramfs 
-update-initramfs -k all -u 
-</​code>​ 
-  * Vérification de la présence du support iSCSI ''​lsinitramfs /​boot/​initrd.img-* | grep "​local-top/​iscsi"''​ retourne : <​code>​ 
-scripts/​local-top/​iscsi 
-scripts/​local-top/​iscsi 
-</​code>​ 
-  * Paramétrage de l'​interface de démarrage iSCSI<​note important>​En cas d'​interfaces multiples, il est INDISPENSABLE de préciser l'​interface de démarrage, sinon...</​note><​code>​ 
-sed -i "​s/​DEVICE\=/​DEVICE\=eth0/​g"​ /​etc/​initramfs-tools/​initramfs.conf 
-</​code>​ 
-  * Suppression du hostname pour le paramétrage automatique du HOST<​code>​ 
-rm /​etc/​hostname 
-</​code>​ 
-  * Définition de l'​interface de loopback<​code>​ 
-tee /​etc/​network/​interfaces <<EOF 
-auto lo 
-iface lo inet loopback 
-EOF 
-</​code>​ 
-  * Installation ssmtp en lieu et place de exim !<​code>​ 
-apt-get install ssmtp 
-</​code>​ 
-  * Arrêt des services démarrés à l'​installation<​code>​ 
-/​etc/​init.d/​dbus stop 
-</​code>​ 
-  * Démontage du ''/​proc''<​code>​ 
-umount /proc 
-</​code>​ 
-  * Sortie de l'​environnement chrooté<​code>​ 
-exit 
-</​code>​ 
- 
-===== Configuration du démarrage PXE ===== 
- 
-==== Sur le porteur de cibles iSCSI ==== 
- 
-  * Copie des composants pour le PXE<​code>​ 
-cp /​media/​MyLViSCSI/​boot/​initrd.img-3.2.0-4-686-pae /​root/​initrd.img-3.2.0-4-686-pae-iSCSI 
-cp /​media/​MyLViSCSI/​boot/​vmlinuz-3.2.0-4-686-pae /​root/​vmlinuz-3.2.0-4-686-pae-iSCSI 
-cp /​media/​MyLViSCSI/​boot/​initrd.img-3.2.0-4-amd64 /​root/​initrd.img-3.2.0-4-amd64-iSCSI 
-cp /​media/​MyLViSCSI/​boot/​vmlinuz-3.2.0-4-amd64 /​root/​vmlinuz-3.2.0-4-amd64-iSCSI 
-</​code>​ 
-  * Copie des clés autorisées<​code>​mkdir /​media/​MyLViSCSI/​root/​.ssh 
-cp -a /​root/​.ssh/​authorized_keys /​media/​MyLViSCSI/​root/​.ssh/​ 
-</​code>​ 
-  * Démontage de la partition<​code>​ 
-umount /​media/​MyLViSCSI 
-</​code>​ 
-  * Copie des composants de démarrage sur le serveur PXE<​code>​ 
-# Le serveur TFTP/PXE est MyPXE : 
-scp /​root/​*iSCSI PyPXE:/​srv/​tftp 
-</​code>​ 
- 
-  * Création d'un partage iSCSI nécessitant les paramètres 
-    * IQN (pour iSCSI Qualified Name) : ''​iqn.2012-04.MySite.MyHost:​MyLViSCSI''​ 
-    * identifiant : ''​inputname''​ 
-    * mot de passe : ''​MyInputPwd''​ 
-    * chemin : ''/​dev/​MyVG/​MyLViSCSI''​ 
-  * Paramétrage de la cible IET<​code>​ 
-# Renommage de l'​ancien fichier de configuration 
-cp /​etc/​iet/​ietd.conf /​etc/​iet/​ietd.conf-$(date +%Y%m%d) 
-# Ajout de l'​entree précedente 
-tee -a /​etc/​iet/​ietd.conf <<EOF 
-Target iqn.2013-06.MySite.MyHost:​MyLViSCSI 
- IncomingUser inputname MyInputPwd 
- Lun 0 Path=/​dev/​MyVG/​MyLViSCSI,​BlockSize=4096,​Type=fileio 
-EOF 
-</​code>​ 
-  * Activation des partages<​code>​ 
-ietadm --op new --tid=86 --params Name=iqn.2013-06.MySite.MyHost:​MyLViSCSI 
-ietadm --op new --tid=86 --lun=0 --params Path=/​dev/​MyVG/​MyLViSCSI,​BlockSize=4096,​Type=fileio 
-ietadm --op new --tid=86 --lun=0 --user --params IncomingUser=inputname,​Password=MyInputPwd 
-</​code>​ 
-  * Vérification des partages par la commande ''​cat /​proc/​net/​iet/​volume ​ | grep MyLViSCSI''<​code>​ 
-cat /​proc/​net/​iet/​volume ​ | grep MyLViSCSI 
-tid:86 name:​iqn.2013-03.MySite.MyHost:​MyLViSCSI 
- lun:0 state:0 iotype:​fileio iomode:wt blocks:​5242880 blocksize:​4096 path:/​dev/​MyVG/​MyLViSCSI 
-</​code>​ 
- 
-==== Sur le serveur TFTP de boot PXE ==== 
- 
-  * Déplacement dans le dossier de configuration TFTP, anciennement ''/​srv/​tftp'',​ maintenant <​code>​ 
-cd /​srv/​tftp/​pxelinux.cfg 
-</​code>​ 
-  * Déclaration de l'​entrée TFTP pour notre entrée 
-    * ''​ISCSI_TARGET_NAME''​ : IQN 
-    * ''​ISCSI_TARGET_IP''​ : hôte de cibles iSCSI 
-    * ''​ISCSI_INITIATOR''​ : IQN  
-    * ''​ISCSI_USERNAME''​ : identifiant 
-    * ''​ISCSI_PASSWORD''​ : mot de passe 
-    * ''​ISCSI_TARGET_GROUP''​ : groupe, généralement 1<​code>​ 
-tee iscsi <<EOF 
-DEFAULT linux64 
- 
-LABEL linux64 
-KERNEL vmlinuz-3.2.0-4-amd64-iSCSI 
-APPEND console=tty1 initrd=initrd.img-3.2.0-4-amd64-iSCSI ip=dhcp rw ISCSI_TARGET_NAME=iqn.2013-06.MySite.MyHost:​MyLViSCSI ISCSI_TARGET_IP=MyHost ISCSI_INITIATOR=iqn.2013-06.MySite.MyHost:​default ISCSI_USERNAME=inputname ISCSI_TARGET_GROUP=1 ISCSI_PASSWORD=MyInputPwd root=LABEL=MyLViSCSI rootflags=data=journal 
- 
-LABEL linux64 
-KERNEL vmlinuz-3.2.0-4-686-pae-iSCSI 
-APPEND console=tty1 initrd=initrd.img-3.2.0-4-686-pae-iSCSI ip=dhcp rw ISCSI_TARGET_NAME=iqn.2013-06.MySite.MyHost:​MyLViSCSI ISCSI_TARGET_IP=MyHost ISCSI_INITIATOR=iqn.2013-06.MySite.MyHost:​default ISCSI_USERNAME=inputname ISCSI_TARGET_GROUP=1 ISCSI_PASSWORD=MyInputPwd root=LABEL=MyLViSCSI rootflags=data=journal 
-EOF 
-</​code>​ 
-  * Création des liens pour chaque machine spécifique<​note important>​L'​adresse MAC de la forme : ''​00:​AA:​BB:​CC:​DD:​EE''​ doit être écrite sous la forme 01-00-AA-BB-CC-DD-EE</​note><​code>​ 
-ln -sf iscsi 01-00-AA-BB-CC-DD-EE 
-</​code>​ 
- 
- --- //​[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] 2013/06/13 06:05// 
developpement/productions/iscsiboot4wheezy.txt · Dernière modification: 2015/01/07 10:04 (modification externe)