Teq*_*ue5 6 raid 11.10 mdadm uuid
重启电源后,我发现我的 RAID 5 阵列不再工作。我尝试了各种方法来重新组装阵列,但到目前为止没有任何效果。我相信我需要以某种方式重新创建超级块和 UUID,但不愿意进入某些东西以免丢失一堆数据。谢谢阅读。
cat /etc/mdadm/mdadm.conf:
DEVICE partitions
ARRAY /dev/md0 level=raid5 num-devices=4 metadata=0.90 UUID=fd522a0f:2de72d76:f2afdfe9:5e3c9df1
MAILADDR root
Run Code Online (Sandbox Code Playgroud)
这是正常的。它应该有 4x2000GB 驱动器(sda、sdc、sde、sdd)。
cat /proc/mdstat:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdd[1](S)
1953514496 blocks
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
这是个问题。它只显示阵列中的一个驱动器,而且它也处于非活动状态。阵列中也应该有 sda、sdc 和 sde。当我做一个时,mdadm --examine /dev/sdd一切看起来都很好。在其他驱动器上检查说/dev/sdX 上没有 RAID 超级块。
mdadm --examine --scan:
ARRAY /dev/md0 level=raid5 num-devices=4 metadata=0.90 UUID=fd522a0f:2de72d76:f2afdfe9:5e3c9df1
Run Code Online (Sandbox Code Playgroud)
没有帮助。
mdadm --assemble --scan -v:
mdadm: looking for devices for /dev/md0
mdadm: no RAID superblock on /dev/sde
mdadm: /dev/sde has wrong uuid.
mdadm: cannot open device /dev/sdd: Device or resource busy
mdadm: /dev/sdd has wrong uuid.
mdadm: no RAID superblock on /dev/sdc
mdadm: /dev/sdc has wrong uuid.
mdadm: cannot open device /dev/sdb5: Device or resource busy
mdadm: /dev/sdb5 has wrong uuid.
mdadm: no RAID superblock on /dev/sdb2
mdadm: /dev/sdb2 has wrong uuid.
mdadm: cannot open device /dev/sdb1: Device or resource busy
mdadm: /dev/sdb1 has wrong uuid.
mdadm: cannot open device /dev/sdb: Device or resource busy
mdadm: /dev/sdb has wrong uuid.
mdadm: no RAID superblock on /dev/sda
mdadm: /dev/sda has wrong uuid.
Run Code Online (Sandbox Code Playgroud)
由此看来,我没有 UUID,也没有用于 sda、sdc 和 sde 的超级块。
sudo fdisk -l
Disk /dev/sda: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sda doesn't contain a valid partition table
Disk /dev/sdb: 250.1 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488395055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x353cf669
Device Boot Start End Blocks Id System
/dev/sdb1 63 476327249 238163593+ 83 Linux
/dev/sdb2 476327250 488392064 6032407+ 5 Extended
/dev/sdb5 476327313 488392064 6032376 82 Linux swap / Solaris
Disk /dev/sdc: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdd doesn't contain a valid partition table
Disk /dev/sde: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sde doesn't contain a valid partition table
Run Code Online (Sandbox Code Playgroud)
因此,从这里看来,我的 RAID 磁盘都没有分区表或 UUID。我发现最接近我的问题的是这个线程,它建议mdadm --create /dev/md0 -v -l 5 -n 4 /dev/sda /dev/sdc /dev/sde /dev/sdd使用fsck -fn /dev/md0. 但是,第一个命令吐出mdadm: no raid-devices specified.我使用 sda1、sdc1 等重试了该命令,但随后我得到了这个:
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: super1.x cannot open /dev/sda1: No such file or directory
mdadm: ddf: Cannot open /dev/sda1: No such file or directory
mdadm: Cannot open /dev/sda1: No such file or directory
mdadm: device /dev/sda1 not suitable for any style of array
Run Code Online (Sandbox Code Playgroud)
如果我创建并在命令中将 sda1 保留为“缺失”变量,那么它只是对 sdc1 说同样的事情。
我确信我让这比它需要的更复杂。有经验的可以帮帮我吗?提前感谢您的时间。
*编辑*
当我运行时,dumpe2fs /dev/sda我得到:
dumpe2fs 1.41.14 (22-Dec-2010)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: bbe6fb91-d37c-414a-8c2b-c76a30b9b5c5
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 366288896
Block count: 1465135872
Reserved block count: 73256793
Free blocks: 568552005
Free inodes: 366066972
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 674
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Wed Oct 28 12:23:09 2009
Last mount time: Tue Oct 18 13:59:36 2011
Last write time: Tue Oct 18 13:59:36 2011
Mount count: 17
Maximum mount count: 26
Last checked: Fri Oct 14 17:04:16 2011
Check interval: 15552000 (6 months)
Next check after: Wed Apr 11 17:04:16 2012
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 17e784d8-012e-4a29-9bbd-c312de282588
Journal backup: inode blocks
Journal superblock magic number invalid!
Run Code Online (Sandbox Code Playgroud)
所以东西还在。还在研究中...
哎呀!真是个泡菜啊。让我们看看能否为您解决问题。首先回顾一下您的磁盘和分区表:
sda - no partition table
sdb - sdb1 [Linux] sdb2 [Linux extended] sdb5 [swap]
sdc - no partition table
sdd - no partition table
sde - no partition table
Run Code Online (Sandbox Code Playgroud)
最后一点是我认为你已经失败的地方。初始化脚本可能认为您应该进行 fsck,对卷进行健全性检查,并在此过程中清除 MD 超级块。dumpe2fs 对于 RAID 集的卷部分,不应返回任何内容。
以我的RAID为例:
root@mark21:/tmp/etc/udev# fdisk -l /dev/sda
Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000ffc4
Device Boot Start End Blocks Id System
/dev/sda1 2048 1240233983 620115968 fd Linux raid autodetect
root@mark21:/tmp/etc/udev# dumpe2fs /dev/sda1
dumpe2fs 1.41.14 (22-Dec-2010)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sda
Couldn't find valid filesystem superblock.
Run Code Online (Sandbox Code Playgroud)
您能够重新创建 RAID 集是非常幸运的,但这并不能改变部署中的根本缺陷。这种情况还会再次发生。
我推荐的是:
man mdadm)dd if=/dev/zero of=/dev/sdX bs=1M count=100type fd( linux-raid wiki )mdadm --create /dev/md0 -v -f -l 5 -n 4 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sde1根据您的描述,我推测 sdb 是您的系统磁盘,这很好。只要确保您不会意外地将其包含在您的团队创建中即可。在此之后,您应该走上正轨,并且再也不会遇到此问题。
[0] 我曾经在有很多坏块的 SATA 磁盘上遇到过一次非常严重的故障。使用供应商工具重建磁盘后。我曾经相同的一组磁盘现在是唯一的,坏驱动器现在比低级格式化开始之前少了几个块,这当然破坏了我的分区表并阻止驱动器重新加入 MD RAID 集。
硬盘驱动器通常有一个备份块的“空闲列表”,仅供临时使用。我的理论是,该列表肯定已用尽,并且由于这不是企业磁盘,因此它决定截断我的数据并重新调整整个磁盘的大小,而不是安全故障并让我有机会将其发送出去进行数据恢复。磁盘输入。
因此,在创建 RAID 集时我不再使用整个磁盘,而是在创建通常跨越整个磁盘的分区时使用 95-99% 的可用空间。这还为您在替换失败的成员时提供了一些额外的灵活性。例如,并非所有 250 GB 磁盘都具有相同数量的可用块,因此,如果您在一定程度上低于最大值,那么您几乎可以使用任何磁盘品牌来替换出现故障的成员。
| 归档时间: |
|
| 查看次数: |
91993 次 |
| 最近记录: |