GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment créer un cluster de stockage distribué Ceph sur CentOS 7

Ceph est une plate-forme de stockage open source largement utilisée. Il offre des performances, une fiabilité et une évolutivité élevées. Le système de stockage distribué gratuit Ceph fournit une interface pour le stockage au niveau des objets, des blocs et des fichiers. Ceph est conçu pour fournir un système de stockage distribué sans point de défaillance unique.

Dans ce tutoriel, je vais vous guider pour installer et créer un cluster Ceph sur CentOS 7. Un cluster Ceph nécessite ces composants Ceph :

  • OSD Ceph (ceph-osd) - Gère le magasin de données, la réplication et la récupération des données. Un cluster Ceph nécessite au moins deux serveurs Ceph OSD. J'utiliserai ici trois serveurs OSD CentOS 7.
  • Moniteur Ceph (ceph-mon) - Surveille l'état du cluster, la carte OSD et la carte CRUSH. J'utiliserai un seul serveur.
  • Serveur de métadonnées Ceph (ceph-mds) - Ceci est nécessaire pour utiliser Ceph comme système de fichiers.

Prérequis

  • 6 nœuds de serveur, tous avec CentOS 7 installé.
  • Privilèges root sur tous les nœuds.

Les serveurs de ce didacticiel utiliseront les noms d'hôte et les adresses IP suivants.

nom d'hôte Adresse IP

CEPH-ADMIN 10.0.15.10
MON1 10.0.15.11
OSD1 10.0.15.21
OSD2 10.0.15.22
OSD3 10.0.15.23
client                 10.0.15.15

Tous les nœuds OSD ont besoin de deux partitions, une partition racine (/) et une partition vide qui sera utilisée ultérieurement comme stockage de données Ceph.

Étape 1 - Configurer tous les nœuds

Dans cette étape, nous allons configurer les 6 nœuds pour les préparer à l'installation du cluster Ceph. Vous devez suivre et exécuter toutes les commandes ci-dessous sur tous les nœuds. Et assurez-vous que ssh-server est installé sur tous les nœuds.

Créer un utilisateur Ceph

Créez un nouvel utilisateur nommé 'cephuser ' sur tous les nœuds.

useradd -d /home/cephuser -m cephuser
passwd cephuser

Après avoir créé le nouvel utilisateur, nous devons configurer sudo pour 'cephuser'. Il doit être capable d'exécuter des commandes en tant que root et d'obtenir des privilèges root sans mot de passe.

Exécutez la commande ci-dessous pour créer un fichier sudoers pour l'utilisateur et modifiez le fichier /etc/sudoers avec sed.

echo "cephuser ALL =(racine) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

Installer et configurer NTP

Installez NTP pour synchroniser la date et l'heure sur tous les nœuds. Exécutez la commande ntpdate pour définir une date et une heure via le protocole NTP, nous utiliserons le serveur us pool NTP. Ensuite, démarrez et activez le serveur NTP pour qu'il s'exécute au démarrage.

yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd .service

Installer Open-vm-tools

Si vous exécutez tous les nœuds à l'intérieur de VMware, vous devez installer cet utilitaire de virtualisation. Sinon, ignorez cette étape.

yum install -y open-vm-tools

Désactiver SELinux

Désactivez SELinux sur tous les nœuds en modifiant le fichier de configuration SELinux avec l'éditeur de flux sed.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Configurer le fichier des hôtes

Modifiez le fichier /etc/hosts sur tous les nœuds avec l'éditeur vim et ajoutez des lignes avec l'adresse IP et les noms d'hôte de tous les nœuds du cluster.

vim /etc/hosts

Collez la configuration 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<1    client
       osd3 <1    client
       /pré>

Enregistrez le fichier et quittez vim.

Vous pouvez maintenant essayer de faire un ping entre les serveurs avec leur nom d'hôte pour tester la connectivité réseau. Exemple :

ping -c 5 mon1

Étape 2 - Configurer le serveur SSH

Dans cette étape, je vais configurer le nœud ceph-admin . Le nœud admin est utilisé pour configurer le nœud moniteur et les nœuds osd. Connectez-vous au nœud ceph-admin et devenez le 'cephuser '.

ssh [email protected]
su - cephuser

Le nœud admin est utilisé pour installer et configurer tous les nœuds du cluster, de sorte que l'utilisateur sur le nœud ceph-admin doit avoir des privilèges pour se connecter à tous les nœuds sans mot de passe. Nous devons configurer l'accès SSH sans mot de passe pour 'cephuser' sur le nœud 'ceph-admin'.

Générer les clés ssh pour 'cephuser '.

ssh-keygen

laissez la phrase de passe vide/vide.

Ensuite, créez le fichier de configuration pour la configuration ssh.

vim ~/.ssh/config

Collez la configuration ci-dessous :

Hôte ceph-admin
        Nom d'hôte ceph-admin
        Utilisateur cephuser

