Eu uso minha máquina Ubuntu como um servidor de arquivos para clientes Windows / Linux / Mac usando um compartilhamento Samba. Eu preciso que ele seja facilmente expansível adicionando mais discos rígidos sem ter que mover nenhum dado para frente e para trás.
Foi assim que eu fiz até agora. Eu adicionei com sucesso um quarto disco rígido. Agora seria bom saber que é assim que deve ser feito? O que estou fazendo errado ou o que eu poderia fazer melhor?
Criando a matriz inicial de 3 unidades
Eu comecei com três drives vazios: / dev / sdb, / dev / sdc e / dev / sdd.
Primeiro, criei partições vazias para todas as unidades:
$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc
Quando partições RAID vazias foram criadas para todos os três discos, criei um array RAID5:
$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
Agora, o array RAID5 é criado e já está sendo construído. Leva tempo, mas você pode prosseguir com a criação de um novo volume físico do LVM2:
$ pvcreate /dev/md0
Agora vamos criar um novo grupo de volumes:
$ vgcreate vd_raid /dev/md0
Em seguida, precisamos criar um novo volume lógico dentro desse grupo de volumes. Primeiro, precisamos descobrir o tamanho exato do grupo de volumes criado:
$ vgdisplay vg_raid
O tamanho pode ser visto na linha que indica o "Total PE" em extensões físicas. Vamos imaginar que é 509. Agora, crie um novo volume lógico que tome todo o espaço disponível:
$ lvcreate -l 509 vg_raid -n lv_raid
Finalmente, podemos criar um sistema de arquivos sobre esse volume lógico:
$ mkfs.xfs /dev/mapper/vg_raid-lv_raid
Para poder usar nossa matriz RAID recém-criada, precisamos criar um diretório e montá-lo:
$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid
Agora está pronto para usar. Mas para ele montar automaticamente após a reinicialização, precisamos salvar a geometria RAID no arquivo de configuração do mdadm:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Em seguida, adicione a seguinte linha ao / etc / fstab, que monta o array RAID automaticamente:
/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1
Agora, a matriz RAID está pronta para uso e montada automaticamente no diretório / raid após cada inicialização.
Adicionando uma nova unidade à matriz
Vamos imaginar que agora você tenha uma nova unidade, / dev / sde, que deseja adicionar à matriz criada anteriormente sem perder nenhum dado.
Primeiro, a nova unidade precisa ser particionada como todas as outras unidades:
$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc
Em seguida, ele precisa ser adicionado à matriz RAID:
$ mdadm --add /dev/md0 /dev/sde1
Agora, o array RAID5 inclui quatro drives, que somente três estão em uso atualmente. O array precisa ser expandido para incluir todos os quatro drives:
$ mdadm --grow /dev/md0 --raid-devices=4
Em seguida, o volume físico do LVM2 precisa ser expandido:
$ pvresize /dev/md0
Agora, o volume físico é redimensionado por padrão para cobrir todo o espaço disponível na matriz RAID. Precisamos descobrir o novo tamanho em extensões físicas:
$ vgdisplay vg_raid
Vamos imaginar que o novo tamanho seja agora 764 (pode ser visto em "Total PE"). Agora, expanda o volume lógico para cobrir isso:
$ lvextend /dev/mapper/vg_raid-lv_raid -l 764
Em seguida, expanda o sistema de arquivos XFS. Isso precisa ser feito durante o sistema de arquivos online e montado:
$ xfs_grow /raid
Por padrão, ele é expandido para cobrir todo o espaço disponível. Finalmente, a geometria do array RAID precisa ser atualizada porque o array agora inclui um novo disco. Primeiro, exclua a linha adicionada do /etc/mdadm/mdadm.conf e, em seguida, adicione uma nova:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf