以前,我使用 ( mdadm) 个驱动器sda和sdb. sdb失败,重新启动系统的唯一方法是拔下第二个硬盘驱动器。
现在我已经添加了新的sdb和sdc我的 RAID 设置。sda是最旧的(所以最有可能失败),它是我们启动的驱动器(我想,我该如何检查?)。
我如何确保和测试(通过 GRUB 配置等)如果sda失败,我仍然能够启动我的机器。
fdisk -l:
Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000080
Device Boot Start End Blocks Id System
/dev/sda1 * 1 30064 …Run Code Online (Sandbox Code Playgroud) 我有 3 个 4TB 驱动器用于 ZRAID1 配置(单奇偶校验驱动器)
运行后
zpool create data zraid1 sdb sdc sdd
Run Code Online (Sandbox Code Playgroud)
我有一个大小为 10.9T 的卷,这是我期望的条带配置,而不是 RAID5 配置。zpool status 声称它是 raidz1-0 配置(0 有意义,这是这台计算机上唯一的池)。
为什么我的尺寸不是7.2T?
弄清楚:zpool list显示池的总数,而不是最终的卷大小。df -h正确显示为 7.2T。
我的突袭失败了,我不确定要采取什么最佳步骤才能最好地尝试恢复它。
我有 4 个采用 raid5 配置的驱动器。看来,如果一个失败(sde1),但md不能把阵列,因为它说sdd1是不新鲜
我能做些什么来恢复阵列吗?
我在下面粘贴了一些摘录/var/log/messages和mdadm --examine:
/var/log/messages
$ egrep -w sd[b,c,d,e]\|raid\|md /var/log/messages
nas kernel: [...] sd 5:0:0:0: [sde]
nas kernel: [...] sd 5:0:0:0: [sde] CDB:
nas kernel: [...] end_request: I/O error, dev sde, sector 937821218
nas kernel: [...] sd 5:0:0:0: [sde] killing request
nas kernel: [...] md/raid:md0: read error not correctable (sector 937821184 on sde1).
nas kernel: [...] md/raid:md0: Disk failure on sde1, disabling device.
nas …Run Code Online (Sandbox Code Playgroud) 我的服务器在软RAID 1 中有两个 2 TB 硬盘驱动器。我装不上/dev/sda。
parted -lroot@rescue:~# parted -l
Model: ATA HGST HUS724020AL (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 20.5kB 1049kB 1029kB primary bios_grub
2 2097kB 1987GB 1987GB primary
3 1987GB 1992GB 5242MB ext4 primary
4 1992GB 2000GB 8388MB linux-swap(v1) primary
Error: /dev/sdb: unrecognised disk label
Model: ATA HGST HUS724020AL (scsi)
Disk /dev/sdb: 2000GB
Sector size …Run Code Online (Sandbox Code Playgroud) 序幕
我的/dev/md0RAID 6 中有以下设备:/dev/sd[abcdef]
以下驱动器也存在,与 RAID 无关: /dev/sd[gh]
以下驱动器是已连接的读卡器的一部分,同样是无关的: /dev/sd[ijkl]
分析
sdf的 SATA 电缆坏了(你可以说它在使用时被拔掉了),sdf随后被/dev/md0阵列拒绝。我更换了电缆,驱动器又回来了,现在在/dev/sdm. 请不要质疑我的诊断,驱动没有问题。
mdadm --detail /dev/md0显示sdf(F),即,这sdf是错误的。所以我曾经mdadm --manage /dev/md0 --remove faulty删除有故障的驱动器。
现在mdadm --detail /dev/md0在sdf以前的空间中显示“已删除” 。
root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
版本:1.2
创建时间:2014 年 7 月 30 日星期三 13:17:25
突袭等级:raid6
阵列大小:15627548672(14903.59 GiB 16002.61 GB)
使用的开发大小:3906887168(3725.90 GiB 4000.65 GB)
突袭装置:6
设备总数:5
持久性:超级块是持久性的
意图位图:内部
更新时间:2015 年 3 月 17 日星期二 21:16:14 … 使用 mdadm 的 3 路 RAID1 是否是一个很好的解决方案,能够承受任何两个驱动器故障而不会出现 RAID 故障?我知道这在只能使用 1/3 的磁盘空间(3 个驱动器中的 1 个)的意义上来说是额外的,但除此之外呢?
在过去的两个晚上,我们在运行 Ubuntu Linux 12.04 LTS 和 Linux mdadm 软件 RAID10 的服务器上发生了一些神秘事件:
DeviceDisappeared /dev/md0
NewArray /dev/md127
Run Code Online (Sandbox Code Playgroud)
两条消息出现在同一秒,与 logrotate cron 操作发生的时间相同。虽然阵列仍命名/dev/md0的/etc/mdadm/mdadm.conf,它出现/dev/md127在的输出cat /proc/mdstat:
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md127 : active raid10 sdb1[0] sdg1[5] sdc1[1] sdh1[6] sdf1[4] sdd1[2] sdk1[9] sdj1[8] sde1[3] sdi1[7]
9746600960 blocks 512K chunks 2 near-copies [10/10] [UUUUUUUUUU]
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
为什么会这样,我该如何解决?
我最近刚刚设置了一个 3 驱动器 4TB MDRAID 5 阵列,用于镜像和我们服务器的在线备份。
我正在为未来的硬件(驱动器)故障做准备,并希望减轻 URE 的恢复故障。
通常我认为重建数组的过程是:
据我了解,在降级的 RAID 5 阵列中,您仍然可以访问数据;但是当故障驱动器被更换并且阵列正在重建时,如果检测到 URE,则恢复将失败并且阵列上的数据将立即变得不可读和不可恢复。
如果我的理解是正确的,那么在复制所有(可读)数据之前恢复阵列似乎并不谨慎。
这给我留下了一个过程:
是否有另一个过程可以减轻重建失败(重建期间的第二个驱动器故障除外)?在不先复制数据的情况下重建阵列是否安全?我的假设是否错误,例如在 URE 上重新构建失败,但数据在降级状态下仍然可用?
我刚从 Hetzner 购买了一台服务器,带有两个 4TB 硬盘和一个 1TB SSD。我想在 RAID1 中设置两个硬盘驱动器 (/dev/sda & /dev/sdb) 并在其上安装操作系统,并将 SSD (/dev/sdc) 作为额外驱动器。
直到现在,我所有的尝试都失败了。installimage 脚本运行良好,并告诉我我只需要重新启动。但是当我重新启动时,出现此错误:
我尝试在没有运气的情况下修复错误并放弃,因为我怀疑问题来自我的 installimage 脚本配置。
这是我用于所有尝试的配置:
DRIVE1 /dev/sda
DRIVE2 /dev/sdb
#DRIVE3 /dev/sdc # commented to exclude it from the RAID setup
SWRAID 1
SWRAIDLEVEL 1
BOOTLOADER grub
HOSTNAME EX51
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的不同分区方案:
1°) 接近默认配置
PART swap swap 32G
PART /boot ext3 512M
PART / ext4 all
Run Code Online (Sandbox Code Playgroud)
2°) 尝试使用 LVM
PART /boot ext3 512M
PART lvm vg0 all
LV vg0 swap swap swap 4G
LV vg0 root …Run Code Online (Sandbox Code Playgroud) 我有一台 CentOS 7 服务器。它正在运行镜像三个磁盘的软件 RAID 1。我想添加第四个磁盘作为热备份。我的意图是,如果被镜像的三个磁盘之一出现故障,热备用将自动从剩余的工作磁盘之一填充,并从故障驱动器中取而代之。
对于热备盘,除了格式化新盘还需要做些什么呢?我认为它上面没有数据,直到需要它并开始同步以更换坏驱动器?