mdadm RAID 5 e parted rótulo de disco não reconhecido

1

Eu tenho três unidades de 3 TB que estou tentando montar em uma configuração RAID 5 com o mdadm, mas estou tendo alguns problemas. (Na verdade, eu tenho quatro drives de 3 TB que eu vou usar, mas um deles atualmente tem dados nele, então eu preciso fazer backup dos dados primeiro. Assim, eu tenho jogado com três das unidades para descobrir como obter tudo funcionando, então eu vou fazer backup dos dados e reconstruir com todas as quatro unidades)

Primeiro, fiz a configuração inicial seguindo as instruções descritas aqui: link

Acabei com:

root@VMHost:/home/lex# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Nov 10 22:41:00 2014
     Raid Level : raid5
     Array Size : 5860270080 (5588.79 GiB 6000.92 GB)
  Used Dev Size : 2930135040 (2794.39 GiB 3000.46 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Tue Nov 11 05:14:13 2014
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : VMHost:0  (local to host VMHost)
           UUID : d058bef5:ae3c96bd:a3a7d216:cb6aca06
         Events : 81

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       16        1      active sync   /dev/sdb
       3       8       64        2      active sync   /dev/sde

Eu então tentei criar um sistema de arquivos usando o comando

root@VMHost:/home/lex# mkfs.ext3 -v -m .1 -b 4096 -E stride=128,stripe-width=256 /dev/md0
mke2fs 1.42.9 (4-Feb-2014)
fs_types for mke2fs.conf resolution: 'ext3', 'big'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
183136256 inodes, 1465067520 blocks
1465067 blocks (0.10%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
44711 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

No entanto, quando tentei montá-lo, recebi:

root@VMHost:/home/lex# mount /dev/md0 /mnt/md0/
NTFS signature is missing.
Failed to mount '/dev/md0': Invalid argument
The device '/dev/md0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

Além disso, especificando o tipo como ext3:

root@VMHost:/home/lex# mount -t ext3 /dev/md0 /mnt/md0
mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Então, eu pensei que talvez eu precise criar partições nas unidades de antemão, em seguida, usar as partições como a configuração RAID (em vez da unidade completa), então eu desmontei o RAID e comecei a criar partições na unidade, no entanto parece não reconhecer uma unidade gpt quando eu crio uma

root@VMHost:/home/lex# parted /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: /dev/sda: unrecognised disk label
(parted) mklabel gpt
(parted) print
Error: /dev/sda: unrecognised disk label
(parted) quit
Information: You may need to update /etc/fstab.

Para esta configuração com o gpt, eu estava tentando seguir algumas outras instruções que encontrei que usa msdos como o rótulo do disco, mas como esses são discos de 3 TB, acredito que preciso usar algo diferente de msdos, que suporta discos maiores, por isso estava tentando gpt.

Você sabe por que o parted não está reconhecendo o rótulo do disco, mesmo depois de defini-lo para gpt em si? Existe uma abordagem melhor para criar o dispositivo RAID do que o que eu estava fazendo?

EDIT: Verificando o dmesg depois de executar o comando mount -t (estes resultados são para quando eu tentei formatar o ext4, que foi algo que eu tentei antes do ext3) resultar em:

root@VMHost:/home/lex# dmesg | tail
[611756.731067] EXT4-fs (md0): VFS: Can't find ext4 filesystem
[611756.731488] EXT4-fs (md0): VFS: Can't find ext4 filesystem
[611756.731790] EXT4-fs (md0): VFS: Can't find ext4 filesystem
[611756.732391] FAT-fs (md0): bogus logical sector size 65535
[611756.732421] FAT-fs (md0): Can't find a valid FAT filesystem
[611756.733932] XFS (md0): bad magic number
[611756.733974] XFS (md0): SB validate failed with error 22.
[611756.735611] FAT-fs (md0): bogus logical sector size 65535
[611756.735621] FAT-fs (md0): Can't find a valid FAT filesystem
[611773.636148] EXT4-fs (md0): VFS: Can't find ext4 filesystem

EDIT: Tenho certeza de que o sistema suporta o GPT já que uma unidade já está montada com o GPT

root@VMHost:/u01# parted --list
Error: /dev/sda: unrecognised disk label

Error: /dev/sdb: unrecognised disk label

Model: ATA ST1000DM003-1CH1 (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  256MB   255MB   primary   ext2         boot
 2      257MB   1000GB  1000GB  extended
 5      257MB   1000GB  1000GB  logical                lvm


Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sdd: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  3001GB  3001GB  ntfs         Basic data partition  msftdata


Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sde: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3001GB  3001GB               primary
    
por Alex 11.11.2014 / 23:22

1 resposta

2

Pode ser que o parted esteja confuso com as informações anteriores no disco, então você pode limpar primeiro os primeiros setores de cada unidade:

dd if=/dev/zero of=/dev/sda bs=1k count=1

depois disso, o seguinte deve funcionar:

parted /dev/sda
unit TB
mklabel gpt
mkpart primary 0 4
print
quit

Se você planeja adicionar a quarta unidade depois, considere a criação da raid-5 no modo degradado:

mdadm --create --name=DATA00 --level=5 --auto=part --verbose /dev/md0 \
--raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 missing

em seguida, adicionar a unidade mais tarde não exigirá muita ação extra:

mdadm --add /dev/sdd1

Se você não criar no modo degradado, precisará aumentar o ataque:

mdadm --grow --raid-devices=4 --backup-file=/root/grow_md0.bak /dev/md0

(isso pressupõe que não tenha sido criado anteriormente com --raid-devices=3 )

Eu tenho o LVM no topo do meu raid, com o qual era fácil aumentar quando eu cresci de 4 para 5 discos, embora isso devesse ser possível sem o mesmo.

Eu uso o mdadm há mais de 10 anos, sempre em partições. Minha matriz, na verdade, consiste em 3 unidades de 3 TB e 2 unidades de 4 TB (estou substituindo as unidades de 3 TB quando elas são quebradas). As unidades de 3TB são completamente uma partição, as unidades de 4TB têm uma partição compatível com 3TB e o restante não está em uso, mas as unidades de 4TB são particionadas para que possam ser usadas para inicialização (há uma unidade extra pequena no sistema que eu uso para inicializar, mas eu posso querer me livrar disso para abrir um slot SATA para aumentar o ataque um pouco mais.

    
por 12.11.2014 / 00:09