WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:divers:coin_geek:1a

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:divers:coin_geek:1a [2018/12/11 20:48]
gabery
wiki:divers:coin_geek:1a [2020/06/27 18:16] (Version actuelle)
Ligne 1: Ligne 1:
-Machine tortipousse (port 43) \\ +===== Expérimentation avec Ceph =====
-2 interfaces ayant les ip suivantes :  +
-  * 192.168.1.2 +
-  * 192.168.103.26+
  
-Machine Torterra (port 45) \\ 
-2 interfaces ayant les ip suivantes: 
-  * 192.168.1.1 
-  * 192.168.103.35 
  
-Machine tiplouf (port 47\\ +2 IP/machine avec 2 réseaux 
-interfaces ayant les ip suivantes: + 
-  192.168.1.(enp1s0f0+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. 
-  * 192.168.103.25 (enp0s25)+ 
 +==== Mise en place du réseau ==== 
 + 
 +Problème : relier ces 3 machines en triangle ? 
 + 
 +{{ :wiki:divers:coin_geek:schema_tours.png|}} 
 +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 : 
 + 
 +<code> 
 +# 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 
 +</code> 
 + 
 +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, tiplouf doit communiquer avec ouisticram sans passer par tortipousse.  
 + 
 +Pour cela, on empêche toute 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 -j DROP 
 +  ebtables -A FORWARD -i iface2 -o iface1 -j DROP 
 +   
 +Afin de garder ces changements permanents, même après un redémarrage, on utilise le script suivant (nommé config.sh) : 
 + 
 +<code bash> 
 +#! /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 -j DROP 
 +ebtables -A FORWARD -i $2 -o $1 -j DROP 
 + 
 +</code> 
 + 
 +On ajoute l'appel à ce script dans /etc/rc.local pour qu'il soit exécuté au démarrage. 
 + 
 +Une autre méthode consiste à sauvegarder la configuration ebtables et à la recharger au démarrage à l'aide des commandes suivantes, la deuxième peut être ajoutée dans le rc.local : 
 + 
 +  EBTABLES_ATOMIC_FILE=/root/ebtables-atomic ebtables --atomic-save 
 +  EBTABLES_ATOMIC_FILE=/root/ebtables-atomic ebtables --atomic-commit 
 + 
 +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 pas les télécharger si les proxys ne sont pas exportés. 
 + 
 +==== Installation de Ceph ==== 
 + 
 +Tout se passe par ici : [[ http://docs.ceph.com/docs/mimic/start/ ]]. 
 + 
 +=== Prérequis === 
 + 
 +[[ http://docs.ceph.com/docs/mimic/start/quick-start-preflight/ ]] 
 + 
 +On ajoute le repository de Ceph dans les sources (([[ http://docs.ceph.com/docs/master/install/get-packages/#debian-packages ]])) pour installer ceph-deploy. Si nécessaire, on l'ajoute à la main dans /etc/apt/sources.list.d/ceph.list 
 + 
 +  sudo apt-add-repository 'deb https://download.ceph.com/debian-luminous/ stretch main' 
 + 
 +Il est ensuite nécessaire d’installer NTP sur chaque nœud, pour cela, on se réfère à cette page du wiki : [[ https://wiki.minet.net/wiki/services/ntp ]]. 
 + 
 +Sur chaque machine, on génère des clés SSH, qu'on laisse sans mot de passe, et on copie la clé publique sur chaque nœud. 
 + 
 +  ssh-keygen -t rsa 
 +  ssh-copy-id [USER]@[SERVER] 
 + 
 +Ensuite, on ouvre les ports nécessaires à la communication entre les machines(([[ http://docs.ceph.com/docs/mimic/start/quick-start-preflight/#open-required-ports ]])), et surtout **ne pas s'occuper des règles firewalld** (qui ne sont pas compatibles avec ebtables) : 
 + 
 +  * pour les moniteurs (//mon//) : 
 + 
 +  sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6789 -j ACCEPT 
 + 
 +  * pour les OSD : 
 + 
 +  sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6800:7300 -j ACCEPT 
 + 
 +Pour rendre ces règles permanentes, on installe le paquet ''%%iptables-permanent%%''
 +   
 +On rajoute également dans /etc/hosts le nom des machines et leur IP : 
 + 
 +  192.168.103.25 tiplouf 
 +  192.168.103.26 tortipousse 
 +  192.168.103.35 ouisticram 
 + 
 +Afin de préparer les disques de stockage, ici /dev/sdb : 
 + 
 +  parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100% 
 +  reboot 
 +  mkfs.xfs /dev/sdb -f 
 + 
 +=== Créer un cluster Ceph de 3 machines === 
 + 
 +Il suffit de suivre : [[ http://docs.ceph.com/docs/mimic/start/quick-ceph-deploy/ ]] 
 + 
 +Pour spécifier le //public network// dans le fichier ceph.conf(([[ http://docs.ceph.com/docs/master/rados/configuration/network-config-ref/]])) : 
 + 
 +  public_network = 192.168.103.0/24 
 +  cluster_network = 192.168.1.0/24 
 + 
 +Pour installer la bonne version de Ceph à installer, utiliser plutôt 
 + 
 +  ceph-deploy install --release=luminous tiplouf tortipousse ouisticram 
 + 
 +Au final, on a un mon et un OSD sur chaque machine.
wiki/divers/coin_geek/1a.1544557728.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)