我有一个 RAID1 当前在单个硬盘驱动器上运行(是的,没有镜像)。是否可以使用以下算法重新组织我的系统?
我主要怀疑第二点 - 我该怎么做?
我一直在执行一项任务,从我曾经在 RAID 1 中的 2 个完美工作、未损坏、未加密的 NAS 驱动器中的一个中恢复文件。 NAS 是 Patriot Javelin S4,它(正如我从我的研究中发现的那样) ) 使用 Promise Fasttrack 假突袭控制器。
这方面的信息非常稀少,因此对于处于相同情况的谷歌人来说,这里有一些关于这个 NAS 的事实:
执行此操作时,我只有 Windows 10 和 MacOS 计算机,并且我发现没有能够在 LVM2 卷中安装 XFS 的软件(有 1 个例外,更多内容见下文)。我不得不拿出我的旧上网本 Acer Aspire One,并在其上安装 puppy linux(特别是 lxpup 风格)。
在 puppy linux 上,我设法使用名为dmraid. 这个工具有一种挂载 pdc 卷的方法,它是 Promise FastTrack 的 id。一旦我设法跳过安装它的一些箍,我就可以访问实际的 XFS 文件系统,但令我沮丧的是,它原来是 64kb 块大小。
这就是我开始在谷歌上搜索诸如“读取 xfs 64kb 块大小”之类的东西但一无所获的地方。只有几个答案说:“除非您修补内核,否则 linux 无法读取大于 4kb …
我有一个带有两个 146GB 磁盘的 RAID10 阵列的服务器。我正在尝试用两个 2TB 磁盘的 RAID1 替换一个 146GB 磁盘的 RAID10 阵列。由于没有空闲端口,我从要更换的阵列中取出了两个磁盘。现在我的突袭状态如下所示:
# /opt/hp/hpssacli/bin/hpssacli ctrl all show config
Smart Array P400 in Slot 1
array A (SAS, Unused Space: 0 MB)
logicaldrive 1 (273.4 GB, RAID 1+0, Interim Recovery Mode)
physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SAS, 146 GB, Failed)
physicaldrive 2I:1:2 (port 2I:box 1:bay 2, SAS, 146 GB, Failed)
physicaldrive 2I:1:3 (port 2I:box 1:bay 3, SAS, 146 GB, OK)
physicaldrive 2I:1:4 (port 2I:box 1:bay 4, SAS, 146 GB, …Run Code Online (Sandbox Code Playgroud) 在 lvconvert(8) 手册页上,它说:
--type SegmentType
Used to convert a logical volume to another segment type or to
explicitly state the desired RAID1 segment type ("mirror" or
"raid1") when converting a linear logical volume to a mirror
with the '-m' argument.
Run Code Online (Sandbox Code Playgroud)
但是“镜像”和“raid1”之间究竟有什么区别?
我有一个 ZFS zpool,在镜像配置中有两个磁盘,da0并且da1. da1失败了,所以我用da2using替换了它
zpool replace BearCow da1 da2
Run Code Online (Sandbox Code Playgroud)
这运行了几个小时,在此期间zpool status表明阵列正在重新同步。完成后,zpool status显示resilver完成,但阵列仍然降级......
我尝试了 azpool scrub和 a zpool clear,但数组仍然显示为降级:
[root@chef] ~# zpool status BearCow
pool: BearCow
state: DEGRADED
scrub: scrub completed after 0h20m with 0 errors on Tue Oct 9 16:13:27 2012
config:
NAME STATE READ WRITE CKSUM
BearCow DEGRADED 0 0 0
mirror DEGRADED 0 0 0
da0 ONLINE 0 0 0
replacing DEGRADED 0 0 …Run Code Online (Sandbox Code Playgroud) 今天早上我收到了这条消息:
This is an automatically generated mail message from mdadm
running on
A DegradedArray event had been detected on md device /dev/md1.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1]
md1 : active raid1 sdb3[2](F) sda3[1]
1860516800 blocks [2/1] [_U]
md0 : active raid1 sdb1[0] sda1[1]
499904 blocks [2/2] [UU]
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
这是否意味着其中 1 个硬盘不再工作?我该如何解决这个问题?我应该要求数据中心更换硬盘吗?我可以尝试重新添加丢失的设备吗?如果是,我应该运行什么命令,重新添加是否安全?我只是不希望我的服务器离线。
serv397:/var/log# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[2](F) sda3[1]
1860516800 blocks [2/1] [_U]
md0 : …Run Code Online (Sandbox Code Playgroud) 我注意到我的软件 RAID1 降级了,想弄清楚阵列中的两个磁盘中的哪一个正在重建/重新同步,因为它们都显示为已启动。我希望有人能对此有所了解,如果甚至有可能找出软件 RAID1 中的哪些磁盘已降级并被重建。
# cat /proc/mdstat
md1 : active raid1 sda2[0] sdb2[1]
955789176 blocks super 1.0 [2/2] [UU]
[==============>......] resync = 72.2% (690357504/955789176) finish=4025.9min speed=1098K/sec
md0 : active raid1 sda1[0] sdb1[1]
20970424 blocks super 1.0 [2/2] [UU]
unused devices: <none>
# mdadm --detail /dev/md1
/dev/md1:
Version : 1.0
Creation Time : Fri Dec 7 04:55:25 2012
Raid Level : raid1
Array Size : 955789176 (911.51 GiB 978.73 GB)
Used Dev Size : 955789176 (911.51 GiB 978.73 GB)
Raid …Run Code Online (Sandbox Code Playgroud) 我必须说我已经在这个平台上发现了类似的问题,但上下文不同,所以我自己尝试。
我的想法是这样的:
我有4个磁盘,其中3个容量相同,第四个的容量是其他磁盘的两倍。我会在 RAID 5 配置中使用上面的 3 个磁盘,然后在 RAID 1 配置中将它们与第四个磁盘一起使用。\
假设,如果 3 个磁盘都是 250GB,第四个磁盘是 500GB,那么我应该通过镜像获得 500GB 的可用存储空间。
如果这是一个可行的想法,那么实施它是否有意义,或者有什么缺点吗?如果有的话,在 RAID 设置中使用这些磁盘的可能方法是什么?
PS:正如您可能想的那样,我无意使用此设置作为备份系统,我知道 RAID 不是备份解决方案!:)
使用 Debian 6.0/squeeze 设置的服务器。在squeeze安装期间,我将两个500GB SATA磁盘(/dev/sda和/dev/sdb)配置为RAID1(使用mdadm管理)。RAID 保留一个 500 GB LVM 卷组 (vg0)。在卷组中,有一个逻辑卷 (lv0)。vg0-lv0 用 extfs3 格式化并挂载为 root 分区(没有专用的 /boot 分区)。系统使用 GRUB2 引导。
在正常使用中,系统启动正常。
此外,当我在关机后尝试移除第二个 SATA 驱动器 (/dev/sdb) 时,系统没有问题,重新连接驱动器后,我能够 --re-add /dev/sdb1 到 RAID大批。
但是:移除第一个 SATA 驱动器 (/dev/sda) 后,系统将无法再启动!GRUB 欢迎消息显示一秒钟,然后系统重新启动。
我尝试在 /dev/sdb(“grub-install /dev/sdb”)上手动安装 GRUB2,但这没有帮助。
当第一块磁盘被移除时,显然squeeze无法设置GRUB2从第二个磁盘启动,这似乎是运行这种Software RAID1时非常重要的功能,不是吗?
目前,我不知道这是 GRUB2、LVM 还是 RAID 设置的问题。任何提示?
RAID1 系统在镜像时如何确定将哪个磁盘用作源以及将哪个磁盘用作目标?
例如,假设以下场景:使用两个磁盘 A 和 B 创建一个 RAID1 阵列。 A 被磁盘 C 替换,并添加到该阵列中。随着时间的推移,文件正在被修改。现在 B 被移除,A 被重新插入。
RAID1系统会不会意识到A和C不同步?那个 C 比 A 更新?如果没有,是否有一种安全的方法可以避免在插入磁盘 A 时立即启动镜像过程?
编辑:我应该澄清一下,在我的场景中,我假设 A 在删除时没有失败,因此,据我所知,当 RAID1 系统必须决定在它们之间进行镜像时,A 和 C 都不“脏” . (我假设没有位图,但我知道这可能是相关的。)