Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.5. Criando um Volume Lógico LVM Espelhado em um Cluster

A criação de um volume lógico LVM espelhado em um cluster requer os mesmos comandos e procedimentos usados ao criar um volume lógico LVM espelhado em um nó único. No entanto, para criar um volume LVM espelhado em um cluster, este e sua infraestrutura de espelho devem estar em execução, o cluster deve estar em quorum e o tipo de bloqueio no arquivo lvm.conf deve estar definido corretamente para permitir o bloqueio de cluster, tanto diretamente quanto por meio do comando lvmconf como descrito na Seção 3.1, “Criando Volumes LVM em um Cluster”.
O procedimento a seguir cria um volume LVM espelhado em um cluster. Primeiro o procedimento verifica se os serviços em cluster estão instalados e em execução, então o procedimento cria um volume espelhado.
  1. Para criar um volume lógico espelhado compartilhado por todos os nós em um cluster, o tipo de bloqueio deve ser definido corretamente no arquivo lvm.conf em todos os nós do cluster. Por padrão, o tipo de bloqueio é definido para local. Para mudar isto, execute o seguinte comando em cada nó do cluster para habilitar o bloqueio de cluster:
    # /sbin/lvmconf --enable-cluster
  2. Para criar um volume lógico, a infraestrutura deve estar ativa e em execução em todos os nós do cluster. O exemplo a seguir verifica se o daemon clvmd está em execução no nó do qual ele foi emitido:
    [root@doc-07 ~]# ps auxw | grep clvmd
    root     17642  0.0  0.1 32164 1072 ?        Ssl  Apr06   0:00 clvmd -T20 -t 90
    
    O comando a seguir demonstra a visão local do estado do cluster:
    [root@example-01 ~]# cman_tool services
    fence domain
    member count  3
    victim count  0
    victim now    0
    master nodeid 2
    wait state    none
    members       1 2 3
    
    dlm lockspaces
    name          clvmd
    id            0x4104eefa
    flags         0x00000000
    change        member 3 joined 1 remove 0 failed 0 seq 1,1
    members       1 2 3
    
  3. Certifique-se de que o pacote cmirror está instalado.
  4. Inicie o serviço cmirrord.
    [root@hexample-01 ~]# service cmirrord start
    Starting cmirrord:                                         [  OK  ]
    
  5. Crie o espelho. O primeiro passo é criar os volumes físicos. Os comandos a seguir criam três volumes físicos. Dois destes volumes físicos serão usados para pernas de espelho e o terceiro conterá um log do espelho.
    [root@doc-07 ~]# pvcreate /dev/xvdb1
      Physical volume "/dev/xvdb1" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdb2
      Physical volume "/dev/xvdb2" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdc1
      Physical volume "/dev/xvdc1" successfully created
    
  6. Crie um grupo de volume. Este exemplo cria um grupo de volume vg001 que consiste em três volumes físicos que foram criados nos passos anteriores.
    [root@doc-07 ~]# vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
      Clustered volume group "vg001" successfully created
    
    Note que o resultado do comando vgcreate indica que o grupo de volume está em cluster. Você pode verificar se o grupo de volume está em cluster com o comando vgs, o qual irá exibir os recursos do grupo de volume. Se um grupo de volume estiver em cluster, este será exibido com um atributo c.
    [root@doc-07 ~]# vgs vg001
      VG       #PV #LV #SN Attr   VSize  VFree
      vg001      3   0   0 wz--nc 68.97G 68.97G
    
  7. Crie um volume lógico espelhado. Este exemplo cria o volume lógico mirrorlv de um grupo de volume vg001. Este volume possui uma perna de espelho. Este exemplo especifica quais extensões de volume físico serão usadas para o volume lógico.
    [root@doc-07 ~]# lvcreate -l 1000 -m1 vg001 -n mirrorlv /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0
      Logical volume "mirrorlv" created
    
    Você pode usar o comando lvs para exibir o progresso da criação do espelho. O exemplo a seguir exibe se o espelho está sincronizado em 47% e depois sincronizado em 91% e depois 100% quando o espelho for concluído.
    [root@doc-07 log]# lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     47.00
    [root@doc-07 log]# lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     91.00   
    [root@doc-07 ~]#  lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog    100.00
    
    A conclusão do espelho é anotada no log do sistema:
    May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events
    May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
    
  8. Você pode usar lvs com as opções-o +devices para exibir a configuração do espelho, incluindo os dispositivos que criam as pernas do espelho. Você pode ver que o volume lógico neste exemplo é composto por duas imagens lineares e um log.
    [root@doc-07 ~]# lvs -a -o +devices
      LV                  VG         Attr   LSize  Origin Snap%  Move Log           Copy%  Convert Devices                                  
      mirrorlv            vg001      mwi-a-  3.91G                    mirrorlv_mlog 100.00         mirrorlv_mimage_0(0),mirrorlv_mimage_1(0)
      [mirrorlv_mimage_0] vg001      iwi-ao  3.91G                                                 /dev/xvdb1(1)                            
      [mirrorlv_mimage_1] vg001      iwi-ao  3.91G                                                 /dev/xvdb2(1)                            
      [mirrorlv_mlog]     vg001      lwi-ao  4.00M                                                 /dev/xvdc1(0)
    
    Você pode usar a opção seg_pe_ranges do lvs para exibir o layout dos dados. Você pode usar esta opção para verificar se seu layout está redundante adequadamente. O resultado deste comando exibe a classe PE no mesmo formato que os comandos lvcreate e lvresize recebem como entrada.
    [root@doc-07 ~]# lvs -a -o +seg_pe_ranges --segments
      PE Ranges                                      
      mirrorlv_mimage_0:0-999 mirrorlv_mimage_1:0-999
      /dev/xvdb1:1-1000                              
      /dev/xvdb2:1-1000                              
      /dev/xvdc1:0-0
    

Nota

Para informações sobre recuperação da falha de uma das pernas de um volume espelhado, veja a Seção 6.3, “Recuperação de Falha do Espelho LVM.”.