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
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 ~]# 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:
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
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
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
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.default.disable_ipv6=0
Deploiement CEPH via Ansible
Installation de du package ceph-ansible sur le serveur d'administration node1099
Configuration du fichier inventaire Ansible /etc/ansible/hosts
node1001
node1002
node1003
[osds]
node1011
node1012
node1013
node1014
[mgrs]
node1001
node1002
node1003
[clients]
node1099
Configuration des fichier de variables Ansible group vars
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)
---
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
---
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
[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
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 ...