用於openstack的節點,發現宿主機磁盤空間不夠用了。由於系統分區使用了lvm,想着把lvm擴展一下就ok了。
[root@Caron cinder]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 640G 611G 695M 100% /
devtmpfs 126G 0 126G 0% /dev
tmpfs 126G 0 126G 0% /dev/shm
tmpfs 126G 4.1G 122G 4% /run
tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/sda1 283M 100M 164M 38% /boot
tmpfs 126G 4.1G 122G 4% /run/netns
tmpfs 26G 0 26G 0% /run/user/0
通過命令查看後,發現vg中也沒有剩餘空間了,因此需要新的pv加入。
瞄中了/dev/sdh
盤,沒有被使用。先用fdisk /dev/sdh
進行分區。
[root@Caron ~]# fdisk -l /dev/sdh
Disk /dev/sdh: 399.4 GB, 399431958528 bytes, 780140544 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x93026f38
Device Boot Start End Blocks Id System
/dev/sdh1 2048 780140543 390069248 8e Linux LVM
Note: 設置分區類型爲linux LVM. 當別人需要操作磁盤的時候,提醒這盤已經用作lvm了。
創建pv, 加到對應的vg中:
[root@Caron ~]# pvcreate /dev/sdh1
[root@Caron ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 3 2 0 wz--n- 650.81g 0
ss-volumes 9 22 0 wz--n- 3.27t 57.96g
[root@Caron ~]# vgextend VolGroup00 /dev/sdh1
加入之後,通過命令查看:
WARNING: Device for PV J7U4NX-OkZt-yahj-AyHw-UYJm-xaEn-UoAndI not found or rejected by a filter.
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 3
Act PV 2
VG Size 950.78 GiB
PE Size 32.00 MiB
Total PE 30425
Alloc PE / Size 20826 / 650.81 GiB
Free PE / Size 9599 / 299.97 GiB
VG UUID BoJaAa-2cQ5-Fov5-6zY9-Bn33-CG1g-XdU1Yr
發現可用大小增加了,但是提示某個pv設備丟失。
在執行lvm擴展命令lvextend -l +100%FREE /dev/VolGroup00/LogVol00
的時候,出現瞭如下錯誤:
Cannot change VG VolGroup00 while PVs are missing.
應該是由於VolGroup00 VG組的pv缺失所造成的。
一般沒人去拔服務器上的盤,那可能就是被lvm的配置過濾掉了。遂打開lvm的配置文件查看:
[root@Caron ~]# cat /etc/lvm/lvm.conf
...
filter = [ "a/sda/", "a/sdb1/", "a/sdc1/","a/sdd1/","a/sde1/","a/sdf1/","a/sdg1/","a/sdi1/","a/sdj1/","a/sdk1/","a/sdl1/","a/sdm1/","a/sdn1/","a/sdp1/","r/.*/"]
...
發現有些盤符被lvm所忽略掉了
可以看到,sdh是是用於邏輯卷的。因此在過濾規則中加上/dev/sdh。然後重啓systemctl restart lvm2-lvmetad.service
再次執行lvextend -l +100%FREE /dev/VolGroup00/LogVol00
的時候,出現瞭如下錯誤:
Device still marked missing because of allocated data on it, remove volumes and consider bgreduce --removemissing.
此時pv /dev/sdh 已經不再丟失,且已經成功加入到VG組.但是由於分配的數據,設備仍然標記爲丟失。
在查閱許多資料之後,發現可以使用restoremissing
參數來恢復:
vgextend --restoremissing VolGroup00 /dev/sdh1
再次執行lvextend命令的時候,提示成功。
重新resize一下lvm大小:
[root@Caron ~]# resize2fs /dev/VolGroup00/LogVol00
[root@Caron ~]# df -h | more
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 936G 612G 283G 69% /
devtmpfs 126G 0 126G 0% /dev
tmpfs 126G 0 126G 0% /dev/shm
tmpfs 126G 4.1G 122G 4% /run
tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/sda1 283M 100M 164M 38% /boot
tmpfs 126G 4.1G 122G 4% /run/netns
tmpfs 26G 0 26G 0% /run/user/0
可以看到lvm擴展成功。