Ci-dessous, les différences entre deux révisions de la page.
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/20 21:06] 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 interfaces ayant les ip suivantes: | ||
- | * 192.168.1.3 (enp1s0f0) | ||
- | * 192.168.103.25 (enp0s25) | ||
2 IP/machine avec 2 réseaux | 2 IP/machine avec 2 réseaux | ||
- | Installer ceph-common, ceph-mon, ceph-mgr, et **pas** | + | 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. |
- | Deux disques : 1 système et 1 ceph, même taille pour les disques ceph. | + | ==== Mise en place du réseau ==== |
- | + | ||
- | Faire un cluster Ceph de 3 machines. | + | |
Problème : relier ces 3 machines en triangle ? | Problème : relier ces 3 machines en triangle ? | ||
- | L'image | + | {{ : |
+ | 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 " | ||
+ | |||
+ | < | ||
+ | # This file describes the network interfaces available on your system | ||
+ | # and how to activate them. For more information, | ||
+ | |||
+ | source / | ||
+ | |||
+ | # 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 | ||
+ | pre-down ip link set dev $IFACE down | ||
+ | |||
+ | auto enp1s0f1 | ||
+ | iface enp1s0f1 inet manual | ||
+ | pre-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, 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' | ||
+ | |||
+ | 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, | ||
+ | |||
+ | <code bash> | ||
+ | #! /bin/bash | ||
+ | # prend en argument le nom des deux interfaces concernées | ||
+ | |||
+ | if [ $# -ne 2 ]; then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | ebtables -A FORWARD -i $1 -o $2 -j DROP | ||
+ | ebtables -A FORWARD -i $2 -o $1 -j DROP | ||
+ | |||
+ | </ | ||
+ | |||
+ | On ajoute l' | ||
+ | |||
+ | 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=/ | ||
+ | EBTABLES_ATOMIC_FILE=/ | ||
+ | |||
+ | Afin d' | ||
+ | |||
+ | export http_proxy=" | ||
+ | export https_proxy=" | ||
+ | |||
+ | C'est utile lorsqu' | ||
+ | |||
+ | ==== Installation de Ceph ==== | ||
+ | |||
+ | Tout se passe par ici : [[ http:// | ||
+ | |||
+ | === Prérequis === | ||
+ | |||
+ | [[ http:// | ||
+ | |||
+ | On ajoute le repository de Ceph dans les sources (([[ http:// | ||
+ | |||
+ | sudo apt-add-repository 'deb https:// | ||
+ | |||
+ | Il est ensuite nécessaire d’installer NTP sur chaque nœud, pour cela, on se réfère à cette page du wiki : [[ https:// | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | * pour les moniteurs (//mon//) : | ||
+ | |||
+ | sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/ | ||
+ | |||
+ | * pour les OSD : | ||
+ | |||
+ | sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/ | ||
+ | |||
+ | Pour rendre ces règles permanentes, | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | Pour spécifier le //public network// dans le fichier ceph.conf(([[ http:// | ||
- | Sur chaque machine, créer un switch virtuel pour associer une IP à deux interfaces. | + | public_network = 192.168.103.0/ |
+ | cluster_network = 192.168.1.0/ | ||
- | Pour éviter | + | Pour installer |
+ | ceph-deploy install --release=luminous tiplouf tortipousse ouisticram | ||
+ | Au final, on a un mon et un OSD sur chaque machine. |