Création d'un exemple de pool codé par effacement

Créez un pool codé d'effacement et spécifiez les groupes de placement.

A propos de cette tâche

La commande ceph osd pool create crée un pool codé par effacement avec le profil par défaut, sauf si un autre profil est spécifié. Les profils définissent la redondance des données en définissant deux paramètres, ket k. Ces paramètres définissent le nombre de blocs qu'un élément de données est fractionné et le nombre de blocs de codage est créé.

Le pool codé en effacement le plus simple est équivalent à RAID5 et requiert au moins quatre hôtes. Vous pouvez créer un pool codé d'effacement avec un profil 2 + 2.

Procédure

  1. Définissez la configuration suivante pour un pool codé en effacement sur quatre noeuds avec une configuration 2 + 2.
    ceph config set mon mon_osd_down_out_subtree_limit host
    ceph config set osd osd_async_recovery_min_cost 1099511627776
    Important: Cela n'est pas nécessaire pour un pool codé en effacement en général.
    Important: Le coût de récupération asynchrone correspond au nombre d'entrées de journal PG en retard sur la réplique et au nombre d'objets manquants. La valeur de osd_target_pg_log_entries_per_osd est 30000. Par conséquent, un OSD avec un seul PG pourrait avoir 30000 entrées. Etant donné que osd_async_recovery_min_cost est un entier 64 bits, définissez la valeur de osd_async_recovery_min_cost sur 1099511627776 pour un pool EC avec une configuration 2 + 2.
    Remarque: Pour un cluster EC avec quatre noeuds, la valeur de K + M est 2 + 2. Si un noeud échoue complètement, il n'est pas récupéré car quatre blocs et seuls trois noeuds sont disponibles. Lorsque vous définissez la valeur de mon_osd_down_out_subtree_limit sur host, lors d'un scénario d'arrêt de l'hôte, il empêche les OSD d'être démarrés, de manière à empêcher le rééquilibrage des données et les attentes jusqu'à ce que le noeud soit à nouveau opérationnel.
  2. Pour un pool codé par effacement avec une configuration 2 + 2, définissez le profil.
    ceph osd erasure-code-profile set ec22 k=2 m=2 crush-failure-domain=host 
    [ceph : root@host01 /]# ceph osd erasure-code-profile set ec22 k=2 m=2 crush-failure-domain=host 
    
    Pool : ceph osd pool create test-ec-22 erasure ec22 
  3. Créez un pool codé par effacement.
    ceph osd pool create ecpool 32 32 erasure
    pool 'ecpool' created
    $ echo ABCDEFGHI | rados --pool ecpool put NYAN -
    $ rados --pool ecpool get NYAN -
    ABCDEFGHI

    32 est le nombre de groupes de placement.