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