linux磁盤新增擴充

# 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}
```

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章