我的经历很糟糕读性能优于 raid1/crypt/lvm。同时,在相同设置下,写入速度大约快 2 倍以上。在同一台机器上的另一个 raid1 设置上,我获得正常的读取速度(可能是因为我没有使用 cryptsetup)。
操作系统相关磁盘:sda + sdb。我有两个磁盘的 raid1 配置,两个磁盘都已就位。我在 RAID 上使用 LVM。没有加密。两个盘都是 WD Green,5400 rpm。
这次raid1的IO测试结果:
dd if=/dev/zero of=/tmp/output.img3 bs=8k count=256k conv=fsync
- 2147483648 bytes (2.1 GB) copied, 22.3392 s, 96.1 MB/s
sync
echo 3 > /proc/sys/vm/drop_caches
dd if=/tmp/output.img3 of=/dev/null bs=8k
- 2147483648 bytes (2.1 GB) copied, 15.9 s, 135 MB/s
这是有问题的设置(在同一台机器上)。目前我只有一个 sdc(WD Green,5400rpm)在软件 raid1 + crypt(luks,serpent-xts-plain)+ lvm 中配置。明天我将附加另一个磁盘 (sdd) 来完成这个两磁盘 raid1 设置。
这次 raid1 上的 IO 测试结果:
dd if=/dev/zero of=output.img3 bs=8k count=256k conv=fsync
2147483648 bytes (2.1 GB) copied, 17.7235 s, 121 MB/s
sync
echo 3 > /proc/sys/vm/drop_caches
dd if=output.img3 of=/dev/null bs=8k
2147483648 bytes (2.1 GB) copied, 36.2454 s, 59.2 MB/s
我们可以看到读取性能非常非常差(59MB/s,而未使用加密时为 135MB/s)。在基准测试期间没有任何东西使用磁盘。我可以确认这一点,因为我检查了 iostat 和 dstat。
硬件详细信息:
- 磁盘:全部为WD green,5400rpm,64mb缓存。
- CPU:FX-8350,库存速度
- 内存:4x4GB,1066Mhz。
该软件的详细信息:
- 操作系统:Debian Wheezy 7、amd64
- mdadm:v3.2.5 - 2012 年 5 月 18 日
- LVM版本:2.02.95(2) (2012-03-06)
- LVM 库版本:1.02.74 (2012-03-06)
- LVM驱动程序版本:4.22.0
- 密码设置:1.4.3
以下是我配置慢速 raid1+crypt+lvm 设置的方法:
分开/dev/sdc
- MK标签GPT
- 类型:ext4
- 开始时间:2048s
- 结束:-1
现在是 raid、crypt 和 lvm 配置:
- mdadm --create /dev/md1 --level=1 --raid-disks=2 缺少 /dev/sdc
- cryptsetup --cipher serpent-xts-plain luksFormat /dev/md1
- cryptsetup luksOpen /dev/md1 md1_crypt
- vgcreate vg_sql /dev/mapper/md1_crypt
- lvcreate -l 100%VG vg_sql -n lv_sql
- mkfs.ext4 /dev/mapper/vg_sql-lv-sql
- 挂载 /dev/mapper/vg_sql-lv_sql /sql
那么各位,能帮我找出原因并解决它吗?它必须与 cryptsetup 相关,因为在不存在加密的其他设置(sda+sdb)上没有这样的读取速度减慢。但我不知道该怎么办。
谢谢!
答案1
显然,加密会增加相当大的开销,但忽略这一点:
您还使用非 AES 加密,这意味着您无法从处理器获得加速(AES 硬件加速)。您还使用桌面品质的处理器和消费者驱动器速度极慢。
这种设置正是您性能如此差的原因。将像样的驱动器与服务器质量的处理器一起放入(这甚至是服务器吗?)并使用 AES 进行 LUKS。
答案2
通常没有正确完成测试。使用 8k 读取操作加载 Linux 软件 RAID 是要求其表现不佳的方法(您确实这样做了)。尝试使用更大的bs
.
cryptsetup benchmark
我还在下面的评论中添加了 for ppl 的输出
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 476.6 MiB/s 1891.3 MiB/s
serpent-cbc 128b 79.1 MiB/s 222.6 MiB/s
twofish-cbc 128b 135.0 MiB/s 158.7 MiB/s
aes-cbc 256b 194.7 MiB/s 892.5 MiB/s
serpent-cbc 256b 46.2 MiB/s 211.4 MiB/s
twofish-cbc 256b 144.6 MiB/s 93.3 MiB/s
aes-xts 256b 1542.0 MiB/s 1727.0 MiB/s
serpent-xts 256b 114.0 MiB/s 200.2 MiB/s
twofish-xts 256b 111.4 MiB/s 131.7 MiB/s
aes-xts 512b 573.6 MiB/s 829.3 MiB/s
serpent-xts 512b 199.8 MiB/s 191.1 MiB/s
twofish-xts 512b 81.8 MiB/s 107.3 MiB/s
-- 清楚地看到(并不总是,但经常)解密速度更快。