GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Ceph est l'une des technologies de stockage open source les plus excitantes de ces dernières années. Évolutif jusqu'à des exaoctets et extensible à plusieurs centres de données, les développeurs de Ceph ont facilité le déploiement de leur logiciel pour les administrateurs système et les architectes d'infrastructure. Cet article propose un guide étape par étape sur la création d'un cluster de stockage Ceph de base. Cela a été testé sur Ubuntu 16.04. Notez que sauf indication contraire, toutes les commandes sont exécutées en tant que root. Notez également que lorsque ce document mentionne "tous les nœuds Ceph", cela inclut également le nœud Admin.

Configuration générale

Dans notre exemple, nous allons créer un cluster Ceph de base à trois nœuds, chacun avec deux OSD. Nous utiliserons la convention de nom d'hôte "Storage-x ", où "x" est un nombre compris entre 1 et 3, utilisé pour faire référence à des nœuds spécifiques. Nous utiliserons un ordinateur externe (il peut s'agir de votre propre ordinateur ou ordinateur portable) comme nœud d'administration ceph.

Configuration du réseau

Chaque nœud sera sur le même réseau privé, avec une passerelle à travers laquelle l'Internet peut être accessible.
Le nœud Admin doit également être sur le même réseau, mais n'a pas besoin d'être disponible sur le réseau tout le temps. Par conséquent, votre ordinateur de travail peut être le nœud Admin et peut utiliser un VPN pour se connecter au réseau des nœuds Ceph.

Ceph utilise les ports TCP 6789 pour les nœuds Ceph Monitor et les ports 6800-7100 pour les OSD Ceph vers la zone publique. Par exemple sur iptables :

sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6789 -j ACCEPT

Préparer les nœuds

Chaque nœud de stockage doit être synchronisé, nous allons donc y installer ntp et nous assurer que nous pouvons y accéder via SSH via le réseau.

sudo apt install ntp ssh

Assurez-vous que le nom d'hôte de chaque nœud Ceph peut être résolu à partir de tous les nœuds Ceph. Sur chaque nœud Ceph, modifiez le fichier /etc/hosts et ajoutez ce qui suit :

[Admin Node IP Address] admin-node
[Storage-1 IP Address] Storage-1
[Storage-2 IP Address] Storage-2
[Storage-3 IP Address] Storage-3

Remplacez l'adresse IP de chaque nœud en conséquence.
Pour tester si la résolution fonctionne, procédez comme suit :

ping admin-node
ping Storage-1
ping Storage-2
ping Storage-3

Assurez-vous que le admin-node le nom d'hôte correspond à l'adresse IP du réseau externe du nœud d'administration, et non à l'adresse IP de bouclage (127.0.0.1).

