Ok - một cái gì đó đã làm tôi khó chịu về vấn đề của bạn, vì vậy tôi đã kích hoạt một VM để đi sâu vào hành vi nên được mong đợi. Tôi sẽ nhận được những gì đang làm phiền tôi trong một phút; đầu tiên hãy để tôi nói điều này:
Sao lưu các ổ đĩa này trước khi thử bất cứ điều gì !!
Bạn có thể đã gây ra thiệt hại vượt quá những gì mà resync đã làm; bạn có thể nói rõ ý của bạn khi bạn nói:
Theo từng gợi ý, tôi đã dọn sạch các siêu khóa và tạo lại mảng với tùy chọn --assume-clean nhưng không có chút may mắn nào.
Nếu bạn chạy một mdadm --misc --zero-superblock
, sau đó bạn sẽ ổn.
Dù sao, hãy nhặt sạch một số đĩa mới và lấy chính xác hình ảnh hiện tại của chúng trước khi làm bất cứ điều gì có thể ghi thêm vào các đĩa này.
dd if=/dev/sdd of=/path/to/store/sdd.img
Điều đó đang được nói .. có vẻ như dữ liệu được lưu trữ trên những thứ này có khả năng phục hồi đáng kinh ngạc đối với các resyncs bướng bỉnh. Đọc tiếp, có hy vọng, và đây có thể là ngày mà tôi đạt đến giới hạn độ dài câu trả lời.
Kịch bản trường hợp tốt nhất
Tôi đã cùng nhau tạo một VM để tạo lại kịch bản của bạn. Các ổ đĩa chỉ có 100 MB, vì vậy tôi sẽ không chờ đợi mãi trên mỗi đồng bộ lại, nhưng đây sẽ là một đại diện khá chính xác.
Xây dựng mảng càng rộng rãi và mặc định càng tốt - các khối 512k, bố cục đối xứng trái, các đĩa theo thứ tự chữ .. không có gì đặc biệt.
root@test:~# mdadm --create /dev/md0 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[3] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
Càng xa càng tốt; hãy tạo một hệ thống tập tin và đặt một số dữ liệu vào nó.
root@test:~# mkfs.ext4 /dev/md0
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=512 blocks, Stripe width=1024 blocks
51000 inodes, 203776 blocks
10188 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2040 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
root@test:~# mkdir /mnt/raid5
root@test:~# mount /dev/md0 /mnt/raid5
root@test:~# echo "data" > /mnt/raid5/datafile
root@test:~# dd if=/dev/urandom of=/mnt/raid5/randomdata count=10000
10000+0 records in
10000+0 records out
5120000 bytes (5.1 MB) copied, 0.706526 s, 7.2 MB/s
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
Được. Chúng tôi đã có một hệ thống tệp và một số dữ liệu ("dữ liệu" datafile
và dữ liệu ngẫu nhiên trị giá 5 MB với hàm băm SHA1 đó randomdata
) trên đó; Hãy xem điều gì xảy ra khi chúng ta tạo lại.
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 21:07:06 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 21:07:06 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 21:07:06 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[2] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
Đồng bộ lại kết thúc rất nhanh với các đĩa nhỏ này, nhưng nó đã xảy ra. Vì vậy, đây là những gì đã làm phiền tôi từ trước đó; fdisk -l
đầu ra của bạn . Không có bảng phân vùng trên md
thiết bị hoàn toàn không phải là vấn đề. Hệ thống tập tin của bạn nằm trực tiếp trên thiết bị khối giả không có bảng phân vùng.
root@test:~# fdisk -l
...
Disk /dev/md1: 208 MB, 208666624 bytes
2 heads, 4 sectors/track, 50944 cylinders, total 407552 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000
Disk /dev/md1 doesn't contain a valid partition table
Vâng, không có bảng phân vùng. Nhưng...
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
Hệ thống tập tin hoàn toàn hợp lệ, sau khi đồng bộ lại. Vậy là tốt rồi; hãy kiểm tra các tệp dữ liệu của chúng tôi:
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
Rắn - không có dữ liệu tham nhũng! Nhưng đây là với cùng một cài đặt, vì vậy không có gì được ánh xạ khác nhau giữa hai nhóm RAID. Hãy bỏ thứ này xuống trước khi chúng ta cố gắng phá vỡ nó.
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
Lùi lại một bước
Trước khi chúng ta cố gắng phá vỡ điều này, hãy nói về lý do tại sao nó khó phá vỡ. RAID 5 hoạt động bằng cách sử dụng khối chẵn lẻ bảo vệ một khu vực có cùng kích thước với khối trên mọi đĩa khác trong mảng. Tính chẵn lẻ không chỉ trên một đĩa cụ thể, nó được xoay quanh các đĩa một cách đồng đều để phân tán tải đọc tốt hơn trên các đĩa trong hoạt động bình thường.
Thao tác XOR để tính chẵn lẻ trông như thế này:
DISK1 DISK2 DISK3 DISK4 PARITY
1 0 1 1 = 1
0 0 1 1 = 0
1 1 1 1 = 0
Vì vậy, tính chẵn lẻ được trải ra giữa các đĩa.
DISK1 DISK2 DISK3 DISK4 DISK5
DATA DATA DATA DATA PARITY
PARITY DATA DATA DATA DATA
DATA PARITY DATA DATA DATA
Đồng bộ lại thường được thực hiện khi thay thế một đĩa chết hoặc mất tích; nó cũng được thực hiện mdadm create
để đảm bảo rằng dữ liệu trên các đĩa phù hợp với hình dạng của RAID được cho là như thế nào. Trong trường hợp đó, đĩa cuối cùng trong thông số mảng là ổ đĩa được 'đồng bộ hóa' - tất cả dữ liệu hiện có trên các đĩa khác được sử dụng để đồng bộ hóa.
Vì vậy, tất cả dữ liệu trên đĩa 'mới' bị xóa sạch và được xây dựng lại; hoặc xây dựng các khối dữ liệu mới từ các khối chẵn lẻ cho những gì đáng lẽ phải có ở đó, hoặc nếu không thì xây dựng các khối chẵn lẻ mới.
Điều thú vị là quy trình cho cả hai điều này hoàn toàn giống nhau: một thao tác XOR trên dữ liệu từ các đĩa còn lại. Quá trình đồng bộ hóa trong trường hợp này có thể có trong bố cục của nó rằng một khối nhất định phải là một khối chẵn lẻ và nghĩ rằng nó đang xây dựng một khối chẵn lẻ mới, trong khi thực tế nó đang tạo lại một khối dữ liệu cũ. Vì vậy, ngay cả khi nó nghĩ rằng nó đang xây dựng này:
DISK1 DISK2 DISK3 DISK4 DISK5
PARITY DATA DATA DATA DATA
DATA PARITY DATA DATA DATA
DATA DATA PARITY DATA DATA
... nó có thể được xây dựng lại DISK5
từ cách bố trí ở trên.
Vì vậy, dữ liệu có thể duy trì ổn định ngay cả khi mảng được xây dựng sai.
Ném một con khỉ trong công trình
(không phải cờ lê; toàn bộ khỉ)
Bài kiểm tra 1:
Hãy tạo ra các mảng theo thứ tự sai! sdc
, sau đó sdd
, sau đó sdb
..
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sdb1
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:06:34 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:06:34 2012
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:06:34 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdb1[3] sdd1[1] sdc1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
Ok, đó là tất cả tốt và tốt. Chúng ta có một hệ thống tập tin?
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/md1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
Không! Tại sao vậy? Bởi vì trong khi dữ liệu ở đó, nó không đúng thứ tự; cái gì đã từng là 512KB của A, sau đó là 512KB của B, A, B, v.v. Đầu ra của mdadm --misc -D /dev/md1
cho chúng tôi chi tiết hơn; Nó trông như thế này:
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
3 8 17 2 active sync /dev/sdb1
Khi nó sẽ trông như thế này:
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
Vì vậy, đó là tất cả tốt và tốt. Chúng tôi ghi đè lên một loạt các khối dữ liệu với các khối chẵn lẻ mới lần này. Tạo lại, với thứ tự đúng ngay bây giờ:
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:11:08 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:11:08 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:11:08 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
Không, vẫn còn một hệ thống tập tin ở đó! Vẫn có dữ liệu?
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
Sự thành công!
Kiểm tra 2
Ok, chúng ta hãy thay đổi kích thước khối và xem nếu điều đó làm cho chúng tôi một số bị hỏng.
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=64 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:19 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:19 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:19 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/md1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
Vâng, vâng, nó hos khi thiết lập như thế này. Nhưng, chúng ta có thể phục hồi?
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:51 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:51 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:21:51 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
Thành công, một lần nữa!
Bài kiểm tra 3
Đây là cái mà tôi nghĩ sẽ giết dữ liệu chắc chắn - hãy thực hiện một thuật toán bố cục khác!
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --layout=right-asymmetric --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:32:34 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:32:34 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:32:34 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[3] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 1 [3/3] [UUU]
unused devices: <none>
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
Superblock has an invalid journal (inode 8).
Đáng sợ và tồi tệ - nó nghĩ rằng nó đã tìm thấy một cái gì đó và muốn làm một số sửa chữa! Ctrl+ C!
Clear<y>? cancelled!
fsck.ext4: Illegal inode number while checking ext3 journal for /dev/md1
Ok, khủng hoảng đã biến mất. Hãy xem liệu dữ liệu có còn nguyên vẹn sau khi kết hợp lại với bố cục sai không:
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:33:02 2012
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:33:02 2012
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Jan 7 23:33:02 2012
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
Sự thành công!
Kiểm tra 4
Chúng ta cũng hãy chứng minh rằng superblock zeroing không gây hại thực sự nhanh chóng:
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --misc --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 12/51000 files, 12085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
Vâng, không có vấn đề lớn.
Kiểm tra 5
Chúng ta hãy ném mọi thứ chúng ta có vào nó. Tất cả 4 bài kiểm tra trước đó, kết hợp.
- Đặt hàng thiết bị sai
- Kích thước chunk sai
- Thuật toán bố trí sai
- Superblocks không (chúng tôi sẽ làm điều này giữa cả hai sáng tạo)
Trở đi
root@test:~# umount /mnt/raid5
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
root@test:~# mdadm --misc --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
root@test:~# mdadm --create /dev/md1 --chunk=64 --level=5 --raid-devices=3 --layout=right-symmetric /dev/sdc1 /dev/sdd1 /dev/sdb1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdb1[3] sdd1[1] sdc1[0]
204672 blocks super 1.2 level 5, 64k chunk, algorithm 3 [3/3] [UUU]
unused devices: <none>
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/md1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
root@test:~# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
Lời phán quyết?
root@test:~# mdadm --misc --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
root@test:~# mdadm --create /dev/md1 --chunk=512 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
root@test:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[3] sdc1[1] sdb1[0]
203776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
root@test:~# fsck.ext4 /dev/md1
e2fsck 1.41.14 (22-Dec-2010)
/dev/md1: clean, 13/51000 files, 17085/203776 blocks
root@test:~# mount /dev/md1 /mnt/raid5/
root@test:~# cat /mnt/raid5/datafile
data
root@test:~# sha1sum /mnt/raid5/randomdata
847685a5d42524e5b1d5484452a649e854b59064 /mnt/raid5/randomdata
Ồ
Vì vậy, có vẻ như không có hành động nào trong số những hành động này làm hỏng dữ liệu theo bất kỳ cách nào. Tôi đã khá ngạc nhiên với kết quả này, thẳng thắn; Tôi dự kiến tỷ lệ mất dữ liệu vừa phải khi thay đổi kích thước khối và một số mất mát nhất định về thay đổi bố cục. Tôi đã học được một cái gì đó ngày hôm nay.
Vậy .. làm thế nào để tôi có được dữ liệu của mình ??
Nhiều thông tin như bạn có về hệ thống cũ sẽ cực kỳ hữu ích cho bạn. Nếu bạn biết loại hệ thống tập tin, nếu bạn có bất kỳ bản sao cũ nào của bạn /proc/mdstat
với thông tin về thứ tự ổ đĩa, thuật toán, kích thước khối và phiên bản siêu dữ liệu. Bạn có thiết lập cảnh báo email của mdadm không? Nếu vậy, tìm một cái cũ; nếu không, kiểm tra /var/spool/mail/root
. Kiểm tra ~/.bash_history
xem nếu bản dựng ban đầu của bạn ở trong đó.
Vì vậy, danh sách những điều bạn nên làm:
- Sao lưu các đĩa với
dd
trước khi làm bất cứ điều gì !!
- Hãy thử với
fsck
md hiện tại, hoạt động - bạn có thể đã tình cờ xây dựng theo thứ tự như trước đây. Nếu bạn biết loại hệ thống tập tin, điều đó hữu ích; sử dụng fsck
công cụ cụ thể đó . Nếu bất kỳ công cụ nào đề nghị sửa bất cứ điều gì, đừng để chúng trừ khi bạn chắc chắn rằng chúng thực sự đã tìm thấy hệ thống tập tin hợp lệ! Nếu một fsck
đề nghị sửa chữa một cái gì đó cho bạn, đừng ngần ngại để lại một bình luận để hỏi liệu nó thực sự có ích hay chỉ sắp sửa dữ liệu.
- Hãy thử xây dựng các mảng với các tham số khác nhau. Nếu bạn có một cái cũ
/proc/mdstat
, thì bạn có thể bắt chước những gì nó thể hiện; nếu không, thì bạn đang ở trong bóng tối - thử tất cả các đơn đặt hàng ổ đĩa khác nhau là hợp lý, nhưng kiểm tra mọi kích thước khối có thể với mỗi đơn hàng có thể là vô ích. Đối với mỗi, fsck
nó để xem nếu bạn nhận được bất cứ điều gì hứa hẹn.
Vì vậy, đó là. Xin lỗi cho cuốn tiểu thuyết, hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào, và chúc may mắn!
chú thích: dưới 22 nghìn ký tự; 8k + ngại giới hạn chiều dài