Hôte mon1
        Nom d'hôte mon1
        Utilisateur cephuser

Hôte osd1
        Nom d'hôte osd1
        Utilisateur cephuser

Hôte osd2
        Nom d'hôte osd2
        Utilisateur cephuser

Hôte osd3
        Nom d'hôte osd3
        Utilisateur cephuser

Client hôte
        Nom d'hôte client
        Utilisateur cephuser

Enregistrez le fichier.

Modifiez l'autorisation du fichier de configuration.

chmod 644 ~/.ssh/config

Ajoutez maintenant la clé SSH à tous les nœuds avec la commande ssh-copy-id.

ssh-keyscan osd1 osd2 osd3 client mon1>> ~/.ssh/known_hosts
ssh-copy-id osd1
ssh-copy-id osd2
ssh-copy-id osd3
ssh-copy-id mon1
client ssh-copy-id

Tapez votre mot de passe 'cephuser' lorsque vous y êtes invité.

Lorsque vous avez terminé, essayez d'accéder au serveur osd1 à partir du nœud ceph-admin.

ssh osd1

Étape 3 - Configurer Firewalld

Nous utiliserons Firewalld pour protéger le système. Dans cette étape, nous allons activer Firewald sur tous les nœuds, puis ouvrir les ports requis par ceph-admon, ceph-mon et ceph-osd.

Connectez-vous au nœud ceph-admin et démarrez firewalld.

ssh [email protected]
systemctl start firewalld
systemctl enable firewalld

Ouvrez le port 80, 2003 et 4505-4506, puis rechargez le pare-feu.

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
sudo firewall-cmd --reload

À partir du nœud ceph-admin, connectez-vous au nœud de surveillance 'mon1' et démarrez firewalld.

ssh mon1
sudo systemctl start firewalld
sudo systemctl enable firewalld

Ouvrez un nouveau port sur le nœud de moniteur Ceph et rechargez le pare-feu.

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
sudo firewall-cmd --reload

Enfin, ouvrez le port 6800-7300 sur chacun des nœuds osd :osd1, osd2 et os3.

Connectez-vous à chaque nœud osd à partir du nœud ceph-admin.

ssh osd1
sudo systemctl start firewalld
sudo systemctl enable firewalld

Ouvrez les ports et rechargez le pare-feu.

sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reload

La configuration du pare-feu est terminée.

Étape 4 - Configurer les nœuds Ceph OSD

Dans ce tutoriel, nous avons 3 nœuds OSD et chaque nœud a deux partitions.

  1. /dev/sda pour la partition racine.
  2. /dev/sdb est une partition vide - 30 Go dans mon cas.

Nous utiliserons /dev/sdb pour le disque Ceph. À partir du nœud ceph-admin, connectez-vous à tous les nœuds OSD et formatez la partition /dev/sdb avec XFS .

ssh osd1
ssh osd2
ssh osd3

Vérifiez la partition avec la commande fdisk.

sudo fdisk -l /dev/sdb

Formatez la partition /dev/sdb avec le système de fichiers XFS et avec une table de partition GPT en utilisant la commande parted.

sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
sudo mkfs.xfs /dev/sdb -f

Vérifiez maintenant la partition et vous obtiendrez la partition xfs /dev/sdb.

sudo blkid -o value -s TYPE /dev/sdb

Étape 5 - Créer le cluster Ceph

Dans cette étape, nous allons installer Ceph sur tous les nœuds à partir du nœud ceph-admin.

Connectez-vous au nœud ceph-admin.

ssh [email protected]
su - cephuser

Installer ceph-deploy sur le nœud ceph-admin

Ajoutez le référentiel Ceph et installez l'outil de déploiement Ceph 'ceph-deploy ' avec la commande yum.

sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum update -y &&sudo yum installer ceph-deploy -y

Assurez-vous que tous les nœuds sont mis à jour.

Une fois l'outil ceph-deploy installé, créez un nouveau répertoire pour la configuration du cluster ceph.

Créer une nouvelle configuration de cluster

Créez le nouveau répertoire de cluster.

cluster mkdir
cluster cd/

Ensuite, créez une nouvelle configuration de cluster avec le 'ceph-deploy ', définissez le nœud de moniteur comme étant 'mon1 '.

ceph-deploy new mon1

La commande générera le fichier de configuration du cluster Ceph 'ceph.conf' dans le répertoire du cluster.

Modifiez le fichier ceph.conf avec vim.

vim ceph.conf

Sous le bloc [global], collez la configuration ci-dessous.

# Votre adresse réseau
réseau public =10.0.15.0/24
taille par défaut du pool osd =2

Enregistrez le fichier et quittez vim.

Installer Ceph sur tous les nœuds

Installez maintenant Ceph sur tous les autres nœuds à partir du nœud ceph-admin. Cela peut être fait avec une seule commande.

