Migration d'un pool
Il est parfois nécessaire de migrer tous les objets d'un pool vers un autre. Cette opération est effectuée dans des cas tels que la nécessité de modifier des paramètres qui ne peuvent pas être modifiés sur un pool spécifique. Par exemple, vous avez besoin de réduire le nombre de groupes de placement d'un pool.
A propos de cette tâche
Important: Lorsqu'une charge de travail utilise uniquement des images Ceph Block Device , procédez comme suit:
Les méthodes de migration décrites pour Ceph Block Device sont plus recommandées que celles décrites ici. L'utilisation du cppool ne permet pas de conserver toutes les images instantanées et les métadonnées associées aux images instantanées, ce qui entraîne une copie infidèle des données. Par exemple, la copie d'un pool RBD ne copie pas complètement l'image. Dans ce cas, les snaps ne sont pas présents et ne fonctionneront pas correctement. Le cppool ne conserve pas non plus la zone user_version sur laquelle certains utilisateurs de librados peuvent s'appuyer.Si la migration d'un pool est nécessaire et que vos charges de travail utilisateur contiennent des images autres que des unités par blocs Ceph, passez à l'une des procédures décrites ici.
Avant de commencer
- Si vous utilisez la commande rados cppool :
- Un accès en lecture seule au pool est requis.
- N'utilisez cette commande que si vous ne disposez pas d'images RBD et de ses snaps et que
user_versionest consommé par les librados.
- Si vous utilisez les commandes RADOS de l'unité locale, vérifiez que l'espace de cluster disponible est suffisant. Deux, trois ou plusieurs copies de données seront présentes par facteur de réplication de pool.
Migration directe
Important: L'accès en lecture seule au pool est requis lors de la copie.
ceph osd pool create NEW_POOL PG_NUM [ <other new pool parameters> ]
rados cppool SOURCE_POOL NEW_POOL
ceph osd pool rename SOURCE_POOL NEW_SOURCE_POOL_NAME
ceph osd pool rename NEW_POOL SOURCE_POOLExemple :[ceph : root@host01 /]# ceph osd pool create pool1 250 [ceph : root@host01 /]# rados cppool pool2 pool1 [ceph : root@host01 /]# ceph osd pool rename pool2 pool3 [ceph : root@host01 /]# ceph osd pool rename pool1 pool2