Où LVM stocke-t-il sa configuration?

17

J'essaie de comprendre comment / où LVM stocke ses données de configuration.

  • Est-ce qu'il pvcreate /dev/sdbécrit des métadonnées /dev/sdb? si oui, qu'est-ce qui est écrit?
  • vgcreate data /dev/sdb /dev/sdcstocke la configuration du groupe de volumes?
  • Où LVM stocke-t-il le mappage entre les extensions logiques et les extensions physiques?
  • Existe-t-il une configuration spécifique à la machine dans une configuration LVM?
  • Supposons que j'ai une machine avec 2 disques configurés dans un volume logique, puis-je simplement retirer ces disques de la machine et les placer dans une autre machine et m'attendre à ce que le volume logique fonctionne dans la nouvelle machine?
ams
la source

Réponses:

10

Pvcreate / dev / sdb écrit-il des métadonnées dans / dev / sdb? si oui, qu'est-ce qui est écrit?

Si vous passez un -vvindicateur à la pvcreatecommande, cela rend la commande plus verbeuse et vous verrez que pvcreate crée une zone de métadonnées sur le disque.

 Writing physical volume data to disk "/dev/sdc1"
        lvmcache: /dev/sdc1: now in VG #orphans_lvm2 (#orphans_lvm2) with 0 mdas
        Creating metadata area on /dev/sdc1 at sector 8 size 2040 sectors
        Opened /dev/sdc1 RW O_DIRECT
        /dev/sdc1: block size is 1024 bytes
        /dev/sdc1: physical block size is 512 bytes
        /dev/sdc1: Preparing PV label header xxx.xxxxx.xxxxxxxxxxxxxxx

      /dev/sdc1: Writing label to sector 1 with stored offset 32.

Qu'est-ce qui est écrit dans la zone de métadonnées?

Je ne connais pas de commande que vous pouvez utiliser pour afficher les métadonnées, mais la commande vgcfgbackuppeut être utilisée pour sauvegarder les métadonnées et vous pouvez ouvrir un fichier de sauvegarde ainsi créé pour afficher les métadonnées

vgcfgbackup -f /path/of/your/choice/file <your_vg_name>

Le /path/of/your/choice/filecréé par la commande ci-dessus contiendra les métadonnées PV, VG et LVM. L'une des sections ressemblera à ci-dessous:

physical_volumes {

                pv0 {
                        id = "abCDe-TuvwX-DEfgh-daEb-Xys-6Efcgh-LkmNo"
                        device = "/dev/sdc1"    # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 10477194     # 4.99592 Gigabytes
                        pe_start = 2048
                        pe_count = 1278 # 4.99219 Gigabytes
                }
        }

Je vous suggère de jeter un œil au contenu du répertoire /etc/lvmet à la sortie de la commandelvm dumpconfig

Supposons que j'ai une machine avec 2 disques configurés dans un volume logique, puis-je simplement retirer ces disques de la machine et les placer dans une autre machine et m'attendre à ce que le volume logique fonctionne dans la nouvelle machine?

Oui, vous pouvez.

Vous pouvez migrer des groupes de volumes vers un autre hôte. Bien que ce ne soit pas exactement plug-and-play, la procédure pour le faire est assez simple. Il existe des dizaines de tutoriels disponibles en ligne sur la façon de procéder.

Ce thread de défaut de serveur traite du déplacement d'une partition LVM vers un autre hôte à l'aide de la ddcommande.

Sree
la source
14

Est-ce qu'il pvcreate /dev/sdbécrit des métadonnées /dev/sdb? si oui, qu'est-ce qui est écrit?

Oui, mais ce n'est pas beaucoup plus que certaines données d'en-tête et d'identification pour marquer le périphérique de bloc en tant que PV LVM. Les «vraies» métadonnées surviennent lorsque vous créez des groupes de volumes.

vgcreate data /dev/sdb /dev/sdcstocke la configuration du groupe de volumes?

Sur chaque volume physique faisant partie du groupe de volumes. Par défaut, une copie identique des métadonnées est conservée dans chaque zone de métadonnées de chaque volume physique du groupe de volumes. Les métadonnées du groupe de volumes LVM sont petites et stockées en ASCII.

Où LVM stocke-t-il le mappage entre les extensions logiques et les extensions physiques?

Cela fait partie des métadonnées de groupe de volumes susmentionnées.

Existe-t-il une configuration spécifique à la machine dans une configuration LVM?

Non. Les PV qui font partie d'un VG sont trouvés et assemblés à l'aide d'identifiants uniques attribués au moment de la création du PV.

Supposons que j'ai une machine avec 2 disques configurés dans un volume logique, puis-je simplement retirer ces disques de la machine et les placer dans une autre machine et m'attendre à ce que le volume logique fonctionne dans la nouvelle machine?

Oui. Si tous les PV qui composent le VG sont présents, les LV de ce VG fonctionneront.

Celada
la source
3
  • Est-ce qu'il pvcreate /dev/sdbécrit des métadonnées /dev/sdb? si oui, qu'est-ce qui est écrit?
  • vgcreate data /dev/sdb /dev/sdcstocke la configuration du groupe de volumes?

pvcreatecrée une "étiquette" et un "en-tête" pour le PV et alloue également de l'espace pour les métadonnées sur le volume (comme spécifié par l' --[pv]metadataoption). L'en-tête est une structure de données binaires qui comprend des pointeurs vers les zones de métadonnées sur ce PV.

La vgcreatecommande stocke une description textuelle de l'état actuel du groupe de volumes dans les zones de métadonnées précédemment allouées sur les PV associés (comme contrôlé par l' --[vg]metadatacopiesoption, etc.). Ce sont les descriptions sauvegardées par la vgcfgbackupcommande, et dans la plupart des cas, ce sont les métadonnées que l'on serait intéressé à examiner.

Pour les informations d'étiquette / en-tête PV les plus obscures: une description générale peut être trouvée dans LVM Internals , http://mo.morsi.org/blog/node/392 (qui inclut un lien vers un script Ruby qui peut analyser l'étiquette / en-tête,. lvm-parser.rb)

Un module Python similaire pvdissectse trouve au bas de http://www.syslinux.org/wiki/index.php?title=Development/LVM_support .

Nathan
la source