linux raid 找回文件,linux – 使用“mdadm –create … missing”尝试RAID5恢复

博主在扩大加密RAID5阵列过程中遇到磁盘故障,导致阵列成员混乱。现有三个磁盘,其中两个完好,但无法确定具体是哪两个。尝试多种组合未果,寻求帮助。

首先我是如何处理这种情况的:

我有一个RAID5阵列,磁盘每个2TB(外部USB磁盘),然后我想创建一个更大的加密阵列.因此我得到了2个额外的磁盘(每个还有2 TB),计划是以降级模式运行原始阵列,设置新的加密阵列,复制部分数据,之后将原始阵列缩小为2个磁盘降级模式,放大新的,复制其余的数据,最后将其放大到7个磁盘RAID5非降级.我用/ dev / loopX设备做了整个过程,每个2GB,以测试我的计划是否有任何警告.

真正的阵列一切顺利,直到其中一个新磁盘发生故障.当我替换这个时,内核识别磁盘的顺序在下次重新启动后发生了变化(/ dev / sdb,/ dev / sdc,…都是与以前不同的磁盘).一切都弄乱了,我没有意识到,直到其中一个磁盘被重新同步作为错误数组的成员.我不知道这个故事的细节,直截了当地说:

我现在有一个加密阵列,3盘RAID5,在/ dev / sdc1和/ dev / sdd1降级,运行完全正常,所有数据都存在,并且根据fsck -f健康文件系统.

到现在为止还挺好.

现在整个问题都归结为3个磁盘 – 我无法让这个非加密阵列再次运行.我很确定数据是否存在于/ dev / sdf1,/ dev / sdg1,/ dev / sdh1,因为这是一个工作数组,就在其中一个磁盘可能搞砸之前(意外地被重新同步作为成员)其他加密数组,如前所述).因此,这三个磁盘中的一个可能有不正确的阵列数据,但是哪一个?其中两个必须很好,但我怎么弄明白呢?

我尝试了mdadm的每个排列 – 创建…使用/ dev / sdf1,/ dev / sdg1,/ dev / sdh1和“missing”,如:

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdf1 /dev/sdg1 missing

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdf1 missing /dev/sdg1

...

当然每次检查

fsck / dev / md0

抱怨无效的超级块.

每次mdadm创建数组,但没有文件系统可读,它只包含垃圾,mdadm使用的所有排列都没有最终工作.

所以现在我的问题是:我还有哪些选择?当然,除了丢失我的数据并从头开始重建阵列.

这里有一些额外的信息(所有磁盘):

mdadm --examine /dev/sdb1

/dev/sdb1:

Magic : a92b4efc

Version : 1.2

Feature Map : 0x0

Array UUID : cfee26c0:414eee94:e470810c:17141589

Name : merlin:0 (local to host merlin)

Creation Time : Sun Oct 28 11:38:32 2012

Raid Level : raid5

Raid Devices : 3

Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)

Array Size : 3906759680 (3725.78 GiB 4000.52 GB)

Used Dev Size : 3906759680 (1862.89 GiB 2000.26 GB)

Data Offset : 262144 sectors

Super Offset : 8 sectors

State : clean

Device UUID : f4f0753e:56b8d6a5:84ec2ce8:dbc933f0

Update Time : Sun Oct 28 11:38:32 2012

Checksum : 60093b72 - correct

Events : 0

Layout : left-symmetric

Chunk Size : 512K

Device Role : Active device 1

Array State : AA. ('A' == active, '.' == missing)

mdadm --examine /dev/sdc1

/dev/sdc1:

Magic : a92b4efc

Version : 1.2

Feature Map : 0x0

Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a

Name : merlin:1 (local to host merlin)

Creation Time : Wed Sep 26 07:32:32 2012

Raid Level : raid5

Raid Devices : 3

Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)

Array Size : 3905299456 (3724.38 GiB 3999.03 GB)

Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)

Data Offset : 262144 sectors

Super Offset : 8 sectors

State : clean

Device UUID : 9e2f9ae6:6c95d05e:8d83970b:f1308de0

Update Time : Fri Oct 26 03:26:37 2012

Checksum : 79d4964b - correct

Events : 220

Layout : left-symmetric

Chunk Size : 512K

Device Role : Active device 0

Array State : AA. ('A' == active, '.' == missing)

mdadm --examine /dev/sdd1

/dev/sdd1:

Magic : a92b4efc

Version : 1.2

Feature Map : 0x0

Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a

Name : merlin:1 (local to host merlin)

Creation Time : Wed Sep 26 07:32:32 2012

Raid Level : raid5

Raid Devices : 3

Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)

Array Size : 3905299456 (3724.38 GiB 3999.03 GB)

Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)

Data Offset : 262144 sectors

Super Offset : 8 sectors

State : clean

Device UUID : 98b07c41:ff4bea98:2a765a6b:63d820e0

Update Time : Fri Oct 26 03:26:37 2012

Checksum : 6e2767e8 - correct

Events : 220

Layout : left-symmetric

Chunk Size : 512K

Device Role : Active device 1

Array State : AA. ('A' == active, '.' == missing)

mdadm --examine /dev/sde1

/dev/sde1:

Magic : a92b4efc

Version : 1.2

Feature Map : 0x0

Array UUID : 6db9959d:3cdd4bc3:32a241ad:a9f37a0c

Name : merlin:0 (local to host merlin)

Creation Time : Sun Oct 28 12:12:59 2012

Raid Level : raid5

Raid Devices : 3

Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)

Array Size : 3905299456 (3724.38 GiB 3999.03 GB)

Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)

Data Offset : 262144 sectors

Super Offset : 8 sectors

State : clean

Device UUID : 677a4410:8931e239:2c789f83:e130e6f7

Update Time : Sun Oct 28 12:12:59 2012

Checksum : 98cb1950 - correct

Events : 0

Layout : left-symmetric

Chunk Size : 512K

Device Role : Active device 2

Array State : A.A ('A' == active, '.' == missing)

mdadm --examine /dev/sdf1

/dev/sdf1:

Magic : a92b4efc

Version : 1.2

Feature Map : 0x0

Array UUID : 3700a0a6:3fadfd73:bc74b618:a5526767

Name : merlin:0 (local to host merlin)

Creation Time : Sun Oct 28 11:28:30 2012

Raid Level : raid5

Raid Devices : 3

Avail Dev Size : 3905392640 (1862.24 GiB 1999.56 GB)

Array Size : 3905391616 (3724.47 GiB 3999.12 GB)

Used Dev Size : 3905391616 (1862.24 GiB 1999.56 GB)

Data Offset : 262144 sectors

Super Offset : 8 sectors

State : clean

Device UUID : 5a8a5423:10b7a542:26b5e2b3:f0887121

Update Time : Sun Oct 28 11:28:30 2012

Checksum : 8e90495f - correct

Events : 0

Layout : left-symmetric

Chunk Size : 512K

Device Role : Active device 1

Array State : AA. ('A' == active, '.' == missing)

mdadm --examine /dev/sdg1

/dev/sdg1:

Magic : a92b4efc

Version : 1.2

Feature Map : 0x0

Array UUID : 202255c9:786f474d:ba928527:68425dd6

Name : merlin:0 (local to host merlin)

Creation Time : Sun Oct 28 11:24:36 2012

Raid Level : raid5

Raid Devices : 3

Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)

Array Size : 3905299456 (3724.38 GiB 3999.03 GB)

Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)

Data Offset : 262144 sectors

Super Offset : 8 sectors

State : clean

Device UUID : 4605c729:c290febb:92901971:9a3ed814

Update Time : Sun Oct 28 11:24:36 2012

Checksum : 38ba4d0a - correct

Events : 0

Layout : left-symmetric

Chunk Size : 512K

Device Role : Active device 1

Array State : AA. ('A' == active, '.' == missing)

mdadm --examine /dev/sdh1

/dev/sdh1:

Magic : a92b4efc

Version : 1.2

Feature Map : 0x0

Array UUID : 682356f5:da2c442e:7bfc85f7:53aa9ea7

Name : merlin:0 (local to host merlin)

Creation Time : Sun Oct 28 12:13:44 2012

Raid Level : raid5

Raid Devices : 3

Avail Dev Size : 3906761858 (1862.89 GiB 2000.26 GB)

Array Size : 3906760704 (3725.78 GiB 4000.52 GB)

Used Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)

Data Offset : 262144 sectors

Super Offset : 8 sectors

State : clean

Device UUID : 489943b3:d5e35022:f52c917a:9ca6ff2a

Update Time : Sun Oct 28 12:13:44 2012

Checksum : f6947a7d - correct

Events : 0

Layout : left-symmetric

Chunk Size : 512K

Device Role : Active device 1

Array State : AA. ('A' == active, '.' == missing)

cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

md1 : active raid5 sdc1[0] sdd1[1]

3905299456 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]

unused devices:

任何帮助将不胜感激!

### 关于 `mdadm` 创建阵列时设备数量不足的解决方案 当使用 `mdadm` 工具创建 RAID 阵列时,如果遇到“not enough devices to create array”的错误提示,通常是因为指定的成员磁盘未能满足所需的最低数量要求。以下是可能的原因以及对应的解决方法: #### 可能原因分析 1. **未正确识别所有磁盘** 如果某些磁盘未被操作系统正确挂载或检测到,则可能导致可用设备的数量不足以构建所需类型的 RAID 阵列[^4]。 2. **RAID 类型的要求不匹配** 不同的 RAID 级别对最小磁盘数有不同的需求。例如: - RAID 0 和 RAID 1 至少需要两个磁盘。 - RAID 5 至少需要三个磁盘。 - RAID 6 则至少需要四个磁盘。 3. **磁盘分区表损坏或配置不当** 若某个磁盘存在元数据冲突或者其分区表存在问题,也可能影响整个阵列的初始化过程[^3]。 #### 解决方案 针对上述情况可以采取如下措施来解决问题: ##### 方法一:验证并修复硬件连接问题 确保所有的硬盘都已牢固插好,并且能够正常工作。可以通过命令检查当前系统中的块设备列表及其状态信息: ```bash lsblk dmesg | grep sd ``` ##### 方法二:调整启动参数重新扫描SCSI总线 有时候重启计算机之后无法自动发现新增加的物理驱动器,在这种情况下可尝试手动触发 SCSI 总线重扫操作: ```bash echo "- - -" > /sys/class/scsi_host/hostX/scan ``` 其中 X 表示具体的主机编号,请依据实际情况替换相应值[^2]。 ##### 方法三:强制忽略缺失组件继续组建降级模式下的阵列 假如确实缺少部分组成单元但仍希望尽快恢复服务的话,那么可以选择以降级形式先行建立起来然后再补充剩余部件进去的方式处理。具体做法如下所示: ```bash mdadm --create /dev/mdX --level=Y --raid-devices=N DEVICE1...DEVICEN MISSING... ``` 这里 Y 是指定级别;N 应该等于实际存在的加上计划后期加入的那个总数目;最后那个单词 “MISSING” 就是用来占位表示将来会补上的位置所在之处[^1]。 ##### 方法四:备份重要资料后再执行格式化动作 鉴于任何涉及更改存储结构的操作都有潜在风险造成不可逆的数据丢失现象发生,因此建议事先做好充分准备——即把那些重要的文件先转移到安全的地方保存下来再动手实施下一步骤之前提到过的各种改动行为[^4]。 ```python import os os.system('dd if=/path/to/source of=/path/to/target bs=4M status=progress') ``` 以上就是对于因缺乏足够的参与节点而导致失败状况下的一些常见应对策略介绍。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值