DRBD: Trocar o Disco(HD) por Outro com Maior Capacidade – Parte 07

Atualmente temos, nos dois servidores, discos com apenas 500 MB. Iremos trocá-los por outros com 800MB. Logicamente que esse artigo lida com discos com pequenas capacidades mas os passo a passos são os mesmos se fossem discos maiores com terabytes.

Nosso Ambiente Atual

servidor 01

  • distro: Debian
  • hostname/nome: server01
  • placa rede enp0s3: 192.168.0.40
  • Bloco virtual: /dev/drbd1
  • disco a ser usado: /dev/sdb1 de 500MB
  • nome do resource: meuRes

 

servidor 02

  • distro: Debian
  • hostname/nome: server02
  • placa rede enp0s3: 192.168.0.41
  • Bloco virtual: /dev/drbd1
  • disco a ser usado: /dev/sdb1 de 500MB
  • nome do resource: meuRes

 

 

Antes de Executar a Troca de Disco é Bom Sabermos

 

  • Apesar do risco de perder dados ser pequeno, sempre tenha backup!
  • Ao planejar colocar HDs com maior capacidade devemos sempre trocar os HDs nos dois servidores. Se tivermos 100GB e colocarmos um novo disco de 200GB em apenas um dos servidores continuaremos com apenas 100GB.
  • Lembrando que nosso bloco virtual, o drbd1, está com o sistema de arquivos ext4. Então usaremos o comando “resize2fs“. Se estivéssemos usando outro sistema de arquivos usaríamos a ferramenta correspondente. Casa sistema de arquivos tem suas próprias ferramentas.
  • A ferramenta deve ser apontada para o bloco virtual(/dev/drbd1) e não para o disco(/dev/sdb1). Então, quando executarmos usaremos: “resize2fs /dev/drbd1“.

 

Trocando os Discos

Obs.: Estamos considerando que os novos discos não possuem nenhum dado importante! Eles estão limpos, sem nada.

Antes de tudo, Coloque os dois servidores em secundário para garantirmos que nenhum seja usado. Execute o comando abaixo nos dois servidores

sudo drbdadm secondary meuRes

Obs.: acima, troque meuRes pelo nome do seu resource.

 

Iremos começar a troca pelo Server02

No server02

  1. Veja com “drbdadm dstate meuRes” se os discos estão atualizados(upToDate).
    elder@server01:~$ sudo drbdadm dstate meuRes
    UpToDate/UpToDate

    Substitua meuRes pelo nome do seu resource.

  2. desligue o server02, retire o disco antigo e insira o novo. Obs.: Se seu servidor suporta hot swap(troca quente) não será necessário desligá-lo, apenas troque os discos.
  3. Com o novo disco de 800MB  inserido vamos executar “lsblk” para vermos qual rótulo
    elder@server02:~$ lsblk
    NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda         8:0    0   12G  0 disk 
    ├─sda7      8:7    0  287M  0 part /tmp
    └─sda8      8:8    0  6,9G  0 part /home
    sdb         8:16   0  800M  0 disk 
    

    Vemos acima que ele continua como “sdb”. Vamos criar uma partição

  4. Crie um partição. Use “sudo fdisk /dev/sdb” se seu disco for menor que 2TB ou “gparted /dev/sdb” se for maior que 2TB. Em nosso caso usaremos fdisk.
    elder@server02:~$ sudo fdisk /dev/sdc

    Dentro de fdisk,  digite:
    n e tecle enter várias vezes para confirmar todas;
    w para gravar as informações e sairmos do fdisk.

    Veja agora o resultado do fdisk

    elder@server02:~$ lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   12G  0 disk 
    ├─sda7   8:7    0  287M  0 part /tmp
    └─sda8   8:8    0  6,9G  0 part /home
    sdb      8:16   0  800M  0 disk 
    └─sdb1   8:17   0  799M  0 part
  5. Veja o status do disco
    elder@server02:~$ sudo drbdadm dstate meuRes
    Diskless/UpToDate

    no server02 o drbd está como diskless(sem disco)

  6. Vamos criar o meta-dados com “drbdadm create-md meuRes
    elder@server02:~$ sudo drbdadm create-md  meuRes
  7. Execute “drbdadm attach meuRes” para anexarmos o disco ao resource meuRes
    elder@server02:~$ sudo drbdadm attach  meuRes

    O disco começará uma sincronização e, depender do tamanho do disco, levará alguns minutos ou horas. Poderá acomanhar com o comando “cat /proc/drbd

