LVM邏輯卷-創建、擴容、縮減、遷移、快照

基本概念:
pv? //物理卷
vg? //卷組
lv? //邏輯卷
本次實驗使用CentOS6版本,并在vmware虛擬機上操作

實驗一 創建邏輯卷
第1步:準備三個磁盤sdb、sdc、sdd,創建物理卷
[root@CentOs6 ~]#fdisk /dev/sdb? #使用fdisk命令對磁盤sdb分區
Device Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System
/dev/sdb1? ? ? ? ? ? ? 1? ? ? ? 132? ? 1060258+? 8e? Linux LVM
#因為是實驗這里只分1G容量,system類型修改成LVM
dd if=/dev/sdb of=/dev/sdc bs=1 count=512
dd if=/dev/sdb of=/dev/sdd bs=1 count=512
#將sdb的分區表復制到sdc和sdd,這樣三塊磁盤分區一致
partx -a /dev/sd{b,c,d}? #同步磁盤與內存信息
lsblk? #檢查同步結果
#上面步驟,我們從三塊磁盤取出三個大小、類型一樣的分區/dev/sdb1、 /dev/sdc1和/dev/sdd1
[root@CentOs6 ~]#pvcreate? /dev/sd{b,c,d}1? #創建3個物理卷pv
[root@CentOs6 ~]#pvs? #查看物理卷摘要信息
PV? ? ? ? VG? Fmt? Attr PSize PFree? #VG為空,是因為我們還沒創建卷組
/dev/sdb1? ? ? lvm2 —- 1.01g 1.01g
/dev/sdc1? ? ? lvm2 —- 1.01g 1.01g
/dev/sdd1? ? ? lvm2 —- 1.01g 1.01g
[root@CentOs6 ~]#pvdisplay? /dev/sdb1
#pvdisplay顯示詳細的物理卷信息,此處只列出一個物理卷分析
“/dev/sdb1” is a new physical volume of “1.01 GiB”
— NEW Physical volume —
PV Name? ? ? ? ? ? ? /dev/sdb1? #物理卷名稱
VG Name? ? ? ? ? ? ? ? ? ? ? ? ? #因為沒加入卷組,所以此處為空
PV Size? ? ? ? ? ? ? 1.01 GiB? #物理卷容量,跟我們規劃的一樣
Allocatable? ? ? ? ? NO? ? ? ? ? ? #因為還未加入卷組,所以下面選項為空
PE Size? ? ? ? ? ? ? 0? ? ? ? ? #PE是物理卷的基本容量單位
Total PE? ? ? ? ? ? ? 0
Free PE? ? ? ? ? ? ? 0
Allocated PE? ? ? ? ? 0
PV UUID? ? ? ? ? ? ? iRkKni-iG3a-U38w-bXGn-aIGV-bP14-Pua8bc

第2步:創建卷組,其容量為各個物理卷的總和
[root@CentOs6 ~]#vgcreate v-group /dev/sd{b,c,d}1
#創建包含3個分區的卷組,名稱為v-group
Volume group “v-group” successfully created
[root@CentOs6 ~]#vgs? #顯示卷組的摘要信息
VG? ? ? #PV #LV #SN Attr? VSize VFree
v-group? 3? 0? 0 wz–n- 3.02g 3.02g
[root@CentOs6 ~]#vgdisplay? #顯示卷組的詳細信息
— Volume group —
VG Name? ? ? ? ? ? ? v-group? ? ? ? #卷組名稱
VG Access? ? ? ? ? ? read/write? #卷組的訪問形式是讀寫
VG Status? ? ? ? ? ? resizable? ? ? #卷組容量大小可調
MAX LV? ? ? ? ? ? ? ? 0
Cur LV? ? ? ? ? ? ? ? 0
Open LV? ? ? ? ? ? ? 0
Max PV? ? ? ? ? ? ? ? 0? ? ? ? ? ? #未創建邏輯卷,所以包含LV選項的全為0
Cur PV? ? ? ? ? ? ? ? 3
Act PV? ? ? ? ? ? ? ? 3
VG Size? ? ? ? ? ? ? 3.02 GiB? ? #卷組容量,3個分區容量的累加
PE Size? ? ? ? ? ? ? 4.00 MiB? ? #PE是基本容量單位,默認大小為4MiB
Total PE? ? ? ? ? ? ? 774? ? ? ? ? ? #PE總數量,其與PE大小相乘就是VG大小
Alloc PE / Size? ? ? 0 / 0? ? ? ? ? #已經分配給邏輯卷的PE
Free? PE / Size? ? ? 774 / 3.02 GiB #剩余PE,因為還沒有創建邏輯卷
VG UUID? ? ? ? ? ? ? aD3P8j-tNnP-KyXK-shWB-caTh-sCq8-j8B4qd

第3步:創建邏輯卷
[root@CentOs6 ~]#lvcreate -n logical-v -L 2G v-group? #創建2G大小的邏輯卷
Logical volume “logical-v” created.
[root@CentOs6 ~]#lvs? #顯示邏輯卷的摘要信息
LV? ? ? ? VG? ? ? Attr? ? ? LSize Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert
logical-v v-group -wi-a—– 2.00g
[root@CentOs6 ~]#lvdisplay
— Logical volume —
LV Path? ? ? ? ? ? ? ? /dev/v-group/logical-v? #邏輯卷的物理路徑
LV Name? ? ? ? ? ? ? ? logical-v? ? ? #邏輯卷名稱
VG Name? ? ? ? ? ? ? ? v-group? ? #邏輯卷所在的卷組
LV UUID? ? ? ? ? ? ? ? zEU9qJ-fP3E-H2Dv-iULd-06Gy-yzH4-EnIwdw
LV Write Access? ? ? ? read/write
LV Creation host, time CentOs6.gao, 2017-08-12 09:42:53 +0800
LV Status? ? ? ? ? ? ? available? #邏輯卷可用
# open? ? ? ? ? ? ? ? 0
LV Size? ? ? ? ? ? ? ? 2.00 GiB? #邏輯卷大小2G
Current LE? ? ? ? ? ? 512? ? ? ? #當前使用的
#至此邏輯卷就創建完成。使用上文提到的命令查看物理卷、卷組信息會發現,創建完lv后好多信息條目都更新了
[root@CentOs6 ~]#ll /dev/v-group/logical-v
lrwxrwxrwx. 1 root root 7 Aug 12 09:42 /dev/v-group/logical-v -> ../dm-0
#lv名稱其實是軟鏈接,指向的是我們前文說過的dm-#

第4步:將lv當作一塊獨立磁盤進行格式化、掛載、讀寫操作
1234 [root@CentOs6 ~]#mkdir /mnt/lv? #創建掛載點目錄
[root@CentOs6 ~]#mkfs.ext4 /dev/v-group/logical-v? #格式化成ext4文件系統
[root@CentOs6 ~]#mount /dev/v-group/logical-v /mnt/lv/? #掛載
最后就可以進行讀寫操作了

整個過程是按照下述流程操作:
準備磁盤–創建物理卷–創建卷組–創建邏輯卷

實驗二 擴展邏輯卷、縮減邏輯卷
擴展邏輯卷對用戶是透明的,lv一直是掛載狀態
[root@CentOs6 ~]#lvextend -L +256M /dev/v-group-logical-v
#對邏輯卷logical-v擴展256M的容量,前提是卷組還有足夠的剩余空間
[root@CentOs6 ~]#df -h /dev/mapper/v–group-logical–v
Filesystem? ? ? ? ? ? Size? Used Avail Use% Mounted on
/dev/mapper/v–group-logical–v
2.0G? 3.1M? 1.9G? 1% /mnt/lv
#df -h查看發現,lv實際大小還是2G,并未增加256M,是因為文件系統未同步
[root@CentOs6 ~]#resize2fs? /dev/mapper/v–group-logical–v
root@CentOs6 ~]#df -h /dev/mapper/v–group-logical–v
#同步文件系統,因為我們實驗用的是ext4文件系統,所以使用sesize2fs來同步,如果是xfs文件系統則需要使用命令xfs_growfs來同步
#我們每次對lv進行擴展操作后都要記得同步文件系統
#最后再次df檢查
[root@CentOs6 ~]#lvextend? -r -L +256M /dev/v-group/logical-v
#上述命令更簡單,在擴展lv同時同步文件系統,一步搞定
#只要加上 -r 選項
如果還有一個分區想要加入vg,比如/dev/sdb2,可以使用下述方法:
pvcreate /dev/sdb2
vgextend v-group /dev/sdb2
#只需要這兩步即可

邏輯卷縮減其實就是將一個邏輯卷占用的PE空間縮減,這樣做一般會有風險,因為縮減的空間可能有數據。所以如果一定要縮減的話建議先備份。本實驗環境無所謂
第1步:取消掛載邏輯卷
12 [root@CentOs6 ~]#umount /mnt/lv/
[root@CentOs6 ~]#df? #已經查看不到lv信了

第2步:檢查文件系統完整性 fsck -f
[root@CentOs6 ~]#e2fsck -f /dev/v-group/logical-v
#這一步必須得做

第3步:縮減文件系統
[root@CentOs6 ~]#resize2fs? /dev/v-group/logical-v? 1G
#縮減文件系統容量為1G

第4步:縮減邏輯卷
[root@CentOs6 ~]#lvreduce -L 1G /dev/v-group/logical-v
#縮減邏輯卷容量為1G
#縮減fs或者lv時都會有警告提示,所以要考慮清楚再行動,做實驗就沒關系了

第5步:重新掛載
[root@CentOs6 ~]#mount /dev/v-group/logical-v? /mnt/lv/
[root@CentOs6 ~]#df -h
#最后掛載,df檢測,此外還可以使用vgdisplay、lvdisplay檢查邏輯卷是否縮減

注意:
xfs文件系統不支持縮減

實驗三 遷移卷組到新系統
源設備操作:
1、取消掛載卷組中的所有邏輯卷
[root@CentOs6 ~]#umount /mnt/lv/
#取消本機掛載

2、確保卷組名跟目標設備不一樣
[root@CentOs6 ~]#vgrename v-group newvg0
Volume group “v-group” successfully renamed to “newvg0”
#修改卷組名為newvg0,??者提前查看目標設備的卷組名稱,只要不一樣就行
#只要卷組名不一樣就行,邏輯卷名稱可改也可不改
[root@CentOs6 ~]#lvrename? /dev/newvg0/logical-v? newlv0
Renamed “logical-v” to “newlv0” in volume group “newvg0”
#邏輯卷改名為newlv0

3、設置邏輯卷為非活動狀態,也就是說邏輯卷現在不可用
[root@CentOs6 ~]#vgchange? -a n newvg0
0 logical volume(s) in volume group “newvg0” now active
#卷組中0個邏輯卷是活動狀態,-a n表示使邏輯卷無效
[root@CentOs6 ~]#lvdisplay
LV Status? ? ? ? ? ? ? NOT available? #LV無效

4、導出卷組
12345 [root@CentOs6 ~]#vgexport? newvg0
Volume group “newvg0” successfully exported
#導出卷組
[root@CentOs6 ~]#pvscan? #掃描磁盤物理卷
[root@CentOs6 ~]#pvdisplay? #會發現物理卷對應的卷組都是exported狀態

5、拆除硬盤,換到目標設備上
在vmware上我們把磁盤文件掛載到目標設備上
我的是下面這三個虛擬機磁盤文件
CentOs6.9\CentOS6.9-3.vmdk
CentOs6.9\CentOS6.9-4.vmdk
CentOs6.9\CentOS6.9-5.vmdk
將這三個文件添加到目標設備上,我的目標設備是centos7
目標設備操作:
1、掃描發現磁盤
[root@CentOS7 ~]#echo ‘- – – ‘ > /sys/class/scsi_host/host2/scan
[root@CentOS7 ~]#lsblk
#掃描磁盤,然后檢查卷組是否存在

2、掃描物理卷,然后導入卷組
[root@CentOS7 ~]#pvscan? #掃描物理卷
PV /dev/sdb1? ? is in exported VG newvg0 [1.01 GiB / 8.00 MiB free]
PV /dev/sdc1? ? is in exported VG newvg0 [1.01 GiB / 1.01 GiB free]
PV /dev/sdd1? ? is in exported VG newvg0 [1.01 GiB / 1.01 GiB free]
Total: 3 [3.02 GiB] / in use: 3 [3.02 GiB] / in no VG: 0 [0? ]
[root@CentOS7 ~]#vgimport newvg0? #導入卷組,使用新組名
Volume group “newvg0” successfully imported
[root@CentOS7 ~]#vgdisplay newvg0? //檢查卷組信息

3、激活邏輯卷
[root@CentOS7 ~]#vgchange? -a y newvg0
1 logical volume(s) in volume group “newvg0” now active
[root@CentOS7 ~]#lvdisplay
#激活邏輯卷,并查看結果,這里我只做了一個邏輯卷
#還可以使用blkid、vgdisplay、pvdisplay等命令查看結果
#其實還可以在原設備邏輯卷中提前存放一些數據,等遷移完成到目標設備后,我們再查看邏輯卷內的數據是否還存在。

實驗四 移除卷組中的磁盤
第1步:將要移除的磁盤的數據移到其他邏輯卷
把數據搬到同一卷組其他邏輯卷,要保證卷組有足夠的空間,搬的是存儲空間,里面可能有數據
1234567891011121314 [root@CentOS7 ~]#pvmove /dev/sdb1
#把/dev/sdb磁盤PE空間遷移至其他邏輯卷,本實驗1個磁盤上建1個分區
[root@CentOS7 ~]#pvdisplay? /dev/sdb1? #sdb已經沒有空間在使用了
— Physical volume —
PV Name? ? ? ? ? ? ? /dev/sdb1
VG Name? ? ? ? ? ? ? newvg0
PV Size? ? ? ? ? ? ? 1.01 GiB / not usable 3.41 MiB
Allocatable? ? ? ? ? yes
PE Size? ? ? ? ? ? ? 4.00 MiB
Total PE? ? ? ? ? ? ? 258
Free PE? ? ? ? ? ? ? 258
Allocated PE? ? ? ? ? 0
PV UUID? ? ? ? ? ? ? iRkKni-iG3a-U38w-bXGn-aIGV-bP14-Pua8bc
#還可以查看其他邏輯卷的PE free空間減少,就是因為接收了sdb1轉移的PE

第2步:從卷組中移除物理卷
[root@CentOS7 ~]#vgreduce newvg0 /dev/sdb1? #移除sdb
Removed “/dev/sdb1” from volume group “newvg0”
[root@CentOS7 ~]#vgdisplay? ? #查看信息

第3步:從物理卷中移除
[root@CentOS7 ~]#pvremove? /dev/sdb1? #移除
Labels on physical volume “/dev/sdb1” successfully wiped.
[root@CentOS7 ~]#pvdisplay
#移除物理卷后,就看不到原物理卷信息了

實驗五 邏輯卷管理快照
快照是特殊的邏輯卷,快照存放的是改過的文件的最早的版本,只是備份修改的文件。快照與對應的邏輯卷必須在同一個卷組,而且恢復時的文件容量不能超過快照大小
測試環境使用快照較多
生產環境會消耗更多的性能,所以一般不用

第1步:創建快照
[root@CentOS7 ~]#lvcreate? -L 100M -s -n snap -p r /dev/newvg0/newlv0
Using default stripesize 64.00 KiB.
Logical volume “snap” created.
#創建快照,-s表示快照,-L指定快照容量,-n是快照名,-p r快照權限只讀
#我們對邏輯卷newlv0做快照
[root@CentOS7 ~]#lvdisplay
#此命令可以查看邏輯卷快照信息

第2步:掛載快照
1234 [root@CentOS7 ~]#mkdir /mnt/snap
[root@CentOS7 ~]#mount /dev/newvg0/snap /mnt/snap/
mount: /dev/mapper/newvg0-snap is write-protected, mounting read-only
#快照掛載到一個掛載點,掛載時提示寫保護,但還是成功掛載,可以df查看

