1. 程式人生 > 其它 >【轉】Linux中vgextend的含義,linux的LVM 具體配置過程

【轉】Linux中vgextend的含義,linux的LVM 具體配置過程

原文:https://blog.csdn.net/weixin_33325305/article/details/117041424

---------------

LVM:

幾個基本概念

PV   Physical Volume   (物理卷)就是實體磁碟   利用fdisk等軟體,將他們的ID改為LVM(8e)並修改磁碟的相關資訊,讓他們成為LVM可用的磁碟

實體磁碟的ID 可以通過fdisk -l來檢視,通常83是linux的partition,82是swap的代號 我們需要的是PV ID:8e

PV實施過程:fdisk修改ID,以pvcreate建立成PV

建立 PV 與 PV 的查詢:

要建立 PV 其實很簡單,只要直接使用 pvcreate 即可!我們來談一談與 PV 有關的指令吧!

• pvcreate :將實體 partition 建立成為 PV ;

• pvscan :搜尋目前系統裡面任何具有 PV 的磁碟;

• pvdisplay :顯示出目前系統上面的 PV 狀態;

• pvremove :將 PV 屬性移除,讓該 partition 不具有 PV 屬性。

• partprobe :這個指令可以讓核心立刻讀入最新的 partition table 而不必 reboot。

fdisk /dev/hda

command (m for help):p   這裡p是檢視磁碟分割槽的相關情況

command (m for help):t   更換磁碟分割槽的ID號

partition number(1-4):1   選擇相應的磁碟分割槽1

Hex code(type L to list codes):8e   輸入ID號:8e

command (m for help):t   更換磁碟分割槽的ID號

partition number(1-4):2   選擇相應的磁碟分割槽2

Hex code(type L to list codes):8e   輸入ID號:8e

command (m for help):p   檢視修改ID後磁碟分割槽的相關情況

Command (m for help): w   儲存配置

partprobe   這個指令可以讓核心立刻讀取最新的partition table

[root@linux ~]# pvscan

No matching physical volumes found

[root@linux ~]# pvcreate /dev/hdb1

Physical volume "/dev/hdb1" successfully created

[root@linux ~]# pvcreate /dev/hdb2

Physical volume "/dev/hdb2" successfully created

[root@linux ~]# pvscan

PV /dev/hdb1 lvm2 [9.31 GB]

PV /dev/hdb2 lvm2 [9.31 GB]

Total: 2 [18.63 GB] / in use: 0 [0 ] / in no VG: 2 [18.63 GB]

VG   Volume Group  (卷組)  通過將一個或多個PV組合成一個大磁碟,最大容量值與底下的PE有關,如果完全使用LVM的預設引數,那麼一個最大的LVM磁碟可達到256G

VG實施過程:利用vgcreate加入多個PV成為VG

建立 VG 及 VG 相關的指令也不少,我們來看看:

• vgcreate :就是主要建立 VG 的指令啦!他的引數比較多,等一下介紹。

• vgscan :搜尋系統上面是否有 VG 存在?

• vgdisplay :顯示目前系統上面的 VG 狀態;

• vgextend :在 VG 內增加額外的 PV ;

• vgreduce :在 VG 內移除 PV;

• vgchange :設定 VG 是否啟動 (active);

• vgremove :刪除一個 VG 啊!

先建立 VG 吧!

[root@linux ~]# vgcreate vbirdvg /dev/hdb1 /dev/hdb2     建立一個VG,用兩個PV

Volume group "vbirdvg" successfully created

# 整個 vgcreate 的語法很簡單,就是利用 vgcreate VGname PVname1 PVname2..

# 不過,如果想要修改前面提到的 PE 引數時,就得要加入 -s PE 數值了!

[root@linux ~]# vgscan     檢視具體VG引數

Reading all physical volumes. This may take a while...

Found volume group "vbirdvg" using metadata type lvm2

[root@linux ~]# vgdisplay

--- Volume group ---

VG Name vbirdvg

System ID

Format lvm2

Metadata Areas 2

Metadata Sequence No 1

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 2

Act PV 2

VG Size 18.62 GB

PE Size 4.00 MB

Total PE 4768

Alloc PE / Size 0 / 0

Free PE / Size 4768 / 18.62 GB

VG UUID AZRSJx-FWYF-UIlH-NCh5-NqKS-f4gx-ZR049N

[root@linux ~]# vgreduce vbirdvg /dev/hdb2      從VG中去掉一個PV

Removed "/dev/hdb2" from volume group "vbirdvg"

[root@linux ~]# vgextend vbirdvg /dev/hdb2      從VG中增加一個PV

Volume group "vbirdvg" successfully extended

PE   在建立VG的時候,我們同時需要指定PE這個數值,預設是4MB;PE為4MB,VG則為256G(一個VG最大可以容許65534的PE,所以修改PE值,當然就會影響到最大的VG容量)

LV   這個就是最後被掛載到檔案系統的partition,這個LV是由VG分割來的

LV實施過程:利用lvcreate分割VG成為一個或多個LV

• lvcreate :建立 LV 啦!

• lvscan :查詢系統上面的 LV ;

• lvdisplay :顯示系統上面的 LV 狀態啊!

• lvextend :在 LV 裡面增加容量!

• lvreduce :在 LV 裡面減少容量;

• lvremove :刪除一個 LV !

• lvresize :對 LV 進行容量大小的調整!

[root@linux ~]# lvcreate -L [sizeMG] -n [LVname] VGname

引數:

-L :後面接容量,容量的單位可以是 M, G 等等;

-n :後面接的就是 LV 的名稱啦!

更多的說明應該可以自行查閱吧! man lvcreate

[root@linux ~]# lvcreate -L 18.62G -n vbirdlv vbirdvg

Rounding up size to full physical extent 18.62 GB

Logical volume "vbirdlv" created

[root@linux ~]# ll /dev/vbirdvg/vbirdlv

lrwxrwxrwx 1 root root 27 Nov 14 21:10 /dev/vbirdvg/vbirdlv ->

/dev/mapper/vbirdvg-vbirdlv

# 看見了沒有啊!?這就是我們最重要的一個玩意兒了!

# 未來所有要掛載的資料,通通是透過這個裝置的!

[root@linux ~]# lvscan

ACTIVE '/dev/vbirdvg/vbirdlv' [18.62 GB] inherit

[root@linux ~]# lvdisplay

--- Logical volume ---

LV Name /dev/vbirdvg/vbirdlv

VG Name vbirdvg

LV UUID B6kSrg-9LMG-gqVy-jjz8-x0gM-ya9S-XLFcZN

LV Write Access read/write

LV Status available

# open 0

LV Size 18.62 GB

Current LE 4767

Segments 2

Allocation inherit

Read ahead sectors 0

Block device 253:0

透過PV ,VG,LV的規劃,再利用mkfs(mke2fs -j)等等就可以將您的多個partition整合成為一個大磁碟,再利用這個大磁碟來分割與格式化。

這個大磁碟可以增加,減少容量的變化,也就是說,VG大磁碟可以抽換PV,並且原有的資料,理論上不會受影響。

最後實施過程:分割LV邏輯partition,然後格式化,直接掛載到LINUX的檔案系統中。

partition 的格式化與掛載!

[root@linux ~]# mke2fs -j /dev/vbirdvg/vbirdlv

[root@linux ~]# mkdir /mnt/lvm

[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm

[root@linux ~]# df  檢視分割槽情況

[root@linux ~]# fdisk -l /dev/hdb  檢視/dev/hdb的具體分割槽和使用情況

讓原有的 LVM 磁碟加大的方法: resize2fs

1. 將欲處理的 LV 解除安裝;

umount /mnt/lvm

2. 建立 PV;

[root@linux ~]# fdisk /dev/hdb

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): 8e

Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): w

The partition table has been altered!

[root@linux ~]# partprobe

[root@linux ~]# pvcreate /dev/hdb3

3. 將建立的 PV 以 vgextend 增加到 VG 當中;

[root@linux ~]# vgextend vbirdvg /dev/hdb3

4. 利用 lvextend 增加剛剛 VG 所增加的容量;

lvextend -L +10G /dev/vbirdvg/vbirdlv

5. 利用 resize2fs 將 LV 的容量確實增加!

[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm

[root@linux ~]# resize2fs [-f] [device] [size]

[root@linux ~]# umount /mnt/lvm

[root@linux ~]# resize2fs -f /dev/vbirdvg/vbirdlv

[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm

另外,如果你想要將 LVM 移除的話,那麼就應該要:

1. 先解除安裝系統上面的 LVM 扇區;

2. 使用 lvremove 移除 LV ;

3. 使用 vgchange -a n VGname 讓 VGname 這個 VG 不具有 Active 的標誌;

4. 使用 vgremove 移除 VG:

5. 使用 pvremove 移除 PV;

6. 最後,使用 fdisk 修改 ID 回來啊!

本文出自 “wxfxn2000” 部落格,謝絕轉載!