引出
在我們安裝好linux系統后會發現在需要修改磁盤分區的時候會比較困難,系統安裝的/目錄的文件系統要更改基本不太可能,其他目錄如/home目錄也比較困難。但是系統安裝時要是采用的LVM管理的方式安裝的話就會截然不通。
一、首先普及下LVM的基礎知識
LVM(Logical Volume Manager)邏輯卷管理,簡單的說它可以將多個物理硬盤組合成一個VG然后給不同的文件系統(如:/home,/opt等)使用。
引用一個圖:
這里分享一篇比較全面介紹的文章,Linx卷管理詳解。
二、linux系統采用LVM的方式安裝
下面針對使用LVM安裝操作系統做一個詳細講解,這里使用suse系統演示,為了方便演示文件系統也只分化/和/home。
-
安裝到需要划分磁盤這步時,選擇自定義(專家模式划分)。
-
由於系統啟動目錄不能有LVM來管理,這里將磁盤划分成兩部分,一部分給/boot目錄,選擇ext3格式;剩余的空間文件系統ID設置為LVM。
最后的划分后如下圖:
-
增加卷組
-
增加文件系統/和/home,還有swap。
-
完成磁盤划分后完成系統的安裝。
三、系統文件系統的管理
系統安裝VG(Volume Group)卷組有剩余空間
在我們日常使用系統的時候肯定會碰到文件系統不夠用的情況,而我們之前安裝系統的時候卷組還有剩余的空間,這是我們就可以利用剩余的空間對文件系統進行擴充。
-
查看文件系統使用情況
查看fstab情況:
查看VG情況,圖中紅框就是VG剩余容量:
-
擴充/文件系統
查看LV情況:
擴充2G到/文件系統:
命令:linux:~ # lvextend -L +2G /dev/local/root Extending logical volume root to 7.00 GB Logical volume root successfully resized linux:~ # resize2fs /dev/local/root resize2fs 1.41.9 (22-Aug-2009) Filesystem at /dev/local/root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/local/root to 1835008 (4k) blocks. The filesystem on /dev/local/root is now 1835008 blocks long. linux:~ #
查看擴充后大小:
擴充/home也是如此簡單,只要使用如下命令即可:
``` shell
lvextend -L +1G /dev/local/home
resize2fs /dev/local/home
lvextend -L +1G /dev/local/swap
resize2fs /dev/local/swap
```
swap的操作略有不同,使用如下命令:
shell swapoff -v /dev/local/swap # 關閉swap lvextend -L +1G /dev/local/swap # 擴大1G mkswap /dev/local/swap # 重新建立交換分區 swapon -va # 再打開swap
卷組無剩余空間,需要新增物理磁盤
然而很多時候我們會碰到的場景是我們安裝系統盤的容量已經用完,需要我們新增物理硬盤再進行擴充。
-
完成物理磁盤增加后,可以采取重啟的方式識別硬盤(如果有業務在運行不能重啟我們可以采用增加磁盤信息到/proc/scsi/scsi配置文件的方式)。圖中紅框內為新增磁盤:
-
創建分區
linux:~ # fdisk /dev/sdb ... Command (m for help): n # 輸入n進行新建 Command action e extended p primary partition (1-4) e # 輸入e選擇新建擴展分區 Partition number (1-4): 1 # 輸入要建立分區的個數,這里選擇只建立一個 First cylinder (1-2610, default 1): Using default value 1 # 輸入分區開始位置,選擇默認,回車 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): # 輸入分區結束位置,選擇默認,回車 Using default value 2610 Command (m for help): t # 輸入t修改分區格式 Partition number (1-8): 1 # 選擇需要修改的分區 Hex code (type L to list codes): 8e # 輸入格式8e,即LVM管理 Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): w # 輸入w保存退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
-
創建PV
linux:~ # pvcreate /dev/sdb1 # 輸入命令 No physical volume label read from /dev/sdb1 Found duplicate PV lBQnQ7fULctTErXBCxMFeAJbIX00M2F6: using /dev/sdb not /dev/sdb1 Physical volume "/dev/sdb1" successfully created linux:~ #
-
擴充VG
先使用vgdisplay查看已存在vg;linux:~ # vgextend local /dev/sdb1 # 輸入命令進行擴充 Found duplicate PV lBQnQ7fULctTErXBCxMFeAJbIX00M2F6: using /dev/sdb1 not /dev/sdb Volume group "local" successfully extended linux:~ #
使用vgdisplay命令可以查看擴容后的大小。
- 擴充文件系統
擴充文件系統就跟上一節介紹的一樣的操作,這里就不再贅述了。
總結
從上面的操作就可以看出種種使用LVM安裝系統的好處了,可以動態的更改包括根目錄在內的所有文件系統。但使用lvm分區的話因為增加了一層管理,應該是會一定影響,所以我們可以采取折中的辦法,就是/boot和/文件系統可以使用普通邏輯分區,而且其余文件系統使用LVM分區管理,以方便后期動態管理。