Aller au contenu

Installer Ceph depuis la GUI PVE, créer OSD, pools, CephFS

Day 1 · DéployerNiveau 2 · OpérerProcédureRédigé · à valider en lab

Objectif : partir d'un cluster PVE 9 de trois nœuds (pve01, pve02, pve03) et obtenir un cluster Ceph Squid 19.2 en HEALTH_OK, avec 3 MON, 3 MGR, un OSD par disque, un pool ceph-vm en réplica 3/2 déclaré comme stockage PVE et, si besoin, un CephFS pour les ISO. Durée : 1 à 2 heures. Sur les architectures livrées par le MSP, cette installation est faite par le MSP ; cette page sert à la comprendre, à la refaire en lab ou à ajouter un nœud.

Avant de toucher la prod

  • Cluster PVE formé et sain : pvecm status affiche Quorate: Yes et les 3 nœuds.
  • Prérequis validés : HBA, SSD entreprise PLP, réseau Ceph dédié (voir Prérequis).
  • Réseau Ceph configuré sur chaque nœud, MTU validé par ping -M do -s 8972 entre tous les nœuds (voir Réseaux Ceph).
  • Disques OSD vides, sans partition ni signature (nœud → Disks : Usage = No). Sinon Wipe Disk.
  • Horloges synchronisées : chronyc tracking sur chaque nœud.
  • Dépôt choisi : Enterprise (abonnement actif) ou No-Subscription (voir Abonnements et dépôts).

Étapes

1. Installer les paquets et initialiser la configuration

  1. Sur pve01 : nœud → Ceph → Install Ceph.
  2. Choisir la version Squid (19.2) et le dépôt (Enterprise ou No-Subscription), puis Start installation. Répondre Y dans la console.
  3. Onglet Configuration : Public Network = 10.10.10.0/24, Cluster Network = 10.10.20.0/24 (ou identique au public si un seul réseau), Number of replicas = 3, Minimum replicas = 2, premier moniteur sur pve01.
  4. Répéter Install Ceph sur pve02 et pve03 : la configuration commune est déjà présente dans /etc/pve/ceph.conf.
# Sur chaque nœud
pveceph install --repository no-subscription --version squid
# (ou --repository enterprise avec un abonnement actif)

# Une seule fois, sur pve01
pveceph init --network 10.10.10.0/24 --cluster-network 10.10.20.0/24

Le dépôt est écrit au format deb822 dans /etc/apt/sources.list.d/ceph.sources. La configuration est créée dans /etc/pve/ceph.conf, avec un lien /etc/ceph/ceph.conf.

2. Créer les moniteurs et managers

Nœud → Ceph → Monitor → Create sous Monitor, choisir pve02, puis pve03. Même écran, section Manager → Create pour chaque nœud n'ayant pas encore de MGR.

# Sur pve01, pve02 et pve03 (si le MON n'existe pas déjà)
pveceph mon create
pveceph mgr create

3. Créer les OSD

Sur chaque nœud : nœud → Ceph → OSD → Create: OSD. Choisir le Disk, laisser DB Disk et WAL Disk sur use OSD disk pour un SSD/NVMe, cocher Encrypt OSD si exigé, vérifier la Device Class proposée. Répéter pour chaque disque.

# Un OSD par disque ; utiliser les chemins stables by-id
ls -l /dev/disk/by-id/ | grep -v part
pveceph osd create /dev/disk/by-id/nvme-XXXX
# Options utiles : --crush-device-class ssd · --encrypted 1
# HDD avec DB sur NVMe : --db_dev /dev/nvme0n1 (DB = 10 % de l'OSD par défaut)

4. Créer le pool de VMs

Nœud → Ceph → Pools → Create : Name = ceph-vm, Size = 3, Min. Size = 2, Crush Rule = replicated_rule (ou une règle par classe, voir Règles CRUSH), PG Autoscale Mode = on, cocher Add as Storage.

pveceph pool create ceph-vm --size 3 --min_size 2 --pg_autoscale_mode on --add_storages 1

5. (Optionnel) Créer un CephFS pour ISO et templates

Nœud → Ceph → CephFS → Create sous Metadata Servers sur deux nœuds au moins, puis Create CephFS : Name = cephfs, cocher Add as Storage.

pveceph mds create          # sur pve01, puis pve02
pveceph fs create --name cephfs --add-storage 1
# Crée les pools cephfs_data et cephfs_metadata et le stockage PVE "cephfs"

Vérifications

ceph -s
#   health: HEALTH_OK
#   mon: 3 daemons, quorum pve01,pve02,pve03
#   mgr: pve01(active), standbys: pve02, pve03
#   osd: 18 osds: 18 up, 18 in
#   pgs: 100.000% pgs active+clean
ceph osd tree                       # chaque OSD sous le bon host, classe ssd/nvme
ceph osd pool autoscale-status      # ceph-vm : AUTOSCALE on
ceph versions                       # tous les démons en 19.2.x
pvesm status | grep -E 'ceph-vm|cephfs'   # stockages actifs sur les 3 nœuds

Créer une VM de test sur ceph-vm, la migrer à chaud entre deux nœuds, puis la supprimer.

Rollback

Tant qu'aucune VM n'utilise Ceph : supprimer le stockage et le pool (Pools → Destroy, ou pveceph pool destroy ceph-vm --remove_storages 1), puis les OSD (pveceph osd destroy <id> --cleanup), les MDS, MGR et MON (pveceph mon destroy <id>). Le nettoyage complet d'un nœud (pveceph purge) se fait avec le MSP. Une fois des VMs en production sur Ceph, il n'y a plus de rollback simple : migrer d'abord les disques vers un autre stockage.

Pièges vus en support

  • Oublier --version squid en CLI : sur les versions récentes de PVE 9, la version proposée par défaut peut être plus récente que celle validée par le MSP.
  • Réseau public mal saisi (masque, mauvaise interface) : les MON écoutent sur la mauvaise adresse ; corriger après coup est une opération MSP.
  • Disques désignés par /dev/sdX dans les scripts : les lettres changent au redémarrage. Utiliser /dev/disk/by-id/.
  • Disque ancien avec partitions LVM ou ZFS : la GUI ne le propose pas. Wipe Disk (nœud → Disks) détruit tout son contenu : vérifier deux fois le numéro de série.
  • CephFS utilisé comme stockage de disques de VM : préférer RBD (ceph-vm), CephFS sert aux ISO, templates et sauvegardes vzdump ponctuelles.
  • Créer le pool avant que tous les OSD existent sur les trois nœuds : PG undersized le temps de finir, ce qui est normal.

Quand ouvrir un ticket iTop

HEALTH_WARN persistant après création des OSD, MON qui ne rejoint pas le quorum, OSD qui ne démarre pas, besoin d'un pool EC ou d'une règle CRUSH spécifique : P3 (P2 si le cluster est déjà en production). Joindre ceph -s, ceph osd tree, cat /etc/pve/ceph.conf, pveversion -v.

Ouvrir un ticket iTop

Pour aller plus loin