我刚刚购买了两个 1.5TB 磁盘,目的是创建一个 1.5TB RAID1 阵列。
由于我无限缺乏智慧(并且计算机内部空间不足 - 它已经有 6 个磁盘),我将其中一个插入其中,将其格式化为 EXT4,然后继续从我正在替换的驱动器中复制数据。
现在我想用它的双磁盘创建一个 mdadm RAID1 阵列。我认为这是可能的。可能涉及卸载和dd遍历内容,但我确定我之前在某处看到过这个......
但是我找不到我上次设置 mdadm 时使用的教程,所以我很害怕。我不想破坏 800gigs 的数据。
我有一个带有单个硬盘驱动器的 Windows Server 2008 R2 x64 系统,我有一个未使用的相同大小/型号的备用硬盘驱动器。我正在考虑放入新驱动器并将其设置为 RAID 1(镜像)以实现穷人的容错。
在以前版本的 Windows 中,从软件 RAID 分区启动是痛苦的或不可能的。Windows Server 2008 R2 怎么样?我可以轻松(无需重新安装操作系统)从独立启动磁盘切换到 RAID 1 对吗?如果是,我正在寻找一些信息:
这个问题是类似的,但其公认的答案没有详细说明在一个驱动器发生故障后如何(使用哪些 Windows 工具/命令)进行恢复,也没有关于如何设置它的详细信息。从 Google 中,我找到了很多答案——很多相互矛盾,而且最过时。因此,这里的新问题。
如果这很重要,这台机器是带有库存磁盘控制器(没有板载硬件 RAID,AFAIK)的 Dell Vostro 430。
顺便说一句,我知道在这里做的正确的事情是使用硬件 RAID 控制器,但我的硬件预算已经达到极限,所以我需要做我所拥有的(至少现在是这样)。当我下一次重建这个盒子时,我将添加硬件 RAID —— 只是在此之前尝试做。
这是噩梦般的日子之一:运行在 Linux SW-RAID1 上的虚拟化服务器运行的虚拟机在看似随机的代码块中表现出随机段错误。
在调试时,我发现一个文件在每次运行时都会给出不同的 md5sum。深入挖掘,我发现:组成 RAID1 镜像的原始磁盘分区包含 2 个位差异和 ca。一张盘上的 9 个扇区完全为空,而另一张盘上则充满了数据。
显然,Linux 从镜像集的不确定选择的磁盘中返回一个扇区。所以有时相同的扇区返回正常,有时损坏的返回。
该文件说:
RAID 不能也不应该防止介质上的数据损坏。因此,故意损坏磁盘上的数据(例如使用 dd)以查看 RAID 系统将如何处理也没有任何意义。很有可能(除非您损坏 RAID 超级块)RAID 层永远不会发现损坏,但您在 RAID 设备上的文件系统将被损坏。
谢谢。那会帮助我入睡。:-/
有没有办法让 Linux 至少通过使用扇区校验和或类似的东西来检测这种损坏?这会在 RAID5 设置中检测到吗?这是我希望我使用 ZFS 或 btrfs 的时刻吗(一旦它在没有超级管理员功能的情况下变得可用)?
编辑:我并不孤单。
我正在构建另一台服务器(便宜),并希望使用 256GB SSD 驱动器用于我的启动和数据。这足以满足我的需求,但由于几个原因,只有一个 SSD 会让我感到害怕。
如果我使用 SSD 和 HDD 进行镜像突袭,会发生什么?
它会在多大程度上减缓读取突袭?它会从更快的来源读取吗?
它会减慢写入多少?它会等到写入同时发送到 SSD 和 HDD 吗?
有没有人看到这样做的好处?
我发现了这个问题,但我认为它略有不同: 通过硬盘驱动器的 SSD 冗余
RAID1 系统在镜像时如何确定将哪个磁盘用作源以及将哪个磁盘用作目标?
例如,假设以下场景:使用两个磁盘 A 和 B 创建一个 RAID1 阵列。 A 被磁盘 C 替换,并添加到该阵列中。随着时间的推移,文件正在被修改。现在 B 被移除,A 被重新插入。
RAID1系统会不会意识到A和C不同步?那个 C 比 A 更新?如果没有,是否有一种安全的方法可以避免在插入磁盘 A 时立即启动镜像过程?
编辑:我应该澄清一下,在我的场景中,我假设 A 在删除时没有失败,因此,据我所知,当 RAID1 系统必须决定在它们之间进行镜像时,A 和 C 都不“脏” . (我假设没有位图,但我知道这可能是相关的。)
我有一个 HP Proliant DL380 G5,在 RAID 0 (Stripe)(72GB+72GB) 中有两个 HDD。它已经运行 Windows Server 一段时间了,并且在一个条带卷上有 30GB 的已占用空间。
我现在又购买了两个 72GB 硬盘(与服务器中已安装的相同)。我想通过引入现有条带磁盘的 HDD 镜像来使该系统更加安全。
提前致谢。
一些 AWS 实例附加了“临时磁盘”,这比 EBS 快得多。但是,当您的实例停止和启动时,临时磁盘将为空白且未初始化。磁盘上的数据通常在实例重启后仍然存在。
问题:我应该在我的 AWS 实例上使用软件 RAID1,构建在临时磁盘和 EBS 卷上吗?
我的想法是,raid1 将仅在 EBS 卷的降级模式下出现,然后我们可以使用 mdadm 命令将空白临时磁盘添加回 raid。这将使应用程序更快启动 5-10 分钟,代价是在 raid1 同步时性能更差。
背景:我有一个使用 ~40 GB 数据文件的应用程序。访问时间与性能直接相关,因此磁盘速度越快,应用程序运行得越快。
从历史上看,我们从 rc.local 到 rsync 数据从 EBS 磁盘运行到临时磁盘,然后启动软件。同步需要 5-10 分钟,比从另一个实例同步所需的 5-20 分钟要好。过去,我们甚至使用 ramdisk 中的数据文件,它不如临时磁盘快。
更多信息 - 这是一个 i3.4xlarge,所以它有 2 个 NVME 临时驱动器。
# hdparm -t /dev/md? /dev/nvme?n1 /dev/xvd?
/dev/md0: 9510 MB in 3.00 seconds = 3169.78 MB/sec RAID0 of two eph drives
/dev/nvme0n1: 4008 MB in 3.00 seconds = 1335.74 MB/sec Eph drive …Run Code Online (Sandbox Code Playgroud) 如果您从阵列中移除组件 HDD,它会掉入“(initramfs)”下的“busy box”外壳,并在 RAID1 阵列变为“非活动状态”时显示类似于“无法安装根设备”的内容。
可以使用以下方法启动它:
(initramfs): mdadm --run /dev/md0
(initramfs): exit
Run Code Online (Sandbox Code Playgroud)
之后,它使用启动的 RAID1 正常启动(文件系统在 RAID1 阵列上),并且将继续正常启动,直到您移除另一个驱动器(在这种情况下它会完全相同)。
Google 使用“ BOOT_DEGRADED=true ”吐出了一堆关于 UBUNTU 的帖子,但这对 DEBIAN 不起作用。
还有一篇关于使用“ md-mod.start_dirty_degraded=1 ”作为内核映像的引导参数的帖子。我试过在 GRUB 菜单选项中传递它,但无济于事。
可能有一些东西可以解释它,但我是一个新手来理解:(
有任何想法吗?
我有一台繁忙的服务器,设置了 RAID 1。该应用程序(在 PHP 中运行)对数据库 (MariaDB) 的读/写非常密集。
cronjobsmartctl每天运行简短的测试并检查smartctl -H和的输出mdadm -D。
有时我想运行长时间测试,但我担心它对性能的影响。我读到可能需要几个小时才能完成。如果它导致服务器性能在运行时下降,我的用户将受到 5 个多小时的影响。
所以,这里有几个问题:
1) 长时间的智能测试通常会影响对用户来说很重要的性能吗?
2)既然我有RAID 1并且做了短测试,那么长测试还需要吗?
3)如果我发现长时间测试对服务器性能造成了问题,是否有办法停止它?
我正准备向我的家庭网络添加另一台服务器。我目前有一个存储驱动器。我想添加另一个驱动器来镜像第一个驱动器,但在几周到一个月内无法购买第二个驱动器。我想在镜像存储驱动器上使用 ZFS。我是否可以开始将数据复制到单个存储驱动器,然后添加第二个驱动器,然后让 ZFS 将第一个驱动器的数据复制到镜像中的第二个驱动器?
raid1 ×10
raid ×7
linux ×3
hard-drive ×2
mdadm ×2
amazon-ebs ×1
amazon-ec2 ×1
corruption ×1
degraded ×1
hp-proliant ×1
kernel ×1
mirror ×1
raid0 ×1
smart ×1
smartctl ×1
ssd ×1
zfs ×1