MODOP – Installation d’un Cluster CEPH – Partie 1 – 6 noeuds (ceph-deploy)

Ceph est construit pour fournir un système de stockage distribué sans point de défaillance unique. Il offre des performances, une fiabilité et une évolutivité élevées. Il est scalable et permet d’étendre le stockage à souhait. Il fournit une interface pour le stockage au niveau des objets, des blocs et des fichiers.

Le cluster CEPH est composé de la façon Suivante

  • node01-ceph-admin
  • node02-ceph-mon1
  • node03-ceph-osd1
  • node04-ceph-osd2
  • node05-ceph-osd3
  • node06-ceph-osd4

Le Pool du Cluster sur Proxmox

I. Les spécifications des machines

1°) Administration et Moniteur

node01-Ceph-admin
IP : 172.16.186.40
Disque 1 – Système 10Go
RAM 2G
2vCPU

node02-Ceph-mon1
IP : 172.16.186.41
Disque – 1 Système 10Go
RAM 2G
2vCPU

2°) Partie OSD Disque CEPH

node03-Ceph-osd1
IP : 172.16.186.42
Disque 1 – Système 10Go
Disque 2 – Ceph 20G0
RAM 2G
2vCPU

node04-Ceph-osd2
IP : 172.16.186.43
Disque 1 – Système 10Go
Disque 2 – Ceph 20G0
RAM 2G
2vCPU

node05-Ceph-osd3
IP : 172.16.186.44
Disque 1 – Système 10Go
Disque 2 – Ceph 20G0
RAM 2G
2vCPU

node06-Ceph-osd4
IP : 172.16.186.45
Disque 1 – Système 10Go
Disque 2 – Ceph 20G0
RAM 2G
2vCPU

II. Prérequis à toutes les machines

1°) Inscription des machines Ceph au DNS

MODOP – Configurer un DNS Primaire et Secondaire – Centos7

[root@dns-pri ~]# vi /var/named/forward.house.cpb
; Cluster CEPH
node01-ceph-admin IN A 172.16.186.40
node02-ceph-mon1 IN A 172.16.186.41
node03-ceph-osd1 IN A 172.16.186.42
node04-ceph-osd2 IN A 172.16.186.43
node05-ceph-osd3 IN A 172.16.186.44
node06-ceph-osd4 IN A 172.16.186.45

Le reverse

[root@dns-pri ~]# vi /var/named/reversevmbr3.house.cpb
; CEPH CLuster
40 IN PTR node01-ceph-admin.house.cpb.
41 IN PTR node02-ceph-mon1.house.cpb.
42 IN PTR node03-ceph-osd1.house.cpb.
43 IN PTR node04-ceph-osd2.house.cpb.
44 IN PTR node05-ceph-osd3.house.cpb.
45 IN PTR node06-ceph-osd4.house.cpb.
[root@dns-pri ~]# systemctl reload named

Petit test de résolution

2°) Installation des middlewares (6 nœuds ceph)

[root@node01-ceph-admin ~]# yum update -y
[root@node01-ceph-admin ~]# yum install -y htop nmap net-tools wget

3°) Installation ntpd (6 nœuds ceph)

[root@node01-ceph-admin ~]# yum install ntp ntpdate ntp-doc -y
[root@node01-ceph-admin ~]# chkconfig ntpd on
[root@node01-ceph-admin ~]# ntpdate pool.ntp.org
[root@node01-ceph-admin ~]# systemctl start ntpd
[root@node01-ceph-admin ~]# systemctl status ntpd

4°) Désactivation Selinux (6 nœuds ceph)

[root@node01-ceph-admin ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@node01-ceph-admin ~]# reboot

5°) Désactivation IPv6 (6 nœuds ceph)

[root@node01-ceph-admin ~]# vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.default.autoconf = 0
[root@node01-ceph-admin ~]# sysctl -p

6°) Création Utilisateur ceph  (6 nœuds ceph)

[root@node01-ceph-admin ~]# useradd -d /home/cephuser -m cephuser
[root@node01-ceph-admin ~]# passwd cephuser
[root@node01-ceph-admin ~]# echo "cephuser ALL = (root) NOPASSWD:ALL" >> /etc/sudoers.d/cephuser
[root@node01-ceph-admin ~]# chmod 0440 /etc/sudoers.d/cephuser
[root@node01-ceph-admin ~]# sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

III. Connexion SSH (node01-Ceph-admin)

1°) générer une clef SSH pour cephuser (ssh-keygen)

root@floki03:~# ssh -l root node01-ceph-admin
[cephuser@node01-ceph-admin ~]$ su - cephuser
[cephuser@node01-ceph-admin ~]$ ssh-keygen

2°) Création config SSH pour les nodes

[cephuser@node01-ceph-admin ~]$ vi ~/.ssh/config
Host node01-ceph-admin
          Hostname node01-ceph-admin
          User cephuser

Host node02-ceph-mon1
          Hostname node02-ceph-mon1
          User cephuser

Host node03-ceph-osd1
          Hostname node03-ceph-osd1
          User cephuser

Host node04-ceph-osd2
           Hostname node04-ceph-osd2
           User cephuser

Host node05-ceph-osd3
           Hostname node05-ceph-osd3
           User cephuser

Host node06-ceph-osd4
            Hostname node06-ceph-osd4
            User cephuser
[cephuser@node01-ceph-admin ~]$ chmod 644 ~/.ssh/config
[cephuser@node01-ceph-admin ~]$ ssh-keyscan node01-ceph-admin node02-ceph-mon1 node03-ceph-osd1 node04-ceph-osd2 node05-ceph-osd3 node06-ceph-osd4 >> ~/.ssh/known_hosts

[cephuser@node01-ceph-admin ~]$ ssh-copy-id node02-ceph-mon1
[cephuser@node01-ceph-admin ~]$ ssh-copy-id node03-ceph-osd1
[cephuser@node01-ceph-admin ~]$ ssh-copy-id node04-ceph-osd2
[cephuser@node01-ceph-admin ~]$ ssh-copy-id node05-ceph-osd3
[cephuser@node01-ceph-admin ~]$ ssh-copy-id node06-ceph-osd4

IV. Configurer Firewall

1°) node01-Ceph-admin

root@floki03:~# ssh -l root node01-ceph-admin
[root@node01-ceph-admin ~]# systemctl start firewalld && systemctl enable firewalld

[root@node01-ceph-admin ~]# firewall-cmd  --zone=public --add-port=80/tcp --permanent
[root@node01-ceph-admin ~]# firewall-cmd  --zone=public  --add-port=2003/tcp --permanent
[root@node01-ceph-admin ~]# firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent

[root@node01-ceph-admin ~]# firewall-cmd --reload
[root@node01-ceph-admin ~]# firewall-cmd --list-port
80/tcp 2003/tcp 4505-4506/tcp

2°) node02-Ceph-mon1

root@floki03:~# ssh -l root node02-ceph-mon1
[root@node02-ceph-mon1 ~]# systemctl start firewalld && systemctl enable firewalld
[root@node02-ceph-mon1 ~]# firewall-cmd --zone=public --add-port=6789/tcp --permanent
[root@node02-ceph-mon1 ~]# firewall-cmd --reload
[root@node02-ceph-mon1 ~]# firewall-cmd --list-port
6789/tcp

3°) node03-Ceph-osd1, node04-Ceph-osd2, node04-Ceph-osd3, node05-Ceph-osd4

