Tenho um novo md RAID10 que criei ( em um Synology DS416slim, que está além do ponto ), que estava em processo de sincronização inicial:
root@ds416slim:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
1943881088 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
[===>.................] resync = 19.8% (386172736/1943881088) finish=2613.6min speed=9932K/sec
md1 : active raid1 sdc2[1] sdb2[2] sda2[0] sdd2[3]
2097088 blocks [4/4] [UUUU]
md0 : active raid1 sdc1[1] sdb1[2] sda1[0] sdd1[3]
2490176 blocks [4/4] [UUUU]
unused devices: <none>
Observando que é uma velocidade de sincronização realmente horrível (deveria estar mais perto de 100M do que 10M), decidi pause
sincronizar usandoecho idle > /sys/block/md2/md/sync_action
Após os testes (onde hdparm
mostrou que /dev/sdd
teve um desempenho horrível), tentei retomá-lo com echo resync > /sys/block/md2/md/sync_action
. No entanto, a sincronização não foi retomada e permaneceu em estado ocioso:
root@ds416slim:~# echo resync > /sys/block/md2/md/sync_action
root@ds416slim:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
1943881088 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
md1 : active raid1 sdc2[1] sdb2[2] sda2[0] sdd2[3]
2097088 blocks [4/4] [UUUU]
md0 : active raid1 sdc1[1] sdb1[2] sda1[0] sdd1[3]
2490176 blocks [4/4] [UUUU]
unused devices: <none>
root@ds416slim:~# cat /sys/block/md2/md/sync_action
idle
Verifiquei as opções possíveis sobre como retomar a sincronização, pois as opções fornecidas na sysfs
seção da documentação do MD no kernel.org fornecem uma lista que não tem uma resume
opção. A leitura das opções listadas parece implicar resync
a ação correta, mas não retomou a sincronização inicial, conforme visto acima.
Minhas perguntas são:
- Isso afetará o ataque e como?
- Como faço para retomar a sincronização inicial?
- É seguro ignorar tudo e começar a usar o ataque?
Você precisa usar a
repair
ação - ou seja:echo repair > /sys/block/md2/md/sync_action
Em teoria, você pode usar a matriz durante o reparo, mas eu deixaria esse primeiro reparo/ressincronização terminar antes de colocar dados valiosos nos discos.
Da página man md:
Em outras palavras,
resync
é ignorado porque não é uma ação aceita - while echeck
are .repair
idle