Ajout du format de chiffrement aux images et aux clones

Ajoutez le format de chiffrement aux images et aux clones à l'aide de la commande de format de chiffrement rbd. A l'aide d'une image LUKS2-formatted , vous pouvez créer à la fois un clone LUKS2-formatted et un clone LUKS1-formatted .

Le chiffrement côté client en couches est pris en charge. Les images clonées peuvent être chiffrées avec leur propre format et phrase passe, potentiellement différent de celui de l'image parent.

Prérequis

  • Une grappe d' IBM Storage Ceph s en cours d'exécution avec RADOS Block Device (RBD) configuré.

  • Accès de niveau racine au noeud.

Procédure

  1. Créez une image LUKS2-formatted :

    Syntaxe

     rbd create --size SIZE POOL_NAME/LUKS_IMAGE
     rbd encryption format POOL_NAME/LUKS_IMAGE luks1|luks2 PASSPHRASE_FILE
     rbd resize --size 50G --encryption-passphrase-file PASSPHRASE_FILE POOL_NAME/LUKS_IMAGE

    Exemple

     [ceph: root@host01 /]# rbd create --size 50G mypool/myimage
     [ceph: root@host01 /]# rbd encryption format mypool/myimage luks2 passphrase.txt
     [ceph: root@host01 /]# rbd resize --size 50G --encryption-passphrase-file passphrase.txt mypool/myimage

    La commande rbd resize augmente l'image pour compenser la surcharge associée à l'en-tête LUKS2 .

  2. Avec l'image LUKS2-formatted , créez un clone LUKS2-formatted avec la même taille effective:

    Syntaxe

     rbd snap create POOL_NAME/IMAGE_NAME@SNAP_NAME
     rbd snap protect POOL_NAME/IMAGE_NAME@SNAP_NAME
     rbd clone POOL_NAME/IMAGE_NAME@SNAP_NAME POOL_NAME/CLONE_NAME
     rbd encryption format POOL_NAME/CLONE_NAME luks1 CLONE_PASSPHRASE_FILE

    Exemple

     [ceph: root@host01 /]# rbd snap create mypool/myimage@snap
     [ceph: root@host01 /]# rbd snap protect mypool/myimage@snap
     [ceph: root@host01 /]# rbd clone mypool/myimage@snap mypool/myclone
     [ceph: root@host01 /]# rbd encryption format mypool/myclone luks1 clone-passphrase.bin
  3. Avec l'image LUKS2-formatted , créez un clone LUKS1-formatted avec la même taille effective:

    Syntaxe

     rbd snap create POOL_NAME/IMAGE_NAME@SNAP_NAME
     rbd snap protect POOL_NAME/IMAGE_NAME@SNAP_NAME
     rbd clone POOL_NAME/IMAGE_NAME@SNAP_NAME POOL_NAME/CLONE_NAME
     rbd encryption format POOL_NAME/CLONE_NAME luks1 CLONE_PASSPHRASE_FILE
     rbd resize --size SIZE --allow-shrink --encryption-passphrase-file CLONE_PASSPHRASE_FILE --encryption-passphrase-file PASSPHRASE_FILE POOL_NAME/CLONE_NAME

    Exemple

     [ceph: root@host01 /]# rbd snap create mypool/myimage@snap
     [ceph: root@host01 /]# rbd snap protect mypool/myimage@snap
     [ceph: root@host01 /]# rbd clone mypool/myimage@snap mypool/myclone
     [ceph: root@host01 /]# rbd encryption format mypool/myclone luks1 clone-passphrase.bin
     [ceph: root@host01 /]# rbd resize --size 50G --allow-shrink --encryption-passphrase-file clone-passphrase.bin --encryption-passphrase-file passphrase.bin mypool/myclone

    Etant donné que l'en-tête LUKS1 est généralement plus petit que l'en-tête LUKS2 , la commande de redimensionnement rbd à la fin réduit l'image clonée pour éliminer l'espace non utilisé.

  4. Avec l'image LUKS-1-formatted , créez un clone LUKS2-formatted avec la même taille effective:

    Syntaxe

     rbd resize --size SIZE POOL_NAME/LUKS_IMAGE
     rbd snap create POOL_NAME/IMAGE_NAME@SNAP_NAME
     rbd snap protect POOL_NAME/IMAGE_NAME@SNAP_NAME
     rbd clone POOL_NAME/IMAGE_NAME@SNAP_NAME POOL_NAME/CLONE_NAME
     rbd encryption format POOL_NAME/CLONE_NAME luks2 CLONE_PASSPHRASE_FILE
     rbd resize --size SIZE --allow-shrink --encryption-passphrase-file PASSPHRASE_FILE POOL_NAME/LUKS_IMAGE
     rbd resize --size SIZE --allow-shrink --encryption-passphrase-file CLONE_PASSPHRASE_FILE --encryption-passphrase-file PASSPHRASE_FILE POOL_NAME/CLONE_NAME

    Exemple

     [ceph: root@host01 /]# rbd resize --size 51G mypool/myimage
     [ceph: root@host01 /]# rbd snap create mypool/myimage@snap
     [ceph: root@host01 /]# rbd snap protect mypool/myimage@snap
     [ceph: root@host01 /]# rbd clone mypool/my-image@snap mypool/myclone
     [ceph: root@host01 /]# rbd encryption format mypool/myclone luks2 clone-passphrase.bin
     [ceph: root@host01 /]# rbd resize --size 50G --allow-shrink --encryption-passphrase-file passphrase.bin mypool/myimage
     [ceph: root@host01 /]# rbd resize --size 50G --allow-shrink --encryption-passphrase-file clone-passphrase.bin --encryption-passphrase-file passphrase.bin mypool/myclone

    Etant donné que l'en-tête LUKS2 est généralement supérieur à l'en-tête LUKS1 , la commande de redimensionnement rbd au début augmente temporairement l'image parent afin de réserver de l'espace supplémentaire dans l'image instantanée parent et, par conséquent, dans l'image clonée. Cette opération est nécessaire pour rendre toutes les données parent accessibles dans l'image clonée. La commande rbd resize à la fin réduit l'image parent à sa taille d'origine et n'a pas d'impact sur l'image instantanée parent et l'image clonée pour se débarrasser de l'espace réservé inutilisé.

    Il en est de même pour la création d'un clone formaté d'une image non formatée, car une image non formatée n'a pas d'en-tête du tout.