Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
É um cenário comum usar RAID de software em máquinas virtuais Linux no Azure para apresentar vários discos de dados anexados como um único dispositivo RAID. Normalmente, isso pode ser usado para melhorar o desempenho e permitir uma taxa de transferência melhorada em comparação com o uso de apenas um único disco.
Anexando discos de dados
Dois ou mais discos de dados vazios são necessários para configurar um dispositivo RAID. A principal razão para criar um dispositivo RAID é melhorar o desempenho da E/S do disco. Com base nas suas necessidades de E/S, pode optar por anexar discos armazenados no nosso Armazenamento Padrão, com até 500 E/S por disco ou no nosso Armazenamento Premium com até 5000 E/S por disco. Este artigo não entra em detalhes sobre como provisionar e anexar discos de dados a uma máquina virtual Linux. Consulte o artigo do Microsoft Azure anexar um disco para obter instruções detalhadas sobre como anexar um disco de dados vazio a uma máquina virtual Linux no Azure.
Importante
Não misture discos de tamanhos diferentes, isso resultaria no desempenho do raidset a ser limitado ao do disco mais lento.
Instale o utilitário mdadm
Ubuntu
sudo apt-get update sudo apt-get install mdadm
CentOS & Oracle Linux
sudo yum install mdadm
SLES e openSUSE
zypper install mdadm
Criar as partições de disco
Neste exemplo, criamos uma única partição de disco em /dev/sdc. A nova partição de disco será chamada /dev/sdc1.
Comece
fdisk
a criar partiçõessudo fdisk /dev/sdc Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xa34cb70c. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').
Pressione 'n' no prompt para criar uma partição new:
Command (m for help): n
Em seguida, pressione 'p' para criar uma partição primária:
Command action e extended p primary partition (1-4)
Pressione '1' para selecionar a partição número 1:
Partition number (1-4): 1
Selecione o ponto inicial da nova partição ou pressione
<enter>
para aceitar o padrão para colocar a partição no início do espaço livre na unidade:First cylinder (1-1305, default 1): Using default value 1
Selecione o tamanho da partição, por exemplo, digite '+10G' para criar uma partição de 10 gigabytes. Ou pressione
<enter>
criar uma única partição que abranja toda a unidade:Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): Using default value 1305
Em seguida, altere o ID e type da partição do ID padrão '83' (Linux) para ID 'fd' (Linux raid auto):
Command (m for help): t Selected partition 1 Hex code (type L to list codes): fd
Finalmente, escreva a tabela de partições na unidade e saia do fdisk:
Command (m for help): w The partition table has been altered!
Criar a matriz RAID
O exemplo a seguir irá "entrelaçar" (RAID nível 0) três partições localizadas em três discos de dados separados (sdc1, sdd1, sde1). Depois de executar este comando, um novo dispositivo RAID chamado /dev/md127 é criado. Observe também que, se esses discos de dados fizerem parte anteriormente de outra matriz RAID extinta, pode ser necessário adicionar o
--force
parâmetro aomdadm
comando:sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1
Criar o sistema de arquivos no novo dispositivo RAID
CentOS, Oracle Linux, SLES 12, openSUSE e Ubuntu
sudo mkfs -t ext4 /dev/md127
SLES 11
sudo mkfs -t ext3 /dev/md127
SLES 11 - ative boot.md e crie mdadm.conf
sudo -i chkconfig --add boot.md sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
Observação
Uma reinicialização pode ser necessária depois de fazer essas alterações nos sistemas SUSE. Esta etapa não é necessária no SLES 12.
Adicione o novo sistema de arquivos ao /etc/fstab
Importante
A edição incorreta do arquivo /etc/fstab pode resultar em um sistema não inicializável. Se não tiver a certeza, consulte a documentação de distribuição para obter mais informações sobre como editar corretamente este ficheiro. Também é recomendável que um backup do arquivo /etc/fstab seja criado antes da edição.
Crie o ponto de montagem desejado para seu novo sistema de arquivos, por exemplo:
sudo mkdir /data
Ao editar /etc/fstab, o UUID deve ser usado para fazer referência ao sistema de arquivos em vez do nome do dispositivo. Use o
blkid
utilitário para determinar o UUID para o novo sistema de arquivos:sudo /sbin/blkid ........... /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
Abra /etc/fstab em um editor de texto e adicione uma entrada para o novo sistema de arquivos, por exemplo:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults 0 2
Ou no SLES 11:
/dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext3 defaults 0 2
Em seguida, salve e feche o /etc/fstab.
Teste se a entrada /etc/fstab está correta:
sudo mount -a
Se este comando resultar em uma mensagem de erro, verifique a sintaxe no arquivo /etc/fstab.
Em seguida, execute o
mount
comando para garantir que o sistema de arquivos esteja montado:mount ................. /dev/md127 on /data type ext4 (rw)
(Opcional) Parâmetros de inicialização à prova de falhas
Configuração do FSTAB
Muitas distribuições incluem os parâmetros de montagem
nobootwait
ounofail
, que podem ser adicionados ao arquivo /etc/fstab. Esses parâmetros permitem falhas ao montar um determinado sistema de arquivos e permitem que o sistema Linux continue a inicializar, mesmo que não consiga montar corretamente o sistema de arquivos RAID. Consulte a documentação da sua distribuição para obter mais informações sobre esses parâmetros.Exemplo (Ubuntu):
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,nobootwait 0 2
Parâmetros de inicialização do Linux
Além dos parâmetros acima, o parâmetro do kernel "
bootdegraded=true
" pode permitir que o sistema inicialize mesmo se o RAID for percebido como danificado ou degradado, por exemplo, se uma unidade de dados for removida inadvertidamente da máquina virtual. Por padrão, isso também pode resultar em um sistema não inicializável.Consulte a documentação da sua distribuição sobre como editar corretamente os parâmetros do kernel. Por exemplo, em muitas distribuições (CentOS, Oracle Linux, SLES 11) esses parâmetros podem ser adicionados manualmente ao arquivo "
/boot/grub/menu.lst
". No Ubuntu este parâmetro pode ser adicionado àGRUB_CMDLINE_LINUX_DEFAULT
variável em "/etc/default/grub".
Suporte TRIM/UNMAP
Alguns kernels Linux suportam operações TRIM/UNMAP para descartar blocos não utilizados no disco. Essas operações são úteis principalmente no armazenamento padrão para informar ao Azure que as páginas excluídas não são mais válidas e podem ser descartadas. Descartar páginas pode reduzir custos se criares arquivos grandes e depois os eliminares.
Observação
RAID não pode emitir comandos de descarte se o tamanho do bloco para a matriz estiver definido como menor que o padrão (512KB). Isso ocorre porque a granularidade de desmapeamento no Host também é de 512KB. Se você modificou o tamanho do bloco da matriz por meio do --chunk=
parâmetro mdadm, as solicitações TRIM/unmap podem ser ignoradas pelo kernel.
Há duas maneiras de habilitar o suporte a TRIM em sua VM Linux. Como de costume, consulte sua distribuição para obter a abordagem recomendada:
Utilize a opção de montagem
discard
em/etc/fstab
, por exemplo:UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,discard 0 2
Em alguns casos, a opção
discard
pode ter implicações no desempenho. Como alternativa, você pode executar ofstrim
comando manualmente a partir da linha de comando ou adicioná-lo ao seu crontab para ser executado regularmente:Ubuntu
# sudo apt-get install util-linux # sudo fstrim /data
RHEL/CentOS
# sudo yum install util-linux # sudo fstrim /data