准備知識
linux volume
1.(PV)physical volume
disk ; 物理硬盤
物理硬盤需要轉換成lvm(logic volume manage)可識別的狀態,將磁盤的system id 轉換成8e(lvm的識別碼),再通過
pvcreate轉換成PV,這樣才能對磁盤加以利用
2.(VG) volume group
磁盤組, 由pv組成,而后pv又會被看做一個整體分為lv1、lv2···
3.(PE) physical extent
lvm的最小存儲塊
4.(LV)logical volume
邏輯卷
VG最后會被分成許多LV
表示為 /dev/vgname/lvname 例 /dev/sda/sda1 、/dev/sda/sda2 、/dev/sdb/sdb1
—————————————-華麗的分割線—————————————————-
系統版本:
cat /etc/redhat-release
- 1
CentOS Linux release 7,2,15,11
現狀:
磁盤有2塊 sda(20G) 、sdb(2G), 現只有sda被使用,因為root分區馬上就滿了所以准備對磁盤sda擴容,將sdb合並到sda中
原理:
使用lvm對磁盤擴容
通過轉置sdb的pe到sda中達到對sda擴容的目的。
流程:
1.添加邏輯卷sdb
先用parted確定磁盤類型,若類型為MBR則使用fdisk,若為GPT則使用gdisk來分割。
parted /dev/sdbx print
- 1
確認一個扇區(sector)的大小為512字節
確定類型為msdos(mbr),所以使用fdisk。
fdisk /dev/sdb
- 1
注意此處因為是要將sdb中所有容量都拿過來,所以在設定容量時直接按默認值回車了,如果要分配出指定的容量,則在last sector 行自行設置,例 +2G;再將系統識別碼設置稱lvm可是別的8e,w保存。
2.更新分區表
partprob
- 1
3.格式化為ext4格式
mkfs -t ext4 /dev/vdb1
- 1
4.掛載sbd(此處掛載可忽略,因為擴容不需要掛載,跳到5)
mkdir /mnt/sdb1 mount /dev/sdb1 /mnt/sdb
- 1
- 2
設置開機自動掛載
vi /etc/fstab 在末尾添加一行
/dev/sdb1 /mnt/sdb ext4 defaluts 1 2
- 1
- 2
reboot 重啟df -h 查看
成功!
如果你的設備已經掛載請先卸載。
5.通過lvm管理sdb1
先創建物理卷pv
lvm
pvcreate /dev/sdb1
- 1
- 2
將pv(物理卷)加入到vg(卷組),可以通過·vgdisplay 查看組信息
vgextend centos /dev/sdb1
- 1
可以看到vg size 增加到了22G,Free PE size 也有了2G(511)的大小。(我們要增加的就是這個PE的大小!!)
到現在終於可以開始擴充根目錄醬的容量啦。。(有奇怪的東西混了進來2333)
邏輯卷擴容
lvextend -l +511 /dev/mapper/centos-root
- 1
同樣可以通過lvdisplay查看結果
6.接下來擴容文件系統
注意:如果文件系統是xfs格式用 xfs_growfs ,我這里是ext4格式用resize2fs
resize2fs /dev/mapper/centos-root
- 1
df -h 查看結果
- 1
可以看到我們的根目錄醬(划掉)⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄已經成功的從18G漲到20G啦。
至此擴容完成。