記一次lvm故障

用於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擴展成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章