溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么進行LVM邏輯卷管理的學(xué)習(xí)

發(fā)布時間:2021-12-30 17:08:37 來源:億速云 閱讀:139 作者:柒染 欄目:云計算

怎么進行LVM邏輯卷管理的學(xué)習(xí),相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

Linux LVM 的使用詳解摘要: Linux用戶安裝Linux操作系統(tǒng)時遇到的一個最常見的難以決定的問題就是如何正確地給評估各分區(qū)大小,以分配合適的硬盤空間。而遇到出現(xiàn)某個分區(qū)空間耗盡時,解決的方法通常是使用符號鏈接,或者使用調(diào)整分區(qū)大小的工具(比如Patition Magic等),但這都只是暫時解決辦法,沒有根本解決問題。隨著Linux的邏輯盤卷管理功能的出現(xiàn),這些問題都迎刃而解,下面就深入討論LVM技術(shù),使得用戶在無需停機的情況下方便地調(diào)整各個分區(qū)大小。

一、 前言

每個Linux使用者在安裝Linux時都會遇到這樣的困境:在為系統(tǒng)分區(qū)時,如何精確評估和分配各個硬盤分區(qū)的容量,因為系統(tǒng)管理員不但要考慮到當(dāng)前某個分區(qū)需要的容量,還要預(yù)見該分區(qū)以后可能需要的容量的最大值。因為如果估計不準(zhǔn)確,當(dāng)遇到某個分區(qū)不夠用時管理員可能甚至要備份整個系統(tǒng)、清除硬盤、重新對硬盤分區(qū),然后恢復(fù)數(shù)據(jù)到新分區(qū)。


雖然現(xiàn)在有很多動態(tài)調(diào)整磁盤的工具可以使用,例如Partation Magic等等,但是它并不能完全解決問題,因為某個分區(qū)可能會再次被耗盡;另外一個方面這需要重新引導(dǎo)系統(tǒng)才能實現(xiàn),對于很多關(guān)鍵的服務(wù)器,停機是不可接受的,而且對于添加新硬盤,希望一個能跨越多個硬盤驅(qū)動器的文件系統(tǒng)時,分區(qū)調(diào)整程序就不能解決問題。


因此完美的解決方法應(yīng)該是在零停機前提下可以自如對文件系統(tǒng)的大小進行調(diào)整,可以方便實現(xiàn)文件系統(tǒng)跨越不同磁盤和分區(qū)。幸運的是Linux提供的邏輯盤卷管理(LVM,Logical Volume Manager)機制就是一個完美的解決方案。

    LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環(huán)境下對磁盤分區(qū)進行管理的一種機制,LVM是建立在硬盤和分區(qū)之上的一個邏輯層,來提高磁盤分區(qū)管理的靈活性。通過LVM系統(tǒng)管理員可以輕松管理磁盤分區(qū),如:將若干個磁盤分區(qū)連接為一個整塊的卷組(volume group),形成一個存儲池。管理員可以在卷組上隨意創(chuàng)建邏輯卷組(logical volumes),并進一步在邏輯卷組上創(chuàng)建文件系統(tǒng)。管理員通過LVM可以方便的調(diào)整存儲卷組的大小,并且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當(dāng)系統(tǒng)添加了新的磁盤,通過LVM管理員就不必將磁盤的文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統(tǒng)跨越磁盤即可。

二、 LVM基本術(shù)語

前面談到,LVM是在磁盤分區(qū)和文件系統(tǒng)之間添加的一個邏輯層,來為文件系統(tǒng)屏蔽下層磁盤分區(qū)布局,提供一個抽象的盤卷,在盤卷上建立文件系統(tǒng)。首先我們討論以下幾個LVM術(shù)語:


物理存儲介質(zhì)(The physical media)
這里指系統(tǒng)的存儲設(shè)備:硬盤,如:/dev/hda、/dev/sda等等,是存儲系統(tǒng)最低層的存儲單元。
物理卷(physical volume)
物理卷就是指硬盤分區(qū)或從邏輯上與磁盤分區(qū)具有同樣功能的設(shè)備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(zhì)(如分區(qū)、磁盤等)比較,卻包含有與LVM相關(guān)的管理參數(shù)。
卷組(Volume Group)
LVM卷組類似于非LVM系統(tǒng)中的物理硬盤,其由物理卷組成??梢栽诰斫M上創(chuàng)建一個或多個“LVM分區(qū)”(邏輯卷),LVM卷組由一個或多個物理卷組成。
邏輯卷(logical volume)
LVM的邏輯卷類似于非LVM系統(tǒng)中的硬盤分區(qū),在邏輯卷之上可以建立文件系統(tǒng)(比如/home或者/usr等)。
PE(physical extent)
每一個物理卷被劃分為稱為PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認(rèn)為4MB。

LE(logical extent)
邏輯卷也被劃分為被稱為LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,并且一一對應(yīng)。


首先可以看到,物理卷(PV)被由大小等同的基本單元PE組成。


一個卷組由一個或多個物理卷組成,


從上圖可以看到,PE和LE有著一一對應(yīng)的關(guān)系。邏輯卷建立在卷組上。邏輯卷就相當(dāng)于非LVM系統(tǒng)的磁盤分區(qū),可以在其上創(chuàng)建文件系統(tǒng)。


下圖是磁盤分區(qū)、卷組、邏輯卷和文件系統(tǒng)之間的邏輯關(guān)系的示意圖:


和非LVM系統(tǒng)將包含分區(qū)信息的元數(shù)據(jù)保存在位于分區(qū)的起始位置的分區(qū)表中一樣,邏輯卷以及卷組相關(guān)的元數(shù)據(jù)也是保存在位于物理卷起始處的VGDA(卷組描述符區(qū)域)中。VGDA包括以下內(nèi)容: PV描述符、VG描述符、LV描述符、和一些PE描述符 。


系統(tǒng)啟動LVM時激活VG,并將VGDA加載至內(nèi)存,來識別LV的實際物理存儲位置。當(dāng)系統(tǒng)進行I/O操作時,就會根據(jù)VGDA建立的映射機制來訪問實際的物理位置。

三、 安裝LVM

首先確定系統(tǒng)中是否安裝了lvm工具:

    [root@www root]# rpm –qa|grep lvm
    lvm-1.0.3-4


如果命令結(jié)果輸入類似于上例,那么說明系統(tǒng)已經(jīng)安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網(wǎng)絡(luò)下載或者從光盤裝LVM rpm工具包。


安裝了LVM的RPM軟件包以后,要使用LVM還需要配置內(nèi)核支持LVM。RedHat默認(rèn)內(nèi)核是支持LVM的,如果需要重新編譯內(nèi)核,則需要在配置內(nèi)核時,進入Multi-device Support (RAID and LVM)子菜單,選中以下兩個選項:

  
Multiple devices driver support (RAID and LVM)
  <*> Logical volume manager (LVM) Support


然后重新編譯內(nèi)核,即可將LVM的支持添加到新內(nèi)核中。


為了使用LVM,要確保在系統(tǒng)啟動時激活LVM,幸運的是在RedHat7.0以后的版本,系統(tǒng)啟動腳本已經(jīng)具有對激活LVM的支持,在/etc/rc.d/rc.sysinit中有以下內(nèi)容:

# LVM initialization
if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
action $"Setting up Logical Volume Management:" /sbin/vgscan && /sbin/vgchange -a y
fi


其中關(guān)鍵是兩個命令,vgscan命令實現(xiàn)掃描所有磁盤得到卷組信息,并創(chuàng)建文件卷組數(shù)據(jù)文件/etc/lvmtab和/etc/lvmtab.d/*;vgchange -a y命令激活系統(tǒng)所有卷組。

四、 創(chuàng)建和管理LVM
要創(chuàng)建一個LVM系統(tǒng),一般需要經(jīng)過以下步驟:

1、
創(chuàng)建分區(qū)

使用分區(qū)工具(如:fdisk等)創(chuàng)建LVM分區(qū),方法和創(chuàng)建其他一般分區(qū)的方式是一樣的,區(qū)別僅僅是LVM的分區(qū)類型為8e。

2、
創(chuàng)建物理卷

創(chuàng)建物理卷的命令為pvcreate,利用該命令將希望添加到卷組的所有分區(qū)或者磁盤創(chuàng)建為物理卷。將整個磁盤創(chuàng)建為物理卷的命令為:

# pvcreate /dev/hdb


將單個分區(qū)創(chuàng)建為物理卷的命令為:

        # pvcreate /dev/hda5

3、
創(chuàng)建卷組

創(chuàng)建卷組的命令為vgcreate,將使用pvcreate建立的物理卷創(chuàng)建為一個完整的卷組:

        # vgcreate web_document /dev/hda5 /dev/hdb

    vgcreate命令第一個參數(shù)是指定該卷組的邏輯名:web_document。后面參數(shù)是指定希望添加到該卷組的所有分區(qū)和磁盤。vgcreate在創(chuàng)建卷組 web_document 以外,還設(shè)置使用大小為4 MB的PE(默認(rèn)為4MB),這表示卷組上創(chuàng)建的所有邏輯卷都以 4 MB 為增量單位來進行擴充或縮減。由于內(nèi)核原因,PE大小決定了邏輯卷的最大大小,4 MB 的PE決定了單個邏輯卷最大容量為 256 GB,若希望使用大于256G的邏輯卷則創(chuàng)建卷組時指定更大的PE。PE大小范圍為8 KB 到 512 MB,并且必須總是 2 的倍數(shù)(使用-s指定,具體請參考man vgcreate)。

4、
激活卷組

為了立即使用卷組而不是重新啟動系統(tǒng),可以使用vgchange來激活卷組:

        # vgchange -a y web_document

5、
添加新的物理卷到卷組中

當(dāng)系統(tǒng)安裝了新的磁盤并創(chuàng)建了新的物理卷,而要將其添加到已有卷組時,就需要使用vgextend命令:

        # vgextend web_document /dev/hdc1


這里/dev/hdc1是新的物理卷。

6、
從卷組中刪除一個物理卷

要從一個卷組中刪除一個物理卷,首先要確認(rèn)要刪除的物理卷沒有被任何邏輯卷正在使用,就要使用pvdisplay命令察看一個該物理卷信息:


如果某個物理卷正在被邏輯卷所使用,就需要將該物理卷的數(shù)據(jù)備份到其他地方,然后再刪除。刪除物理卷的命令為vgreduce:

        # vgreduce web_document /dev/hda1

7、
創(chuàng)建邏輯卷

創(chuàng)建邏輯卷的命令為lvcreate:

        # lvcreate -L1500 –nwww1 web_document


該命令就在卷組web_document上創(chuàng)建名字為www1,大小為1500M的邏輯卷,并且設(shè)備入口為/dev/web_document/www1(web_document為卷組名,www1為邏輯卷名)。如果希望創(chuàng)建一個使用全部卷組的邏輯卷,則需要首先察看該卷組的PE數(shù),然后在創(chuàng)建邏輯卷時指定:

# vgdisplay web_document| grep "Total PE"
Total PE 45230
# lvcreate -l 45230 web_document -n www1

8、
創(chuàng)建文件系統(tǒng)

筆者推薦使用reiserfs文件系統(tǒng),來替代ext2和ext3:


創(chuàng)建了文件系統(tǒng)以后,就可以加載并使用它:

# mkdir /data/wwwroot
# mount /dev/web_document/www1 /data/wwwroot

如果希望系統(tǒng)啟動時自動加載文件系統(tǒng),則還需要在/etc/fstab中添加內(nèi)容:

/dev/web_document/www1 /data/wwwroot reiserfs defaults 1 2

9、
刪除一個邏輯卷
刪除邏輯卷以前首先需要將其卸載,然后刪除:

# umount /dev/web_document/www1
# lvremove /dev/web_document/www1
lvremove -- do you really want to remove "/dev/web_document/www1"? [y/n]: y
lvremove -- doing automatic backup of volume group "web_document"
lvremove -- logical volume "/dev/web_document/www1" successfully removed

10、
擴展邏輯卷大小
用慣了傳統(tǒng)調(diào)整硬盤工具的人可能會認(rèn)為文件系統(tǒng)和硬盤的分區(qū)之間是統(tǒng)一的,實際上他們之間并不是完整的整體(這也就是為什么BSD可以在一個硬盤分區(qū)里面制作多個文件系統(tǒng)分區(qū))。想像一下帶有移動式書架的書櫥。你可以通過移動式書架調(diào)整書櫥里面書籍的位置。把書當(dāng)成文件系統(tǒng),你可以在書櫥里面放滿書籍,也可以通過移動式書架調(diào)整書櫥的空間。當(dāng)然也可以通過書架調(diào)整書櫥里面書籍存放的位置。如下圖所示:


|<-- hda1--- ->|<-- hda2------>|
+---------------+---------------+
|xxxxxxxxxxx|xxxxxx| |
|xxxxxxxxxxx|xxxxxx| |
+---------------+---------------+

  硬盤分區(qū)/dev/hda1中的文件系統(tǒng)占滿了整個分區(qū),而/dev/hda2中的文件系統(tǒng)只占用了2/3左右的分區(qū)。

所以在調(diào)整邏輯卷容量大小的同時也要調(diào)整在該卷上的文件系統(tǒng)的大小,當(dāng)要增大容量時,先調(diào)整容量,后調(diào)整文件系統(tǒng),若要縮小容量則反之。
LVM提供了方便調(diào)整邏輯卷大小的能力,擴展邏輯卷大小的命令是lvextend:

# lvextend -L12G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to 12 GB
lvextend -- doing automatic backup of volume group "web_document "
lvextend -- logical volume "/dev/web_document/www1" successfully extended

上面的命令就實現(xiàn)將邏輯卷www1的大小擴招為12G。

# lvextend -L+1G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to 13 GB
lvextend -- doing automatic backup of volume group "web_document "
lvextend -- logical volume "/dev/web_document/www1" successfully extended

上面的命令就實現(xiàn)將邏輯卷www1的大小增加1G。


增加了邏輯卷的容量以后,就需要修改文件系統(tǒng)大小以實現(xiàn)利用擴充的空間。筆者推薦使用reiserfs文件系統(tǒng)來替代ext2或者ext3。因此這里僅僅討論reiserfs的情況。Reiserfs文件工具提供了文件系統(tǒng)大小調(diào)整工具:resize_reiserfs。對于希望調(diào)整被加載的文件系統(tǒng)大小:

    # resize_reiserfs -f /dev/web_document/www1


一般建議最好將文件系統(tǒng)卸載,調(diào)整大小,然后再加載:

# umount /dev/web_document/www1
# resize_reiserfs /dev/web_document/www1
# mount -treiserfs /dev/web_document/www1 /data/wwwroot

對于使用ext2或ext3文件系統(tǒng)的用戶可以考慮使用工具

     ext2resize。http://sourceforge.net/projects/ext2resize

11、 減少邏輯卷大小

使用lvreduce即可實現(xiàn)對邏輯卷的容量,同樣需要首先將文件系統(tǒng)卸載:

# umount /data/wwwroot
# resize_reiserfs -s-2G /dev/web_document/www1
# lvreduce -L-2G /dev/web_document/www1
# mount -treiserfs /dev/web_document/www1 /data/wwwroot

根據(jù)上面的討論可以看到,LVM具有很好的可伸縮性,使用起來非常方便??梢苑奖愕貙斫M、邏輯卷的大小進行調(diào)整,更進一步調(diào)整文件系統(tǒng)的大小。如果希望了解更多信息,請參考LVM-HOWTO。

看完上述內(nèi)容,你們掌握怎么進行LVM邏輯卷管理的學(xué)習(xí)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

lvm
AI