PowerEdge:在 RHEL 上使用 NVMe PCIe SSD 型 dm-cache 加快區塊裝置效能
摘要: 裝置對應快取 (dm-cache) 可動態將資料轉移到速度更快的裝置,用於提高區塊裝置的效能。
說明
NVMe 型 PCIe SSD 可使用使用者空間工具集邏輯磁碟區管理員 (LVM) 工具,作為 dm-cache 的快取裝置。
由 dm-cache 建立的虛擬快取由三個實體裝置組成。(參考圖 1)來源裝置是速度較慢的目的地儲存裝置 (HDD)。快取裝置用於儲存使用者資料,而中繼快取則儲存區塊位置、髒標記及其他內部資料等中繼資料。
在本例中,資料區塊與中繼資料都使用同一個裝置 [快取裝置]。
圖 1:使用 LVM 工具設定和配置 dm-cache 的步驟。
硬體設定:
來源裝置 [HDD]: /dev/sda1
快取裝置 [NVMe 型 PCIe SSD] (區塊/中繼): /dev/nvme0n1p1
軟體設定:
作業系統:RHEL 7
工具:用於 dm-cache 組態的 LVM2 使用者空間工具
組態步驟:
以下是使用 LVM 設定虛擬裝置 dm-cache 的步驟。
每個步驟的輸出對應到區塊,其編號如圖 1 所示。
- 在硬碟 [來源裝置] 上建立 100 GB 分割區
parted -a optimal /dev/sda mkpart primary 1 100G
注意:這會建立 /dev/sda1 - 在 NVMe PCIe SSD 磁碟 [快取裝置] 建立 10 GB 分割區
parted -a optimal /dev/nvme0n1 mkpart primary 1 10G
- 使用來源與快取裝置建立磁碟區群組 (快取)
vgcreate cache /dev/sda1 /dev/nvme0n1p1
- 使用下列方法檢查「快取」磁碟區群組:
vgdisplay[root@localhost ~]# vgdisplay --- Volume group --- VG Name cache System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 103.36 GiB PE Size 4.00 MiB Total PE 26461 Alloc PE / Size 25399 / 99.21 GiB Free PE / Size 1062 / 4.15 GiB VG UUID Zd8dNe-6Kdt-7qgY-dmSN-8WHe-4wqQ-euM3Ql
- 使用下列方法檢查「快取」磁碟區群組:
- 建立來源裝置邏輯磁碟區 (
origin_device)lvcreate -l 90%FREE -n origin_device cache /dev/sda1
- 建立快取中繼資料邏輯磁碟區 (
cache_meta)lvcreate -l 5%FREE -n cache_meta cache /dev/nvme0n1p1
- 建立快取區塊資料邏輯磁碟區 (
cache_block)lvcreate -l 80%FREE -n cache_block cache /dev/nvme0n1p1
- 透過結合快取區塊和快取中繼資料邏輯磁碟區 (結合步驟 5 和 6),來建立快取集區邏輯磁碟區
lvconvert --type cache-pool --poolmetadata cache/cache_meta cache/cache_block
注意:建立的快取集區名稱與「cache_block」相同,即在步驟 6 中建立的快取區塊資料邏輯磁碟區的名稱。-
這是工具的行為。使用下列方法檢查「快取」磁碟區群組:
lvdisplayroot@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/cache/cache_block LV Name cache_block VG Name cache LV UUID kWYQxP-Jdlr-JdxE-aleB-JJpj-3rmw-Q0cojx LV Write Access read/write LV Creation host, time localhost.localdomain, 2014-06-28 09:05:32 -0400 LV Status available # open 0 LV Size 5.07 GiB Current LE 1297 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
-
-
若要建立快取邏輯磁碟區,請連結快取集區 (步驟 7) 邏輯磁碟區和
origin_device邏輯磁碟區 (步驟 4)lvconvert --type cache --cachepool cache/cache_block cache/origin_device
- 這會建立虛擬快取裝置 (dm-cache)
orign_device如下所示dm4。[root@localhost ~]# ls -l /dev/cache/origin_device lrwxrwxrwx. 1 root root 7 Jun 28 09:13 /dev/cache/origin_device -> ../dm-4
- 這會建立虛擬快取裝置 (dm-cache)
-
使用檔案系統格式化虛擬快取裝置並使用它。
mkfs.ext4 /dev/cache/origin_device
效能資料:
使用 FIO 工具完成的效能測試,顯示讀取、寫入和讀寫混合操作已大幅提升。
表 1 顯示 FIO 工具輸出的效能差異,以及增益百分比:搭配 dmcache 使用時 (相較於正常磁碟機 (旋轉磁碟機)),圖 2 則顯示相應的圖形。
以 1M 區塊大小進行隨機讀取、隨機寫入和隨機讀寫混合 (50%) 測試,於原始硬碟 (sda) 和磁碟機搭配 dmcache 設定。
| FIO:BS = 1M | IOPS | ||
|---|---|---|---|
| 裝置 | 讀取 | 寫入 | 讀寫 |
磁碟機搭配 dm-cache |
197 | 798 | 159 |
| sda [原始磁碟機] | 124 | 118 | 58 |
| 增益百分比 (%) | 58.87% | 576.20% | 174.13% |
表 1:效能增益搭配 dm-cache
圖 2:效能增益搭配 dm-cache。