RAID 5 问题
关键问题是,我不确定如何激活非活动 RAID,并且我的努力不会不可逆转。尝试非破坏性地重新组装。这可能吗?
如果 CPU 出现故障,则将 RAID 5 转移到新计算机。
背景
UBUNTU 16.04 运行 mdadm 软件 RAID 5 失败并重新启动,按 ctrl D 继续。
我认为我的 RAID 阵列似乎完好无损。请参阅下面的打印输出。我想将 RAID 5 从一台计算机移到另一台计算机,以防问题出在硬件上。
UBUNTU 启动分区的问题可能只是启动分区空间不足。启动分区只有 10G,虽然 Ubuntu 安装最初是一个最小的服务器安装,但我还是扩展了它以运行桌面。10G 可能不够,但就这样运行了 2 个月。我只想要图形界面。
另外,我最近读到,RAID 5 分区在每个磁盘上不应超过 1.5 T。我当时不知道这一点,它已经这样运行了大约 6 个月,尽管最近它可能已经超过了该限制。它现在以大约 6T 的速度运行。
我的计划是将 RAID 5 移动到新机器上,在新磁盘“sde”上全新安装 Ubuntu 16,然后在新系统上重新安装 RAID。
问题
如何将 RAID 5 移至新计算机?如果 UBUNTU 在启动时失败,那么我应该能够在新计算机上组装 RAID。
“assemble” 会覆盖 RAID 分区吗?这是不可逆的吗?
如果 RAID 空间不足,则预计 RAID 会失败,而不是 UBUNTU 启动。
或者,我可以安全地从 ARRAY 中移除所有设备,并将其作为常规分区安装以读取我的数据吗?RAID 中分布着大约 6T 的数据。
状态报告
root@UbuntuServer17:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# fstab on WDD running as 5th disk sde
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=f37bd21c-9464-4763-b3e7-7f9f6f5154df / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=4993-9AE3 /boot/efi vfat umask=0077 0 1
# swap was on /dev/sda3 during installation
UUID=e3b9f5e9-5eb9-47e0-9288-68649263093c none swap sw 0 0
# Steve added - from RAID17 when it crashed
# / was on /dev/sda1 during installation on RAID17
#UUID=1672f12a-9cf2-488b-9c8f-a701f1bc985c / ext4 errors=remount-ro 0 1
#/dev/md0p1 /media/steve/RAID17 ext4 data=ordered,relatime,stripe=384,nodev,nosuid 0 0
#UUID=1672f12a-9cf2-488b-9c8f-a701f1bc985c / ext4 errors=remount-ro 0 1
#/dev/md0 /media/steve/RAID17 ext4 data=ordered,relatime,stripe=384,nodev,nosuid 0 0
root@UbuntuServer17:~# cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
# This file was auto-generated on Sun, 05 Feb 2017 20:34:00 +0200
# by mkconf $Id$
# Steve added - maybe should add uuid to fstab file to mount on WD at start - But no sure
# ARRAY /dev/md0 uuid=3b92382f:78784c2b:e7a07a35:c1afcf1d
ARRAY /dev/md0 uuid=32c91cbf:266a5d14:182f1b34:f92b1ebe
root@UbuntuServer17:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sda2[0](S) sdd1[4](S) sdb1[1](S) sdc1[2](S)
7803273216 blocks super 1.2
unused devices: <none>
root@UbuntuServer17:~# mdadm --examine --scan
ARRAY /dev/md/0 metadata=1.2 UUID=3b92382f:78784c2b:e7a07a35:c1afcf1d name=RAID17:0
root@UbuntuServer17:~#
root@UbuntuServer17:~# sudo fdisk -l
Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x5120487a
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 20482047 20480000 9.8G 83 Linux
/dev/sda2 20514816 3907028991 3886514176 1.8T 83 Linux
/dev/sda3 20482048 20514815 32768 16M 82 Linux swap / Solaris
Partition table entries are not in disk order.
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000a439d
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 3907028991 3907026944 1.8T 83 Linux
Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00044e92
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 3907028991 3907026944 1.8T 83 Linux
Disk /dev/sdd: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xc7703e92
Device Boot Start End Sectors Size Id Type
/dev/sdd1 2048 3907028991 3907026944 1.8T 83 Linux
Disk /dev/sde: 465.8 GiB, 500107862016 bytes, 976773168 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
Disklabel type: gpt
Disk identifier: AEC0A022-299A-4283-9F5F-2FCC4CC4609E
Device Start End Sectors Size Type
/dev/sde1 2048 1050623 1048576 512M EFI System
/dev/sde2 1050624 960124927 959074304 457.3G Linux filesystem
/dev/sde3 960124928 976771071 16646144 8G Linux swap
root@UbuntuServer17:~#
root@UbuntuServer17:~# sudo dumpe2fs /dev/sda2
dumpe2fs 1.42.13 (17-May-2015)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: b474c4d4-af7f-4730-b746-a0c0c49ca08d
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 121454592
Block count: 485814272
Reserved block count: 24290713
Free blocks: 478141459
Free inodes: 121454581
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 908
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Sat Feb 25 02:16:09 2017
Last mount time: n/a
Last write time: Sat Feb 25 02:16:09 2017
Mount count: 0
Maximum mount count: -1
Last checked: Sat Feb 25 02:16:09 2017
Check interval: 0 (<none>)
Lifetime writes: 135 MB
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: e1e7da74-6e2f-4fa4-a9e0-a13a44338170
Journal backup: inode blocks
dumpe2fs: Corrupt extent header while reading journal super block
root@UbuntuServer17:~#
答案1
我在尝试将我的两个磁盘的 RAID1 阵列从旧盒子移到新盒子时偶然发现了这个答案。该帖子建议只需将磁盘移动到新计算机并连接它们,而不管 MB 上的哪个 SATA 端口。之后,这个命令应该就足够了:
mdadm --assemble --scan
但是,对我来说,这没有检测到任何要组装的数组。因此,经过进一步的研究,我发现有一个配置文件包含您的数组的详细信息 - 希望您仍然在旧机器上拥有它:
cat /etc/mdadm/mdadm.conf
对我来说这是一个相当简单的事情;新的和旧的盒子一开始只有一行的区别,当然,根据你的阵列的复杂程度,这可能会更复杂一些:
ARRAY /dev/md/0 metadata=1.2 UUID=<THE__UUID> name=qnap:0
我手动将该行放入新服务器的/etc/mdadm/mdadm.conf
文件中,然后再次运行该命令:
mdadm --assemble --scan
这次它找到了数组并将其初始化为只读状态。现在您可以运行数组检查(计算机中的所有数组均执行 all 检查):
/usr/share/mdadm/checkarray --all
或者只是看看它处于什么状态:
cat /proc/mdstat
最后一个文件使用来自 mdstat 的进度信息进行更新。
使用以下命令将其翻转为读写状态:
mdadm --readwrite md127
导致它重新同步,这当然需要几个小时,具体取决于您的阵列的大小和配置,但之后我打开 raid 上的加密卷并从中安装 LVM 分区没有任何问题。我使用 md127 执行最后一个命令,检查符号链接指向的位置/dev/md/0
,即mdadm.conf
文件列出的阵列的物理设备
希望这对任何人都有帮助:)
答案2
我最终找到了答案https://serverfault.com/questions/32709/how-do-i-move-a-linux-software-raid-to-a-new-machine。
这是我所做的:
从新安装启动并将旧的 fstab 和 mdadm.conf 文件保存到我的云。
看起来 sda2(4 个物理磁盘之一)上的 Raid 分区确实发生故障。我在 sda1 上进行了启动,在 sda2、sdb1、sdc1、sdd1 上进行了 Raid。
我将 Ubuntu 重新安装到新的驱动器 sde 上。
重新安装 mdadm。
我知道这 4 个分区在哪里,因为我没有改变顺序并且启动现在是 sde1;
我强制 Raid 阵列在相同的分区上重新组装;
非常幸运的是,四个驱动器中有三个正在运行,因此 Raid 性能下降了,但到目前为止它仍在运行。
我遵循的步骤在上面的链接中清晰地列出。我必须说,我发现 Digital Ocean 在整个过程中也提供了很大的帮助。事后看起来总是很简单,但这条路却很危险。