[root@node03-ceph-osd1 ~]# systemctl start firewalld && systemctl enable firewalld
[root@node03-ceph-osd1 ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
[root@node03-ceph-osd1 ~]# firewall-cmd --reload
[root@node03-ceph-osd1 ~]# firewall-cmd --list-port
6800-7300/tcp
[root@node04-ceph-osd2 ~]# systemctl start firewalld && systemctl enable firewalld
[root@node04-ceph-osd2 ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent && firewall-cmd --reload
[root@node05-ceph-osd3 ~]# systemctl start firewalld && systemctl enable firewalld
[root@node05-ceph-osd3 ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent && firewall-cmd --reload
[root@node06-ceph-osd4 ~]# systemctl start firewalld && systemctl enable firewalld
[root@node06-ceph-osd4 ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent && firewall-cmd --reload

V. Partitionner le disque Ceph des noeuds OSD

node03-ceph-osd1

[cephuser@node01-ceph-admin ~]$ ssh node03-ceph-osd1
[cephuser@node03-ceph-osd1 ~]$ sudo fdisk -l /dev/sdb

[cephuser@node03-ceph-osd1 ~]$ sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
[cephuser@node03-ceph-osd1 ~]$ sudo mkfs.xfs /dev/sdb -f

[cephuser@node03-ceph-osd1 ~]$ sudo blkid -o value -s TYPE /dev/sdb
Xfs

node04-ceph-osd2

[cephuser@node04-ceph-osd2 ~]$ sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
[cephuser@node04-ceph-osd2 ~]$ sudo mkfs.xfs /dev/sdb -f
[cephuser@node04-ceph-osd2 ~]$ sudo blkid -o value -s TYPE /dev/sdb
xfs

node05-ceph-osd3

[cephuser@node05-ceph-osd3 ~]$ sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
[cephuser@node05-ceph-osd3 ~]$ sudo mkfs.xfs /dev/sdb -f
[cephuser@node05-ceph-osd3 ~]$ sudo blkid -o value -s TYPE /dev/sdb
xfs

node06-ceph-osd4

[cephuser@node06-ceph-osd4 ~]$ sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
[cephuser@node06-ceph-osd4 ~]$ sudo mkfs.xfs /dev/sdb -f
[cephuser@node06-ceph-osd4 ~]$ sudo blkid -o value -s TYPE /dev/sdb
xfs

VI. Démarrer le Cluster Ceph

node01-Ceph-admin

root@floki03:~# ssh -l root node01-ceph-admin
[root@node01-ceph-admin ~]# su - cephuser
[cephuser@node01-ceph-admin ~]$ mkdir cluster

1°) Install ceph-deploy

[cephuser@node01-ceph-admin ~]$ sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
[cephuser@node01-ceph-admin ~]$ sudo yum update -y && sudo yum install ceph-deploy -y
[cephuser@node01-ceph-admin ~]$ cd cluster/

2°) création du moniteur « node02-ceph-mon1 » sur le mon

[cephuser@node01-ceph-admin cluster]$ ceph-deploy new node02-ceph-mon1

[cephuser@node01-ceph-admin cluster]$ : vi ceph.conf
Ajouter à la fin du fichier
# Public address
public network = 172.16.186.0/24
osd pool default size = 2

3°) Installation de ceph sur tous les nœuds du Cluster via ceph-deploy

[cephuser@node01-ceph-admin cluster]$ ceph-deploy install node01-ceph-admin node02-ceph-mon1 node03-ceph-osd1 node04-ceph-osd2 node05-ceph-osd3 node06-ceph-osd4

L’installation de ceph va être déployée sur l’ensemble des nœuds du Cluster.
Cela devait prendre entre 5-10minutes.

4°) Déployer le moniteur Monitoring sur le Cluster (mon)

[cephuser@node01-ceph-admin cluster]$ ceph-deploy mon create-initial

[cephuser@node01-ceph-admin cluster]$ ceph-deploy gatherkeys node02-ceph-mon1

5°) Déployer les disques /dev/sdb – nœuds OSD – sur le Cluster

[cephuser@node01-ceph-admin cluster]$ ceph-deploy disk list node03-ceph-osd1 node04-ceph-osd2 node05-ceph-osd3 node06-ceph-osd4

Préparer les disques /dev/sdb – nœuds OSD – sur le Cluster.

[cephuser@node01-ceph-admin cluster]$ ceph-deploy disk zap node03-ceph-osd1:/dev/sdb node04-ceph-osd2:/dev/sdb node05-ceph-osd3:/dev/sdb node06-ceph-osd4:/dev/sdb

[cephuser@node01-ceph-admin cluster]$ ceph-deploy osd prepare node03-ceph-osd1:/dev/sdb node04-ceph-osd2:/dev/sdb node05-ceph-osd3:/dev/sdb node06-ceph-osd4:/dev/sdb




Activons la partition /dev/sdb1 des nœuds OSD

[cephuser@node01-ceph-admin cluster]$ ceph-deploy osd activate node03-ceph-osd1:/dev/sdb1 node04-ceph-osd2:/dev/sdb1 node05-ceph-osd3:/dev/sdb1 node06-ceph-osd4:/dev/sdb1

[cephuser@node01-ceph-admin cluster]$ ceph-deploy disk list node03-ceph-osd1 node04-ceph-osd2 node05-ceph-osd3 node06-ceph-osd4




On se retrouve avec deux partitions sur le disque réservé à Ceph

  • /dev/sdb1 – Ceph Data
  • /dev/sdb2 – Ceph Journal

6°) Déployer Admin sur l’ensemble du Cluster

[cephuser@node01-ceph-admin cluster]$ ceph-deploy admin node01-ceph-admin node02-ceph-mon1 node03-ceph-osd1 node04-ceph-osd2 node05-ceph-osd3 node06-ceph-osd4

Changement des droits sur le fichier « ceph.client.admin.keyring »

[cephuser@node01-ceph-admin cluster]$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

7°) Vérifions l’état du Cluster

[cephuser@node01-ceph-admin cluster]$ ssh node02-ceph-mon1
Last login: Fri Jul 9 17:24:35 2021 from node01-ceph-admin.house.cpb

[cephuser@node02-ceph-mon1 ~]$ sudo ceph health
HEALTH_OK

[cephuser@node02-ceph-mon1 ~]$ sudo ceph –s

Views: 14

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *