unixadmin.free.fr Handy Unix Plumbing Tips and Tricks

7oct/18Off

Installer un cluster Red Hat CEPH Storage 3.0 Luminous

Proof of Concept CEPH Luminous

Dans ce post je vous montre comment installer Fast & Dirty un cluster Red Hat Storage 3.0 "CEPH Luminous" sur une Infra à base de Machines virtuelles (non supportée).
Pour plus d'information RTFM
Sinon la Thèse de Sage Weil qui est le fondateur et l'architecte en chef de Ceph n'est pas dépourvu d'intérêt. :) weil-thesis

Contrairement a SUSE enterprise Storage qui a fait le bon choix d'intégrer OpenAttic pour gérer le cluster Ceph via une interface web ou Rest-API, Red Hat ne propose rien pour ça dans cette version.

Configuration :
Stretch Ceph Cluster
2 Datacenters distant de 40km avec une latence de 0,5ms + une salle pour le Quorum des monitors.

Type DCA DCB Quorum
monitor node1001 node1002 node1003
OSD node1011 node1012
OSD node1013 node1014
Rados GW node1091 node1092
Admin node1099

Configuration Disque OSD:

/dev/sdb disque journal 50Go
/dev/sdc disque OSD 10Go
/dev/sdd disque OSD 10Go
/dev/sde disque OSD 10Go
/dev/sdf disque OSD 10Go
/dev/sdg disque OSD 10Go

[root@node1011 OSD ~]# lsblk -Sm
NAME HCTL       TYPE VENDOR   MODEL             REV TRAN NAME  SIZE OWNER GROUP MODE
sda  0:0:0:0    disk VMware   Virtual disk     1.0  spi  sda    50G root  disk  brw-rw----
sdb  0:0:1:0    disk VMware   Virtual disk     1.0  spi  sdb    50G root  disk  brw-rw----
sdc  0:0:2:0    disk VMware   Virtual disk     1.0  spi  sdc    10G root  disk  brw-rw----
sdd  0:0:3:0    disk VMware   Virtual disk     1.0  spi  sdd    10G root  disk  brw-rw----
sde  0:0:4:0    disk VMware   Virtual disk     1.0  spi  sde    10G root  disk  brw-rw----
sdf  0:0:5:0    disk VMware   Virtual disk     1.0  spi  sdf    10G root  disk  brw-rw----
sdg  0:0:6:0    disk VMware   Virtual disk     1.0  spi  sdg    10G root  disk  brw-rw----
sr0  2:0:0:0    rom  NECVMWar VMware IDE CDR10 1.00 ata  sr0  1024M root  cdrom brw-rw----

Système: Red HAt 7.4

Effectuer les actions suivantes à partir du serveur d’administration du cluster CEPH : node1099
Partager la clé SSH de l'utilisateur root puis cephadm via ssh-keygen et ssh-copy-id avec tous les serveurs du cluster CEPH.
Ajouter les droits sudo à l'utilisateur cephadm.

créer un utilisateur cephadm

[root@node1099 ~]# cd .ssh; ssh-keygen
[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
ssh-copy-id node10$i
done

[root@node1099  ~]# base64 /dev/urandom | tr -d "/+" | dd bs="16" count=1 status=none | xargs echo;
cI23TmyTVPGWs97f

[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
ssh node10$i 'groupadd -g 2000 cephadm; useradd -u 2000 -g cephadm cephadm; echo "cI23TmyTVPGWs97f" | passwd --stdin cephadm'
done

[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
ssh node10$i  'echo "cephadm ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers'
done

[root@node1099 ~]# su - cephadm
[cephadm@node1099 ~]# cd .ssh; ssh-keygen
[cephadm@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
ssh-copy-id node10$i
done

On utilise NTP: Désinstaller chrony, copier le fichier /etc/ntp.conf, redémarrer ntpd et vérifier l'heure

Copier le fichier ntp.conf de référence sur le serveur d'administration node1099 puis lancer les actions suivantes:

[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
scp ntp.conf node10$:/etc/ntp.conf
ssh node10$i rpm -e chrony
ssh node10$i systemctl restart ntpd
done

[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
echo node10$i $(ssh node10$i date)
done

node1001 Sun Oct 7 10:31:59 CET 2018
node1002 Sun Oct 7 10:31:59 CET 2018
node1003 Sun Nov 7 10:31:59 CET 2018
node1011 Sun Nov 7 10:32:00 CET 2018
node1012 Sun Oct 7 10:32:00 CET 2018
node1013 Sun Oct 7 10:32:00 CET 2018
node1014 Sun Oct 7 10:32:00 CET 2018
node1091 Sun Oct 7 10:32:00 CET 2018
node1092 Sun Oct 7 10:32:00 CET 2018
node1099 Sun Oct 7 10:32:00 CET 2018

Enregistrement SATELLITE 6

Explication serveur Satellite ... à venir.

Enregistrer les systèmes du cluster CEPH sur l'activation key qui permet d'accéder à la content view contenant les paquets Ceph recommandé par Red Hat (RTFM): AK-RHEL7-CEPH

[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
ssh node10$i rpm -Uvh http://satellite6/pub/katello-ca-consumer-latest.noarch.rpm
ssh node10$i subscription-manager unregister
ssh node10$i subscription-manager register --org 'BusyBox' --name node10$i.domain.com --activationkey 'AK-RHEL7-CEPH' --serverurl=https://satellite6.domain.com:443/rhsm --baseurl=https://satellite6.domain.com/pulp/repos –force
ssh node10$i yum -y install katello-agent
done

[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
ssh node10$i yum repolist
done

Affiche

Loaded plugins: enabled_repos_upload, package_upload, product-id, search-disabled-repos, subscription-manager
repo id                                                                                            repo name                                                                                                                           status
!rhel-7-server-extras-rpms/x86_64                                                                  Red Hat Enterprise Linux 7 Server - Extras (RPMs)                                                                                      778
!rhel-7-server-optional-rpms/x86_64                                                                Red Hat Enterprise Linux 7 Server - Optional (RPMs)                                                                                 13,444
!rhel-7-server-rhceph-1.3-calamari-rpms/x86_64                                                     Red Hat Ceph Storage Calamari 1.3 for Red Hat Enterprise Linux 7 Server (RPMs)                                                          20
!rhel-7-server-rhceph-1.3-installer-rpms/x86_64                                                    Red Hat Ceph Storage Installer 1.3 for Red Hat Enterprise Linux 7 Server (RPMs)                                                         91
!rhel-7-server-rhceph-3-mon-rpms/x86_64                                                            Red Hat Ceph Storage MON 3 for Red Hat Enterprise Linux 7 Server (RPMs)                                                                 98
!rhel-7-server-rhceph-3-osd-rpms/x86_64                                                            Red Hat Ceph Storage OSD 3 for Red Hat Enterprise Linux 7 Server (RPMs)                                                                 84
!rhel-7-server-rhceph-3-tools-rpms/x86_64                                                          Red Hat Ceph Storage Tools 3 for Red Hat Enterprise Linux 7 Server (RPMs)                                                              138
!rhel-7-server-rpms/x86_64                                                                         Red Hat Enterprise Linux 7 Server (RPMs)                                                                                            18,257
!rhel-7-server-satellite-tools-6.2-rpms/x86_64                                                     Red Hat Satellite Tools 6.2 (for RHEL 7 Server) (RPMs)                                                                                 143
!rhel-server-rhscl-7-rpms/x86_64                                                                   Red Hat Software Collections RPMs for Red Hat Enterprise Linux 7 Server                                                              9,336
repolist: 42,389
Uploading Enabled Repositories Report
Loaded plugins: product-id

Network Configuration:Activation IPV6

[root@node1099 ~]# for i in 01 02 03  11 12 13 14 91 92 99
do
ssh node10$i sysctl net.ipv6.conf.all.disable_ipv6=0; sysctl net.ipv6.conf.default.disable_ipv6=0
done

Ajouter ces deux lignes au fichier /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0

Deploiement CEPH via Ansible

Installation de du package ceph-ansible sur le serveur d'administration node1099

[root@node1099 ~]# yum install ceph-ansible

Configuration du fichier inventaire Ansible /etc/ansible/hosts

[mons]
node1001
node1002
node1003

[osds]
node1011
node1012
node1013
node1014

[mgrs]
node1001
node1002
node1003

[clients]
node1099

Configuration des fichier de variables Ansible group vars

[root@node1099 ~]#
ln -s /usr/share/ceph-ansible/group_vars/ /etc/ansible/group_vars
cd /usr/share/ceph-ansible/
cp site.yml.sample site.yml
cd /usr/share/ceph-ansible/group_vars/
cp all.yml.sample all.yml
cp osds.yml.sample osds.yml
cp clients.yml.sample clients.yml

Modifier le fichier de variable globale /usr/share/ceph-ansible/group_vars/all.yml et vérifier son contenu avec la commande suivante :

Note: réseau publique 10.1.1.0/24 (eth0) et réseau privé 10.1.2.0/24 (eth1)

[root@node10 ~]# cat /usr/share/ceph-ansible/group_vars/all.yml | grep -v "^#" | sed '/^\s*$/d'

---
dummy:
fetch_directory: ~/ceph-ansible-keys
ceph_repository_type: cdn
ceph_origin: repository
ceph_repository: rhcs
ceph_rhcs_version: 3
monitor_interface: eth0
ip_version: ipv4
public_network: 10.1.1.0/24
cluster_network: 10.1.2.0/24
ceph_conf_overrides:
mon:
mon_allow_pool_delete: true

Modifier le fichier de variable des OSD et vérifier sont contenu avec la commande suivante :

Note: /dev/sd[c-g] disques OSD et /dev/sdb disque des journaux

[root@node1099 ~]# cat /usr/share/ceph-ansible/group_vars/osds.yml | grep -v "^#" | sed '/^\s*$/d'

---
dummy:
osd_auto_discovery: false
osd_scenario: non-collocated
devices:
- /dev/sdc
- /dev/sdd
- /dev/sde
- /dev/sdf
- /dev/sdg
dedicated_devices:
- /dev/sdb
- /dev/sdb
- /dev/sdb
- /dev/sdb
- /dev/sdb

Deploiement du cluster en tant que cephadm

Temps: 15 minutes

[root@node1099 ~]# su - cephadm
[cephadm@node1099 ~]$ mkdir ~/ceph-ansible-keys
[cephadm@node1099 ~]$ cd /usr/share/ceph-ansible
[cephadm@node1099 ceph-ansible]$ ansible-playbook site.yml
[cephadm@node1099 ceph-ansible]$ cd -
[cephadm@node1099 ~]$ sudo cp ceph-ansible-keys/260aec2e-df73-4490-94db-a25672048061/etc/ceph/ceph.client.admin.keyring /etc/ceph

Vérifier l'état de santé du cluster

[cephadm@node1099 ~]$ sudo ceph health
HEALTH_OK

[cephadm@node1099 ~]$ sudo ceph -s
cluster:
id:     260aec2e-df73-4490-94db-a25672048061
health: HEALTH_OK

services:
mon: 3 daemons, quorum node1001,node1002,node1003
mgr: node1001(active), standbys: node1002, node1003
osd: 20 osds: 20 up, 20 in

data:
pools:   0 pools, 0 pgs
objects: 0 objects, 0 bytes
usage:   2155 MB used, 197 GB / 199 GB avail
pgs:

A suivre, CrushMap 2 DC ...

Remplis sous: CEPH Commentaires
Commentaires () Trackbacks (0)

Désolé, le formulaire de commentaire est fermé pour le moment

Trackbacks are disabled.