Usando o MDADM para provisionar um RAID 5 [Red Hat]
Olá meu caro,
como já é de praxe, em todos os posts você irá se deparar com alguns gifs.
O que é RAID? É de comer?
RAID, sigla para Redudant Array Of inexpensive (ou Independent) Drives (Ou Disks), é um método para integrar vários dispositivos de armazenamento numa única unidade lógica. Existem dois modelos de implementação de RAID: via hardware ou via software. O RAID via hardware é transparente para o sistema operacional que não precisará de nenhuma configuração especial. No RAID via software é o sistema operacional o responsável por combinar as diferentes unidades fÃsicas. São vários métodos ed gravação e acesso que podem ser utilizados pelo RAID. Veremos o RAID 5.
Quem Deve Usar o RAID?
Todas as pessoas que precisam armazenar grandes quantidades de dados à mão (tal como um administrador de sistemas) se beneficiarão ao usar a tecnologia RAID. As principais razões para usar o RAID incluem:
- Aumenta a velocidade
- Aumenta a capacidade de armazenamento usando um único disco virtual
- Impacto reduzido de uma falha de disco
Então chega, aplicar a teoria na prática é a melhor maneira de aprender.
Etapas
- Selecionar o tipo de RAID
- Selecionar os discos que serão utilizados
- Utilizar o fdisk para criar as partições
- Instalar o mdadm
- Criar a partição RAID com o comando mdadm
- Formatar a partição e checar os parâmetros aplicados
- Montar a partição RAID
- Selecionar o tipo de RAID
Iremos criar um RAID 5, para este tipo é necessário ter no mÃnimo 3 discos, a redundância dos dados é feita por todos os dispositivos. Desta forma, o RAID não ficará comprometido em caso de falha de um dos dispositivos que o constituem.
- Selecionar os discos que serão utilizados
Podemos utilizar os comando fdisk -l para listar os discos que o SO reconhece. Abaixo a lista de dispositivos conectados na máquina.
[root@svr-grc-1 luizep]# fdisk -lDisk /dev/sda: 12.9 GB, 12884901888 bytes, 25165824 sectorsUnits = sectors of 1 * 512 = 512 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesSector size (logical/physical): 512 bytes / 4096 bytes Disk label type: dos/dev/sda1 * 2048 25157789 12577871 83 LinuxDisk identifier: 0x00095e76 Device Boot Start End Blocks Id SystemSector size (logical/physical): 512 bytes / 4096 bytesDisk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes/dev/sdb1 2048 20971519 10484736 8e Linux LVMDisk label type: dos Disk identifier: 0xb60ec850 Device Boot Start End Blocks Id SystemI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk /dev/sdc: 16.1 GB, 16106127360 bytes, 31457280 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytesUnits = sectors of 1 * 512 = 512 bytesDisk label type: dos Disk identifier: 0x06192ffb Device Boot Start End Blocks Id System Disk /dev/sdd: 16.1 GB, 16106127360 bytes, 31457280 sectorsDevice Boot Start End Blocks Id SystemSector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dos Disk identifier: 0xf0ec174f Disk /dev/sde: 16.1 GB, 16106127360 bytes, 31457280 sectorsDevice Boot Start End Blocks Id SystemUnits = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dosDisk identifier: 0x6db14756
Na saÃda acima estão listados todos os discos reconhecidos pela máquina. Vamos utilizar os discos;
- /dev/sdc
- /dev/sdd
- /dev/sde
Vamos trabalhar nestes discos na próxima etapa.
- Utilizar o fdisk para criar as partições
Para utilizar o disco é necessário criar as partições conforme necessário, neste exemplo iremos utilizar o fdisk para configurar o dispositivos. Vamos criar uma partição para cada disco com o tipo fd (Linux raid auto).
Para criar a partição você deve utilizar os comandos abaixo em todos os discos que serão utilizados para compor o RAID.
#fdisk /dev/sddCommand (m for help): nPartition type:p primary (0 primary, 0 extended, 4 free)e extended Select (default p): pFirst sector (2048-31457279, default 2048):Partition number (1-4, default 1): Using default value 2048Using default value 31457279Last sector, +sectors or +size{K,M,G} (2048-31457279, default 31457279): Partition 1 of type Linux and of size 15 GiB is setChanged type of partition 'Linux raid autodetect' to 'Linux raid autodetect'Command (m for help):t Hex code (type L to list all codes): fd Command (m for help): p Disk /dev/sdd: 16.1 GB, 16106127360 bytes, 31457280 sectorsDisk label type: dosUnits = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0xf0ec174fThe partition table has been altered!Device Boot Start End Blocks Id System /dev/sdd1 2048 31457279 15727616 fd Linux raid autodetectCommand (m for help): w
- Instalar o mdadm
Neste exemplo estou utilizando o Red Hat 4.8.5.
Para instalar o mdadm utilize o gerenciador de pacote da sua distribuição. O mdadm é um utilitário do Linux usado para gerenciar e monitorar dispositivos RAID de software
centOS#yum install -y mdadmDebian#apt-get install -y mdadmVerificando a versão instalada.[root@svr-grc-1 luizep]# mdadm --versionmdadm - v4.1-rc1 - 2018-03-22
- Criar a partição RAID com o comando mdadm
Com o comando abaixo estamos criando o dispositivo /dev/md5 que representa o RAID 5 com os dispositivos /dev/sdd1 /dev/sdc1 /dev/sde1.
[root@svr-grc-1 luizep]# mdadm -v -C /dev/md5 -l 5 -n 3 /dev/sdd1 /dev/sdc1 /dev/sde1mdadm: /dev/sdc1 appears to be part of a raid array:mdadm: /dev/sdd1 appears to be part of a raid array:level=raid5 devices=3 ctime=Fri Jan 4 18:24:37 2019mdadm: partition table exists on /dev/sdd1 but will be lost orlevel=raid5 devices=3 ctime=Fri Jan 4 18:24:37 2019 meaningless after creating arrayContinue creating array? (y/n) ymdadm: /dev/sde1 appears to contain an ext2fs file system size=15727616K mtime=Thu Jan 1 00:00:00 1970 mdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md5 started.
- Formatar a partição e checar os parâmetros aplicados
Após ter criado as partições, vamos formata-lás no com o tipo ext4.
[root@svr-grc-1 luizep]# mkfs.ext4 /dev/md5
Verificando a partição com o comando fdisk -l
[root@svr-grc-1 luizep]# fdisk -l /dev/md5Disk /dev/md5: 32.2 GB, 32191283200 bytes, 62873600 sectorsUnits = sectors of 1 * 512 = 512 bytesI/O size (minimum/optimal): 524288 bytes / 1048576 bytesSector size (logical/physical): 512 bytes / 4096 bytes
Com o comando blkid é possÃvel verificar o UUID da partição, ou seja, o identificador único de cada partição e também o seu tipo, neste caso "linux_raid_member". Veja a saÃda abaixo:
[root@svr-grc-1 luizep]# blkid/dev/sda1: LABEL="/" UUID="51a7c7e4-4490-4c13-a7aa-446d8606cef5" TYPE="xfs"/dev/sdc1: UUID="0852f278-7900-f9aa-ec43-4dffbe44450f" UUID_SUB="8f57c873-b6dd-adf8-5fe7-0c61fc2bf63c" LABEL="svr-grc-1:5" TYPE="linux_raid_member"/dev/sdd1: UUID="0852f278-7900-f9aa-ec43-4dffbe44450f" UUID_SUB="4623d9bf-9bb3-58bc-9416-7af6c1fe85aa" LABEL="svr-grc-1:5" TYPE="linux_raid_member"/dev/sdb1: PTTYPE="dos"/dev/sde1: UUID="0852f278-7900-f9aa-ec43-4dffbe44450f" UUID_SUB="01231dbd-077a-6d5a-ec46-af084bbaa4ac" LABEL="svr-grc-1:5" TYPE="linux_raid_member"/dev/md5: UUID="97540475-09cb-4d94-82a1-6df5aa558079" TYPE="ext4"
Podemos checar mais informações sobre o RAID criado bem como a outras informações com o comando mdadm --detail. Utilizamos 3 discos de 15GB, neste caso o RAID 5 controi seu RAID da seguinte maneira 15GB + 15GB + 15GB = 45GB - 15GB = 30GB, ou seja, disco1 + disco2 + disco3 = X - disco1. Um disco é utilizado para bit de paridade.
[root@svr-grc-1 luizep]# mdadm --detail /dev/md5/dev/md5: Version : 1.2Raid Level : raid5Creation Time : Sun Jan 6 18:30:55 2019Used Dev Size : 15718400 (14.99 GiB 16.10 GB)Array Size : 31436800 (29.98 GiB 32.19 GB) Raid Devices : 3 Total Devices : 3State : cleanPersistence : Superblock is persistent Update Time : Sun Jan 6 18:37:29 2019 Active Devices : 3 Working Devices : 3Name : svr-grc-1:5 (local to host svr-grc-1)Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync0 8 33 0 active sync /dev/sdc1UUID : 0852f278:7900f9aa:ec434dff:be44450f Events : 20 Number Major Minor RaidDevice State 1 8 49 1 active sync /dev/sdd13 8 65 2 active sync /dev/sde1
Para que o sistema possa identificar e montar o RAID de forma eficiente devemos criar e popular o arquivo /etc/mdadm.conf, caso o arquivo não exista execute o comando abaixo.
[root@svr-grc-1 luizep]# mdadm -v --detail --scan >> /etc/mdadm.conf
Um arquivo importante para verificar é o /proc/mstat , este arquivo contém informações sobre o RAID no sistema. Exemplo de conteúdo num sistema RAID ativo.
[root@svr-grc-1 luizep]# cat /proc/mdstatPersonalities : [raid6] [raid5] [raid4]31436800 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]md5 : active raid5 sde1[3] sdd1[1] sdc1[0]unused devices:
- Montar a partição
Vamos criar um diretório para montagem da nossa partição RAID e monta-lá.
[root@svr-grc-1 luizep]# mkdir /mnt/raid5[root@svr-grc-1 luizep]# mount /dev/md5 /mnt/raid5/[root@svr-grc-1 luizep]# df -lh /dev/md5/dev/md5 30G 45M 28G 1% /mnt/raid5Filesystem Size Used Avail Use% Mounted on
Para montagem automática devemos adicionar a partição no arquivo /etc/fstab conforme abaixo.
[root@svr-grc-1 luizep]# echo "/dev/md5 /mnt/raid5 ext4 default 0 0" >>/etc/fstab
Comandos utilizados:
#lsblk -f
#blkid
#fdisk -l
#fdisk
#mkfs.ext4
#mdadm --verbose --detail --scan
#df -lh
#cat /proc/mdstat
#[root@svr-grc-1 luizep]# mdadm -v --create /dev/md5 -l5 -n3 /dev/sdd1 /dev/sdc1 /dev/sde1
#yum install -y mdadm
#apt-get install mdadm
#mdadm --version
Ao som de
Espero ter auxiliado e, até o próximo :) ...
Leitura recomendada
- O que é ext4
- RAID WIKIPEDIA
- Quem deve utilizar RAID
- RAID HARDWARE vs SOFTWARE
- USANDO O MDADM PARA CONFIGURAR O ARMAZENAMENTO BASEADO NO RAID E MULTI-LOCALIDADE
No comments