linux的磁盤容量擴容,基於lvm,即邏輯卷管理。具體是什么請百度,這里不細述。
此次操作的目的是為了給已存在的linux主機的其中一個數據分區擴容。
環境:esxi6.5 虛擬機系統centos7
簡單來說,擴容這件事分三步
一、從esxi中為此虛擬機增加硬盤,並讓centos系統識別出此硬盤
二、將此硬盤進行分區、格式化(重點是這里的分區不是類似於windows,分完就能用了,而它需要一個掛載的過程,要么單獨掛載,要么加入lvm掛載,否則在linux中是無法訪問的)
三、卷組管理
- 1、將分好區的硬盤創建為物理卷
- 2、將此物卷直接進行掛載到文件系統
- 3、或將此物理卷加入到lvm卷組中
- 4、對加入到卷組的空間進行邏輯卷擴容或是創建為邏輯卷再進行擴容等操作
以下是本次操作的過程記錄
1、首先看一下未添加硬盤前的系統磁盤狀態,
2、在esxi中添加硬盤的過程就不說了,添加過硬盤,需要對scsi接口進行掃描,就相當於掃描新硬件
端口太多,一個個掃描太慢,我就寫個簡單腳本執行。
ls | sort > /opt/host.txt
批量掃描腳本
#!/bin/bash
DIR="/sys/class/scsi_host/"
for i in `cat host.txt`
do
echo "- - -" > $DIR$i/scan
echo $DIR$i/scan
done
rm -rf /opt/host.txt
運行腳本
[root@kvm opt]# ls
backup host.sh host.txt rh
[root@kvm opt]# pwd
/opt
[root@kvm opt]# bash host.sh
3、可以看到新加的10G硬盤已經被識別為/dev/sdb
4、查看一下scsi的狀態,以上都是准備工作,狀態都對,后面操作就容易
cat /proc/scsi/scsi
5、對新硬盤進行分區,此處是新建了一個主分區,默認id為1,所以分好后就是sdb1
6、我們的目的是為了用lvm進行管理,所以在分完區后,要將分區屬性標記為lvm的8e
7、分完后可以看到分區信息,/dev/sdb1的8e,然后重讀一下分區表,刷新
已經分區成功了
8、上面分完區,下面當然就是加入卷了,先把sdb1做成一個新的物理卷
9、用vgdisplay查看一下卷組的狀態,可以看到原先centos組里面沒有空余,那么我們要做的就是把剛加的磁盤,剛分好的區,然后剛創建成的物理卷加入到這個centos組里去,加進組才能在組里進行分配嘛。所以vgextend centos /dev/sdb1,加完再看vgdisplay,空余空間為10G,很明顯,新加的磁盤已處理待分配狀態
[root@kvm dev]# vgextend centos_kvm /dev/sdb1
Volume group "centos_kvm" successfully extended
10、最后就是劍指黃龍,我要給var進行擴容,lvresize -L +10G /dev/centos/var
[root@kvm centos_kvm]# lvresize -L +20G /dev/centos_kvm/root
Size of logical volume centos_kvm/root changed from <26.00 GiB (6655 extents) to <46.00 GiB (11775 extents).
Logical volume centos_kvm/root successfully resized.
[root@kvm centos_kvm]# vgdisplay
--- Volume group ---
VG Name centos_kvm
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
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 128.99 GiB
PE Size 4.00 MiB
Total PE 33022
Alloc PE / Size 12543 / <49.00 GiB
Free PE / Size 20479 / <80.00 GiB
VG UUID K35BzQ-nhXT-zFsf-W1kp-T9iq-kcFx-hfTdTN
11、上面那一步不算完,記得不,之前我雖然分區了,創建卷了,加入卷組,但實際上我沒格式化。那么OK,這里用xfs_qrowfs /dev/centos/var重新識別一下新卷的容量,是擴容后的哦,擴容時加上的新磁盤也就同時被格式化了。
xfs_qrowfs 是centos7的命令,在centos6.X中是resize2fs,其實還是6.x的命令好記。
此處講的是直接將新加的磁盤擴容到已有分區,還可以做的是,在將新分區加入卷組后:
1、創建需要大小的獨立邏輯卷,將它進行單獨掛載使用。(別忘了改一下/etc/fstab,不然下次重啟還要手動掛載)
lvcreate -L 4G -n newlv centos 在centos卷組的空閑空間中划出4G的新邏輯卷,起名為newlv
mkfs.xfs /dev/centos/newlv 將新的newlv格式化為xfs文件系統
1、不創新需要大小的獨立邏輯卷,將自由空間擴容到現有的分區掛載點
基本就這些了。lvm管理說實話真挺爽的。特別是在esxi主機上使用,無需停機,直接加裝擴容。
有正就有反,能裝就得能卸,能擴就得能減。
1、直接擴容原有邏輯卷大小的卸載新加容量
lvreduce -L -10G /dev/centos/var 先把擴容的容量減掉
如果是創建成為一個獨立的邏輯卷,則
lvremove /dev/centos/newlv1
2、從卷組中刪掉加入的磁盤分區
vgreduce centos /dev/sdb1
3、從物理卷中卸掉sdb1
- pvremove /dev/sdb1
最后就是在esxi中刪硬件了。