Recueil de configuration pour Xenserver 6.5¶
Cette page est destinée à de vieilles machines.
Citrix XenServer Hardware Test Kits¶
Il permet de valider la compatibilité d’un matériel avec Xenserver (les test I/O ne sont pas incorporés dedans)
- Depuis cette page:
http://www.citrix.com/partner-programs/citrix-ready/test.html
Télécharger Citrix XenServer Hardware Test Kit for XenServer 6.5
Installation¶
Monter l’iso et lancer le script
python install
Les scripts de tests sont dans:
cd /opt/xensource/package/files/auto-cert-kit
Configuration du fichier network.conf¶
Dans le cas ci-dessous: 2 cartes réseaux sont sur le même switch et les VM récupèrent des IP en DHCP
#Interface = Network ID,VLANs
eth0 = 0,[0]
eth1 = 0,[0]
# For static addressing, each network/vlan combination needs to be
# explicitly stated, otherwise we assume DHCP is available. The syntax can
# be seen in the example below. For the 'non-vlan' case, the vlan Id should
# be 0, i.e.:
# static_0_0 = 192.168.0.2,192.168.0.10,255.255.255.0,192.168.0.1
# static_<network _id>_<vlan_id> = <ip_start>,<ip_end>,<netmask>,<gw>
# Setting static addressing for VLAN 200 on Network ID 0:
#static_0_0 = 192.168.149.200,192.168.149.210,255.255.255.0,192.168.149.254
Lancement du test¶
Attention
des redémarrages sont automatiquement effectués pendant le test
cd /opt/xensource/package/files/auto-cert-kit
python ack_cli.py -n network.conf
Information pendant le test¶
cd /opt/xensource/package/files/auto-cert-kit
python status.py
ou
less /var/log/auto-cert-kit.log
test terminé¶
un ficher resultat.txt
est généré dans /root avec toutes les infos
Installation de driver lsi megaraid sas¶
En ssh sur le Xenserver
mkdir /root/megaraid_sas
cd /root/megaraid_sas
wget http://srvinstallation.tranquil.it/logiciels/lsi/MR_LINUX_DRIVER_6.11-06.811.02.00-3.tgz
tar -xvzf MR_LINUX_DRIVER_6.11-06.811.02.00-3.tgz
mount -o loop citrix6/disks-2/megaraid_sas-06.811.02.00_CitrixXen6.5-2.iso /mnt/
cd /mnt
./install
Pour vérifier la version du driver megaraid_sas :
modinfo megaraid_sas
Installation lsi megacli¶
Installation¶
En ssh sur le serveur Xen
cd /root
wget http://srvinstallation.tranquil.it/logiciels/lsi/MegaCli-8.07.07-1.noarch.rpm
rpm -i MegaCli-8.07.07-1.noarch.rpm
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/local/bin/megacli
Utilisation¶
megacli -h
Carte réseau Intel et gro¶
Explication¶
Xenserver 6.5 utilise un kernel 3.10 l’option « Generic Receive Offload » est activé sur les drivers des cartes réseau Intel dans ce kernel. Les symptômes sont: * Lenteur lors de copie de nombreux fichiers de petites tailles * Quand la source et la destination ne sont pas sur le même Xenserver * Connexions à une BDD sur une VM du Xenserver * Utilisation de carte réseau Intel
Résolution¶
Le plus simple est d’utiliser le script de ce liens: https://github.com/cloudnull/XenServer-Offloading-Off
Pour désactiver immédiatement les gro; à faire sur toutes les interfaces
ethtool -K eth0 gro off
Pour que la modification soit effective après reboot; à faire sur tout les pif
xe pif-param-set other-config:ethtool-gro=off uuid=
xe pif-param-set properties:gro=off uuid=
Créer des paquets Debian drbd9¶
apt-get update && apt-get upgrade
apt-get install dkms debhelper
apt-get install git eclipse-cdt-autotools build-essential flex docbook-xsl dh-systemd xsltproc python-dbus python-gobject
drbd-utils¶
git clone --recursive git://git.linbit.com/drbd-utils.git
cd drbd-utils
./autogen.sh
dpkg-buildpackage -rfakeroot -b -uc
cd /root
Un paquet drbd-utils_8.9.3-1_amd64.deb est créé
drbd¶
git clone --recursive git://git.drbd.org/drbd-9.0.git
cd drbd-9.0
make && make clean
dpkg-buildpackage -rfakeroot -b -uc
cd /root
Un paquet drbd-dkms_9.0.0-1_all.deb est créé
drbdmanage¶
git clone --recursive http://git.drbd.org/drbdmanage.git
apt-get install python-all help2man python-dbus python-gobject
cd drbdmanage
dpkg-buildpackage -rfakeroot -b -uc
cd /root
Un paquet python-drbdmanage_0.43.1-1_all.deb est créé
Configurer les baies SAN sous Debian Jessie¶
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 :
Dans
/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
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|.*|" ]
Puis :
rm -f /etc/lvm/cache/.cache
sur srvsan1
Générer une clé
ssh-keygen -t dsa -b 1024 ssh-copy-id -i ~/.ssh/id_dsa.pub root@10.0.0.2
sur srvsan2
Générer une clé
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 :
.. code-block:: console
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 :
.. code-block:: console
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 iscsi-scst
modprobe scst_vdisk
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
.. code-block:: console
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