Chez JL

Joliciel Libre

Accueil > Informatique > Haute Disponibilité > Ganeti > Ganeti - gestion de cluster

Ganeti - gestion de cluster

jeudi 24 mai 2018, par JL

Résumé installation de Ganeti

Modifier le /etc/hosts du maitre en intégrant le nouveau serveur, puis le diffuser aux autres noeuds :

vi /etc/hosts
127.0.0.1       localhost
192.168.3.211   grappe.mondomaine.fr grappe
192.168.3.182   noeud1.mondomaine.fr noeud1
192.168.3.196   noeud4.mondomaine.fr noeud4
192.168.3.26    noeud8.mondomaine.fr noeud8
192.168.3.10    noeud7.mondomaine.fr noeud7


scp /etc/hosts noeud2:/etc/hosts
scp /etc/hosts noeud3:/etc/hosts
...

Il faut enlever le ligne 127.0.1.1 et laisser les autres qui commencent par ::1... ff02...

vi /etc/hostname
noeud1.mondomaine.fr

hostname noeud1.mondomaine.fr
egrep '(vmx|svm)' /proc/cpuinfo
apt install xen-linux-system-amd64

vi /etc/default/xendomains
XENDOMAINS_SAVE=

ln -s /boot/vmlinuz-4.9.0-6-amd64 /boot/vmlinuz-4-xenU
ln -s /boot/initrd.img-4.9.0-6-amd64 /boot/initrd-4-xenU
mv /etc/grub.d/20_linux_xen /etc/grub.d/09_linux_xen
update-grub

vi /etc/initramfs-tools/modules
xen_blkfront

update-initramfs -u

vi /etc/default/xen
TOOLSTACK=xl

vi /etc/default/grub
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=2000M,max:8000G"

update-grub


vi /etc/xen/xl.conf
autoballoon=0

shutdown -r now

cat <<EOF >/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
xl sched-credit -d Domain-0 -w 512
exit 0
EOF
chmod +x /etc/rc.local

ln -sf /usr/lib/xen-4.8/ /usr/lib/xen

Copier les noyaux nécessaire sur le cluster :
Depuix noeud8 :
rsync -vl /boot/* noeud1:/boot/

Attention sur le nouveau serveur, recorriger l'initramfs :
update-initramfs -u
update-grub

Pour voir que le serveur redémarre bien suite à cela :
shutdwon -r now

apt install drbd8-utils
echo "options drbd minor_count=128 usermode_helper=/bin/true" > /etc/modprobe.d/drbd.conf
echo "drbd" >> /etc/modules
depmod -a
modprobe drbd

apt remove network-manager avahi-daemon resolvconf
vi /etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto xen-br0
iface xen-br0 inet static
address 192.168.3.182
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.252
bridge-ports eno1
bridge_stp off # disable Spanning Tree Protocol
bridge_fd 0 # no forwarding delay
bridge_waitport 0    # no delay unless port available
# example for setting manually the bridge address to the eth0 NIC
up ip link set addr $(cat /sys/class/net/eth0/address) dev $IFACE

auto xen-br1
iface xen-br1 inet static
       bridge-ports eno2
       address 192.168.5.3
       netmask 255.255.255.0
       network 192.168.5.0
       broadcast 192.168.5.255

# commutateur virtuel
# on ne précise pas d'interface, car il n'est connecté à rien pour le moment.
auto xen-test
iface xen-test inet manual
 pre-up brctl addbr $IFACE
 up ip link set $IFACE up
 post-down brctl delbr $IFACE
 down ip link set $IFACE down


vi /etc/resolv.conf
search mondomaine.fr
domain mondomaine.fr
nameserver 192.168.3.201
nameserver 192.168.3.202

shutdown -r now

vgs
vgrename XXXX-vg xenvg
vi /etc/fstab (mettre xenvg)
:%s/$NOMSERVEUR-vg/xenvg/g

vi /boot/grub/grub.cfg
:%s/$NOMSERVEUR-vg/xenvg/g

vi /etc/initramfs-tools/conf.d/resume
RESUME=none
update-initramfs -u

shutdown -r now

vi /etc/lvm/lvm.conf
(vers ligne 142)
# pour ganeti
filter = ["r|/dev/cdrom|", "r|/dev/drbd[0-9]+|" ]

apt install ganeti ganeti-doc ganeti-os-noop

Si cela n'avait pas été déjà fait (sinon que ce passe-t-il ?):
ssh-keygen  (puis valider 3 fois sur entrée)

cd /root/.ssh
cat id_rsa.pub >> authorized_keys

Faire des test en se connectant en ssh sur le nom d’hôte complet (il faut enregistrer l’empreinte associée), vers les noeuds distants et aussi en local.

ssh root@noeud1.mondomaine.fr
ssh root@noeud4.mondomaine.fr
ssh root@noeud7.mondomaine.fr
ssh root@noeud8.mondomaine.fr

Vérifier la connexion ssh des noeuds existants vers le nouveau noeud.

mettre le mot de passe pour vnc

vi /etc/ganeti/vnc-cluster-password
rsync  /etc/ganeti/instance-debootstrap/variants/* noeud1:/etc/ganeti/instance-debootstrap/variants/
rsync  /etc/ganeti/instance-debootstrap/variants.list  noeud1:/etc/ganeti/instance-debootstrap/

Ajouter le noeud à la grappe
gnt-node add noeud2.mondomaine.fr
gnt-cluster verify

Vérification après installation, résumé

# xl list
Name                                        ID   Mem VCPUs        State        Time(s)
Domain-0                                     0  1747     2     r-----      16.8

# xl dmesg | grep -i hvm
(XEN) HVM: VMX enabled

systemctl status rc-local

lsmod | grep xen

xl sched-credit -d Domain-0
Name                                ID Weight  Cap
Domain-0                             0    512    0

Vérifier qu’il n’y pas déjà de ressource drbd définit.
Voir /etc/drbd.d ou /etc/drbd.conf
S’il y en a les supprimer ou les commenter avec :

skip {
 resource r0 {
   ...
 }
}

skip {
 resource "r1" {
   ...
 }
}

Vérifier :

ip a show xen-br0

9: xen-br0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue
   link/ether 00:20:fc:1e:d5:5d brd ff:ff:ff:ff:ff:ff
   inet 10.1.1.200/24 brd 10.1.1.255 scope global xen-br0
   inet6 fe80::220:fcff:fe1e:d55d/64 scope link
      valid_lft forever preferred_lft forever

brctl show xen-br0

bridge name     bridge id               STP enabled     interfaces
xen-br0         8000.0020fc1ed55d       no              eth0