Céph est un stockage distribué gratuit et open source solution grâce à laquelle nous pouvons facilement fournir et gérer le stockage de blocs, le stockage d'objets et le stockage de fichiers. La solution de stockage Ceph peut être utilisée dans l'infrastructure informatique traditionnelle pour fournir le stockage centralisé, en dehors de cela, elle est également utilisée dans le cloud privé (OpenStack &Cloudstack ). Dans Red Hat OpenStack, Ceph est utilisé comme backend cinder.
Dans cet article, nous allons montrer comment installer et configurer Ceph Cluster (Mimic) sur les serveurs CentOS 7.
Dans Ceph Cluster, voici les principaux composants :
- Moniteurs (ceph-mon) :Comme son nom l'indique, les nœuds du moniteur ceph gardent un œil sur l'état du cluster, la carte OSD et la carte Crush
- OSD ( Ceph-osd) :Ce sont les nœuds qui font partie du cluster et fournissent des fonctionnalités de stockage de données, de réplication de données et de récupération. L'OSD fournit également des informations pour surveiller les nœuds.
- MDS (Ceph-mds) :Il s'agit d'un serveur de métadonnées ceph qui stocke les métadonnées des systèmes de fichiers ceph comme le stockage de blocs.
- Nœud de déploiement Ceph :Il est utilisé pour déployer le cluster Ceph, il est également appelé nœud Ceph-admin ou Ceph-utility.
Détails de configuration de My Lab :
- Nœud de déploiement Ceph :(CentOS 7 minimal, RAM :4 Go, vCPU :2, IP :192.168.1.30, nom d'hôte :ceph-controller)
- OSD ou Ceph Compute 1 :(CentOS 7 minimal, RAM :10 Go, vCPU :4, IP :192.168.1.31, nom d'hôte :ceph-compute01)
- OSD ou Ceph Compute 2 :(CentOS 7 minimal, RAM :10 Go, vCPU :4, IP :192.168.1.32, nom d'hôte :ceph-compute02)
- Moniteur Ceph :(CentOS 7 minimal, RAM :10 Go, vCPU :4, IP :192.168.1.33, nom d'hôte :ceph-monitor)
Remarque : Dans tous les nœuds, nous avons attaché deux cartes réseau (eth0 et eth1), sur eth0 IP du VLAN 192.168.1.0/24 est attribué . Sur eth1, l'IP du VLAN 192.168.122.0/24 est attribuée et fournira l'accès à Internet.
Passons aux étapes d'installation et de configuration :
Étape :1) Mettez à jour le fichier /etc/hosts, NTP, créez un utilisateur et désactivez SELinux sur tous les nœuds
Ajoutez les lignes suivantes dans le fichier /etc/hosts de tous les nœuds afin que l'on puisse également accéder à ces nœuds via leur nom d'hôte.
192.168.1.30 ceph-controller 192.168.1.31 ceph-compute01 192.168.1.32 ceph-compute02 192.168.1.33 ceph-monitor
Configurez tous les nœuds Ceph avec le serveur NTP afin que tous les nœuds aient la même heure et qu'il n'y ait pas de dérive dans le temps,
~]# yum install ntp ntpdate ntp-doc -y ~]# ntpdate europe.pool.ntp.org ~]# systemctl start ntpd ~]# systemctl enable ntpd
Créez un utilisateur avec le nom "cephadm ” sur tous les nœuds et nous utiliserons cet utilisateur pour le déploiement et la configuration de ceph
~]# useradd cephadm && echo "[email protected]#" | passwd --stdin cephadm
Attribuez maintenant les droits d'administrateur à l'utilisateur cephadm via sudo, exécutez les commandes suivantes,
~]# echo "cephadm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadm ~]# chmod 0440 /etc/sudoers.d/cephadm
Désactivez SELinux sur tous les nœuds à l'aide de la commande sed ci-dessous, même le site officiel de ceph recommande de désactiver SELinux,
~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Redémarrez tous les nœuds maintenant en utilisant la commande ci-dessous,
~]# reboot
Étape : 2 Configurer l'authentification sans mot de passe de l'administrateur Ceph à tous les nœuds OSD et de surveillance
À partir du nœud Ceph-admin, nous utiliserons l'utilitaire appelé "ceph-deploy “, il se connectera à chaque nœud ceph et installera le package ceph et effectuera toutes les configurations requises. Lors de l'accès au nœud Ceph, il ne nous demandera pas d'entrer les informations d'identification des nœuds ceph, c'est pourquoi nous avons dû configurer l'authentification sans mot de passe ou basée sur des clés du nœud ceph-admin à tous les nœuds ceph.
Exécutez les commandes suivantes en tant qu'utilisateur cephadm à partir du nœud Ceph-admin (ceph-controller). Laissez la phrase de passe vide.
[[email protected] ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/cephadm/.ssh/id_rsa): Created directory '/home/cephadm/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/cephadm/.ssh/id_rsa. Your public key has been saved in /home/cephadm/.ssh/id_rsa.pub. The key fingerprint is: 93:01:16:8a:67:34:2d:04:17:20:94:ad:0a:58:4f:8a [email protected] The key's randomart image is: +--[ RSA 2048]----+ |o.=+*o+. | | o.=o+.. | |.oo++. . | |E..o. o | |o S | |. . | | | | | | | +-----------------+ [[email protected] ~]$
Copiez maintenant les clés de tous les nœuds ceph à l'aide de la commande ssh-copy-id
[[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected]
Il est recommandé d'ajouter ce qui suit dans le fichier "~/.ssh/config"
[[email protected] ~]$ vi ~/.ssh/config Host ceph-compute01 Hostname ceph-compute01 User cephadm Host ceph-compute02 Hostname ceph-compute02 User cephadm Host ceph-monitor Hostname ceph-monitor User cephadm
Enregistrez et quittez le fichier.
[email protected] ~]$ chmod 644 ~/.ssh/config [[email protected] ~]$
Remarque : Dans la commande ci-dessus, remplacez le nom d'utilisateur et le nom d'hôte qui conviennent à votre configuration.
Étape :3) Configurer les règles de pare-feu pour l'OSD et surveiller les nœuds
Si le pare-feu du système d'exploitation est activé et exécuté sur tous les nœuds ceph, nous devons configurer les règles de pare-feu ci-dessous, sinon vous pouvez ignorer cette étape.
Sur le nœud Ceph-admin, configurez les règles de pare-feu suivantes à l'aide des commandes ci-dessous,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Connectez-vous à l'OSD ou aux nœuds de calcul Ceph et configurez les règles de pare-feu à l'aide de la commande firewall-cmd,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$ [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Connectez-vous au nœud Ceph Monitor et exécutez la commande firewalld pour configurer les règles de pare-feu,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Étape :4) Installer et configurer le cluster Ceph à partir du nœud d'administration Ceph
Connectez-vous à votre nœud Ceph-admin en tant qu'utilisateur "cephadm" et activez la dernière version du référentiel Ceph yum. Au moment de la rédaction de cet article, Mimic est la dernière version de Ceph,
[[email protected] ~]$ sudo rpm -Uvh https://download.ceph.com/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Activez également le référentiel EPEL,
[[email protected] ~]$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Installez l'utilitaire Ceph-deploy à l'aide de la commande yum suivante,
[[email protected] ~]$ sudo yum update -y && sudo yum install ceph-deploy python2-pip -y
Créez un répertoire avec le nom "ceph_cluster ", ce répertoire contiendra toutes les configurations de cluster
[[email protected] ~]$ mkdir ceph_cluster [[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$
Générez maintenant la configuration du cluster en exécutant l'utilitaire ceph-deploy sur le nœud ceph-admin, nous enregistrons le nœud ceph-monitor en tant que nœud de surveillance dans le cluster ceph. L'utilitaire Ceph-deploy générera également "ceph.conf ” dans le répertoire de travail courant.
[[email protected] ceph_cluster]$ ceph-deploy new ceph-monitor
La sortie de la commande ci-dessus serait quelque chose comme ci-dessous :
Mettre à jour l'adresse réseau (réseau public) sous la directive globale dans ceph.conf fichier, ici le réseau public est le réseau sur lequel les nœuds Ceph communiqueront entre eux et le client externe utilisera également ce réseau pour accéder au stockage ceph,
[[email protected] ceph_cluster]$ vi ceph.conf [global] fsid = b1e269f0-03ea-4545-8ffd-4e0f79350900 mon_initial_members = ceph-monitor mon_host = 192.168.1.33 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx public network = 192.168.1.0/24
Enregistrez et quittez le fichier.
Maintenant, installez ceph sur tous les nœuds à partir du nœud ceph-admin, exécutez la commande "ceph-deploy install ” commande
[[email protected] ~]$ ceph-deploy install ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
La commande ci-dessus installera automatiquement ceph avec d'autres dépendances sur tous les nœuds, cela peut prendre un certain temps en fonction de la vitesse d'Internet sur les nœuds ceph.
Sortie de "ceph-deploy install ci-dessus ” la sortie de la commande serait quelque chose comme ci-dessous :
Exécutez "ceph-deploy mon create-initial ” commande du nœud ceph-admin, il déploiera les moniteurs initiaux et rassemblera les clés.
[[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$ ceph-deploy mon create-initial
Exécutez "ceph-deploy admin " pour copier le fichier de configuration du nœud ceph-admin vers tous les nœuds ceph afin que l'on puisse utiliser la commande ceph cli sans spécifier l'adresse du moniteur.
[[email protected] ceph_cluster]$ ceph-deploy admin ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
Installez le démon Manager depuis le nœud Ceph-admin sur les nœuds de calcul Ceph (OSD) à l'aide de la commande suivante
[[email protected] ceph_cluster]$ ceph-deploy mgr create ceph-compute01 ceph-compute02
Étape :5) Ajouter des disques OSD au cluster
Dans ma configuration, j'ai attaché deux disques /dev/vdb &/dev/vdc sur les deux nœuds de calcul, j'utiliserai ces quatre disques des nœuds de calcul comme disque OSD.
Vérifions si l'utilitaire ceph-deploy peut voir ces disques ou non. Exécutez la "liste de disques ceph-deploy ” commande du noeud ceph-admin,
[[email protected] ceph_cluster]$ ceph-deploy disk list ceph-compute01 ceph-compute02
Sortie de la commande ci-dessus :
Remarque : Assurez-vous que ces disques ne sont utilisés nulle part et ne contiennent aucune donnée
Pour nettoyer et supprimer les données des disques, utilisez les commandes suivantes,
[[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdc [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdc
Marquez maintenant ces disques comme OSD à l'aide des commandes suivantes
[[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute02 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute02
Étape : 6) Vérifier l'état du cluster Ceph
Vérifiez l'état de votre cluster Ceph à l'aide de "ceph health ” &“ceph -s ", exécutez ces commandes à partir du nœud de surveillance
[[email protected] ~]# ceph health HEALTH_OK [[email protected] ~]# [[email protected] ~]# ceph -s cluster: id: 4f41600b-1c5a-4628-a0fc-2d8e7c091aa7 health: HEALTH_OK services: mon: 1 daemons, quorum ceph-monitor mgr: ceph-compute01(active), standbys: ceph-compute02 osd: 4 osds: 4 up, 4 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 4.0 GiB used, 76 GiB / 80 GiB avail pgs: [[email protected] ~]#
Comme nous pouvons voir dans la sortie ci-dessus que la santé du cluster ceph est OK et que nous avons 4 OSD, tous ces OSD sont actifs et actifs, à part cela, nous pouvons voir qu'il y a 80 Go d'espace disque disponible dans notre cluster.
Ceci confirme que nous avons installé et configuré avec succès Ceph Cluster sur le système CentOS 7, si ces étapes vous aident à installer ceph dans votre environnement, veuillez partager vos commentaires et commentaires.
Dans le prochain article, nous discuterons de la façon d'attribuer le stockage de blocs du cluster Ceph aux clients et verrons comment le client peut accéder au stockage de blocs.