terminada a sincronização estaremos prontos para fazermos a mesma coisa no server01

 

No server01

São as mesmas etapas acima. Aqui não explicarei muito.

  1. Antes de tudo, logicamente, veja se os discos estão como upToDate
    elder@server01:~$ sudo drbdadm dstate meuRes
    UpToDate/UpToDate
  2. desligue o server01, retire o disco menor e conecte o maior e ligue o server01. Veja o status dos discos
    elder@server01:~$ sudo drbdadm dstate meuRes
    Diskless/UpToDate
  3. Confirme se o novo disco está com o rótulo /dev/sdb e crie uma partição
    elder@server01:~$ lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   12G  0 disk 
    ├─sda1   8:1    0  2,7G  0 part /
    └─sda8   8:8    0  6,9G  0 part /home
    sdb      8:16   0  800M  0 disk
    elder@server01:~$ sudo fdisk /dev/sdb
    elder@server01:~$ lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   12G  0 disk 
    ├─sda1   8:1    0  2,7G  0 part /
    sdb      8:16   0  800M  0 disk 
    └─sdb1   8:17   0  799M  0 part
  4. Crie os metados
    elder@server01:~$ sudo drbdadm create-md meuRes
  5. Anexe o disco
elder@server01:~$ sudo drbdadm attach  meuRes

 

Veja a sincronização entre os discos em andamento com “cat /proc/drbd

elder@server01:~$ cat /proc/drbd 
version: 8.4.10 (api:1/proto:86-101)
srcversion: 473968AD625BA317874A57E 

 1: cs:SyncTarget ro:Secondary/Secondary ds:Inconsistent/UpToDate C r-----
    ns:0 nr:309608 dw:309608 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:508504
	[======>.............] sync'ed: 38.0% (508504/818112)K
	finish: 0:00:34 speed: 14,624 (11,056) want: 21,680 K/sec

 

 

O Alterando oTamanho do Bloco Virtual

Colocamos novos discos de 800MB. Os anteriores eram de 500MB apenas.  Apesar dos passos acima veremos que o novo tamanho ainda não é reconhecido. Deveremos ajustar o tamanho do bloco virtual usando a ferramenta apropriada ao seu sistema de arquivos. Como nosso sistema de arquivos é o ext4 usaremos a resize2fs.

 

Deixei o server01 como primário

elder@server01:~$ sudo drbdadm primary meuRes

Monte o volume

elder@server01:~$ sudo mount -t ext4 /dev/drbd1 /montagens/drbd1/

Veja o tamanho

elder@server01:~$ df  -h
Sist. Arq.      Tam. Usado Disp. Uso% Montado em
udev            480M     0  480M   0% /dev
....
/dev/drbd1      476M  2,3M  444M   1% /montagens/drbd1

 

Altere o tamanho o nosso bloco virtual. Isso basta ser feito apenas em um dos servidores. Em nosso caso, faremos no server01

elder@server01:~$ sudo resize2fs /dev/drbd1
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/drbd1 is mounted on /montagens/drbd1; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 7
The filesystem on /dev/drbd1 is now 818112 (1k) blocks long.

Vendo a alteração

elder@server01:~$ df  -h
Sist. Arq.      Tam. Usado Disp. Uso% Montado em
udev            480M     0  480M   0% /dev
....
/dev/drbd1      766M  2,5M  723M   1% /montagens/drbd1

O conteúdo dos discos antigos estão intactos:

lder@server01:~$ ls /montagens/drbd1/
test01e.txt  teste.txt

 

Conclusão

Trocamos discos antigos por novos e com maior capacidade para armazenamento de dados.

Lembre-se de sempre ter backup dos seus dados.

Um coisa importante a falar repetidamente é nunca usarmos o a ferramenta de um sistema de arquivos em outro, por exemplo, nunca usar resize2fs no zfs. A ferramenta resize2fs é do ext4 e não xfs.

Sempre use, aponte, resize2fs para o bloco virtual e não para o disco na camada inferior. Exemplo, o correto é: “resize2fs   /etc/drbd1”  e não “resize2fs     /etc/sdb1

Se estivéssemos usando zfs o comando que usaríamos seria:  zpool online [-e] pool device…

Digamos que temos um pool chamado “meuPool” e está usando drbd1. Então a estrutura acima ficaria:

zpool online -e meuPool drbd1

Usamos o “-e” para expandir e, assim, todo espaço não usado dentro de drbd1 passa a ser incorporado em meuPool.

Se usássemos xfs usaríamos “xfs_growsfs  ponto_de_montagem”

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *