# LVM在線擴容內容
如服務器上沒有安裝LVM,使用下面命令安裝:
```
yum install -y lvm2
```
* pv 物理卷帶有邏輯卷元數據的物理設備:分區、硬盤、鏡像文件、raid設備等;
* vg 卷組由多個物理卷組成,容量是所有物理卷的累計,提供容量的存儲池;
* lv 邏輯卷真正操作的對象,對它進行格式化、掛載;
# 創建邏輯卷
對於裸盤容量小於2T的我們可以使用fdisk對盤進行一系列操作,如容量大於2T,請使用parted工具。
## 創建PV
```
# pvcreate /dev/${disk_name}{number} //可以是多個盤,如:pvcreate /dev/sda7 /dev/sda8
```
使用 pvs(或pvdisplay) 命令查看創建好的pv,如:
```
PV VG Fmt Attr PSize PFree
/dev/sda7 lvm2 -- 1.92G 1.92G
/dev/sda8 lvm2 -- 1.92G 1.92G
```
## 創建VG
```
# vgcreate vg-test /dev/xxx
Volume group "vg-test" successfully created
```
使用 vgs(或vgdisplay) 命令查看創建好的pv,如:
```
VG #PV #LV #SN Attr VSize VFree
vgdata 1 0 0 wz--n- 100.00g 100.00g
```
## 創建LV
創建了一個名爲lv-test,容量大小事100M的分區,並且是從vg-test中劃分的lv。
```
# lvcreate -L 100M -n lv-test vg-test
Logical volume "lv-test" created
```
如果想把vg-test容量全部給lv-test:
```
# lvcreate -l 100%FREE -n lv-test vg-test
```
使用 lvs(或lvdisplay) 命令查看創建好的lv。
## 創建文件系統(對lv進行格式化)
ext4文件系統:
```
mkfs.ext4 /dev/vg-test/lv-test
```
xfs文件系統:
```
mkfs.xfs /dev/vg-test/lv-test
```
# 掛載
blkid 查看UUID
echo "UUID=xxxx /data(要掛載的目錄) 文件系統類型 defaults 0 0">> /etc/fstab
mount -a # 驗證添加是否有問題
df -h # 查看結果
# 擴容VG
我們繼續使用上面的例子,如我們需要擴容vg-test,增加50G給vg-test。
## 如果是裸盤
如果你拿到的是裸盤(容量小於2T),先對裸盤進行分區操作:
```
##分區
# echo -e "o\nn\np\n1\n\n\nt\n8e\nw" | fdisk /dev/${disk_name}
```
### 創建PV
```
pvcreate /dev/${disk_name}{number}
```
### 擴容VG
```
vgextend vg-test /dev/${disk_name}{number}
```
## 如果是剩餘容量的PV
```
vgextend vg-test /dev/${disk_name}{number}
```
# 擴容LV
我們接着使用上面的實例,先進行vgextend操作,然後再擴容LV卷。
```
lvextend -l +100%FREE /dev/vg-test/lv-test //使用free vg的全部容量
或
lvextend -L +300M /dev/vg-test/lv-test //使用free vg的300M容量
```
刷新擴容後的卷的容量:
如果lv卷文件系統是ext3/4格式:
```
resize2fs /dev/vg-test/lv-test
```
如果lv卷文件系統是xfs格式:
```
xfs_growfs /dev/vg-test/lv-test
```
# 擴展學習
如果lv卷的文件系統是xfs,當我們使用“resize2fs /dev/{vgname}/{lvname}”命令進行卷的空間容量刷新時,就會出現如下錯誤:
```
Linux resize2fs: Bad magic number in super-block 當嘗試打開 /dev/{vgname}/{lvname} 時找不到有效的文件系統超級塊。
```
這時,我們需要使用xfs的刷新命令:
```
xfs_growfs /dev/{vgname}/{lvname}
```