Eu uso minha máquina Ubuntu como servidor de arquivos para clientes Windows / Linux / Mac usando um compartilhamento Samba. Eu preciso que ele seja facilmente expansível apenas adicionando mais discos rígidos sem precisar 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 de errado ou o que eu poderia fazer melhor?
Criando a matriz inicial de 3 unidades
Comecei com três unidades vazias: / 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 uma matriz RAID5:
$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
Agora a matriz RAID5 está criada e já está sendo construída. Leva tempo, mas você pode continuar 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
Então, 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 "PE total" em extensões físicas. Vamos imaginar que seja 509. Agora crie um novo volume lógico que ocupa todo o espaço disponível:
$ lvcreate -l 509 vg_raid -n lv_raid
Finalmente, podemos criar um sistema de arquivos em cima desse 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 uso. Mas, para 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 a matriz 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, a matriz RAID5 inclui quatro unidades, das quais apenas três estão em uso atualmente. A matriz precisa ser expandida para incluir todas as quatro unidades:
$ 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 agora seja 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 estar online e montado:
$ xfs_grow /raid
Por padrão, ele é expandido para cobrir todo o espaço disponível. Finalmente, a geometria da matriz RAID precisa ser atualizada porque a matriz agora inclui um novo disco. Primeiro exclua a linha adicionada de /etc/mdadm/mdadm.conf e, em seguida, adicione uma nova:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf