使用條塊化I/O管理多個LVM磁碟(第五部分)
LVM條塊化是什麼?
LVM條塊化是LVM功能之一,該技術會跨多個磁碟寫入數據,而不是對單一物理卷持續寫入。
使用條塊化I/O管理LVM磁碟
條塊化特性
- 它會改善磁碟性能。
- 避免對單一磁碟的不斷的大量寫入。
- 使用對多個磁碟的條塊化寫入,可以減少磁碟填滿的幾率。
在邏輯卷管理中,如果我們需要創建一個邏輯卷,擴展的卷會完全映射到卷組和物理卷。在此種情形中,如果其中一個PV(物理卷)被填滿,我們需要從其它物理卷中添加更多擴展。這樣,添加更多擴展到PV中後,我們可以指定邏輯卷使用特定的物理卷寫入I/O。
假設我們有四個磁碟驅動器,分別指向了四個物理卷,如果各個物理卷總計可以達到100 I/O,我們卷組就可以獲得400 I/O。
如果我們不使用條塊化方法,文件系統將橫跨基礎物理卷寫入。例如,寫入一些數據到物理卷達到100 I/O,這些數據只會寫入到第一個PV(sdb1)。如果我們在寫入時使用條塊化選項創建邏輯卷,它會分割100 I/O分別寫入到四個驅動器中,這就是說每個驅動器中都會接收到25 I/O。
這會在循環過程中完成。如果這些邏輯卷其中任何一個需要擴展,在這種情形下,我們不能添加1個或2個PV,必須添加所有4個pv來擴展邏輯卷大小。這是條塊化特性的缺點之一,從中我們可以知道,在創建邏輯卷時,我們需要為所有邏輯卷分配相同的條塊大小。
邏輯卷管理有著這些特性,它使我們能夠同時在多個pv中條塊化數據。如果你對邏輯卷熟悉,你可以去設置邏輯卷條塊化。反之,你則必須了解邏輯卷管理的基礎知識了,請閱讀更基礎的文章來了解邏輯卷管理。
我的伺服器設置
這裡,我使用CentOS6.5用作練習。下面這些步驟也適用於RHEL、Oracle Linux以及大多數發行版。
操作系統: CentOS 6.5
IP地址: 192.168.0.222
主機名: tecmint.storage.com
條塊化I/O的邏輯卷管理
出於演示目的,我已經準備了4個硬碟驅動器,每個驅動器1GB大小。讓我用下面的『fdisk』命令來列給你看看吧。
# fdisk -l | grep sd
列出硬碟驅動器
現在,我們必須為這4個硬碟驅動器sdb,sdc,sdd和sde創建分區,我們將用『fdisk』命令來完成該工作。要創建分區,請遵從本文第一部分中步驟#4的說明,並在創建分區時確保你已將類型修改為LVM(8e)。
# pvcreate /dev/sd[b-e]1 -v
在LVM中創建物理卷
PV創建完成後,你可以使用『pvs』命令將它們列出來。
# pvs
驗證物理卷
現在,我們需要使用這4個物理捲來定義卷組。這裡,我定義了一個物理擴展大小(PE)為16MB,名為vg_strip的卷組。
# vgcreate -s 16M vg_strip /dev/sd[b-e]1 -v
上面命令中選項的說明:
- [b-e]1 – 定義硬碟驅動器名稱,如sdb1,sdc1,sdd1,sde1。
- -s – 定義物理擴展大小。
- -v – 詳情。
接下來,驗證新創建的卷組:
# vgs vg_strip
驗證卷組
要獲取VG更詳細的信息,可以在vgdisplay命令中使用『-v』選項,它將給出vg_strip卷組中所使用的全部物理卷的詳細情況。
# vgdisplay vg_strip -v
卷組信息
回到我們的話題,現在在創建邏輯卷時,我們需要定義條塊化值,就是數據需要如何使用條塊化方法來寫入到我們的邏輯卷中。
這裡,我創建了一個名為lv_tecmint-strp1,大小為900MB的邏輯卷,它需要放到vg_strip卷組中。我定義了4個條塊,就是說數據在寫入到我的邏輯卷時,需要條塊化分散到4個PV中。
# lvcreate -L 900M -n lv_tecmint_strp1 -i4 vg_strip
- -L –邏輯卷大小
- -n –邏輯卷名稱
- -i –條塊化
創建邏輯卷
在上面的圖片中,我們可以看到條塊尺寸的默認大小為64 KB,如果我們需要自定義條塊值,我們可以使用-I(大寫I)。要確認邏輯卷已經是否已經創建,請使用以下命令。
# lvdisplay vg_strip/lv_tecmint_strp1
確認邏輯卷
現在,接下來的問題是,我們怎樣才能知道條塊被寫入到了4個驅動器。這裡,我們可以使用『lvdisplay』和-m(顯示邏輯卷映射)命令來驗證。
# lvdisplay vg_strip/lv_tecmint_strp1 -m
檢查邏輯卷
要創建自定義的條塊尺寸,我們需要用我們自定義的條塊大小256KB來創建一個1GB大小的邏輯卷。現在,我打算將條塊分布到3個PV上。這裡,我們可以定義我們想要哪些pv條塊化。
# lvcreate -L 1G -i3 -I 256 -n lv_tecmint_strp2 vg_strip /dev/sdb1 /dev/sdc1 /dev/sdd1
定義條塊大小
接下來,檢查條塊大小和條塊化的卷。
# lvdisplay vg_strip/lv_tecmint_strp2 -m
檢查條塊大小
是時候使用設備映射了,我們使用『dmsetup』命令來完成這項工作。它是一個低級別的邏輯卷管理工具,它用於管理使用了設備映射驅動的邏輯設備。
# dmsetup deps /dev/vg_strip/lv_tecmint_strp[1-2]
設備映射
這裡,我們可以看到strp1依賴於4個驅動器,strp2依賴於3個設備。
希望你已經明白,我們怎樣能讓邏輯卷條塊化來寫入數據。對於此項設置,必須掌握邏輯卷管理基礎知識。
在我的下一篇文章中,我將給大家展示怎樣在邏輯卷管理中遷移數據。到那時,請靜候更新。同時,別忘了對本文提出有價值的建議。
via: http://www.tecmint.com/manage-multiple-lvm-disks-using-striping-io/
作者:Babin Lonston 譯者:GOLinux 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive