[Linux]邏輯卷LVM配置

邏輯卷LVM配置spa

什麼是LVM

LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是創建在硬盤和分區之上的一個邏輯層,來提升磁盤分區管理的靈活性。經過LVM系統管理員能夠輕鬆管理磁盤分區,管理員能夠在卷組上隨意建立邏輯卷組(logical volumes),並進一步在邏輯卷組上建立文件系統。管理員經過LVM能夠方便的調整存儲卷組的大小,而且能夠對磁盤存儲按照組的方式進行命名、管理和分配。3d

LVM中經常使用概念

PV(physical volume):物理卷在邏輯卷管理系統最底層,可爲整個物理硬盤或實際物理硬盤上的分區。blog

VG(volume group):卷組創建在物理捲上,一卷組中至少要包括一物理卷,卷組創建後可動態的添加捲到卷組中,一個邏輯卷管理系統工程中可有多個卷組。rem

LV(logical volume):邏輯卷創建在卷組基礎上,卷組中未分配空間可用於創建新的邏輯卷,邏輯卷創建後能夠動態擴展和縮小空間。虛擬機

PE(physical extent):物理區域是物理卷中可用於分配的最小存儲單元,物理區域大小在創建卷組時指定,一旦肯定不能更改,同一卷組全部物理卷的物理區域大小需一致,新的pv加入到vg後,pe的大小自動更改成vg中定義的pe大小。table

LE(logical extent):邏輯區域是邏輯卷中可用於分配的最小存儲單元,邏輯區域的大小取決於邏輯卷所在卷組中的物理區域的大小。基礎

LVM結構圖

底層PV是一種LVM格式,VG至關於普通磁盤,LV至關於磁盤上的分區,結構以下:擴展

 

 

 

LVM經常使用命令彙總

 

任務配置

PV階段gc

VG階段

LV階段

查找(scan)

pvscan

vgscan

lvscan

新建(create)

pvcreate

vgcreate

lvcreate

顯示(display)

pvdisplay

vgdisplay

lvdisplay

增長(extend)

 

vgextend

lvextend(lvresize)

減小(reduce)

 

vgreduce

lvreduce(lvresize)

刪除(remove)

pvremove

vgremove

lvremove

改變容量(resize)

 

 

lvresize

改變屬性(attribute)

pvchange

vgchange

lvchange

 

配置示例

下面用一個示例,演示LVM經常使用的配置流程

 

如上圖,虛擬機新磁盤sdb爲10G,知足如下要求:

一、新建一個2G的邏輯卷,要求卷組名vg0_ext3,邏輯卷名lvm0,大小爲1G,文件系統類型ext3,掛載點/data0;

二、將lvm0增大2G,同時增大文件系統,不影響已有文件;

三、將lvm0減少660M,同時減少文件系統,不影響已有文件;

四、新建一個3G的邏輯卷,要求卷組名vg1_xfs,邏輯卷名爲lvm1,大小爲3G,文件系統類型xfs,掛載點/data1;

五、將lvm1增大1G,增大文件系統,不影響已有文件;

 

使用ext3文件系統配置LVM

建立LVM

配置以下:

首先使用fdisk劃分出2G分區,分區類型爲LVM格式;

fdisk /dev/sdb

n(新增分區)--->p(基礎分區)--->1(分區號)--->Enter(起始柱面)--->+2G(分區大小)--->t(改變分區類型)--->1(改變的分區號)--->8eLVM分區類型label--->w(保存退出)

 

查看分區:

 

 

PV階段,將sdb1設置爲PV格式,並查看:

pvcreate /dev/sdb1

pvdisplay /dev/sdb1

 

 

VG階段,在sdb1分區,新建VG卷組名vg0_ext3,並查看該卷組;

vgcreate vg0_ext3 /dev/sdb1

vgdisplay /dev/vg0_ext3                       #注意此時卷組名/dev/vg0_ext3

 

 

LV階段,在卷組vg0_ext3上,新建LV,名稱lvm0,大小爲1G,並查看;

lvcreate -L 1G -n lvm0 /dev/vg0_ext3      #選項 -L指定大小  -n指定lvm名稱

lvdisplay /dev/vg0_ext3/lvm0            #注意此處lvm格式

 

 

查看LVM配置結果:

 

 

格式化lvm0,文件系統類型ext3,掛載點/data0

mkfs.ext3 /dev/vg0_ext3/lvm0

echo '/dev/vg0_ext3/lvm0 /data0 ext3 defaults 0 0' >> /etc/fstab

mkdir /data0

mount -a

 

查看掛載結果:

 

 

擴大LVM

因爲剩餘PV空間不足2G,需從新劃分一個分區,大小2G,加到/dev/vg0_ext3/lvm0中;

配置以下:

fdisk /dev/sdb

N--->p--->2--->Enter--->+2G--->t--->2--->8e--->w--->partprobe(強制內核檢查分區表)

 

 

umount /data0                                               #擴大LVM,首先umount掛載點

pvcreate /dev/sdb2                                        #/dev/sdb2建立PV

vgextend /dev/vg0_ext3 /dev/sdb2                #擴大原有VG,將/dev/sdb2加入

lvextend -L 3G /dev/vg0_ext3/lvm0                #擴大原有LV3G

e2fsck -f /dev/vg0_ext3/lvm0                         #要求強制檢查文件系統

 

resize2fs /dev/vg0_ext3/lvm0 3G                 #調整/dev/vg0_ext3/lvm0分區大小爲3G

 

查看增大後分區,並掛載

 

 

縮小LVM

縮小LVM,首先須要umount掛載點

umount /data0

 

減少660M文件系統,至關於文件系統減少爲1024*3-660=2412M

e2fsck -f /dev/vg0_ext3/lvm0

resize2fs /dev/vg0_ext3/lvm0 2412M

 

lvreduce -L 2412M /dev/vg0_ext3/lvm0        #再減少LVM2412M

 

 

從新掛載後結果

 

 

使用xfs文件系統配置LVM

建立LVM

首先使用fdisk建立/dev/sdb3,大小爲3G,以後開始建立LVM

pvcreate /dev/sdb3

vgcreate vg1_xfs /dev/sdb3

注意此處,因爲/dev/sdb3大小是3G,建立LV時可能出現PE不夠的狀況

 

用vgdisplay查看空閒PE數後,用PE數量建立LV

lvcreate -l 767 -n lvm1 /dev/vg1_xfs                 # -l 參數表示PE個數

 

 

LV創建後進行格式化、掛載

mkfs.xfs /dev/vg1_xfs/lvm1

echo '/dev/vg1_xfs/lvm1 /data1 xfs defaults 0 0' >> /etc/fstab

mkdir /data1

mount -a

 

 

擴大LVM

擴大dev/vg1_xfs/lvm1,首先fdisk新建分區/dev/sdb4,大小爲1G,再增長LVM

pvcreate /dev/sdb4

vgextend /dev/vg1_xfs /dev/sdb4

查看VG,總PE數爲1022

 

lvextend -l 1022 /dev/vg1_xfs/lvm1

 

擴大xfs文件系統,注意xfs文件系統能夠在掛載的狀況下擴大

xfs_growfs /dev/vg1_xfs/lvm1

 

查看LVM擴大後結果

 

 

刪除LVM

過程跟建立LVM相反,先刪除LV,再刪除VG,舉例刪除/dev/vg1_xfs/lvm1

umount /data1

lvremove /dev/vg1_xfs/lvm1

vgremove vg1_xfs

pvremove /dev/sdb4

pvremove /dev/sdb3

最後用fdisk刪除磁盤分區便可

 

 

總結

一、ext3文件系統調整前必須umount,強制檢查後調整,即先e2fsck後再resize2fs;

二、xfs文件系統用xfs_growfs擴大,不能減少,沒有相應的減少命令,在掛載狀態下執行;

三、文件系統減少有風險,儘可能避免對根分區操做;

四、若是LV擴大提示空間不足,考慮使用PE個數擴大;

五、PE大小默認4MB,若是要改變,VG階段使用vgcreate -s指定PE大小,同時其餘要加入的邏輯卷PE大小須保持一致;

   

相關文章
相關標籤/搜索