Ceci est une ancienne révision du document !
Machine tortipousse (port 43)
2 interfaces ayant les ip suivantes :
Machine ouisticram (port 45)
2 interfaces ayant les ip suivantes:
Machine tiplouf (port 47)
2 interfaces ayant les ip suivantes:
2 IP/machine avec 2 réseaux
Sur chaque machine, deux disques : un pour le système et un pour ceph. On prend des disques tous de la même taille pour ceph.
Problème : relier ces 3 machines en triangle ?
Chaque machine possède trois interfaces : une avec un IP dans le 103, et deux autres utilisées pour relier les machines entre elles.
Sur chaque machine, on va créer un “switch virtuel” (bridge) pour associer à ces deux interfaces une seule et même IP. Pour cela, on utilise la configuration suivante dans /etc/network/interfaces :
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto enp0s25 iface enp0s25 inet static address 192.168.103.25 netmask 255.255.255.0 gateway 192.168.103.1 auto enp1s0f0 iface enp1s0f0 inet manual pre-up ip link set dev $IFACE up pre-down ip link set dev $IFACE down auto enp1s0f1 iface enp1s0f1 inet manual pre-up ip link set dev $IFACE up pre-down ip link set dev $IFACE down auto br0 iface br0 inet static bridge_ports enp1s0f0 enp1s0f1 address 192.168.1.3 netmask 255.255.255.0
Afin d'éviter la tempête de broadcast, on ajoute des règles ebtables permettant de filtrer le trafic passant par le bridge. De plus, on souhaite que chaque machine communique avec la machine voisine sans passer par une autre intermédiaire. Par exemple, 1 doit communiquer avec 2 sans passer par 3.
Pour cela, on empêche la communication entre les deux interfaces des bridges, ce qui s'écrit à l'aide des règles suivantes, avec iface1 et iface2 les noms des interfaces correspondantes :
ebtables -A FORWARD -i iface1 -o iface2 -d ff:ff:ff:ff:ff:ff -j DROP ebtables -A FORWARD -i iface2 -o iface1 -d ff:ff:ff:ff:ff:ff -j DROP
Afin de garder ces changements permanents, même après un redémarrage, on utilise le script suivant (nommé config.sh) :
#! /bin/bash # prend en argument le nom des deux interfaces concernées if [ $# -ne 2 ]; then echo "./config iface1 iface2" exit 1 fi ebtables -A FORWARD -i $1 -o $2 -d ff:ff:ff:ff:ff:ff -j DROP ebtables -A FORWARD -i $2 -o $1 -d ff:ff:ff:ff:ff:ff -j DROP
On ajoute l'appel à ce script dans /etc/rc.local pour qu'il soit exécuté au démarrage.
Afin d'assurer la bonne installation de Ceph, on ajoute dans le fichier /etc/environment
export http_proxy="http://192.168.103.61:82" export https_proxy="https://192.168.103.61:82"
C'est utile lorsqu'on utilise ceph-deploy install tortipousse ouisticram tiplouf
… La commande se lance sur une des trois machines et installe les paquets sur toutes les autres, qui ne peuvent les télécharger si les proxys ne sont pas exportés.
http://docs.ceph.com/docs/master/install/get-packages/#debian-packages
Il faut ajouter le repository dans les sources, puis on peut installer les paquets nécessaires : ceph-common, ceph-mon, ceph-mgr, et pas ceph-mds.
sudo apt-add-repository 'deb https://download.ceph.com/debian-luminous/ stretch main'
Ou à ajouter à la main dans /etc/apt/sources.list.d/ceph.list
Faire un cluster Ceph de 3 machines.