Configurando RAID1 com um volume físico ativo (extensão Debian 9)

Configurando RAID1 com um volume físico ativo (extensão Debian 9)

Tenho tentado seguir o seguinte guia para configurar o RAID1: https://www.howtoforge.com/set-up-raid1-on-a-running-lvm-system-debian-etch

Atualmente tenho dois discos rígidos de 6 TB, criei um volume físico diretamente em um deles, o outro é novo e intacto.

sdc                8:32   0   5.5T  0 disk
├─DATA-user_data 254:0    0     4T  0 lvm
└─DATA-app_data  254:1    0     1T  0 lvm
sdd                8:48   0   5.5T  0 disk

O sdcvolume físico possui um único grupo de volumes contendo dois volumes lógicos

root@server:# pvscan
  PV /dev/sdc   VG DATA            lvm2 [5.46 TiB / 469.03 GiB free]
  Total: 1 [5.46 TiB] / in use: 1 [5.46 TiB] / in no VG: 0 [0   ]
root@server:# vgscan
  Reading volume groups from cache.
  Found volume group "DATA" using metadata type lvm2
root@server:# lvscan
  ACTIVE            '/dev/DATA/user_data' [4.00 TiB] inherit
  ACTIVE            '/dev/DATA/app_data' [1.00 TiB] inherit

Cheguei ao ponto do guia em que preciso copiar a tabela de partições de sdcpara sdd, mas é claro que isso não é possível porque sdcnão possui uma tabela de partições.

Como posso configurar o RAID1 com sdce sdd?

Responder1

Você pode criar volumes espelhados adicionando sddao VG

pvcreate /dev/sdd
vgextend DATA /dev/sdd

e depois altere o número de cópias de cada LV

lvconvert -m1 DATA/user_data
lvconvert -m1 DATA/app_data

(1 significa duas cópias de dados, 0 significa uma cópia) Você pode verificar o progresso do espelhamento por comando como:

lvs -a -o name,copy_percent,devices DATA

Responder2

Bem opreguiçosoA opção seria apenas aceitar a configuração atual com calma, adicionar /dev/sddao LVM como está e deixar o próprio LVM cuidar do RAID para você. Isso significa mdadmque não está envolvido (pelo menos não diretamente). Veja a resposta de Romeu, é boa.

Se você quiser usar o mdadm, embora não seja impossível fazer isso tardiamente (usando os metadados da versão 1.0 no final do disco), oa maneira certafazer isso seria particionar /dev/sdd, colocar mdadmRAID na partição, colocar LVM no RAID e migrar os dados. E depois de confirmar que a cópia está boa, você pode dissolver /dev/sdc, particioná-la da mesma maneira e adicioná-la ao RAID.

Aproximadamente:

# partition step
parted /dev/sdd
(parted) mklabel gpt
(parted) mkpart md0_0 1MiB -1MiB
(parted) print free
(parted) quit

# mdadm step
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdd1 missing
mdadm --detail --scan > /etc/mdadm.conf

# lvm step (rsync variant, two independent copies)
vgcreate RAIDDATA /dev/md0
lvcreate ...
mkfs ...
mount ...
# LV structure and filesystems as you see fit, then copy everything over
rsync -a /mnt/DATA/. /mnt/RAIDDATA/.

# alternative lvm step (pvmove variant, single copy)
vgextend DATA /dev/md0
pvmove /dev/sdc
vgreduce DATA /dev/sdc

A migração dos arquivos rsyncdeve ser mais rápida e segura (se algo der errado, a cópia original ainda estará lá). Ao mesmo tempo, é propenso a erros do usuário (difícil dizer se rsyncperdeu alguma coisa).

A migração dos dados pvmoveé mais lenta e arriscada (tudo dá errado, a cópia original também desaparece), mas não perderá nada (incluindo arquivos excluídos e outros).

Neste ponto você deseja atualizar os UUIDs (se você usou mkfs, rsync) em fstab/grub e atualizar o initramfs. Reinicie e verifique se tudo está em ordem e se /dev/sdcnão está mais em uso. Então você pode adicioná-lo ao RAID.

# partition step
parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart md0_1 1MiB -1MiB
(parted) print free
(parted) quit

# raid resync step
mdadm /dev/md0 --add /dev/sdc1
watch -n 60 cat /proc/mdstat

E é isso...

Resumindo, você teria a configuração que a maioria das pessoas espera (disco rígido, partições, raid, lvm, sistemas de arquivos). Você também pode adicionar criptografia enquanto faz isso. ;-)

informação relacionada