Onde o LVM armazena sua configuração?

17

Estou tentando entender como / onde o LVM armazena seus dados de configuração.

  • Grava pvcreate /dev/sdbmetadados /dev/sdb? se sim, o que está escrito?
  • Onde vgcreate data /dev/sdb /dev/sdcarmazena a configuração do grupo de volumes?
  • Onde o LVM armazena o mapeamento entre extensões lógicas e físicas?
  • Existe alguma configuração específica da máquina em uma configuração do LVM?
  • Suponha que eu tenha uma máquina com 2 discos configurados em um volume lógico. Posso retirar esses discos da máquina e colocá-los em outra máquina e esperar que o volume lógico funcione na nova máquina?
ams
fonte

Respostas:

10

O pvcreate / dev / sdb grava metadados em / dev / sdb? se sim, o que está escrito?

Se você passar um -vvsinalizador para o pvcreatecomando, ele ficará mais detalhado e você verá que o pvcreate cria uma área de metadados no disco.

 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.

O que é gravado na área de metadados?

Não conheço um comando que você possa usar para visualizar os metadados, mas o comando vgcfgbackuppode ser usado para fazer backup dos metadados e você pode abrir um arquivo de backup criado para visualizá-los.

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

O /path/of/your/choice/filecriado pelo comando acima conterá os metadados PV, VG e LVM. Uma das seções será semelhante abaixo:

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
                }
        }

Eu sugiro que você dê uma olhada no conteúdo do diretório /etc/lvme na saída do comandolvm dumpconfig

Suponha que eu tenha uma máquina com 2 discos configurados em um volume lógico. Posso retirar esses discos da máquina e colocá-los em outra máquina e esperar que o volume lógico funcione na nova máquina?

Sim você pode.

Você pode migrar grupos de volumes para outro host. Embora não seja exatamente plug-and-play, o procedimento para fazer isso é bastante direto. Existem dezenas de tutoriais disponíveis online sobre como fazer isso.

Esse encadeamento de falha do servidor discute sobre a movimentação de uma partição LVM para outro host usando o ddcomando

Sree
fonte
14

Grava pvcreate /dev/sdbmetadados /dev/sdb? se sim, o que está escrito?

Sim, mas não são muito mais do que alguns dados de cabeçalho e identificação para marcar o dispositivo de bloco como um PV LVM. Os metadados "reais" vêm quando você cria grupos de volumes.

Onde vgcreate data /dev/sdb /dev/sdcarmazena a configuração do grupo de volumes?

Em cada volume físico que faz parte do grupo de volumes. Por padrão, uma cópia idêntica dos metadados é mantida em todas as áreas de metadados em todos os volumes físicos dentro do grupo de volumes. Os metadados do grupo de volumes LVM são pequenos e armazenados como ASCII.

Onde o LVM armazena o mapeamento entre extensões lógicas e físicas?

Isso faz parte dos metadados do grupo de volumes acima mencionados.

Existe alguma configuração específica da máquina em uma configuração do LVM?

Não. Os PVs que fazem parte de um VG são encontrados e montados usando identificadores exclusivos atribuídos no momento da criação do PV.

Suponha que eu tenha uma máquina com 2 discos configurados em um volume lógico. Posso retirar esses discos da máquina e colocá-los em outra máquina e esperar que o volume lógico funcione na nova máquina?

Sim. Se todos os PVs que compõem o VG estiverem presentes, os LVs nesse VG funcionarão.

Celada
fonte
3
  • Grava pvcreate /dev/sdbmetadados /dev/sdb? se sim, o que está escrito?
  • Onde vgcreate data /dev/sdb /dev/sdcarmazena a configuração do grupo de volumes?

pvcreatecria um "rótulo" e um "cabeçalho" para o PV e também aloca espaço para metadados no volume (conforme especificado pela --[pv]metadataopção). O cabeçalho é uma estrutura de dados binários que inclui ponteiros para a (s) área (s) de metadados nesse PV.

O vgcreatecomando armazena uma descrição textual do estado atual do grupo de volumes nas áreas de metadados previamente alocadas nos PVs associados (conforme controlado pela --[vg]metadatacopiesopção etc.). Essas são as descrições com backup do vgcfgbackupcomando e, na maioria dos casos, são os metadados que alguém estaria interessado em examinar.

Para as informações mais obscuras do rótulo / cabeçalho do PV: uma descrição geral pode ser encontrada em LVM Internals , http://mo.morsi.org/blog/node/392 (que inclui um link para um script Ruby que pode analisar o rótulo / header lvm-parser.rb,.)

Um módulo Python semelhante pvdissect, é encontrado na parte inferior de http://www.syslinux.org/wiki/index.php?title=Development/LVM_support .

Nathan
fonte