我有一个 6 磁盘 raid6 mdadm 阵列,我想对写入进行基准测试:
root@ubuntu:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda[0] sdf[5] sde[4] sdd[3] sdc[2] sdb[1]
1953545984 blocks level 6, 64k chunk, algorithm 2 [6/6] [UUUUUU]
Run Code Online (Sandbox Code Playgroud)
由于缓存,基准可能不准确 - 例如,注意这里的写入速度高于应有的速度:
root@ubuntu:/mnt/raid6# dd if=/dev/zero of=delme bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.276026 s, 380 MB/s
Run Code Online (Sandbox Code Playgroud)
现在我们可以很容易地禁用每个磁盘缓存:
root@ubuntu:~# hdparm -W0 /dev/sd*
/dev/sda:
setting drive write-caching to 0 (off)
write-caching = 0 (off)
/dev/sdb:
setting drive write-caching to 0 …Run Code Online (Sandbox Code Playgroud) 我们正在将几个系统从 Debian Lenny 升级到 Squeeze,我想确保我没有错过任何 grub2 安装。默认情况下,从 grub1 中挤压链引导加载,您必须运行upgrade-from-grub-legacy才能升级。所以我希望能够在不重新启动和不覆盖引导扇区的情况下远程检查 grub2 是否已安装在磁盘引导扇区中。
有什么比对硬盘驱动器的早期块进行十六进制转储并尝试识别特定于 grub2 的字节更容易的吗?
在我运行 Ubuntu 10.04 的系统上。我的 raid-1 恢复开始很快,但很快就变得异常缓慢(按照这个速度,恢复需要 150 天!):
dimmer@paimon:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdc1[2] sdb1[1]
1953513408 blocks [2/1] [_U]
[====>................] recovery = 24.4% (477497344/1953513408) finish=217368.0min speed=113K/sec
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
尽管我已将内核变量设置为相当快的值:
dimmer@paimon:~$ cat /proc/sys/dev/raid/speed_limit_min
1000000
dimmer@paimon:~$ cat /proc/sys/dev/raid/speed_limit_max
100000000
Run Code Online (Sandbox Code Playgroud)
我使用的是 2 块 2.0TB 西部数据硬盘,WDC WD20EARS-00M 和 WDC WD20EARS-00J。我相信它们已被分区,以便它们的扇区对齐。
dimmer@paimon:/sys$ sudo parted /dev/sdb
GNU Parted 2.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands. …Run Code Online (Sandbox Code Playgroud)