GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer un cluster de stockage Ceph sur Ubuntu 16.04

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 et peut fonctionner sans un seul point de défaillance.

Dans ce tutoriel, je vais vous guider pour installer et construire un cluster Ceph sur le serveur Ubuntu 16.04. Un cluster Ceph comprend ces composants :

  • OSD Ceph (ceph-osd) - Gère le stockage, la réplication et la récupération des données. Un cluster Ceph nécessite au moins deux serveurs Ceph OSD. Nous utiliserons trois serveurs Ubuntu 16.04 dans cette configuration.
  • Moniteur Ceph (ceph-mon) - Surveille l'état du cluster et exécute la carte OSD et la carte CRUSH. Nous n'utiliserons ici qu'un seul serveur.
  • Serveur de métadonnées Ceph (ceph-mds) - ceci est nécessaire si vous souhaitez utiliser Ceph comme système de fichiers.

Prérequis

  • 6 nœuds de serveur avec le serveur Ubuntu 16.04 installé
  • Privilèges root sur tous les nœuds

J'utiliserai la configuration de nom d'hôte/IP suivante :

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

Étape 1 - Configurer tous les nœuds

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

Créer l'utilisateur Ceph

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

useradd -m -s /bin/bash cephuser
passwd cephuser

Après avoir créé le nouvel utilisateur, nous devons configurer cephuser pour les privilèges sudo sans mot de passe. Cela signifie que 'cephuser' peut s'exécuter et obtenir des privilèges sudo sans avoir à entrer un mot de passe au préalable.

Exécutez les commandes ci-dessous pour y parvenir.

echo "cephuser ALL = (root) 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 la date et l'heure via NTP. Nous utiliserons les serveurs NTP du pool américain. Ensuite, démarrez et activez le serveur NTP pour qu'il s'exécute au démarrage.

sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp

Installer Open-vm-tools

Si vous exécutez tous les nœuds dans VMware, vous devez installer cet utilitaire de virtualisation.

sudo apt-get install -y open-vm-tools

Installez Python et partez

Dans ce didacticiel, nous avons besoin de packages python pour créer le cluster ceph. Installez python et python-pip.

sudo apt-get install -y python python-pip parted

Configurer le fichier Hosts

Modifiez le fichier hosts sur tous les nœuds avec l'éditeur vim.

vim /etc/hosts

Collez la configuration ci-dessous :

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21        ceph-osd1
10.0.15.22        ceph-osd2
10.0.15.23        ceph-osd3
10.0.15.15        ceph-client

Enregistrez le fichier hosts et quittez l'éditeur vim.

Vous pouvez maintenant essayer de faire un ping entre les noms d'hôte du serveur pour tester la connectivité réseau.

ping -c 5 mon1

Étape 2 - Configurer le serveur SSH

Dans cette étape, nous allons 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 accédez au '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

Laisser la phrase secrète est vide/vide.

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

vim ~/.ssh/config

Collez la configuration ci-dessous :

Host ceph-admin
        Hostname ceph-admin
        User cephuser

Host mon1
        Hostname mon1
        User cephuser

Host ceph-osd1
        Hostname ceph-osd1
        User cephuser

Host ceph-osd2
        Hostname ceph-osd2
        User cephuser

Host ceph-osd3
        Hostname ceph-osd3
        User cephuser

Host ceph-client
        Hostname ceph-client
        User cephuser

Enregistrez le fichier et quittez vim.

Modifiez l'autorisation du fichier de configuration en 644.

chmod 644 ~/.ssh/config

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

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

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

Essayez maintenant d'accéder au serveur osd1 à partir du nœud ceph-admin pour tester si la connexion sans mot de passe fonctionne.

ssh ceph-osd1

Étape 3 - Configurer le pare-feu Ubuntu

Pour des raisons de sécurité, nous devons activer le pare-feu sur les serveurs. De préférence, nous utilisons Ufw (Uncomplicated Firewall), le pare-feu Ubuntu par défaut, pour protéger le système. Dans cette étape, nous allons activer ufw sur tous les nœuds, puis ouvrir les ports nécessaires à ceph-admin, ceph-mon et ceph-osd.

Connectez-vous au nœud ceph-admin et installez les packages ufw.

ssh [email protected]
sudo apt-get install -y ufw

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

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp

Démarrez et activez ufw pour qu'il démarre au démarrage.

sudo ufw enable

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

ssh mon1
sudo apt-get install -y ufw

Ouvrez les ports du nœud de moniteur ceph et démarrez ufw.

