Ceph est une plate-forme de stockage open source, elle offre des performances, une fiabilité et une évolutivité élevées. Il s'agit d'un système de stockage distribué gratuit qui fournit une interface pour le stockage au niveau des objets, des blocs et des fichiers sans point de défaillance unique.
Ceci est la troisième partie de la série de didacticiels Ceph. Dans la première partie, je vous ai montré comment créer un « cluster Ceph » avec plusieurs nœuds sur CentOS7. La deuxième partie est un guide qui montre comment utiliser Ceph en tant que périphérique bloc sur CentOS 7. Dans cette troisième partie, je vais vous montrer comment monter Ceph en tant que système de fichiers sur CentOS 7 en tant que client.
Prérequis
- Cluster Ceph :1 nœud Ceph-admin, 1 nœud Monitor (ceph-mon), 3 nœuds Ceph-osd (voir partie 1).
- Client2 – Serveur CentOS 7 (voir partie 2).
- Privilèges root
Étape 1 - Configurer le nœud Client2
Dans cette première étape, nous allons faire l'installation de base du client. C'est la même procédure que nous avons utilisée sur les autres nœuds du cluster. Nous allons créer un nouvel utilisateur nommé cephuser sur la boîte, synchronisez l'heure avec ntpdate, configurez sudo sans mot de passe pour cephuser etc. Alors commençons...
Connectez-vous au nœud client2 avec SSH en tant qu'utilisateur root :
ssh [email protected]
Nous nous sommes connectés au serveur avec un accès root, nous pouvons maintenant créer le nouveau cephuser.
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD
Une fois le nouvel utilisateur créé, activez sudo sans mot de passe pour l'utilisateur en créant un nouveau fichier de configuration dans le répertoire sudoers.
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser
Ensuite, installez NTP, l'outil de ligne de commande ntpdate et les outils open-vm. Ensuite, mettez à jour et synchronisez l'heure du système avec ntpdate.
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
Désactivez SELinux et modifiez le fichier de l'hôte.
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts
Collez la configuration des hôtes ci-dessous :
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
10.0.15.16 client2
Enregistrez le fichier hosts et quittez l'éditeur. Essayez maintenant d'envoyer un ping au nœud ceph-admin pour tester la configuration de la connexion et du nom d'hôte.
ping -c 3 ceph-admin
Vous devriez voir l'adresse IP du nœud ceph-admin comme résultat.
Étape 2 - Installer Ceph Common Utilities sur le nœud Client2
Le package ceph-common peut être installé à partir du référentiel Ceph. Il contient les utilitaires Ceph pour monter et interagir avec le cluster de stockage Ceph.
Avant de pouvoir procéder à l'installation du package ceph-common, nous devons ajouter le référentiel epel et le référentiel Ceph.
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Mettez à jour le système et installez les utilitaires communs Ceph.
sudo yum -y update
sudo yum -y install ceph-common
Ensuite, nous devons ajouter la configuration sur le nœud ceph-admin.
Étape 3 - Configurer le nœud Ceph-admin
Dans cette étape, nous allons configurer le cluster afin que nous puissions nous connecter de l'administrateur au nœud client2 avec la clé ssh (sans le mot de passe).
Connectez-vous au nœud ceph-admin en tant que root, puis connectez-vous au cephuser avec su.
ssh [email protected]
su - cephuser
Modifiez le fichier de configuration ssh et définissez une nouvelle section de configuration client2.
vim ~/.ssh/config
A la fin du fichier, collez la configuration ci-dessous :
Host client2
Hostname client2
User cephuser
Ensuite, ajoutez la ligne de configuration de l'hôte pour le nœud client au fichier "/etc/hosts" sur le nœud ceph-admin.
sudo vim /etc/hosts
Collez la configuration de l'hôte ci-dessous à la fin du fichier.
10.0.15.16 client2
Enregistrez le fichier hosts et quittez l'éditeur.
Ajoutez maintenant la clé ssh du nœud ceph-admin au nœud client2.
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD
La clé ceph-admin a été ajoutée. Nous pouvons maintenant accéder au nœud client2 sans le mot de passe du nœud ceph-admin.
ssh client2
Étape 4 - Créer le serveur de métadonnées Ceph
Si vous souhaitez exécuter et monter CephFS, vous avez besoin d'un serveur de métadonnées ceph (Ceph MDS). Ceph MDS s'exécute sur les nœuds OSD. Nous pouvons installer Ceph MDS sur le nœud OSD avec la commande ceph-deploy à partir du nœud ceph-admin.
Connectez-vous au nœud ceph-admin et devenez cephuser.
ssh [email protected]
su - cephuser
Accédez au répertoire du cluster et exécutez la commande ceph-deploy pour créer un nouveau serveur de métadonnées ceph (Ceph MDS). J'utiliserai le nœud 'osd1' comme serveur de métadonnées.
cd cluster/
ceph-deploy mds create osd1
Après avoir créé le serveur MDS sur le nœud osd1, nous devons nous connecter au nœud avec ssh.
ssh osd1
Ensuite, créez de nouveaux pools pour le serveur MDS, au moins nous avons besoin de 2 pools - cephfs_data et cephfs_metadata.
Créez de nouveaux pools sur le nœud 'osd1'.
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
Les nouvelles piscines sont prêtes. Nous pouvons maintenant créer le nouveau système de fichiers en utilisant les pools nommés :cephfs_data et cephfs_metadata.
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs =nom du système de fichiers.
Lorsque vous avez terminé cette étape sans erreur, vérifiez le serveur MDS avec la commande ci-dessous.
Consultez la liste des serveurs MDS :
ceph fs ls
Vous pouvez maintenant voir que le nom du système de fichiers est 'cephfs', le pool de métadonnées est 'cephfs_metadata' et le pool de données est 'cephfs_data'.
Afficher le statut MDS :
ceph mds stat
Assurez-vous que le MDS est en place et actif avant de continuer.
Étape 5 - Monter CephFS avec le pilote du noyau
Le serveur Ceph MDS a été créé sur le nœud 'osd1'. Nous pouvons maintenant utiliser CephFS. Dans cette étape, nous allons monter CephFS sur le nœud client2 en tant que système de fichiers avec la commande mount.
Avant de passer à l'étape suivante, nous devons installer ceph-fuse à partir du référentiel ceph sur le nœud client2.
sudo yum -y install ceph-fuse
Une fois l'installation terminée, copiez la clé de l'utilisateur. Dans notre configuration par défaut, l'authentification cephx est activée. L'utilisateur par défaut est 'admin'.
Copiez la clé du nœud de serveur MDS 'osd1' vers le nœud client2 avec la commande scp, puis modifiez l'autorisation de la clé.
ssh [email protected] 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key
Ensuite, créez un nouveau répertoire cephfs et montez le CephFS dans ce répertoire.
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
Remarque :
Nom d'utilisateur par défaut =admin
secretfile =ceph.key du nœud MDS osd1
Vous verrez un nouveau système de fichiers de type 'ceph' monté dans la liste.
sudo df -hT
Pour démonter le système de fichiers, utilisez l'utilitaire de commande umount.
umount /mnt/cephfs
Étape 6 - Monter CephFS comme fusible
Après avoir monté avec succès CephFS en tant que système de fichiers, nous monterons CephFS en tant que Fuse (système de fichiers dans USErspace). Pour cette configuration, nous devons copier le fichier de configuration 'ceph.conf' et la clé du nœud de surveillance 'mon1'.
Créez un nouveau répertoire ceph sur le nœud client2 et copiez le fichier de configuration et la clé.
sudo mkdir -p /etc/ceph/
sudo scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
Modifiez les autorisations des fichiers.
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Ensuite, créez un nouveau répertoire fuse et montez CephFS en tant que Fuse dans le répertoire '/mnt/fuse'.
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse
Assurez-vous qu'il n'y a pas d'erreur et vérifiez que le CephFS est monté.
sudo df -hT
Pour démonter le fusible CephFS, utilisez la commande kill.
sudo ps -aux | grep ceph-fuse
kill -2 PID
Étape 7 - Monter CephFS à l'aide de fstab
Dans cette étape, nous monterons définitivement CephFS avec fstab. Nous allons modifier /etc/fstab et ajouter la configuration pour monter CephFS avec le pilote du noyau, en utilisant la commande mount.
Modifiez le fichier fstab.
sudo vim /etc/fstab
Collez la configuration ci-dessous à la fin du fichier :
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
Enregistrez le fichier et quittez vim.
Montez tous les disques à partir du fstab avec la commande mount -a, puis répertoriez tous les disques disponibles.
sudo mount -a
sudo df -hT
Enfin, redémarrez le système et vérifiez les disques disponibles pour vous assurer que la configuration est sécurisée pour le redémarrage.
reboot
sudo df -hT
Vous verrez que CephFS a été monté automatiquement avec fstab.