Onde o LVM armazena sua configuração?

15

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

  • pvcreate /dev/sdb escreve metadados em /dev/sdb ? se assim for o que está escrito?
  • Onde vgcreate data /dev/sdb /dev/sdc armazena 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 LVM?
  • Suponha que eu tenha uma máquina com 2 discos configurados em um volume lógico. Posso simplesmente remover esses discos da máquina e colocá-los em outra máquina e esperar que o volume lógico funcione na nova máquina?
por ams 16.02.2015 / 04:19

3 respostas

9

Does pvcreate /dev/sdb write any metadata to /dev/sdb? if so what is written?

Se você passar um -vv para o comando pvcreate , ele tornará o comando 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.

What is written to the metadata area?

Não tenho conhecimento de um comando que você possa usar para visualizar os metadados, mas o comando vgcfgbackup pode ser usado para fazer backup dos metadados e é possível abrir um arquivo de backup criado para exibir os metadados

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

O /path/of/your/choice/file criado pelo comando acima conterá os metadados PV, VG e LVM. Uma das seções será exibida 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
                }
        }

Sugiro que você dê uma olhada no conteúdo do diretório /etc/lvm e na saída do comando lvm dumpconfig

Suppose I have machine with 2 disks configured into a logical volume can I just take those disks out the machine and put them in another machine and expect that the logical volume will work in the new machine?

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 on-line como fazer isso.

Este thread de falha de servidor discute sobre como mover uma partição LVM para outro host usando o comando dd .

    
por 16.02.2015 / 06:26
13

Does pvcreate /dev/sdb write any metadata to /dev/sdb? if so what is written?

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

Where does vgcreate data /dev/sdb /dev/sdc store configuration of the volume group?

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 cada volume físico dentro do grupo de volumes. Os metadados do grupo de volumes LVM são pequenos e armazenados como ASCII.

Where does LVM store the mapping between logical extents and physical extents?

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

Is there any machine specific configuration in a LVM configuration?

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.

Suppose I have machine with 2 disks configured into a logical volume can I just take those disks out the machine and put them in another machine and expect that the logical volume will work in the new machine?

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

    
por 16.02.2015 / 04:34
3
  • Does pvcreate /dev/sdb write any metadata to /dev/sdb? if so what is written?
  • Where does vgcreate data /dev/sdb /dev/sdc store configuration of the volume group?

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

O comando vgcreate armazena uma descrição textual do estado atual do grupo de volumes nas áreas de metadados anteriormente alocadas nos PVs associados (conforme controlado pela opção --[vg]metadatacopies , etc.). Essas são as descrições cujo backup é feito pelo comando vgcfgbackup e, na maioria dos casos, são os metadados que seria interessante examinar.

Para informações mais obscuras de rótulos / cabeçalhos de PV: uma descrição geral pode ser encontrada em LVM Internals , link (que inclui um link para um script Ruby que pode analisar o rótulo / cabeçalho, lvm-parser.rb .)

Um módulo Python similar, pvdissect , é encontrado na parte inferior do link .

    
por 26.02.2017 / 01:37

Tags