分区和加密后磁盘性能下降,下降这么多正常吗?

分区和加密后磁盘性能下降,下降这么多正常吗?

我有一台只能远程访问的服务器。本周早些时候,我对 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 左右并不罕见。因此,您的问题的答案是“是的,对于分区加密来说,下降这么多是正常的……但请使用一些更好的基准测试工具来确保您的测量准确。”

(一般来说,您应该三思而后行加密服务器,并确保在自己进行加密之前确实有此需要。)

相关内容