Depois de atualizar para o Ubuntu 12.04 LTS no meu servidor o grub começou a reclamar e a dar erros sobre o meu RAID Array, tudo ainda parece estar funcionando, mas é um pouco irritante ter grub dando erros.
Setting up grub-pc (1.99-21ubuntu3.7) ...
error: found two disks with the index 2 for RAID md0.
error: superfluous RAID member (3 found).
Estou recebendo muitos desses erros quando o grub é atualizado.
Os fatos são: Eu tenho três discos idênticos em uma configuração de raid5, em dois discos há uma partição primária que é adicionada à matriz, mas o terceiro disco é adicionado sem uma partição primária. ie. mdam --manage /dev/md_d0 --add /dev/sdc
Eu estou supondo que esta é a razão para reclamar.
Desde que descobri este problema, desativei o disco que está sem uma partição primária, criei uma partição primária, verifiquei que ele é o mesmo com cfdisk /dev/xxx
e, em seguida, Print Partition table
. E tentei adicionar a nova partição ao array RAID e é quando eu recebo a mensagem de que a partição é pequena para ser adicionada ao array RAID.
> sudo mdadm /dev/md_d0 --add /dev/sdc1
mdadm: /dev/sdc1 not large enough to join array
As tabelas de partições são todas iguais,
Partition Table for /dev/sdc
First Last
# Type Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
Pri/Log 0 2047* 0# 2048*Free Space None
1 Primary 2048* 3907029167* 0 3907027120*Linux raid auto (FD) None
Partition Table for /dev/sdd
First Last
# Type Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
Pri/Log 0 2047* 0# 2048*Free Space None
1 Primary 2048* 3907029167* 0 3907027120*Linux raid auto (FD) None
Partition Table for /dev/sde
First Last
# Type Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
Pri/Log 0 2047* 0# 2048*Free Space None
1 Primary 2048* 3907029167* 0 3907027120*Linux raid auto (FD) None
Ou, na verdade, se imprimir a tabela de partição como dados brutos no cfdisk há algumas diferenças, mas não consigo decifrar o que isso significa.
-> diff sde.raw sdc.raw
1c1
Disk Drive: /dev/sde
---
Disk Drive: /dev/sdc
30c30
0x1B0: 00 00 00 00 00 00 00 00 B7 E9 70 74 00 00 00 20
---
0x1B0: 00 00 00 00 00 00 00 00 4B 0C 58 1C 00 00 00 20
Percebi que poderia tentar copiar o mbr de um dos discos de trabalho usando o dd, mas ainda assim recebo o mesmo erro, mesmo que a tabela de partição seja idêntica na saída bruta do cfdisk.
$ sudo dd if=/dev/sdd of=/tmp/sdd-mbr.bin bs=512 count=1
$ sudo dd if=/tmp/sdd-mbr.bin of=/dev/sdc bs=512 count=1
$ cat /proc/partitions
major minor #blocks name
8 48 1953514584 sdd
8 49 1953513560 sdd1
8 32 1953514584 sdc
8 33 1953513560 sdc1
8 64 1953514584 sde
8 65 1953513560 sde1
Agora, a comparação bruta da tabela de partição fornece saída idêntica e as partições parecem ser do mesmo tamanho, mas ainda recebo o mesmo erro ao tentar adicionar /dev/sdc1
à matriz.
Acho que a minha pergunta é se existe alguma maneira de corrigir isso sem ter que desmontar toda a matriz e recriá-la do zero?
Saída de mdadm -D /dev/md_d0
a matriz ainda está sendo reconstruída desde que eu adicionei / dev / sdc novamente.
/dev/md_d0:
Version : 0.90
Creation Time : Sat Aug 14 21:06:13 2010
Raid Level : raid5
Array Size : 3907028992 (3726.03 GiB 4000.80 GB)
Used Dev Size : 1953514496 (1863.02 GiB 2000.40 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Fri Jan 11 18:36:06 2013
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Rebuild Status : 53% complete
UUID : 74998045:22316376:01f9e43d:ac30fbff (local to host server)
Events : 0.19988
Number Major Minor RaidDevice State
3 8 32 0 spare rebuilding /dev/sdc
1 8 64 1 active sync /dev/sde
2 8 48 2 active sync /dev/sdd
Eu percebo agora que parece que toda a matriz é composta de dispositivos reais, em vez de partiotions, então a questão é por que sdd1 & amp; sde1 partitios são deixados nos discos rígidos e gravados em / dev / sdc assim que eu os adiciono ao array.