第3步:使用快照恢復數據
上述步驟對邏輯卷newlv0做了快照,而newlv0掛載到了/mnt/lv目錄下,現在把此目錄下的文件newlv0刪除然使用快照恢復
[root@CentOS7 ~]#rm -f /mnt/lv/newlv0? #刪除原文件
[root@CentOS7 ~]#umount /dev/newvg0/snap
[root@CentOS7 ~]#umount /dev/newvg0/newlv0
#首先取消掛載邏輯卷與快照
[root@CentOS7 ~]#lvconvert? –merge /dev/newvg0/snap
Merging of volume newvg0/snap started.
newlv0: Merged: 100.00%
#使用快照恢復數據,此命令會自動識別邏輯卷的路徑
[root@CentOS7 ~]#mount /dev/newvg0/newlv0 /mnt/lv
[root@CentOS7 ~]#ll /mnt/lv/
-rw-r–r–. 1 root root? ? 0 Aug 12 14:45 newlv0
#最后我們再把邏輯卷掛載就可以看到被刪除的文件了
#恢復完數據快照邏輯卷會自動消失

第4步:實驗結束刪除快照和邏輯卷(已經提前給邏輯卷newlv0創建一個快照snap-data,也要刪除)
[root@CentOS7 ~]#umount /mnt/snap/
[root@CentOS7 ~]#umount /mnt/lv
[root@CentOS7 ~]#umount /mnt/lv1/
[root@CentOS7 ~]#lvremove /dev/newvg0/snap-data
[root@CentOS7 ~]#lvremove? /dev/newvg0/newlv0
[root@CentOS7 ~]#lvremove? /dev/newvg0/newlv1
#先取消掛載,然后移除所有邏輯卷,包括快照
[root@CentOS7 ~]#vgs
VG? ? #PV #LV #SN Attr? VSize VFree
newvg0? 3? 0? 0 wz–n- 4.01g 4.01g
#此時vg內的邏輯卷為空
[root@CentOS7 ~]#vgremove? newvg0
Volume group “newvg0” successfully removed
#刪除卷組,這時候vgs查看都是空
[root@CentOS7 ~]#pvremove? /dev/sdc1
[root@CentOS7 ~]#pvremove? /dev/sdd1
[root@CentOS7 ~]#pvremove? /dev/sdd2
#刪除物理卷,pvs就看不到任何信息了
至此所有的快照、邏輯卷、卷組和物理卷全部清空

刪除邏輯卷順序:
快照–邏輯卷–卷組–物理卷

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97067

(1)
隔壁小翔隔壁小翔
上一篇 2018-04-25
下一篇 2018-04-26

相關推薦

  • 小白加薪升職記第二篇–Linux長征開始

    記錄文件管理命令及Linux命令行擴展功能

    Linux筆記 2018-05-19
  • sed常用操作命令

    sed 為流編輯器,標準輸出為屏幕,默認不會改動源文件 -n :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數據一般都會被列出到終端上。但如果加上 -n 參數后,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。-e :直接在命令列模式上進行 sed 的動作編輯;-f :直接將 sed 的動作寫在一個文件內, -…

    2018-04-08
  • 配置主機與主機通訊可以經過路由器的操作。

    配置主機A與主機B相互通訊,中間經過兩個路由器還能正常通訊的基本操作。

    2018-05-06
  • LINUX的哲學思想

    1.一切皆文件 把幾乎所有資源統統抽象為文件形式,不僅普通的文件,目錄、字符設備、塊設備、 套接字等還包括硬件設備,甚者通信接口等。在Linux 中都是以文件被對待;它們雖然類型不同,但是對其提供的卻是同一套操作界面。訪問任何設備都可以用統一的一個接口。方便統一管理 由眾多功能單一的程序組成。一個程序只做一件事,并且要做好,保證linux程序的高效運行。需要…

    Linux筆記 2018-06-27
  • LINUX 進程管理

    #### hostname hostname [OPTION] [HOSTNAME] 默認選項:修改主機名為[HOSTNAME] 備注:臨時生效如果想永久生效則需要修改文件/etc/sysconfig/network文件 選項 -I :取出本機上所有的非回環地址 示例 “` [root@zhangxiao network-scripts]#hos…

    Linux筆記 2018-05-06
  • Linux系統網絡管理

    本機索引: 一、基本網絡配置 二、主機、網卡名稱管理 三、網卡別名 四、Bonding技術 五、實現網絡組 六、Linux網絡管理常用命令   一、基本網絡配置: 將Linux主機接入網絡,需要配置網絡相關設置 一般包括以下內容: 主機名 IP/netmask 路由:默認網關 DNS服務器: 主DNS服務器 次DNS服務器   網絡配置文…

    2018-05-03
欧美性久久久久