linux下 lvm 磁碟擴容

天府雲創發表於2016-12-09

打算給系統裝一個oracle,發現磁碟空間不足。在安裝系統的時候我選擇的是自動分割槽,系統就會自動以LVM的方式分割槽。為了保證系統後期的可用性,建議所有新系統安裝都採用LVM,之後生產上的裝置我也打算這樣做。

參於LVM基本介紹與常用命令請參考:http://blog.haohtml.com/archives/11957


LVM結構圖

擴容之前的磁碟狀況

[root@localhost ~]# df -h

檔案系統             容量 已用 可用已用%%掛載點

/dev/mapper/VolGroup-lv_root 5.3G  2.5G  2.6G  50% /

tmpfs                 538M     0  538M   0% /dev/shm

/dev/sda1             485M   30M  430M   7% /boot

[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes

...............

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          64      512000   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              64        1045     7875584   8e  Linux LVM

 

Disk /dev/mapper/VolGroup-lv_root: 5779 MB, 5779750912 bytes

........

Disk /dev/mapper/VolGroup-lv_swap: 2281 MB, 2281701376 bytes

.........

 

此次擴容的方案為:

1、加1個5G的空間給/

2、加1個10G的空間給/oracle

 

(一)   在VM中加一個15G的磁碟

重啟後#fdisk –l可以看到新的磁碟已經認出來了。

 

Disk /dev/sdb: 16.1 GB, 16106127360 bytes

............................

Disk /dev/sdb doesn't contain a valid partition table

 

(二)建立物理卷(PV)

#pvcreate /dev/sdb

檢視系統PV的情況:

[root@localhost ~]# pvdisplay

--- Physical volume ---

PV Name               /dev/sda2  //原有硬碟上的PV

VG Name               VolGroup

PV Size               7.51 GiB / not usable 3.00 MiB

Allocatable           yes (but full)

PE Size               4.00 MiB

Total PE              1922

Free PE               0

Allocated PE          1922

PV UUID               SGH1dY-4tp2-Nr1a-w93Z-V4LA-pQBh-VGzzTH

"/dev/sdb" is a new physical volume of "15.00 GiB"

--- NEW Physical volume ---

PV Name               /dev/sdb

VG Name                //新建的PV的VG name是空的,下一步就是把PV加入VG

PV Size               15.00 GiB

Allocatable           NO

PE Size               0

Total PE              0

Free PE               0

Allocated PE          0

PV UUID               8TZUlz-YyUp-RBvf-lSzm-7MgG-DSZS-qNqX1Z

檢視原VG的情況

[root@localhost ~]# vgdisplay

--- Volume group ---

VG Name               VolGroup //注意記錄此名字,擴容時將新的pv加入指定的名字

System ID

Format                lvm2

Metadata Areas        1

Metadata Sequence No  3

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                2

Open LV               2

Max PV                0

Cur PV                1

Act PV                1

VG Size               7.51 GiB

PE Size               4.00 MiB

Total PE              1922

AllocPE / Size       1922 / 7.51 GiB

Free  PE / Size       0 / 0

VG UUID               FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1

 

(三)#擴充套件卷組,將/dev/sdb物理卷新增到VolGroup卷組中

[root@localhost ~]# vgextend VolGroup /dev/sdb

Volume group "VolGroup" successfully extended

再檢視VG情況,可以看到VG大小變化,空餘空間。

[root@localhost ~]# vgdisplay

--- Volume group ---

VG Name               VolGroup

System ID

Format                lvm2

Metadata Areas        2

Metadata Sequence No  4

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                2

Open LV               2

Max PV                0

Cur PV                2

Act PV                2

VG Size               22.50 GiB

PE Size               4.00 MiB

Total PE              5761

AllocPE / Size       1922 / 7.51 GiB

Free  PE / Size       3839 / 15.00 GiB

VG UUID               FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1

(四)將新的VG空間劃入LV(擴容lv_root)

#直接擴充套件5G給/root分割槽,不用umount,也不需要重啟

# lvextend -L +5G  /dev/mapper/VolGroup-lv_root

Extending logical volume lv_root to 10.38 GiB

Logical volume lv_root successfully resized

也可以使用命令

 # lvextend -l +30%FREE /dev/mapper/VolGroup-lv_root

此時,如果有df命令檢視的話,會發現root空間並沒有增加的.還需要執行以下兩步操作才可以.

#檢查/root邏輯卷

#e2fsck -f /dev/mapper/VolGroup-lv_root

#重新定義分割槽大小

#resize2fs /dev/mapper/VolGroup-lv_root

 

 

檢視/目錄大小


可以看到/目錄已經從原來的5.3G擴容到了11G。

 

(五)LV卷空間分配(新增lv_oracle)

在VG中還有新增的10G沒有用,可以將VG中的空餘空間劃分為LV,並將新的LV掛載在目錄下。

# vgs

VG       #PV #LV #SN Attr   VSize  VFree

VolGroup   2   2   0 wz--n- 22.50g10.00g

//可以通過#vgs命令檢視vg資訊統計,可以看到VFree還有10G。

 

將VG空餘的空間化分為LV

#lvcreate -L 10G -n lv_oracle VolGroup


圖四

//少了一點點空間…

//可以用-l 分,它是按pv塊數來分的。一個pv預設是4M,可是從vgdisplay中去查vg中還剩多少pv以及總數是多少。


圖五

//查到剩餘2559個PE,於是執行

# lvcreate -l 2559 -n lv_oracle VolGroup

Logical volume "lv_oracle" created

提示建立成功後,用vgs和lvs命令分別檢視。

圖六

 

(五)掛載LV到目錄下

接下來就是要把lv_oracle掛到/oracle,目錄下

#cd /
#mkdir oracle
#chmod 777 /oracle

建立/oracle目錄並修改許可權

# vi /etc/fstab

可以看到目前掛載分割槽的情況

圖七

//我們可以參照/的分割槽把oracle的加上去。加入這行:

/dev/mapper/VolGroup-lv_oracle      /oracle    ext4 defaults  0 0

 然後把lv_oracle格式化成ext4

#mkfs.ext4 /dev/mapper/VolGroup-lv_oracle

圖八

將lv_oracle  mount到目錄/oracle上

# mount /dev/mapper/VolGroup-lv_oracle /oracle之後檢視一下分割槽情況


圖九

可以重啟系統檢查一下是否正常。


圖十

#df –h

掛載正常,可以收工了。

相關文章