array md Raid6 desapareceu na reinicialização

array md Raid6 desapareceu na reinicialização

meu array raid6 desapareceu na reinicialização depois que eu o aumentei. Acredito que o problema estava crescendo 2x com o disco cheio e não com partição. Foi sugerido que uma outra possível razão pela qual as unidades não foram reconhecidas corretamente é que eu não zerei os superblocos antes de lê-los em uma nova matriz. Poderia ser uma combinação de ambos? Aqui estão os comandos emitidos (retirados do histórico, formatados para terem letras de unidade consistentes):

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sd[b-c]1

#Backup completo do ROC raid 10 nessas unidades, depois de copiar a maioria dos arquivos para outras unidades, verifique se funcionou durante a reinicialização.

mdadm --create /dev/md1 --level=6 --raid-devices=4 /dev/sd[d-g]1

#Tempo passado para sincronizar as unidades e, em seguida, sincronizar novamente os dados do md0, reinicializar corretamente.

mdadm -S /dev/md0
mdadm /dev/md0 -r /dev/sd[b-c]

#AVISO O NÚMERO DA PARTIÇÃO FALTA ABAIXO.

mdadm /dev/md1 --add /dev/sdb
mdadm /dev/md1 --add /dev/sdc
mdadm -list
mdadm --detail /dev/md1
mdadm --grow --raid-devices=6 --backup-file=/media/FastRaid/md1_grow.bak /dev/md1

Após uma reinicialização, o raid6 desapareceu e foi substituído por 2 arrays raid0, um ativo (sdb/sdc) e um inativo (sdd-sdg). O seguinte é o que obtenho ao examinar os superblocos:

/dev/sdb1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
    Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
        Name : tim-server:0  (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
    Raid Level : raid0
Raid Devices : 2

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
        State : clean
    Device UUID : e8db27d6:0dbd1ac5:4456c304:0b43f09c

    Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
    Checksum : dfd187c0 - correct
        Events : 0

    Chunk Size : 512K

Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
    Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
        Name : tim-server:0  (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
    Raid Level : raid0
Raid Devices : 2

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
        State : clean
    Device UUID : 3ce84b05:607f8565:456e7f83:88b83052

    Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
    Checksum : e35ce3e5 - correct
        Events : 0

    Chunk Size : 512K

Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : eaf10189:940aeaf8:947efe82:5d0e4aea

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : e38a1bd9 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 1
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 5c34a9c7:bcc3f190:d1719a9c:8aa2b722

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : c429edf - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 3
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 12d1e3a8:b8749f59:654bcca4:4f4750df

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : 7af56ae7 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 0
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 72085967:835efe92:cb268a64:4d192b52

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : a5623977 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 2
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)

Eu havia desativado o md0 em algum momento, então recriei com o mdadm -A -o /dev/md0 /dev/sdb1 /dev/sdc1. Este é um /proc/mdstatagora:

cat /proc/mdstat

Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active (read-only) raid0 sdb1[0] sdc1[1]
  7813770240 blocks super 1.2 512k chunks

md1 : inactive sdf1[0](S) sde1[3](S) sdd1[1](S) sdg1[2](S)
    15627541790 blocks super 1.2

unused devices: <none>

Se eu tentar, mount /dev/md0 /media/tmp_md_raidconsigo: mount: /media/tmp_md_raid: wrong fs type, bad option, bad superblock on /dev/md126, missing codepage or helper program, or other error.. Se eu tentar: mdadm -A -o /dev/md1 /dev/sdf1 /dev/sde1 /dev/sdd1 /dev/sdg1recebo:

mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sde1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping
mdadm: /dev/sdg1 is busy - skipping

Todos os smartctl dizem que todas as unidades estão bem. Não tenho certeza se devo tentar mdadm --assemble --force primeiro ou mdadm --create --assume-clean primeiro. Devo tentar o segundo com -o set para ver se consigo recriar o array e visualizar os dados sem possivelmente destruir a recuperação? Obrigado por qualquer conselho.

Responder1

Parece que você tem um array de 6 dispositivos (AAAAAA), mas apenas 4 dispositivos componentes estão disponíveis ( /dev/sd[defg]1). O cálculo da capacidade confirma isso: são necessários 6 discos de 4 TB para criar um array RAID6 de 16 TB.

Como este é RAID6 e todos os 4 dispositivos disponíveis parecem estar sincronizados, ele pode ser executado, mas apenas nos chamadostotalmente degradadomodo. Neste modo, para ler qualquer bloco, ele precisa ler uma faixa de todas as unidades (que exige muita E/S) e realizar uma reconstrução (ele usa ambas as síndromes de paridade que envolvem cálculos de campo de Galois com uso intensivo de CPU) e escrever um bloco nele precisa ler toda a faixa, calcular novas síndromes de paridade e gravar em pelo menos três dispositivos (o que é ainda mais intensivo em E/S no geral).

O Linux não tem outro caminho a não ser voltar a isso se o array estiver em execução e algum dispositivo falhar no meio do uso, esse é o objetivo de ter um array RAID. Como você deve ter adivinhado, o desempenho nesse estado é muito ruim e o risco de perda de dados é muito alto, por isso você não deve executar um array nesse estado por longos períodos de tempo. O ideal é fornecer um sobressalente além dos dispositivos funcionais para que ele possa iniciar a reconstrução imediatamente ao detectar a falha de qualquer componente.

Mas durante a inicialização ele não sabe se alguns dispositivos estão permanentemente ausentes ou ainda não estão disponíveis devido à rotação escalonada ou outros atrasos na inicialização. A ativação antecipada do array tirará a sincronia dos dispositivos atrasados ​​e forçará uma ressincronização demorada, durante a qual o array experimentará a pior característica de desempenho, conforme descrito acima. Isso motiva a esperar por dispositivos que aparecem tarde. O Linux não ativará automaticamente o array parcialmente disponível por padrão, mesmo se houver dispositivos suficientes para executá-lo pelo menos em algum modo degradado.

Mas você, um administrador, podeforçaé fazer isso. Por esta,remonte a matriz com--force:

mdadm --stop /dev/md1
mdadm --force --assemble /dev/md1 /dev/sd[defg]1

Mais precisamente, ele não montará automaticamente o array se houver menos dispositivos disponíveis do que os registrados nos superblocos dos dispositivos atuais (no seu caso fica registrado que todos os dispositivos estavam disponíveis da última vez); quando você remove um dispositivo corretamente com mdadm -f/ mdadm -rsequência, ou quando força a montagem, ele registra isso e a matriz será montada automaticamente emmesmoestado degradado automaticamente.

Se esta matriz não contiver dados valiosos, é melhor recriá-la. Sensação de inicializaçãomais rápidodo que adicionar dispositivos e sofrer reconstrução.

informação relacionada