在所有磁碟中,第一個磁區和最後一個磁區之間的速度差異非常明顯,高達兩到三倍。對於新的多 TB 磁碟來說仍然如此。因此,為不常用的檔案(尤其是備份)保留磁碟的最後一個柱面仍然是有意義的。
對於分割磁碟,執行此操作很簡單,唯一的警告是允許將來更改大小。
但我的配置是未分割的LVM。因此,我需要將兩個磁碟區組放在同一實體硬體中(一個使用一組磁碟的開頭,另一個使用結尾),或確保邏輯磁碟區更喜歡使用硬體最後柱面中的擴充。是否可以?我們可以控制 LV 的位置嗎?
答案1
我不太同意這是大多數工作負載中的一個大問題,因為您可以使用快取、預讀策略和磁碟升降機,但這是可能的,但需要注意。
解決這個問題的最佳方法是將要指派的媒體實體分割成“區塊”,您認為要分離磁碟的每一端。
像這樣的東西
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 4TB 4TB primary lvm # My fast partition
3 4TB 8TB 4TB primary lvm # My slow partition
然後,建立卷宗組。在此範例中,我使用一個磁碟區組,但使用「慢」VG 和「快」VG 可能會更容易。
# pvcreate /dev/sda2
# pvcreate /dev/sda3
# vgcreate vg /dev/sda2 /dev/sda3
然後從上述物理卷中分配您的 LV。
# lvcreate -n myFastLV -L1TB vg /dev/sda2
# lvcreate -n mySlowLV -L1TB vg /dev/sda3
這裡要注意的是,壞磁區可以由磁碟控制器默默地替換,而「保留」通常位於其他地方(完全獨立於製造商)。此外,一些更高級的磁碟可能會在內部重新映射磁區,這在邏輯上與所提供的聲明一致,但實際上不在您期望的位置。
最後,您建議的問題工作負載(管道化大檔案)實際上是一個非常連續的工作負載問題,透過對寫入的檔案使用預先分配技術(以保持它們連續而不是碎片)可以獲得更大的收益。
然後設定積極的預讀策略來讀取整個相鄰/即將到來的磁區,這些磁區很可能與您正在讀取的檔案相鄰。
還可以透過將實體磁區對應到您想要的任何順序和方式來實現更細粒度的方法dmsetup
,但這不會太便攜,並且從長遠來看可能比其價值更多的努力(您需要一個腳本來重建)例如啟動時的映射)。