将 RAID 5 移至另一台计算机

将 RAID 5 移至另一台计算机

RAID 5 问题

关键问题是,我不确定如何激活非活动 RAID,并且我的努力不会不可逆转。尝试非破坏性地重新组装。这可能吗?

如果 CPU 出现故障,则将 RAID 5 转移到新计算机。

背景

  1. UBUNTU 16.04 运行 mdadm 软件 RAID 5 失败并重新启动,按 ctrl D 继续。

  2. 我认为我的 RAID 阵列似乎完好无损。请参阅下面的打印输出。我想将 RAID 5 从一台计算机移到另一台计算机,以防问题出在硬件上。

  3. UBUNTU 启动分区的问题可能只是启动分区空间不足。启动分区只有 10G,虽然 Ubuntu 安装最初是一个最小的服务器安装,但我还是扩展了它以运行桌面。10G 可能不够,但就这样运行了 2 个月。我只想要图形界面。

  4. 另外,我最近读到,RAID 5 分区在每个磁盘上不应超过 1.5 T。我当时不知道这一点,它已经这样运行了大约 6 个月,尽管最近它可能已经超过了该限制。它现在以大约 6T 的速度运行。

  5. 我的计划是将 RAID 5 移动到新机器上,在新磁盘“sde”上全新安装 Ubuntu 16,然后在新系统上重新安装 RAID。

问题

  1. 如何将 RAID 5 移至新计算机?如果 UBUNTU 在启动时失败,那么我应该能够在新计算机上组装 RAID。

  2. “assemble” 会覆盖 RAID 分区吗?这是不可逆的吗?

  3. 如果 RAID 空间不足,则预计 RAID 会失败,而不是 UBUNTU 启动。

  4. 或者,我可以安全地从 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 在整个过程中也提供了很大的帮助。事后看起来总是很简单,但这条路却很危险。

相关内容