Aller à : navigation, rechercher

Xenserver - Configurer les baies SAN sous Debian

Pour simplifier la configuration et ne pas mixer les flux réseaux (DRBD, iSCSI, ssh/management) nous allons partir sur une configuration avec 3 ports réseaux sur chaque serveurs, et si besoin isoler les flux dans des VLANs :

  • 192.168.149.x: réseau pour l'accès en ssh/management
  • 192.168.1.x: réseau pour les exports iSCSI vers les XenServers
  • 10.0.0.x: réseau pour la réplication DRBD

Cette documentation se base sur la distribution debian Jessie

La première étape consiste à installer le système avec le strict minimum, donc uniquement avec le service SSH installé.

Installer le kernel patché pour scst

Il est nécessaire d'intégrer certain patch au kernel afin d'utiliser pleinement scst. Nous proposons le kernel 3.16 avec les patch nécessaire

cd /root
wget http://srvinstallation.tranquil-it-systems.fr/logiciels/scst/linux-headers-3.16.7-ckt11-2custom-scst-3.16-adm64_3.16.0-7_amd64.deb
wget http://srvinstallation.tranquil-it-systems.fr/logiciels/scst/linux-image-3.16.7-ckt11-2custom-scst-3.16-adm64_3.16.0-7_amd64.deb
dpkg -i linux-image-3.16.7-ckt11-2custom-scst-3.16-adm64_3.16.0-7_amd64.deb
dpkg -i linux-headers-3.16.7-ckt11-2custom-scst-3.16-adm64_3.16.0-7_amd64.deb
reboot

Installer drbd9

apt-get install dkms debhelper python-dbus python-gobject lvm2
wget http://srvinstallation.tranquil.it/logiciels/drbd/drbd-utils_8.9.3-1_amd64.deb
dpkg -i drbd-utils_8.9.3-1_amd64.deb
wget http://srvinstallation.tranquil.it/logiciels/drbd/drbd-dkms_9.0.0-1_all.deb
dpkg -i drbd-dkms_9.0.0-1_all.deb
wget http://srvinstallation.tranquil.it/logiciels/drbd/python-drbdmanage_0.43.1-1_all.deb
dpkg -i python-drbdmanage_0.43.1-1_all.deb

Configurer le cluster DRBD

La configuration ip pour les DRBD sera:

  • srvsan1: 10.0.0.1
  • srvsan2: 10.0.0.2
  • Sur les 2 baies SAN :
/etc/ssh/sshd_config

remplacer

PermitRootLogin without-password

par

PermitRootLogin yes

puis taper

service ssh restart

Configurer un volume group lvm sur le disque raid

pvcreate /dev/sda 
vgcreate drbdpool /dev/sda
  • Optimiser la couche lvm
vi /etc/lvm/lvm.conf

ajouter : modifier write_cache_state

write_cache_state = 0

ajouter le filtre lvm (dans notre cas le device sda est la carte raid)

filter = [ "a|sda.*|", "r|.*|" ]

rm -f /etc/lvm/cache/.cache

  • sur srvsan1
ssh-keygen -t dsa -b 1024
ssh-copy-id -i ~/.ssh/id_dsa.pub root@10.0.0.2
  • sur srvsan2
ssh-keygen -t dsa -b 1024
ssh-copy-id -i ~/.ssh/id_dsa.pub root@10.0.0.1
  • sur srvsan1
drbdmanage init 10.0.0.1
  • sur srvsan2
uname -n
  • sur srvsan1
drbdmanage new-node "resultat uname -n" 10.0.0.2

Configurer les ressource - volumes DRBD

storage1

drbdmanage add-resource storage1
drbdmanage add-volume storage1 500GB
drbdmanage deploy-resource storage1  2

ou en une ligne :

drbdmanage new-volume storage1 500 --deploy 2

storage2

drbdmanage add-resource storage2
drbdmanage add-volume storage2 500GB
drbdmanage deploy-resource storage2  2

ou en une ligne :

drbdmanage new-volume storage2 500 --deploy 2


Voir le status des DRBD

la commande

drbdadm status

retourne l'état des volumes :

.drbdctrl role:Secondary
  disk:UpToDate
  srvsan2.test.lan role:Secondary
    peer-disk:UpToDate

storage1 role:Secondary
  disk:UpToDate
  srvsan2.test.lan role:Secondary
    peer-disk:UpToDate

storage2 role:Secondary
  disk:UpToDate
  srvsan2.test.lan role:Secondary
    peer-disk:UpToDate

iSCSI

La configuration ip pour les ISCSI sera:

  • srvsan1: 192.168.1.1
  • srvsan2: 192.168.1.2

Installation

  • A faire sur les Debian servant de SAN
apt-get install subversion build-essential checkinstall kernel-package ncurses-dev
cd /root
ln -s /usr/src/linux-headers-$(uname -r)/ /lib/modules/3.16.7-ckt11-2custom-scst-3.16-adm64/build
svn checkout svn://svn.code.sf.net/p/scst/svn/trunk scst-trunk
cd scst-trunk

par défaut scst est en mode degug, passer le en mode performance

make 2perf 
make scst scst_install iscsi iscsi_install scstadm scstadm_install iscsi-scst

chargement des modules pour la première configuration

modprobe scst
modprobe scst_vdisk
modprobe iscsi-scst
iscsi-scstd

Configuration

Les paramètre nv_cache parameter 0 et write_through 1 permettent d'optimiser SCST quand il est couplé a DRBD

  • sur srvsan1

le device exporté sera storage1 avec l'iqn iqn.2015.srvsan1:storage1 accessible uniquement par l'interface 192.168.1.1

scstadmin -open_dev storage1   -handler vdisk_blockio -attributes filename=/dev/drbd/by-res/storage1/0,nv_cache=0,read_only=0,removable=0,write_through=1
scstadmin -add_target iqn.2015.srvsan1:storage1 -driver iscsi
scstadmin -add_lun 0 -driver iscsi -target iqn.2015.srvsan1:storage1 -device storage1
scstadmin -set_tgt_attr iqn.2015.srvsan1:storage1 -driver iscsi -attributes allowed_portal=192.168.1.1
scstadmin -enable_target iqn.2015.srvsan1:storage1 -driver iscsi
scstadmin -set_drv_attr iscsi -attributes enabled=1
scstadmin -write_config /etc/scst.conf
  • sur srvsan2

le device exporté sera storage2 avec l'iqn iqn.2015.srvsan2:storage2 accessible uniquement par l'interface 192.168.1.2

scstadmin -open_dev storage2   -handler vdisk_blockio -attributes filename=/dev/drbd/by-res/storage2/0,nv_cache=0,read_only=0,removable=0,write_through=1
scstadmin -add_target iqn.2015.srvsan2:storage2 -driver iscsi
scstadmin -add_lun 0 -driver iscsi -target iqn.2015.srvsan2:storage2 -device storage2
scstadmin -set_tgt_attr iqn.2015.srvsan2:storage2 -driver iscsi -attributes allowed_portal=192.168.1.2
scstadmin -enable_target iqn.2015.srvsan2:storage2 -driver iscsi
scstadmin -set_drv_attr iscsi -attributes enabled=1
scstadmin -write_config /etc/scst.conf

Configuration du boot

systemctl enable scst
systemctl enable drbd
  • configurer SCST pour qu'il soit démarré après DRBD
vi /lib/systemd/system/drbd.service

ajouter dans la section [Unit]

Before=scst.service