Linux

分區和加密後磁碟性能下降,這是正常的嗎?

  • June 28, 2012

我有一台只能遠端訪問的伺服器。本週早些時候,我將 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

RAID 包含 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 個四核 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 安裝期間使用預設設置完成的。我不記得確切的細節,也不知道如何找到它們?

謝謝

更新:

好的,看來我在不知道所有細節的情況下跳入並重新分區和加密。這個磁碟確實需要加密。

我現在知道應該使用磁碟末尾的加密分區對分區進行重新排序。

誰能給我一些關於具有良好性能/安全平衡的磁碟加密方案的建議,或者指出我已經完成的任何基準測試的方向?

我有一點Google,我沒有找到太多有用的東西。似乎較舊的 Xeon 無法使用 AES 磁碟加密。

我檢查了另一台具有單個 Intel(R) Xeon(R) CPU X3430 @ 2.40GHz 的伺服器,它們仍然保持 87mb/s,在典型的單個 SATA 驅動器上使用完全相同的加密方案,最大速度為 107mb/s,無需加密。

我還在調查fio,似乎不是那麼直截了當。給出的大多數範例都是隨機訪問的,這不是我所追求的。我需要大文件的原始吞吐量。

嗯,首先是硬碟是圓形的。第一個扇區位於碟片的外側邊緣,從那裡扇區向內移動。對於相同的轉速,距盤中心 1.5" 的部分具有 4.71" 的線性長度。距盤中心 1" 的部分具有 3.14" 的線性長度。由於碟片旋轉速度是恆定的,外部磁軌上的扇區可以更快地執行線性讀取……在這兩個範例磁軌之間,第一個磁軌的讀取速度會快 1.5 倍。

當您對驅動器進行分區時,主要依賴驅動器速度的未加密分區接近驅動器空間的末端。這使得它們比在驅動器開始附近的第一次測試要慢。

同時,主要依靠 CPU 速度來實現吞吐量(解密功能)的加密分區靠近外部/啟動,因此具有更快的磁碟讀取速度,這並不重要,因為加密功能比它慢。

總之,這些速度對我來說很有意義。在您有加密和未加密分區的情況下,將加密分區排序到磁碟末尾可能是有意義的。

引用自:https://serverfault.com/questions/402616