我有一台只能远程访问的服务器。本周早些时候,我将 2 磁盘 raid 重新分区如下:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sda1_crypt
363G 1.8G 343G 1% /
tmpfs 2.0G 0 2.0G 0% /lib/init/rw
udev 2.0G 140K 2.0G 1% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sda5 461M 26M 412M 6% /boot
/dev/sda7 179G 8.6G 162G 6% /data
突袭由 2 个 300gb SAS 15k 磁盘组成。
在我进行更改之前,它被用作单个未加密的根分区,并且 hdparm -t /dev/sda 给出的读数约为 240mb/s,如果我现在这样做,我仍然可以得到:
/dev/sda:
Timing buffered disk reads: 730 MB in 3.00 seconds = 243.06 MB/sec
由于重新分区和加密,我在单独的分区上得到以下信息:
未加密的 /dev/sda7:
/dev/sda7:
Timing buffered disk reads: 540 MB in 3.00 seconds = 179.78 MB/sec
未加密的 /dev/sda5:
/dev/sda5:
Timing buffered disk reads: 476 MB in 2.55 seconds = 186.86 MB/sec
加密/dev/mapper/sda1_crypt:
/dev/mapper/sda1_crypt:
Timing buffered disk reads: 150 MB in 3.03 seconds = 49.54 MB/sec
我预计加密分区的性能会下降,但不会下降那么多,但我根本没想到其他分区的性能会下降。
服务器中的其他硬件是:
2 x 四核 Intel(R) Xeon(R) CPU E5405 @ 2.00GHz 和 4gb RAM
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 32 Lun: 00
Vendor: DP Model: BACKPLANE Rev: 1.05
Type: Enclosure ANSI SCSI revision: 05
Host: scsi0 Channel: 02 Id: 00 Lun: 00
Vendor: DELL Model: PERC 6/i Rev: 1.11
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: HL-DT-ST Model: CD-ROM GCR-8240N Rev: 1.10
Type: CD-ROM ANSI SCSI revision: 05
我猜这意味着服务器有一个 PERC 6/i RAID 控制器?
加密是在 debian 6 安装期间使用默认设置完成的。我不记得确切的细节,也不确定如何找到它们?
谢谢
更新:
好吧,看来我是在不知道所有细节的情况下跳进去重新分区和加密的。该磁盘确实需要加密。
我现在知道分区应该用磁盘末尾的加密分区重新排序。
任何人都可以给我一些关于具有良好性能/安全平衡的磁盘加密方案的建议,或者指出我已经完成的任何类型的基准测试的方向吗?
我有一点谷歌,但我没有找到太多有用的东西。似乎较旧的 Xeons 不符合 AES 磁盘加密。
我用一个 Intel(R) Xeon(R) CPU X3430 @ 2.40GHz 检查了另一台服务器,它们仍然保持 87mb/s,在典型的单个 SATA 驱动器上使用完全相同的加密方案,在没有加密的情况下最大速度为 107mb/s。
我仍在调查 fio,似乎不是那么简单。给出的大多数示例都是针对随机访问的,这不是我所追求的。我需要大文件的原始吞吐量。
好吧,默认的 Debian 默认使用 AES 加密来回答你的那部分问题。
就像 symcbean 在他的评论中建议的那样,获得一个合适的基准测试工具来衡量性能影响。
但是,看到您的读取速度从 250 MB/s 下降到大约 50 MB/s 并不罕见。所以你的问题的答案是“是的,对于分区加密来说,下降幅度很大是正常的......但是使用一些更好的基准测试工具来确保你的测量是准确的。”
(一般来说,你应该三思而后行加密服务器,并确保你有真正的需要,然后再把它强加给自己。)
好吧,首先是硬盘驱动器是圆形的。第一个扇区位于盘片的外缘,扇区从那里向内移动。对于相同的转速,距离盘片中心 1.5" 的部分的线性长度为 4.71"。距离盘片中心 1" 的部分的线性长度为 3.14"。由于盘片旋转速度恒定,外侧轨道上的扇区可以更快地执行线性读取……在这两个示例轨道之间,第一个轨道的读取速度将快 1.5 倍。
当您对驱动器进行分区时,主要依赖驱动器速度的未加密分区接近驱动器空间的末尾。这使它们比您在驱动器开始时进行的第一次测试慢。
同时,主要依靠 CPU 速度进行吞吐量(解密功能)的加密分区靠近外部/开始,因此磁盘读取速度更快,这无关紧要,因为加密功能比它慢。
总之,这些速度对我来说很有意义。在您有加密和未加密分区的情况下,将加密分区排序到磁盘末尾可能是有意义的。