Linux中國

使用條塊化I/O管理多個LVM磁碟(第五部分)

LVM條塊化是什麼?

LVM條塊化是LVM功能之一,該技術會跨多個磁碟寫入數據,而不是對單一物理卷持續寫入。

Manage LVM Disks Using Striping I/O

使用條塊化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

List Hard Drives

列出硬碟驅動器

現在,我們必須為這4個硬碟驅動器sdbsdcsddsde創建分區,我們將用『fdisk』命令來完成該工作。要創建分區,請遵從本文第一部分步驟#4的說明,並在創建分區時確保你已將類型修改為LVM(8e)

# pvcreate /dev/sd[b-e]1 -v

Create Physical Volumes in LVM

在LVM中創建物理卷

PV創建完成後,你可以使用『pvs』命令將它們列出來。

# pvs

Verify Physical Volumes

驗證物理卷

現在,我們需要使用這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

Verify Volume Group

驗證卷組

要獲取VG更詳細的信息,可以在vgdisplay命令中使用『-v』選項,它將給出vg_strip卷組中所使用的全部物理卷的詳細情況。

# vgdisplay vg_strip -v

Volume Group Information

卷組信息

回到我們的話題,現在在創建邏輯卷時,我們需要定義條塊化值,就是數據需要如何使用條塊化方法來寫入到我們的邏輯卷中。

這裡,我創建了一個名為lv_tecmint-strp1,大小為900MB的邏輯卷,它需要放到vg_strip卷組中。我定義了4個條塊,就是說數據在寫入到我的邏輯卷時,需要條塊化分散到4個PV中。

# lvcreate -L 900M -n lv_tecmint_strp1 -i4 vg_strip
  • -L –邏輯卷大小
  • -n –邏輯卷名稱
  • -i –條塊化

Create Logical Volumes

創建邏輯卷

在上面的圖片中,我們可以看到條塊尺寸的默認大小為64 KB,如果我們需要自定義條塊值,我們可以使用-I(大寫I)。要確認邏輯卷已經是否已經創建,請使用以下命令。

# lvdisplay vg_strip/lv_tecmint_strp1

Confirm Logical Volumes

確認邏輯卷

現在,接下來的問題是,我們怎樣才能知道條塊被寫入到了4個驅動器。這裡,我們可以使用『lvdisplay』和-m(顯示邏輯卷映射)命令來驗證。

# lvdisplay vg_strip/lv_tecmint_strp1 -m

Check Logical Volumes

檢查邏輯卷

要創建自定義的條塊尺寸,我們需要用我們自定義的條塊大小256KB來創建一個1GB大小的邏輯卷。現在,我打算將條塊分布到3個PV上。這裡,我們可以定義我們想要哪些pv條塊化。

# lvcreate -L 1G -i3 -I 256 -n lv_tecmint_strp2 vg_strip /dev/sdb1 /dev/sdc1 /dev/sdd1

Define Stripe Size

定義條塊大小

接下來,檢查條塊大小和條塊化的卷。

# lvdisplay vg_strip/lv_tecmint_strp2 -m

Check Stripe Size

檢查條塊大小

是時候使用設備映射了,我們使用『dmsetup』命令來完成這項工作。它是一個低級別的邏輯卷管理工具,它用於管理使用了設備映射驅動的邏輯設備。

# dmsetup deps /dev/vg_strip/lv_tecmint_strp[1-2]

Device Mapper

設備映射

這裡,我們可以看到strp1依賴於4個驅動器,strp2依賴於3個設備。

希望你已經明白,我們怎樣能讓邏輯卷條塊化來寫入數據。對於此項設置,必須掌握邏輯卷管理基礎知識。

在我的下一篇文章中,我將給大家展示怎樣在邏輯卷管理中遷移數據。到那時,請靜候更新。同時,別忘了對本文提出有價值的建議。

via: http://www.tecmint.com/manage-multiple-lvm-disks-using-striping-io/

作者:Babin Lonston 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國