Пересобрать устаревший raid5?
Мне нужна помощь с моим raid5 после того, как он сломался через плохие сектора. Ранее я мог собрать его с
# mdadm --assemble --force -v /dev/md0 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
но во время резервного копирования он снова потерпел крах, и теперь я больше не могу его повторно собрать, потому что два диска устарели:
# mdadm --assemble --force -v /dev/md0 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot -1.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdg1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdh1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdi1 is identified as a member of /dev/md0, slot 3.
mdadm: added /dev/sdg1 to /dev/md0 as 1
mdadm: added /dev/sdh1 to /dev/md0 as 2 (possibly out of date)
mdadm: added /dev/sdi1 to /dev/md0 as 3 (possibly out of date)
mdadm: failed to add /dev/sde1 to /dev/md0: Device or resource busy
mdadm: added /dev/sdf1 to /dev/md0 as 0
mdadm: /dev/md0 assembled from 2 drives - not enough to start the array.
Как вы можете видеть, только два устройства sdf1 и sdg1 установили самое последнее время обновления (+ запасное, но оно еще не завершено).
mdadm --examine /dev/sd[efghi]1 | egrep 'dev|Update|Role|State|Chunk Size'
/dev/sde1:
State : clean
Update Time : Sun May 10 04:15:59 2015
Chunk Size : 512K
Device Role : spare
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
State : clean
Update Time : Sun May 10 04:15:59 2015
Chunk Size : 512K
Device Role : Active device 0
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg1:
State : clean
Update Time : Sun May 10 04:15:59 2015
Chunk Size : 512K
Device Role : Active device 1
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdh1:
State : clean
Update Time : Sat May 9 23:10:06 2015
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdi1:
State : active
Update Time : Sat Dec 7 12:43:00 2013
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
Я не изменил никаких данных на рейде с момента обновления с двух других устройств sdh1 и sdi1. Мне не нужно повторно синхронизировать все данные, мне просто нужно сделать резервную копию последних файлов, поэтому мне просто нужно смонтировать их в последний раз только для чтения.
Есть какой-либо способ сделать это? Может быть, я могу заставить его игнорировать устаревшее? Мне интересно, почему - сила больше не работает...
Полная информация для устройств raid5:
# mdadm --examine /dev/sd[efghi]1
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : a87dfb70:2ecd03f9:ee62b434:fc637218
Name : m08002-lin:data2gb
Creation Time : Mon Sep 2 12:48:02 2013
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262064 sectors, after=1024 sectors
State : clean
Device UUID : 624d3873:7970ba27:da0f511a:45367bdd
Update Time : Sun May 10 04:15:59 2015
Checksum : 599a5235 - correct
Events : 108804
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : a87dfb70:2ecd03f9:ee62b434:fc637218
Name : m08002-lin:data2gb
Creation Time : Mon Sep 2 12:48:02 2013
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262064 sectors, after=1024 sectors
State : clean
Device UUID : 4827a499:12980366:0de13b87:541a9b5e
Update Time : Sun May 10 04:15:59 2015
Checksum : ac5a08f2 - correct
Events : 108804
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : a87dfb70:2ecd03f9:ee62b434:fc637218
Name : m08002-lin:data2gb
Creation Time : Mon Sep 2 12:48:02 2013
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262064 sectors, after=1024 sectors
State : clean
Device UUID : 8c959d62:3b9c1eac:6f8d7d92:13454ab4
Update Time : Sun May 10 04:15:59 2015
Checksum : 1c5f5282 - correct
Events : 108804
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdh1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : a87dfb70:2ecd03f9:ee62b434:fc637218
Name : m08002-lin:data2gb
Creation Time : Mon Sep 2 12:48:02 2013
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262064 sectors, after=1024 sectors
State : clean
Device UUID : df6b9eab:ea3c6e3a:47858e6d:1eb0783d
Update Time : Sat May 9 23:10:06 2015
Checksum : 57f1e4b2 - correct
Events : 108796
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdi1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : a87dfb70:2ecd03f9:ee62b434:fc637218
Name : m08002-lin:data2gb
Creation Time : Mon Sep 2 12:48:02 2013
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262064 sectors, after=1024 sectors
State : active
Device UUID : fbc64ec7:a97a36c1:69cc3812:37878af1
Update Time : Sat Dec 7 12:43:00 2013
Checksum : 507acca4 - correct
Events : 83904
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
1 ответ
Я мог получить доступ к моему рейду и сделать резервную копию моих файлов!
Сначала я удалил запасное устройство. Затем я проверил другие устройства. Было два устройства с плохими секторами, и я знал, что рейд снова потерпит крах при повторной синхронизации, когда он захочет прочитать или записать в поврежденные сектора. Поэтому я решил очистить рейд и создать новый деградированный рейд, который не синхронизируется и все еще имеет доступ ко всем предыдущим данным. Я очистил все суперблоки и создал рейд, оставив одно поврежденное устройство с
mdadm --stop /dev/md127 (or /dev/md0)
mdadm --zero-superblock /dev/sd[efgh]1
mdadm --create /dev/md127 --level=5 --raid-devices=4 --assume-clean /dev/sde1 /dev/sdf1 /dev/sdg1 missing
Важным является исходный порядок устройств для оригинального рейда и для создания нового рейда в том же порядке, а также для использования параметра --assume-clean! Вы можете получить оригинальный заказ с
mdadm --examine /dev/sd[efghi]1
Посмотрите на роль устройства.
После воссоздания рейда с использованием предположения-clean я смог смонтировать md127 и получить доступ ко всем данным напрямую, ничего не делая.