Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令
LVM,Logical Volume Manger,是linux內(nèi)核提供的一種邏輯卷管理功能,由內(nèi)核驅(qū)動和應(yīng)用層工具組成,它是在硬盤的分區(qū)基礎(chǔ)上,創(chuàng)建了一個邏輯層,可以非常靈活且非常方便的管理存儲設(shè)備。
LVM利用Linux內(nèi)核的device-mapper功能來實現(xiàn)存儲系統(tǒng)的虛擬化(系統(tǒng)分區(qū)獨立于底層硬件)。 通過LVM,可以實現(xiàn)存儲空間的抽象化并在上面建立虛擬分區(qū)(virtual partitions),可以更簡便地擴大和縮小分區(qū),可以增刪分區(qū)時無需擔(dān)心某個硬盤上沒有足夠的連續(xù)空間,避免為正在使用的磁盤重新分區(qū)的麻煩、為調(diào)整分區(qū)而不得不移動其他分區(qū)的不便,它相比傳統(tǒng)的分區(qū)系統(tǒng)可以更靈活地管理磁盤。
一、LVM的基本組成
1、物理卷 (PV,Physical Volume)
一個可供存儲LVM的塊設(shè)備. 如硬盤分區(qū)(MBR或GPT分區(qū))、SAN 的硬盤、RAID 或 LUN,一個回環(huán)文件, 一個被內(nèi)核映射的設(shè)備 (例如 dm-crypt),它包含一個特殊的LVM頭,它是 LVM 構(gòu)建的實際硬件或存儲系統(tǒng)。
2、卷組 (VG,Volume Group)
卷組是對一個或多個物理卷的集合,并在設(shè)備文件系統(tǒng)中顯示為 /dev/VG_NAME。
3、邏輯卷 (LV,Logical Volume)
邏輯卷是可供系統(tǒng)使用的最終元設(shè)備,它們在卷組中創(chuàng)建和管理,由物理塊組成,實際上就是一個虛擬分區(qū),并顯示為 /dev/VG_NAME/LV_NAME,通常在其上可以創(chuàng)建文件系統(tǒng)。
4、物理塊 (PE,Physical Extends)
一個卷組中最小的連續(xù)區(qū)域(默認為4 MiB),多個物理塊將被分配給一個邏輯卷。你可以把它看成物理卷的一部分,這部分可以被分配給一個邏輯卷。
下面我畫了一張lvm在linux磁盤管理中的位置圖:

依次為:disk -> partition -> PV -> VG -> LV -> fs,也即磁盤->分區(qū)->物理卷->卷組->邏輯卷->文件系統(tǒng)。
其創(chuàng)建也是按照這個順序,下面會詳細介紹。
二、LVM的優(yōu)缺點
1、優(yōu)點
比起傳統(tǒng)的硬盤分區(qū)管理方式,LVM更富于靈活性:
- 將多塊硬盤看作一塊大硬盤
- 使用邏輯卷(LV),可以創(chuàng)建跨越眾多硬盤空間的分區(qū)。
- 可以創(chuàng)建小的邏輯卷(LV),在空間不足時再動態(tài)調(diào)整它的大小。
- 在調(diào)整邏輯卷(LV)大小時可以不用考慮邏輯卷在硬盤上的位置,不用擔(dān)心沒有可用的連續(xù)空間。
- 可以在線(online)對邏輯卷(LV)和卷組(VG)進行創(chuàng)建、刪除、調(diào)整大小等操作。不過LVM上的文件系統(tǒng)也需要重新調(diào)整大小,好在某些文件系統(tǒng)(例如ext4)也支持在線操作。
- 無需重新啟動服務(wù),就可以將服務(wù)中用到的邏輯卷(LV)在線(online)/動態(tài)(live)遷移至別的硬盤上。
- 允許創(chuàng)建快照,可以保存文件系統(tǒng)的備份,同時使服務(wù)的下線時間(downtime)降低到最小。
- 支持各種設(shè)備映射目標(biāo)(device-mapper targets),包括透明文件系統(tǒng)加密和緩存常用數(shù)據(jù)(caching of frequently used data)。這將允許你創(chuàng)建一個包含一個或多個磁盤、并用LUKS加密的系統(tǒng),使用LVM on top 可輕松地管理和調(diào)整這些獨立的加密卷 (例如. /, /home, /backup等) 并免去開機時多次輸入密鑰的麻煩。
2、缺點
- 在系統(tǒng)設(shè)置時需要更復(fù)雜的額外步驟。
- Windows系統(tǒng)并不支持LVM,若使用雙系統(tǒng),你將無法在Windows上訪問LVM分區(qū)。
三、LVM的使用
1、創(chuàng)建分區(qū)(partition)
在配置lvm之前,必須對存儲設(shè)備進行分區(qū),可以使用fdisk或者parted工具進行,創(chuàng)建分區(qū)時注意分區(qū)類型的設(shè)置(類型為linux lvm):
- 如果使用的是MBR,設(shè)置分區(qū)類型要為8e。
- 如果使用的是GPT,設(shè)置分區(qū)類型要為E6D6D379-F507-44C2-A23C-238F2A3DF928。
我虛擬機新加了個磁盤/dev/sdb,下面我們創(chuàng)建一個8G的分區(qū):


以同樣的方式,再創(chuàng)建一個10G的linux lvm類型的分區(qū):

2、物理卷(PV)相關(guān)操作
①、通過lvmdiskscan命令列出可被用作pv的設(shè)備

注:如果系統(tǒng)引導(dǎo)程序不支持LVM,則/boot不能置于LVM中。此刻必須創(chuàng)建一個獨立的/boot分區(qū)并直接格式化后掛載到/boot。已知支持LVM的引導(dǎo)程序只有GRUB。
從上圖可以看到//dev/sda2已經(jīng)是PV了,所以只有dev/sda1、/dev/sdb1、/dev/sdb2可以用于創(chuàng)建PV,又因為/dev/sda1是boot引導(dǎo)區(qū),所以下面我們可以對/dev/sdb1、/dev/sdb2創(chuàng)建PV
②、使用pvcreate命令創(chuàng)建pv
root# pvcreate device1 device2 ...

③、查看當(dāng)前所有PV信息
可以通過pvs、pvscan、pvdisplay這三個命令查看pv信息

注意: 如果你用的是未格式化過且擦除塊(erase block)大小小于1M的SSD,請采用以下命令
pvcreate --dataalignment 1m /dev/sda來設(shè)置對齊(alignment)。
3、卷組(VG)相關(guān)操作
①、創(chuàng)建卷組
使用命令vgcreate創(chuàng)建卷組
root# vgcreate vg_name pv1 pv2 ...

創(chuàng)建卷組vg_fedora_yg,并把pv /dev/sdb1加入該卷組。
②、查看卷組信息

此時,也可以通過pvs查看各個物理卷所在的卷組:

4、邏輯卷(LV)相關(guān)操作
①、創(chuàng)建LV
使用lvcreate命令
root# lvcreate -L <lv_size> <vg_name> -n <lv_name> # 將卷組vg_name下所有剩余空間給創(chuàng)建的lv_name邏輯卷 root# lvcreate -l +100%FREE <vg_name> -n <lv_name>
root# lvcreate -L <lv_size> <vg_name> -n <lv_name>

該邏輯卷創(chuàng)建完后,你就可以通過/dev/mapper/vg_fedora_yg-lv_yg01或/dev/vg_fedora_yg/lv_yg01來訪問它:

②、查看lv
命令lvs、lvscan、lvdisplay查看

③、擴容邏輯卷
通過命令lvextend:
root# lvextend -L <extend_size> <lv_path>

注意:如果擴容的邏輯卷已經(jīng)掛載到具體文件系統(tǒng),則需要執(zhí)行resize2fs或者xfs_growfs(針對xfs文件系統(tǒng))命令使修改生效,可以通過df -Th或者blkid查看lv所掛載的文件系統(tǒng)類型。
5、格式化并掛載LV(邏輯卷)
上面邏輯卷LV創(chuàng)建之后,通常是已經(jīng)可以在/dev/mapper/或者/dev/vg_name/下面找到該邏輯卷了,如果找不到的話,可以執(zhí)行如下命令:
# modprobe dm-mod # vgscan # vgchange -ay
最后,可以看到如下:

①、格式化邏輯卷
現(xiàn)在可以在該邏輯卷上創(chuàng)建文件系統(tǒng):
# mkfs.<filesystem_type> /dev/mapper/<vg_name>-<lv_name> # # mkfs.xfs /dev/mapper/vg_fedora_yg-lv_yg01

②、掛載
# mount /dev/mapper/<vg_name>-<lv_name> <mount_point>

注:掛載點請選擇你所新建的邏輯卷(例如:/dev/mapper/vg_fedora_yg-lv_yg01),不要使用邏輯卷所在的實際分區(qū)設(shè)備(即不要使用:/dev/sdb1)
最后,我畫了一張圖,來展示linux lvm:

你可以對照上面內(nèi)容,理解下linux lvm的磁盤管理機制。
說明:
①、圖中/dev/sda1是boot引導(dǎo)區(qū),不能用lvm管理,所以直接格式化后掛載到目錄/boot下,另外/dev/sdb2也是沒有經(jīng)過lvm直接格式化后掛載到目錄的。
②、卷組vg_fedora1容量為139G,從其中分配出去了40+5+45=90G,還有49G空閑,這些空閑容量可以lvextend到下面的lv中;也可以再創(chuàng)建個lv,分配出去。
③、磁盤設(shè)置/dev/sdc還有50G空閑空間未分區(qū),可以分區(qū)后使用。
關(guān)于lvm其它高級配置功能,可以查看參考鏈接。
參考:
到此這篇關(guān)于Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令的文章就介紹到這了,更多相關(guān)Linux磁盤管理LVM命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux系統(tǒng)下用.sh文件執(zhí)行python命令的方法
這篇文章主要給大家介紹了關(guān)于linux系統(tǒng)下用.sh文件執(zhí)行python命令的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-07-07
linux使用管道命令執(zhí)行ps獲取cpu與內(nèi)存占用率
這篇文章主要介紹了linux使用管道命令執(zhí)行ps獲取cpu與內(nèi)存占用率的示例,需要的朋友可以參考下2014-02-02
Linux下shell腳本監(jiān)控Tomcat的狀態(tài)并實現(xiàn)自動啟動的步驟
這篇文章主要介紹了Linux下shell腳本監(jiān)控Tomcat的狀態(tài)并實現(xiàn)自動啟動的步驟,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2019-12-12

