前面介紹 LV Properties – https://benjr.tw/18720 時說到 LVM 提供了三種硬碟對應( mapping )方式,1.Linear 2.Mirrored 3.Striped 預設是 Linear 剛剛前面的範例都是使用 Linear ,如果系統只有單獨一個 PV(Physical Volume) 時的唯一選擇.當你系統 VG(Volume Group) 是由多個 PV(Physical Volume) 時就可以使用另外兩種 2.Mirrored 3.Striped 他們跟 RAID 的概念一致,你可以把它想像成 Soft RAID 的 方式.Mirrored 就像是 RAID 1 ,Striped 就像是 RAID 0.
目前我的系統有三個硬碟分別切割成 sdb1 , sdc1 ,sdd1 並將他們組合在一起成為一個 VG(Volume Group).剛建立好 VG 的 vg1 在 Volume Groups 就會看到,現在就可以來建立 LV,點選 "Create New Logical Voumes" Mirrored 和 Striped 的 LV(Logical Volume) 各切一種出來.
Mirrored(RAID 1):
這邊有點要注意一下的是 Mirrored(RAID 1) 需要的 PV(Physical Volume) 是三顆,因為它還需要另外一顆 PV(Physical Volume) 存放 Mirrored Log,但老實說我不是很清楚這個 Log 主要的用意是做什麼的.
Striped(RAID 0):
Striped(RAID 0) 最少需要 2 個 PV(Physical Volume) 存在 VG(Volume Group) 中,這邊有三顆 PV(Physical Volume) 我通通都把他指定下去,下面可以看到 LV(Logical Volume) 真正對應到實體 PV(Physical Volume) 的狀態.
實際的對應可以很清楚的看到 Mirrored 的資料是同時各存一塊在個別的 PV(Physical Volume) 在加上一個 PV(Physical Volume) 存放 Log.而 Striped 則是將資料分別打散到各個不同的 PV(Physical Volume) 以達到加速資料的存取.
測試一下效能,可以看到 striped 的效能的確較好.
[root@benjr ~]# hdparm -t /dev/vg1/mirrored Timing buffered disk reads: 182 MB in 3.01 seconds = 60.49 MB/sec HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device [root@benjr ~]# hdparm -t /dev/vg1/striped /dev/vg1/striped: Timing buffered disk reads: 702 MB in 3.01 seconds = 233.54 MB/sec HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device