Ci-dessous, les différences entre deux révisions de la page.
wiki:divers:coin_geek:1a [2019/01/27 18:36] gabery |
wiki:divers:coin_geek:1a [2020/06/27 18:16] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | 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. | ||
- | |||
- | ==== Mise en place du réseau ==== | ||
- | |||
- | 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 " | ||
- | |||
- | < | ||
- | # 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' | ||
- | |||
- | 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 firewall-cmd --zone=public --add-service=ceph-mon --permanent | ||
- | sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/ | ||
- | |||
- | * pour les OSD : | ||
- | |||
- | sudo firewall-cmd --zone=public --add-service=ceph --permanent | ||
- | sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/ | ||
- | |||
- | Pour rendre ces règles permanentes : | ||
- | sudo firewall-cmd --reload | ||
- | |||
- | Et pour les iptables, on installe le paquet '' | ||
- | | ||
- | 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:// | ||
- | |||
- | public_network = 192.168.103.0/ | ||
- | cluster_network = 192.168.1.0/ | ||
- | |||
- | 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. |