Capítulo 52. Sistemas de arquivo GFS2 em um cluster
Esta seção fornece:
- Um procedimento para criar um cluster de Pacemaker que inclui sistemas de arquivo GFS2
- Um procedimento para migrar os volumes lógicos RHEL 7 que contêm sistemas de arquivo GFS2 para um cluster RHEL 8
52.1. Configuração de um sistema de arquivo GFS2 em um cluster Copiar o linkLink copiado para a área de transferência!
Este procedimento é um esboço dos passos necessários para a criação de um cluster Pacemaker que inclui sistemas de arquivos GFS2. Este exemplo cria três sistemas de arquivos GFS2 em três volumes lógicos.
Como pré-requisito para este procedimento, você deve instalar e iniciar o software de cluster em todos os nós e criar um cluster básico de dois nós. Você também deve configurar a vedação para o cluster. Para informações sobre como criar um cluster Pacemaker e configurar a vedação para o cluster, veja Criar um cluster Red Hat High-Availability com Pacemaker.
Procedimento
Em ambos os nós do cluster, instalar os pacotes
lvm2-lockd
,gfs2-utils
, edlm
. O pacotelvm2-lockd
faz parte do canal AppStream e os pacotesgfs2-utils
edlm
fazem parte do canal de Armazenamento Resiliente.yum install lvm2-lockd gfs2-utils dlm
# yum install lvm2-lockd gfs2-utils dlm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Definir o parâmetro global Pacemaker
no_quorum_policy
parafreeze
.NotaPor padrão, o valor de
no-quorum-policy
está definido parastop
, indicando que uma vez perdido o quorum, todos os recursos na partição restante serão imediatamente parados. Normalmente este padrão é a opção mais segura e ótima, mas ao contrário da maioria dos recursos, o GFS2 requer quorum para funcionar. Quando o quorum é perdido, tanto as aplicações que utilizam os suportes GFS2 como o próprio suporte GFS2 não podem ser parados corretamente. Qualquer tentativa de parar estes recursos sem quorum falhará, o que resultará no final em todo o aglomerado ser cercado toda vez que o quorum for perdido.Para resolver esta situação, defina
no-quorum-policy
parafreeze
quando o GFS2 estiver em uso. Isto significa que quando o quorum for perdido, a partição restante não fará nada até que o quorum seja recuperado.pcs property set no-quorum-policy=freeze
# pcs property set no-quorum-policy=freeze
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar um recurso em
dlm
. Esta é uma dependência necessária para configurar um sistema de arquivos GFS2 em um cluster. Este exemplo cria o recursodlm
como parte de um grupo de recursos chamadolocking
.pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fence
[root@z1 ~]# pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fence
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clonar o grupo de recursos
locking
para que o grupo de recursos possa estar ativo nos dois nós do cluster.pcs resource clone locking interleave=true
[root@z1 ~]# pcs resource clone locking interleave=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Estabelecer um recurso
lvmlockd
como parte do grupolocking
.pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
[root@z1 ~]# pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verifique o status do agrupamento para garantir que o grupo de recursos
locking
tenha começado em ambos os nós do agrupamento.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verifique se o daemon
lvmlockd
está rodando nos dois nós do cluster.ps -ef | grep lvmlockd ps -ef | grep lvmlockd
[root@z1 ~]# ps -ef | grep lvmlockd root 12257 1 0 17:45 ? 00:00:00 lvmlockd -p /run/lvmlockd.pid -A 1 -g dlm [root@z2 ~]# ps -ef | grep lvmlockd root 12270 1 0 17:45 ? 00:00:00 lvmlockd -p /run/lvmlockd.pid -A 1 -g dlm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Em um nó do agrupamento, criar dois grupos de volume compartilhado. Um grupo de volume conterá dois sistemas de arquivos GFS2 e o outro grupo de volume conterá um sistema de arquivos GFS2.
O seguinte comando cria o grupo de volume compartilhado
shared_vg1
em/dev/vdb
.vgcreate --shared shared_vg1 /dev/vdb
[root@z1 ~]# vgcreate --shared shared_vg1 /dev/vdb Physical volume "/dev/vdb" successfully created. Volume group "shared_vg1" successfully created VG shared_vg1 starting dlm lockspace Starting locking. Waiting until locks are ready...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow O seguinte comando cria o grupo de volume compartilhado
shared_vg2
em/dev/vdc
.vgcreate --shared shared_vg2 /dev/vdc
[root@z1 ~]# vgcreate --shared shared_vg2 /dev/vdc Physical volume "/dev/vdc" successfully created. Volume group "shared_vg2" successfully created VG shared_vg2 starting dlm lockspace Starting locking. Waiting until locks are ready...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow No segundo nó do agrupamento, inicie o gerenciador de fechaduras para cada um dos grupos de volume compartilhado.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Em um nó do cluster, criar os volumes lógicos compartilhados e formatar os volumes com um sistema de arquivos GFS2. É necessário um diário para cada nó que monta o sistema de arquivo. Certifique-se de criar periódicos suficientes para cada um dos nós de seu cluster.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie um recurso
LVM-activate
para cada volume lógico para ativar automaticamente esse volume lógico em todos os nós.Criar um recurso
LVM-activate
chamadosharedlv1
para o volume lógicoshared_lv1
no grupo de volumeshared_vg1
. Este comando também cria o grupo de recursosshared_vg1
que inclui o recurso. Neste exemplo, o grupo de recursos tem o mesmo nome do grupo de volume compartilhado que inclui o volume lógico.pcs resource create sharedlv1 --group shared_vg1 ocf:heartbeat:LVM-activate lvname=shared_lv1 vgname=shared_vg1 activation_mode=shared vg_access_mode=lvmlockd
[root@z1 ~]# pcs resource create sharedlv1 --group shared_vg1 ocf:heartbeat:LVM-activate lvname=shared_lv1 vgname=shared_vg1 activation_mode=shared vg_access_mode=lvmlockd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um recurso
LVM-activate
chamadosharedlv2
para o volume lógicoshared_lv2
no grupo de volumeshared_vg1
. Este recurso também fará parte do grupo de recursosshared_vg1
.pcs resource create sharedlv2 --group shared_vg1 ocf:heartbeat:LVM-activate lvname=shared_lv2 vgname=shared_vg1 activation_mode=shared vg_access_mode=lvmlockd
[root@z1 ~]# pcs resource create sharedlv2 --group shared_vg1 ocf:heartbeat:LVM-activate lvname=shared_lv2 vgname=shared_vg1 activation_mode=shared vg_access_mode=lvmlockd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um recurso
LVM-activate
chamadosharedlv3
para o volume lógicoshared_lv1
no grupo de volumeshared_vg2
. Este comando também cria o grupo de recursosshared_vg2
que inclui o recurso.pcs resource create sharedlv3 --group shared_vg2 ocf:heartbeat:LVM-activate lvname=shared_lv1 vgname=shared_vg2 activation_mode=shared vg_access_mode=lvmlockd
[root@z1 ~]# pcs resource create sharedlv3 --group shared_vg2 ocf:heartbeat:LVM-activate lvname=shared_lv1 vgname=shared_vg2 activation_mode=shared vg_access_mode=lvmlockd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Clonar os dois novos grupos de recursos.
pcs resource clone shared_vg1 interleave=true pcs resource clone shared_vg2 interleave=true
[root@z1 ~]# pcs resource clone shared_vg1 interleave=true [root@z1 ~]# pcs resource clone shared_vg2 interleave=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar as restrições de pedidos para garantir que o grupo de recursos
locking
que inclui os recursosdlm
elvmlockd
comece primeiro.pcs constraint order start locking-clone then shared_vg1-clone pcs constraint order start locking-clone then shared_vg2-clone
[root@z1 ~]# pcs constraint order start locking-clone then shared_vg1-clone Adding locking-clone shared_vg1-clone (kind: Mandatory) (Options: first-action=start then-action=start) [root@z1 ~]# pcs constraint order start locking-clone then shared_vg2-clone Adding locking-clone shared_vg2-clone (kind: Mandatory) (Options: first-action=start then-action=start)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar as restrições de colocação para garantir que os grupos de recursos
vg1
evg2
comecem no mesmo nó que o grupo de recursoslocking
.pcs constraint colocation add shared_vg1-clone with locking-clone pcs constraint colocation add shared_vg2-clone with locking-clone
[root@z1 ~]# pcs constraint colocation add shared_vg1-clone with locking-clone [root@z1 ~]# pcs constraint colocation add shared_vg2-clone with locking-clone
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Em ambos os nós do agrupamento, verificar se os volumes lógicos estão ativos. Pode haver um atraso de alguns segundos.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um recurso de sistema de arquivo para montar automaticamente cada sistema de arquivo GFS2 em todos os nós.
Você não deve adicionar o sistema de arquivo ao arquivo
/etc/fstab
porque ele será gerenciado como um recurso de cluster Pacemaker. As opções de montagem podem ser especificadas como parte da configuração do recurso comoptions=options
. Execute o comandopcs resource describe Filesystem
para opções de configuração completa.Os seguintes comandos criam os recursos do sistema de arquivos. Estes comandos adicionam cada recurso ao grupo de recursos que inclui o recurso de volume lógico para aquele sistema de arquivo.
pcs resource create sharedfs1 --group shared_vg1 ocf:heartbeat:Filesystem device="/dev/shared_vg1/shared_lv1" directory="/mnt/gfs1" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence pcs resource create sharedfs2 --group shared_vg1 ocf:heartbeat:Filesystem device="/dev/shared_vg1/shared_lv2" directory="/mnt/gfs2" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence pcs resource create sharedfs3 --group shared_vg2 ocf:heartbeat:Filesystem device="/dev/shared_vg2/shared_lv1" directory="/mnt/gfs3" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence
[root@z1 ~]# pcs resource create sharedfs1 --group shared_vg1 ocf:heartbeat:Filesystem device="/dev/shared_vg1/shared_lv1" directory="/mnt/gfs1" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence [root@z1 ~]# pcs resource create sharedfs2 --group shared_vg1 ocf:heartbeat:Filesystem device="/dev/shared_vg1/shared_lv2" directory="/mnt/gfs2" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence [root@z1 ~]# pcs resource create sharedfs3 --group shared_vg2 ocf:heartbeat:Filesystem device="/dev/shared_vg2/shared_lv1" directory="/mnt/gfs3" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verificar se os sistemas de arquivo GFS2 estão montados em ambos os nós do cluster.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verifique o status do agrupamento.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
- Para informações sobre a configuração do armazenamento em bloco compartilhado para um cluster Red Hat High Availability com discos compartilhados Microsoft Azure, consulte Configuração do armazenamento em bloco compartilhado.
- Para informações sobre a configuração do armazenamento em bloco compartilhado para um cluster Red Hat High Availability com volumes Amazon EBS Multi-Attach, consulte Configuração do armazenamento em bloco compartilhado.
- Para informações sobre como configurar o armazenamento em blocos compartilhados para um cluster de alta disponibilidade da Red Hat em Alibaba Cloud, veja Configurando o armazenamento em blocos compartilhados para um cluster de alta disponibilidade da Red Hat em Alibaba Cloud.