ceph-deploy install ceph-admin mon1 osd1 osd2 osd3

La commande installera automatiquement Ceph sur tous les nœuds :mon1, osd1-3 et ceph-admin - L'installation prendra un certain temps.

Déployez maintenant le ceph-mon sur le nœud mon1.

ceph-deploy mon create-initial

La commande créera la clé du moniteur, vérifiera et obtiendra les clés avec la commande 'ceph'.

ceph-deploy rassemble les clés mon1

Ajout d'OSDS au cluster

Lorsque Ceph a été installé sur tous les nœuds, nous pouvons ajouter les démons OSD au cluster. Les démons OSD créeront leur partition de données et de journal sur le disque /dev/sdb.

Vérifiez que la partition /dev/sdb est disponible sur tous les nœuds OSD.

liste de disques ceph-deploy osd1 osd2 osd3

Vous verrez le disque /dev/sdb au format XFS.

Ensuite, supprimez les tables de partition /dev/sdb sur tous les nœuds avec l'option zap.

ceph-deploy disk zap osd1 :/dev/sdb osd2 :/dev/sdb osd3 :/dev/sdb

La commande supprimera toutes les données sur /dev/sdb sur les nœuds Ceph OSD.

Préparez maintenant tous les nœuds OSDS. Assurez-vous qu'il n'y a pas d'erreurs dans les résultats.

ceph-deploy osd prepare osd1 :/dev/sdb osd2 :/dev/sdb osd3 :/dev/sdb

Si vous voyez que l'osd1-3 est prêt pour l'utilisation de l'OSD, le déploiement a réussi.

Activez les OSD avec la commande ci-dessous :

ceph-deploy osd activate osd1 :/dev/sdb1 osd2 :/dev/sdb1 osd3 :/dev/sdb1

Vérifiez la sortie pour les erreurs avant de continuer. Vous pouvez maintenant vérifier le disque sdb sur les nœuds OSD avec la commande list.

liste de disques ceph-deploy osd1 osd2 osd3

Le résultat est que /dev/sdb a maintenant deux partitions :

  1. /dev/sdb1 - Données Ceph
  2. /dev/sdb2 - Ceph Journal

Ou vous pouvez vérifier cela directement sur le nœud OSD avec fdisk.

ssh osd1
sudo fdisk -l /dev/sdb

Déployez ensuite la clé de gestion sur tous les nœuds associés.

ceph-deploy admin ceph-admin mon1 osd1 osd2 osd3

Modifiez l'autorisation du fichier de clé en exécutant la commande ci-dessous sur tous les nœuds.

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Le cluster Ceph sur CentOS 7 a été créé.

Étape 6 - Test de la configuration de Ceph

À l'étape 4, nous avons installé et créé notre nouveau cluster Ceph, puis nous avons ajouté des nœuds OSDS au cluster. Nous pouvons maintenant tester le cluster et nous assurer qu'il n'y a pas d'erreurs dans la configuration du cluster.

À partir du nœud ceph-admin, connectez-vous au serveur de surveillance ceph 'mon1 '.

ssh mon1

Exécutez la commande ci-dessous pour vérifier l'état du cluster.

sudo ceph santé

Vérifiez maintenant l'état du cluster.

sudo ceph -s

Et vous devriez voir les résultats ci-dessous :

Assurez-vous que la santé de Ceph est OK et il y a un nœud de moniteur 'mon1 ' avec l'adresse IP '10.0.15.11 '. Il devrait y avoir 3 OSD serveurs et tout devrait être actif et en cours d'exécution, et il devrait y avoir un disque disponible d'environ 75 Go - 3 partitions de données Ceph de 25 Go.

Félicitations, vous avez réussi à créer un nouveau cluster Ceph.

Dans la prochaine partie du didacticiel Ceph, je vais vous montrer comment utiliser Ceph en tant que périphérique bloc ou le monter en tant que système de fichiers.


Cent OS
  1. Stockage répliqué distribué sur quatre nœuds de stockage avec GlusterFS sur CentOS 5.4

  2. Stockage distribué sur quatre nœuds de stockage avec GlusterFS sur CentOS 5.4

  3. Stockage distribué sur quatre nœuds de stockage avec GlusterFS 3.2.x sur CentOS 6.3

  4. Stockage répliqué distribué sur quatre nœuds de stockage avec GlusterFS 3.2.x sur CentOS 6.3

  5. Comment créer un cluster de stockage Ceph sur Ubuntu 16.04

Comment installer un cluster partagé MongoDB sur CentOS 7

Comment installer un cluster Kubernetes Docker sur CentOS 7

Comment construire un serveur Minecraft sur votre CentOS 7

Comment configurer un cluster haute disponibilité sur CentOS 7 / RHEL 7

Comment configurer un cluster Redis dans CentOS 8 - Partie 3

Comment installer le cluster Kubernetes sur CentOS 8