Agora que temos um dispositivo DRBD funcionando, precisamos montar seu sistema de arquivos.
Quando iniciamos um resource do DRBD, foi criado o volume /dev/drbd1 e usamos mkfs.ext4 para colocar o sistema de arquivos ext4 nele. Veja: DRBD: Iniciando o Resource pela Primeira Vez – Parte 007
Também iremos precisar informar ao cluster onde ele o Sistema de Arquivos ext4 do volume DRBD pode ser localizado(somente no DRBD Primário) e quando é permitido iniciar(após a promoção do Primário).
Vamos fazer diferente agora ao criar o resource. Em vez de dizer explicitamente que queremos o script ocf:heartbeat:Filesystem, vamos apenas pedir Filesystem. Podemos fazer isso porque sabemos que há apenas um script de recurso chamado Filesystem disponível para o pacemaker e que o pcs é inteligente o suficiente para preencher ou autocompletar a parte ocf:heartbeat: para nós corretamente na configuração. Se houvesse vários scripts de sistema de arquivos de diferentes provedores OCF, precisaríamos especificar exatamente o que queríamos.
Assim como fizemos no outro artigo, não iremos executar os comandos diretamente. Iremos alimentar um arquivo com as alterações e só depois aplicar todas de vez.
#1 crie o arquivo fs_cfg. Execute pcs cluster cib fs_cfg
[root@oracle86 ~]# pcs cluster cib fs_cfg
Veja o arquivo criado. Dentro dele está toda a configuração atual em formato XML. Vamos acrescentar as nossas configurações.
[root@oracle86 ~]# ls anaconda-ks.cfg download drbd_cfg fs_cfg
#2 Agora vamos alimentar o arquivo fs_cfg usando pcs -f. Iremos chamar o resource de WebFS já que estamos falando de um apache(servidor web). Iremos também falar que queremos montar o volume /dev/drbd1 na pasta /pastaDRBD
O diretório /pastaDRBD já deverá existir. Execute mkdir /pastaDRBD
[root@oracle86 ~]# mkdir /pastaDRBD
Agora alimente o arquivo fs_cfg. Execute pcs -f fs_cfg resource create WebFS Filesystem device="/dev/drbd1" directory="/pastaDRBD" fstype="ext4"
Esse é o comando mais o resultado:
[root@oracle86 ~]# pcs -f fs_cfg resource create WebFS Filesystem device="/dev/drbd1" directory="/pastaDRBD" fstype="ext4" Assumed agent name 'ocf:heartbeat:Filesystem' (deduced from 'Filesystem')
#3 vamos colocar um colocation para colocarmos WebFS com WebDataClone
[root@oracle86 ~]# pcs -f fs_cfg constraint colocation add WebFS with WebData-clone INFINITY with-rsc-role=Master
Aqui, o WebData-clone é o nome do resource DRBD que vemos quando executamos pcs status.
#4 agora vamos definir um constraint order para para que WebData-clone inicie antes de WebFS. Execute pcs -f fs_cfg constraint order promote WebData-clone then start WebFS
Veja o comando mais o resultado
[root@oracle86 ~]# pcs -f fs_cfg constraint order promote WebData-clone then start WebFS Adding WebData-clone WebFS (kind: Mandatory) (Options: first-action=promote then-action=start)
#5 Também precisamos informar ao cluster que o Apache precisa ser executado na mesma máquina que o sistema de arquivos ext4 e que ele deve estar ativo antes que o Apache possa ser iniciado.
Alimente o arquivo fs_cg com o comando pcs -f fs_cfg constraint colocation add WebSite with WebFS INFINITY
[root@oracle86 ~]# pcs -f fs_cfg constraint colocation add WebSite with WebFS INFINITY
#6 Também precisaremos definir a ordem de inicialização; Irá iniciar o sistema de arquivos WebFS e só depois o servidor apache.
Execute o comando pcs -f fs_cfg constraint order WebFS then WebSite
[root@oracle86 ~]# pcs -f fs_cfg constraint order WebFS then WebSite Adding WebFS WebSite (kind: Mandatory) (Options: first-action=start then-action=start)
#7 revise toda a alimentação do arquivo fs_cfg. Execute pcs -f fs_cfg constraint
[root@oracle86 ~]# pcs -f fs_cfg constraint order WebFS then WebSite Adding WebFS WebSite (kind: Mandatory) (Options: first-action=start then-action=start) [root@oracle86 ~]# pcs -f fs_cfg constraint [root@oracle86 ~]# pcs -f fs_cfg constraint Location Constraints: Resource: WebSite Enabled on: Node: oracle86 (score:50) Node: oracle86 (score:INFINITY) (role:Started) Ordering Constraints: start ClusterIP then start WebSite (kind:Mandatory) promote WebData-clone then start WebFS (kind:Mandatory) start WebFS then start WebSite (kind:Mandatory) Colocation Constraints: WebSite with ClusterIP (score:INFINITY) WebFS with WebData-clone (score:INFINITY) (with-rsc-role:Master) WebSite with WebFS (score:INFINITY) Ticket Constraints:
#8 Depois de revisar a nova configuração, vamos jogar tudo que está dentro do arquivo fs_cfg para dentro do cib. Execute pcs cluster cib-push fs_cfg --config
[root@oracle86 ~]# pcs cluster cib-push fs_cfg --config CIB updated
#9 veja o sistema de arquivos montado
[root@oracle86 ~]# df -h Sist. Arq. Tam. Usado Disp. Uso% Montado em ..... /dev/drbd1 2,0G 24K 1,9G 1% /pastaDRBD
#10 execute um pcs status
[root@oracle86 ~]# pcs status Cluster name: meuCluster ..... Status of pacemakerd: 'Pacemaker is running' (last updated 2023-03-14 08:18:12 -04:00) ..... Node List: * Online: [ oracle86 oracle86B ] Full List of Resources: * ClusterIP (ocf::heartbeat:IPaddr2): Started oracle86 * WebSite (ocf::heartbeat:apache): Started oracle86 * Clone Set: WebData-clone [WebData] (promotable): * Masters: [ oracle86 ] * Slaves: [ oracle86B ] * WebFS (ocf::heartbeat:Filesystem): Started oracle86 .....