18
0
Fork 0

Ajout procédure installation

This commit is contained in:
abenmiloud 2018-04-19 17:34:33 +02:00
parent 9897a5c239
commit d11b42b87c
1 changed files with 153 additions and 0 deletions

View File

@ -5,6 +5,159 @@ title: Howto Ceph
* Documentation : <http://docs.ceph.com>
# Installation
On cherche à créer l'architecture suivante où un client interagit avec un cluster Ceph :
<---- cluster Ceph ----->
+-------+
+-> | ceph1 |
| +-------+
+-------+ +-------+ | +-------+
| cephc | <-> | cephm | <-+-> | ceph2 |
+-------+ +-------+ | +-------+
| +-------+
+-> | ceph3 |
+-------+
cephc : client Ceph
cephm : nœud maitre ou nœud admin
ceph[1-3] : nœud cephs
## Préparation
On suppose ici que :
- chaque machine a été installée sous Debian 9 ;
- chaque machine du cluster peut se connecter via SSH sur une autre ;
- cephc et cephm peuvent se connecter via SSH sur l'autre.
Pour la configuration SSH, on aura, pour cephm:
$ cat ~/.ssh/config
Hostname ceph1
Host ceph1
User cephuser
Hostname ceph2
Host ceph2
User cephuser
Hostname ceph2
Host ceph2
User cephuser
Il est peut-être nécéssaire d'ajouter les machines dans le fichier `/etc/hosts` :
X.X.X.X ceph1
Y.Y.Y.Y ceph2
Z.Z.Z.Z ceph3
> En réalité seul le nœud maître à besoin de se connecter aux autres nœud du cluster mais je n'ai pas essayé.
Dans cet exemple, chaque noeud - ceph1, ceph2 et ceph3 - à un disque supplémentaire à sa disposition. Ce disque contiendra les données à stocker dans le cluster et doit être vide, sans table de partitions et être utilisé comme volume physique :
wipefs -a /dev/sdb
pvcreate /dev/sdb
> /dev/sdb est le volume supplémentaire.
## Installation
On commence par installer `ceph-deploy`, l'outil qui permet de déployer un cluster Ceph.
sudo wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
sudo apt update && sudo apt install ceph-deploy
> Les commandes précédentes ne sont à exécuter que sur le nœud maître.
Puis, on installe NTP sur l'ensemble des nœuds.
sudo apt install ntp
sudo timedatectl set-ntp true
**TODO** Il est recommandé de créer un utilisateur spécifique pour Ceph, mais ça fonctionne sans.
> Jusqu'à indication du contraire, les commandes qui suivent sont à exécuter sur le nœud maître.
On commence par créer un dossier qui contiendra les fichiers de configuration et les clefs.
mkdir my-cluster
cd my-cluster
On crée le cluster :
ceph-deploy new deb1 deb2 deb3
Ajouter le « public_network » à la configuration de Ceph :
cat <<eof >>ceph.conf
public_network = 192.168.4.0/24
eof
On installe les paquets Ceph sur les nœeuds :
ceph-deploy install --release luminous deb1 deb2 deb3
On initialise le moniteur. Cela va créer un tas de fichiers `*.keyring`. On copie ensuite ces fichiers sur tous les nœeuds. Un monitor sert à maintenir une carte de l'état du cluster.
ceph-deploy mon create-initial
ceph-deploy admin deb0 deb1 deb2 deb3
On déploie un manager. Celui-ci permet de regrouper l'état du cluster à un seul endroit.
ceph-deploy mgr create deb1
On crée les OSD :
ceph-deploy osd create --data /dev/sdb deb1
ceph-deploy osd create --data /dev/sdb deb2
ceph-deploy osd create --data /dev/sdb deb3
> On peut lancer la commande suivante pour s'assurer que le cluster fonctionne bien :
>
> ssh ceph1 sudo ceph -s | grep HEALTH_OK && echo yee || echo fail
On ajoute des moniteurs afin d'assurer la bonne disponibilité du cluster. Il vaut mieux avoir un nombre impair de moniteurs.
ceph-deploy mon add deb2
ceph-deploy mon add deb3
De la même manière, on ajoute des managers. Dans le cas où un manager décide de ne plus fonctionner.
ceph-deploy mgr create deb2
ceph-deploy mgr create deb3
Il ne reste qu'à créer un pool et à initialiser RBD :
sudo ceph osd pool create rbd 128
sudo rbd pool init rbd
Le cluster est prêt. On peut maintenant s'occuper du client.
## Client
L'installation du client est analogue à celle des nœuds. Depuis le nœud admin :
ceph-deploy install --release luminous debc
ceph-deploy admin debc
ceph-deploy --overwrite-conf admin deb1 deb2 deb3 # TODO: nécéssaire ?
> Si cette étape échoue à cause d'un problème de clefs, il faut copier les clefs dans /etc/ceph :
>
> sudo cp ceph.client.admin.keyring /etc/ceph
Sur le client, on peut désormais récupérer le block device et l'utiliser :
sudo rbd create foo --size 4096 --image-feature layering
sudo rbd map foo --name client.admin
sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo
sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device
# Troubleshooting