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.
- 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
- 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 90O 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 - Certifique-se de que o pacote
cmirror
está instalado. - Inicie o serviço
cmirrord
.[root@hexample-01 ~]#
service cmirrord start
Starting cmirrord: [ OK ] - 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 - 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 createdNote que o resultado do comandovgcreate
indica que o grupo de volume está em cluster. Você pode verificar se o grupo de volume está em cluster com o comandovgs
, 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 - Crie um volume lógico espelhado. Este exemplo cria o volume lógico
mirrorlv
de um grupo de volumevg001
. 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" createdVocê pode usar o comandolvs
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.00A 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
- 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çãoseg_pe_ranges
dolvs
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 comandoslvcreate
elvresize
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.”.