Sur chaque nœud Ceph (c'est-à-dire le nœud Admin et tous les nœuds de stockage), nous ajouterons le référentiel de packages Ceph Ubuntu à apt, puis mettrons à jour le cache local avec le contenu du nouveau référentiel :

wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
echo deb http://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list
apt-get update

Créer un cephadmin utilisateur sur tous les nœuds Ceph. Cet utilisateur sera utilisé pour installer et administrer Ceph sur l'ensemble du cluster de nœuds, alors assurez-vous de maximiser la sécurité des informations d'identification de cet utilisateur.

ssh-keygen -t rsa
useradd cephadmin

Configurer SSH sans mot de passe

Les scripts et outils d'installation de Ceph à partir du nœud Admin devront pouvoir accéder à tous les membres du cluster sans mot de passe.
Sur le nœud admin, basculez vers cephadmin utilisateur et créez une clé SSH :

Copiez la clé ssh que vous avez générée sur les trois nœuds de stockage :

ssh-copy-id Storage-1
ssh-copy-id Storage-2
ssh-copy-id Storage-3

En tant qu'utilisateur cephadmin sur votre nœud d'administration, testez si le ssh sans mot de passe dans les nœuds de stockage fonctionne désormais correctement :

ssh Storage-1
ssh Storage-2
ssh Storage-3

Configurer Sudo sans mot de passe

Maintenant que l'accès sans mot de passe via SSH est configuré, configurez sudo sans mot de passe pour l'utilisateur cephadmin sur tous les nœuds Ceph :

visudo

Vous devriez voir ce qui suit :

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Ajoutez la ligne suivante en bas :

cephadmin ALL=(ALL) NOPASSWD: ALL

Cela devrait maintenant autoriser sudo sans mot de passe pour le cephadmin utilisateur sur tous les nœuds Ceph.

Installer ceph-deploy

Ceph-deploy est un outil créé par les développeurs Ceph pour faciliter les déploiements rapides de clusters Ceph en scénarisant les étapes individuelles nécessaires au déploiement d'un nœud. Nous en profiterons en installant l'outil sur notre nœud d'administration.

apt install ceph-deploy

Sur le nœud Admin, basculez vers cephadmin utilisateur que nous avons créé dans la partie 1 du didacticiel, passez au répertoire personnel et créez un sous-répertoire qui sera utilisé pour contenir tous les fichiers nécessaires au déploiement et à la gestion de notre cluster Ceph :

su cephadmin
cd
mkdir my-first-ceph-cluster
cd my-first-ceph-cluster

À ce stade, toutes les commandes de déploiement à exécuter doivent être effectuées uniquement depuis /home/cephadmin/my-first-ceph-cluster . Les commandes d'administration doivent également être effectuées à partir du même répertoire.

Configuration Ceph

Attribuez tous les nœuds de stockage en tant que nœuds de surveillance :

ceph-deploy new Storage-1 Storage-2 Storage-3

Dans votre répertoire de travail, vous devriez maintenant voir que les fichiers ont été générés par ceph-deploy, y compris les fichiers de trousseau de clés et le fichier de configuration Ceph.

Ajoutez la ligne suivante au ceph.conf fichier :

osd pool default size = 2

Étant donné que nous n'avons que deux OSD par nœud de stockage dans notre cluster, cela permettra à Ceph de se contenter d'avoir une seule copie supplémentaire de toutes les données que nous y stockons.
Ajoutez la ligne suivante à ceph.conf aussi :

public network = {ip-address}/{netmask}

Où vous remplacerez la partie réseau par les valeurs réelles. Par exemple, si vos nœuds de stockage se trouvent sur le réseau 192.168.1.0/24, cela devrait être la valeur. Ne vous méprenez pas lorsqu'il est question de "réseau public" ; il se réfère uniquement à un réseau externe au cluster Ceph. Les réseaux de réplication internes ne sont pas couverts par ce didacticiel.

Déployer Ceph

Le logiciel et les fichiers de configuration vont maintenant être installés et copiés sur les nœuds Ceph.

ceph-deploy install admin-node Storage-1 Storage-2 Storage-3

Cela installera tous les packages Ceph de base sur les nœuds.

Installez et configurez le logiciel Ceph Monitor sur les nœuds de stockage :

ceph-deploy mon create-initial

OSD Ceph

Bien qu'il soit possible d'utiliser des répertoires comme OSD, cela n'est pas recommandé dans une configuration de production. En supposant que les OSD Ceph à utiliser sur chacun des nœuds de stockage sont /dev/sda et /dev/sdb , nous demandons à Ceph de préparer les disques à utiliser.

AVERTISSEMENT : La commande suivante détruira les données existantes sur les OSD spécifiés, il faut donc veiller à ce qu'il n'y ait pas d'erreurs lors de l'exécution de la commande.

ceph-deploy osd prepare Storage-1:/dev/sda
ceph-deploy osd prepare Storage-1:/dev/sdb
ceph-deploy osd prepare Storage-2:/dev/sda
ceph-deploy osd prepare Storage-2:/dev/sdb
ceph-deploy osd prepare Storage-3:/dev/sda
ceph-deploy osd prepare Storage-3:/dev/sdb

Si les commandes précédentes s'exécutent sans erreur, les OSD sont prêts et nous pouvons maintenant les activer en tant que ressource en cours d'exécution dans le cluster :

ceph-deploy osd activate Storage-1:/dev/sda
ceph-deploy osd activate Storage-1:/dev/sdb
ceph-deploy osd activate Storage-2:/dev/sda
ceph-deploy osd activate Storage-2:/dev/sdb
ceph-deploy osd activate Storage-3:/dev/sda
ceph-deploy osd activate Storage-3:/dev/sdb

Finalisation

Copiez les trousseaux de clés d'administration sur chaque nœud Ceph afin que l'administration de Ceph sur chaque nœud soit possible :

ceph-deploy admin admin-node Storage-1 Storage-2 Storage-3

Vérifiez l'état de tous les OSD sur tous les nœuds de stockage :

ceph osd tree

Vérifiez l'état général de votre cluster Ceph :

ceph health

Si vous obtenez un

HEALTH_OK

cela signifie que le cluster fonctionne correctement.

Si vous souhaitez voir plus de statistiques de cluster, la commande suivante devrait suffire :

ceph status

Conclusion

Nous avons maintenant un cluster Ceph à trois nœuds opérationnel. Avec cette configuration, le cluster peut perdre un nœud, ne subir aucune perte de données et continuer à traiter les demandes. Des services de surveillance hautement disponibles sont également disponibles sur chaque nœud de stockage. Il s'agit d'une configuration très basique au niveau de la production. Si vous souhaitez en savoir plus, rendez-vous sur la documentation officielle de Ceph pour plus d'informations.


Ubuntu
  1. Comment créer Ubuntu Live USB sous Windows

  2. Comment installer Node.js et NPM sur Ubuntu 18.04 et 20.04

  3. Comment créer un utilisateur Sudo sur Ubuntu

  4. Comment installer un cluster MySQL sur Ubuntu 16.04

  5. Comment installer Node.js sur Ubuntu 16.04

Comment installer Node.js sur Ubuntu 14.04

Comment installer Node.js sur Ubuntu 16.04

Comment installer Node.js sur Ubuntu 18.04 LTS

Comment installer Node.js sur Ubuntu 19.04

Comment installer Node.js sur Ubuntu 20.04 LTS

Comment installer Node.js sur Ubuntu 14.04