我的 5x1Tb WD Green HDD 家庭服务器中有一个 mdadm RAID-6。读取速度绰绰有余 - dd 为 268 Mb/s。但写入速度仅为 37.1 Mb/s。(均通过 dd 在 48Gb 文件上进行测试,RAM 大小为 1Gb,测试中使用的块大小为 8kb)
您能否建议为什么写入速度如此之低,有什么方法可以改进它?写入期间的 CPU 使用率仅为 25%(即 Opteron 165 的 1 个核心的一半)那里没有关键业务数据,服务器由 UPS 支持。
mdstat 是:
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[3] sdf1[2] sdb1[1]
2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
诸如回写、屏障、nobh 之类的事情没有帮助。DD blocksize=1M, 8M 没有任何改变。看起来 mdadm 会物理读取扇区来计算奇偶校验,即使这无关紧要......对吗?
更新:更改条带缓存后速度下降实际上是因为 …
我刚刚在另一篇关于提高 RAID5/6 写入速度的文章中读到了这个:
增加条带缓存并切换到外部位图后,我的速度是 160 Mb/s 写入,260 Mb/s 读取。:-D
我已经找到了如何增加条带缓存的方法,而且效果很好,但我想了解更多有关外部位图的信息。我有一个非常快(540MB/s)的 RAID0 SSD,如果位图按照我认为的那样做,它会做得很好,但我仍然非常不确定。我只是在知道这篇文章时才知道他们。
几个问题:
我应该补充一点,虽然这是一个让我感到无聊的线程,但我确实重视存储在 RAID 阵列上的数据。如果这样做会使数据面临重大风险,请告诉我。
我有一个带有 5 个硬盘的 ubuntu 桌面 10.4“服务器”。其中 1 个硬盘有 3 个操作系统(Windows Vista、Windows XP 和 Ubuntu 10.4)。我主要使用 ubuntu 操作系统,以便我可以使用 mdadm 和 boxee。
其他 4 个硬盘是使用 mdadm 在 Raid5 分区中配置的。
据我所知,那四个硬盘没问题...
但是我的主操作系统硬盘已经完全死了。显然,如果没有带有操作系统的驱动器,计算机将无法启动。
我的目标是以某种方式将操作系统重新加载到我刚从 newegg.com 收到的新硬盘驱动器上,或者加载一个实时 CD...然后检索或重新组装我的 mdadm raid 5 分区,这样我至少可以得到我的宁可机器上的大量音乐收藏到外部硬盘驱动器上。
为了实现这一目标,我需要采取哪些[详细]步骤?
这真是令人沮丧:-| 我在这个不错的错误上花了大约 20 个小时,似乎也有很多人在 Internet 上,但还没有明确的解决方案。
我有 5 个磁盘的非系统 RAID-5,这很好。但是在启动过程中,它说“/dev/md0 尚未准备好或不存在”并要求按“S”。非常适合 Ubuntu Server - 我必须带上显示器和键盘才能使用。
系统启动后,一切正常。md0 设备工作正常,/proc/mdstat 很好。当我 mount -a 时 - 它会无错误地安装这个阵列并且工作正常。
作为一种愚蠢而可耻的解决方法,我在 /etc/fstab 中添加了 noauto,并在 /etc/rc.local 中进行了挂载 - 然后它工作正常。
任何提示如何使其正常工作?
表:
UUID=3588dfed-47ae-4c32-9855-2d69df713b86 /var/bigfatdisk ext4 noauto,noatime,data=writeback,barrier=0,nobh,commit=5 0 0
Run Code Online (Sandbox Code Playgroud)
mdadm 配置:它是自动生成的:
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions
# …
Run Code Online (Sandbox Code Playgroud) 我有一个1TB的阵列中设置raid 1
使用mdadm
在Ubuntu 8,存储任务关键型文件。我想通过缓存到 SSD 来加快读/写速度,尤其是对于大文件。这可能吗?是否mdadm
包含缓存到另一个驱动器的工具?
或者,我应该做些什么来将普通 RAM 分配给缓存?有 4GB RAM,要写入的文件很少大于 1GB,所以我认为仅使用 RAM 缓存,写入应该很快。
任何帮助将不胜感激。
我想创建多个虚拟块设备,如 /dev/sda,然后使用它们创建一个 md 设备以进行测试。我已经在 /dev/sda1 上安装了我的根文件系统并且没有额外的空间来创建新的物理分区。因此,我正在寻找一种方法将我的一小部分可用空间临时分配给这些虚拟块设备。
我可以使用 dmsetup 或其他实用程序来创建这些虚拟块设备吗?
看起来 mdadm 进行奇偶校验检查的时间及其控制方式发生了一些变化。它通常在每月第一个星期日凌晨 1 点左右开始,并由 cron 条目启动。现在看起来它是在第一个周日的早上 5 点左右开始,并且有一个新功能可以暂停它(当系统正在使用时?),然后在奇怪的(随机的?)时间重新启动它,比如工作日的上午 8 点。我不再看到任何与此相关的 cron 条目,所以我不确定它是如何控制的。
有人可以告诉我吗...
我想改变行为,以便它在凌晨而不是白天重新启动。
我的设置目前是每个 md 分区上的 raid1 + luks 和顶部的 lvm 以在阵列之间进行条带化。目前只有一个卷组和一个逻辑卷。
sdc 8:32 0 1.8T 0 disk
??sdc1 8:33 0 1.8T 0 part
??md127 9:127 0 1.8T 0 raid1
??data-crypt0 (dm-3) 252:3 0 1.8T 0 crypt
??data_raid-data (dm-5) 252:5 0 2.7T 0 lvm /mnt/data
sdd 8:48 0 931.5G 0 disk
??sdd1 8:49 0 931.5G 0 part
??md126 9:126 0 931.4G 0 raid1
??data-crypt1 (dm-4) 252:4 0 931.4G 0 crypt
??data_raid-data (dm-5) 252:5 0 2.7T 0 lvm /mnt/data
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式启动设备
cryptsetup luksOpen /dev/md/data:0 data-crypt0 …
Run Code Online (Sandbox Code Playgroud) 我在具有 RAID 0 配置的三个硬盘的系统上运行 Ubuntu 14.04。RAID的设置基本上是这样的:
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u
Run Code Online (Sandbox Code Playgroud)
然后我在 /dev/md0 上创建了一个分区,并使用我从blkid
. 一切似乎都有效,重启后也是如此。
但是,我在某处读到在 /etc/fstab 中使用 RAID 分区的 UUID 有潜在危险,因为 RAID 驱动程序可能在处理 fstab 或类似的时候不可用,所以这个 UUID 并不意味着任何事物。
不幸的是,我不是 linux 专家。因此,我的问题是在 /etc/fstab 中使用 RAID 分区的 UUID 是否安全或者是否可能导致问题?如果是后者,最好的选择是什么?
我的根分区是/dev/md0,我更改了分区和文件系统的大小。现在,当我运行 update-grub 和 install-grub 时,它失败了:
# grub-install /dev/sda
Installing for i386-pc platform.
grub-install: error: unknown filesystem.
# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-67-generic
Found initrd image: /boot/initrd.img-4.4.0-67-generic
/usr/sbin/grub-probe: error: unknown filesystem.
Found linux image: /boot/vmlinuz-4.4.0-66-generic
Found initrd image: /boot/initrd.img-4.4.0-66-generic
/usr/sbin/grub-probe: error: unknown filesystem.
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Run Code Online (Sandbox Code Playgroud)
。
# cat /proc/mdstat
...
md0 : active raid1 sda1[1] sdb1[0]
14553024 blocks [2/2] [UU]
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
。
# cat /proc/partitions
major minor …
Run Code Online (Sandbox Code Playgroud) mdadm ×10
raid ×6
partitioning ×2
cache ×1
cron ×1
devices ×1
encryption ×1
filesystem ×1
fstab ×1
grub2 ×1
luks ×1
lvm ×1
mount ×1
performance ×1
server ×1
ssd ×1
systemd ×1