我有一台只能远程访问的服务器。本周早些时候,我对 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 x 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 个四核 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 时,加密是通过默认设置完成的。我不记得具体细节了,也不知道该如何找到它们?
谢谢
更新:
好吧,看来我在不了解所有细节的情况下就直接进行了重新分区和加密。这个磁盘确实需要加密。
我现在知道应该对分区进行重新排序,并将加密分区放在磁盘末尾。
有人能给我一些关于具有良好性能/安全性平衡的磁盘加密方案的建议吗?或者能给我指出已经完成的任何类型的基准测试的方向吗?
我搜索了一下,但没找到什么有用的信息。看来老款 Xeon 不支持 AES 磁盘加密。
我检查了另一台配备单个 Intel(R) Xeon(R) CPU X3430 @ 2.40GHz 的服务器,它们仍然保持 87mb/s,在典型的单个 SATA 驱动器上使用完全相同的加密方案,如果不加密,最大速度为 107mb/s。
我仍在研究 fio,似乎它不是那么简单。给出的大多数示例都是针对随机访问的,这不是我想要的。我需要大文件的原始吞吐量。
答案1
首先,硬盘是圆形的。第一个扇区位于盘片的外边缘,然后扇区从那里向内移动。在相同的旋转速度下,距离盘片中心 1.5 英寸的区域的线性长度为 4.71 英寸。距离盘片中心 1 英寸的区域的线性长度为 3.14 英寸。由于盘片旋转速度恒定,外部轨道上的扇区可以更快地执行线性读取...在这两个示例轨道之间,第一个轨道的读取速度将快 1.5 倍。
当您对驱动器进行分区时,主要依赖驱动器速度的未加密分区位于驱动器空间的末尾附近。这使得它们比第一次测试时位于驱动器开头附近的分区速度慢。
同时,主要依靠 CPU 速度进行吞吐量(解密功能)的加密分区靠近外部/启动,因此具有更快的磁盘读取速度,但这并不重要,因为加密功能比它慢。
总而言之,这些速度对我来说是合理的。如果您有加密和未加密的分区,将加密分区排列到磁盘末尾可能是合理的。
答案2
嗯,默认的 Debian 使用 AES 加密,来回答你问题的这部分。
正如 symcbean 在他的评论中所建议的那样,获取适当的基准测试工具来衡量性能影响。
但是,读取速度从 250 MB/s 下降到 50 MB/s 左右并不罕见。因此,您的问题的答案是“是的,对于分区加密来说,下降这么多是正常的……但请使用一些更好的基准测试工具来确保您的测量准确。”
(一般来说,您应该三思而后行加密服务器,并确保在自己进行加密之前确实有此需要。)