sudo ufw allow 22/tcp
sudo ufw allow 6789/tcp
sudo ufw enable

Enfin, ouvrez ces ports sur chaque nœud osd :ceph-osd1, ceph-osd2 et ceph-osd3 - port 6800-7300.

Connectez-vous à chacun des nœuds ceph-osd à partir de ceph-admin et installez ufw.

ssh ceph-osd1
sudo apt-get install -y ufw

Ouvrez les ports sur les nœuds osd et rechargez firewalld.

sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable

La configuration du pare-feu ufw est terminée.

Étape 4 - Configurer les nœuds Ceph OSD

Dans ce tutoriel, nous avons 3 nœuds OSD, chacun de ces nœuds a deux partitions de disque dur.

  1. /dev/sda pour la partition racine
  2. /dev/sdb est une partition vide - 20 Go

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 système de fichiers.

ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3

Vérifiez le schéma de partition avec la commande fdisk.

sudo fdisk -l /dev/sdb

Formatez la partition /dev/sdb avec un 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%

Ensuite, formatez la partition au format XFS avec la commande mkfs.

sudo mkfs.xfs -f /dev/sdb

Vérifiez maintenant la partition et vous verrez une partition XFS /dev/sdb.

sudo fdisk -s /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 de ceph-admin. Pour commencer, connectez-vous au nœud ceph-admin.

ssh [email protected]
su - cephuser

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

Dans la première étape, nous avons déjà installé python et python-pip sur le système. Nous devons maintenant installer l'outil de déploiement Ceph 'ceph-deploy ' du référentiel pypi python.

Installez ceph-deploy sur le nœud ceph-admin avec la commande pip.

sudo pip install ceph-deploy

Remarque :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 un nouveau cluster

Créez un nouveau répertoire de cluster.

mkdir cluster
cd cluster/

Ensuite, créez un nouveau cluster avec le 'ceph-deploy ' en définissant le nœud de moniteur '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.

# Your network address
public network = 10.0.15.0/24
osd pool default size = 2

Enregistrez le fichier et quittez l'éditeur.

Installer Ceph sur tous les nœuds

Installez maintenant Ceph sur tous les nœuds à partir du nœud ceph-admin avec une seule commande.

ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1

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 nœud de surveillance sur le nœud mon1.

ceph-deploy mon create-initial

La commande créera une clé de moniteur, vérifiez la clé avec cette commande ceph.

ceph-deploy gatherkeys mon1

Ajout d'OSDS au cluster

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

Vérifiez le disque disponible /dev/sdb sur tous les nœuds osd.

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

Vous verrez /dev/sdb avec le format XFS que nous avons créé auparavant.

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

ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-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 OSD et assurez-vous qu'il n'y a pas d'erreurs dans les résultats.

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

Lorsque vous voyez que ceph-osd1-3 est prêt pour l'utilisation de l'OSD dans le résultat, la commande a réussi.

Activez les OSD avec la commande ci-dessous :

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

Vous pouvez maintenant vérifier à nouveau le disque sdb sur les nœuds OSDS.

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-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 le vérifiez directement sur le nœud OSD.

ssh ceph-osd1
sudo fdisk -l /dev/sdb

Ensuite, déployez la clé de gestion sur tous les nœuds associés.

ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-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 Ubuntu 16.04 a été créé.

Étape 6 - Tester Ceph

À l'étape 4, nous avons installé et créé un nouveau cluster Ceph et ajouté des nœuds OSDS au cluster. Nous devons maintenant tester le cluster pour nous assurer qu'il fonctionne comme prévu.

À 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 health

Vérifiez maintenant l'état du cluster.

sudo ceph -s

Vous pouvez 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 y a 3 OSD serveurs et tous sont activés et en cours d'exécution, et l'espace disque disponible doit être de 45 Go - 3 partitions OSD Ceph Data de 15 Go.

Nous construisons avec succès un nouveau cluster Ceph sur Ubuntu 16.04.


Ubuntu
  1. Comment installer Odoo sur Ubuntu

  2. Comment installer MariaDB Galera Cluster sur Ubuntu 16.04

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

  4. Comment installer R sur Ubuntu 16.04

  5. Comment installer Go sur Ubuntu 18.04

Comment installer R sur Ubuntu 18.04

Comment installer un cluster MySQL sur Ubuntu 16.04

Comment installer qt sur Ubuntu 20.04

Comment installer le stockage d'objets minio S3 sur Ubuntu 21.04

Comment installer Go dans Ubuntu 20.04

Comment installer Go sur Ubuntu 22.04