使用條塊化I/O管理多個LVM磁碟(第五部分)
在本文中,我們將瞭解邏輯卷是如何通過條塊化I/O來寫入資料到磁碟的。邏輯卷管理的酷炫特性之一,就是它能通過條塊化I/O跨多個磁碟寫入資料。
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下磁碟I/O測試Linux
- MySQL之磁碟I/O過高排查MySql
- 用bonnie++測試磁碟I/O
- Linux LVM磁碟管理與FS掛載LinuxLVM
- 如何監測 Linux 的磁碟 I/O 效能Linux
- Linux—磁碟配額,管理LVM邏輯卷LinuxLVM
- LVM與磁碟配額管理 so easy come onLVM
- 在 Linux 中如何使用 iotop 和 iostat 監控磁碟 I/O 活動?LinuxiOS
- 在滴滴雲 DC2 雲伺服器上使用 LVM 管理磁碟伺服器LVM
- LVM與磁碟配額LVM
- 計算機I/O與I/O模型計算機模型
- linux 給lvm磁碟擴容LinuxLVM
- 如何使用 LVM 管理滴滴雲 EBSLVM
- I/O流
- Java I/OJava
- Centos7使用SSM管理LVM卷CentOSSSMLVM
- 頭條號批次管理工具,多個頭條號批次進行管理
- Python教程:精簡概述I/O模型與I/O操作Python模型
- 掛載已有資料的LVM磁碟LVM
- iOS拾遺—— Assets Catalogs 與 I/O 優化iOS優化
- Python--I/O格式化與運算子Python
- 關於I/O
- c++ I/OC++
- 【java】I/O流Java
- Java(8)I/OJava
- I/O複用3個小例項+將signal轉化為IO事件事件
- 系統服務監控指標--load、CPU利用率、磁碟剩餘空間、磁碟I/O、記憶體使用情況等指標記憶體
- 如何在 Ubuntu 中管理和使用邏輯卷管理 LVMUbuntuLVM
- 如何在Linux系統伺服器中測試儲存/磁碟I/O效能?Linux伺服器
- 使用 Docker Compose 管理多個容器Docker
- JAVA I/O系統Java
- 系統級 I/O
- Google I/O Extend 2018Go
- 網路I/O模型模型
- NodeJs 非同步 I/ONodeJS非同步
- 理解I/O Completion Port
- python 非同步 I/OPython非同步
- 02. I/O 操作
- Java 非同步 I/OJava非同步