Intel Matrix Storage RAID e Linux mdadm

3

Eu tenho uma matriz RAID 5 de 3 discos que foi configurada no Windows e que gostaria de trabalhar no Linux usando o mdadm. Já fiz algumas coisas fakeraid básicas antes, mas isso foi configurado com o utilitário Intel Matrix Storage no BIOS, e não está funcionando como eu esperava.

Aqui está minha configuração de disco:

/dev/sda - 32GB SSD, Windows boot drive.
    /dev/sda1 - Windows system partition
    /dev/sda2 - Windows C:, 29GB

/dev/sdb }
/dev/sdc } the RAID5 array: 3x500GB; contains one partition, a 1TB NTFS filesystem
/dev/sdd }

/dev/sde - 128GB SSD, Linux's drive
    /dev/sde1 - /boot
    /dev/sde2 - LVM PV
        /dev/dm0 - /
        /dev/dm1 - /home
        /dev/dm2 - <swap>

Então, a primeira coisa que fiz foi executar mdadm --assemble --scan , que produziu o seguinte:

mdadm: /dev/sdd is identified as a member of /dev/md/imsm0, slot -1.
mdadm: /dev/sdc is identified as a member of /dev/md/imsm0, slot -1.
mdadm: /dev/sdb is identified as a member of /dev/md/imsm0, slot -1.
mdadm: added /dev/sdc to /dev/md/imsm0 as -1
mdadm: added /dev/sdb to /dev/md/imsm0 as -1
mdadm: added /dev/sdd to /dev/md/imsm0 as -1
mdadm: Container /dev/md/imsm0 has been assembled with 3 drives

Por isso, encontrou as informações do IMSM nos discos muito bem e montou um contêiner:

# mdadm --examine /dev/md/imsm0
/dev/md/imsm0:
        Magic : Intel Raid ISM Cfg Sig.
        Version : 1.2.02
    Orig Family : ee19d190
        Family : ee19d190
    Generation : 0009ab28
        UUID : ab31031b:2d9f8489:5d87a6c4:e87e3826
    Checksum : f09a3edc correct
    MPB Sectors : 2
        Disks : 3
RAID Devices : 1

Disk00 Serial : 3PM1DZBD
        State : active
            Id : 00010000
    Usable Size : 976768654 (465.76 GiB 500.11 GB)

[NMWVolume]:
        UUID : c192a859:14874bab:06ca8af9:d3e8b52e
    RAID Level : 5
        Members : 3
    This Slot : 0
    Array Size : 1953536000 (931.52 GiB 1000.21 GB)
Per Dev Size : 976768264 (465.76 GiB 500.11 GB)
Sector Offset : 0
    Num Stripes : 7631000
    Chunk Size : 64 KiB
    Reserved : 0
Migrate State : idle
    Map State : normal
    Dirty State : clean

Disk01 Serial : 3PM222TL
        State : active
            Id : 00020000
    Usable Size : 976768654 (465.76 GiB 500.11 GB)

Disk02 Serial : 3PM22GFQ
        State : active
            Id : 00030000
    Usable Size : 976768654 (465.76 GiB 500.11 GB)

Ele mostra o volume Raid5, "NMWVolume", mas como faço para chegar a ele? Esse dispositivo contêiner não me faz nada. Não consigo ler nada, ou seja, fdisk /dev/md/imsm0 apenas retorna Unable to read /dev/md/imsm0 .

Se eu tentar executar mdadm --create --verbose --level=5 --raid-devices=3 --chunk=64 --auto=mdp /dev/md0 /dev/sd[bcd] , recebo estes erros:

mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: super1.x cannot open /dev/sdb: Device or resource busy
mdadm: not enough space after merge (0 < 0)
mdadm: device /dev/sdb not suitable for any style of array

A substituição de /dev/sd[bcd] por /dev/md/imsm0 fornece o erro mdadm: not enough devices with space to create array. .

Eu tentei parar a matriz /dev/md/imsm0 e executar novamente o comando mdadm --create com as unidades sd [bcd], e isso me dá isto:

mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: /dev/sdb appears to be part of a raid array:
    level=container devices=0 ctime=Wed Dec 31 18:00:00 1969
mdadm: partition table exists on /dev/sdb but will be lost or
    meaningless after creating array
mdadm: layout defaults to left-symmetric
mdadm: /dev/sdc appears to be part of a raid array:
    level=container devices=0 ctime=Wed Dec 31 18:00:00 1969
mdadm: layout defaults to left-symmetric
mdadm: /dev/sdd appears to be part of a raid array:
    level=container devices=0 ctime=Wed Dec 31 18:00:00 1969
mdadm: partition table exists on /dev/sdd but will be lost or
    meaningless after creating array
mdadm: size set to 488385408K
Continue creating array? ^C

Então eu não estou fazendo isso ...

Estou sem ideias. Como faço para montar este array?

    
por Bill Fraser 24.01.2011 / 09:01

1 resposta

4

Ok, me engane. Eu descobri.

Depois de executar mdadm --assemble --scan , que localiza e monta o contêiner, a execução de mdadm -I /dev/md/imsm0 monta as matrizes dentro do contêiner. D'oh!

# mdadm --assemble --scan
mdadm: Container /dev/md/imsm0 has been assembled with 3 drives
# mdadm -I /dev/md/imsm0
mdadm: Started /dev/md/NMWVolume with 3 devices
# ls -l /dev/md*
brw-rw---- 1 root disk   9, 126 Jan 24 02:22 /dev/md126
brw-rw---- 1 root disk 259,   0 Jan 24 02:22 /dev/md126p1
brw-rw---- 1 root disk   9, 127 Jan 24 02:22 /dev/md127

/dev/md:
total 0
lrwxrwxrwx 1 root root 8 Jan 24 02:22 imsm0 -> ../md127
lrwxrwxrwx 1 root root 8 Jan 24 02:22 NMWVolume -> ../md126

/dev/md126p1 tem meu volume NTFS de 1 TB RAID5.

    
por 24.01.2011 / 09:24