刪除lvm時出現"Logical volume contains a filesystem in use"


問題描述:

k8s環境中需要重新創建lvm:/dev/mapper/test-vg-test-storage,該lvm掛載在/data/prometheus下面,在刪除出現"Logical volume contains a filesystem in use"的錯誤,表明該lvm被某個進程占用,但直接使用該lvm的容器已經被清理,使用lvchange -an /dev/mapper/test-vg-test-storage去激活該lvm時也會出現上述錯誤。

解決方法:

使用如下腳本找出所有與該lvm相關的進程

# for i in  /proc/[0-9]* ; do echo $i >> /tmp/mountinfo ;  grep -q "/dev/mapper/test-vg-test-storage" $i/mountinfo ; echo $? >> /tmp/mountinfo ; done

結果如下:

# grep -B 1 '^0$' /tmp/mountinfo 
/proc/922
0

根因分析:

經排查,該進程對應Prometheus node-exportor的容器,出現刪除lvm失敗的原因是該lvm掛載在/data/prometheus下面,而node-exportor的容器中又掛載了根目錄,/data/prometheus屬於根目錄,因此會出現lvm被使用的情況。刪除node-export容器即可正常刪除lvm

volumes:
- name: proc
  hostPath:
    path: /proc
- name: sys
  hostPath:
    path: /sys
- name: rootfs hostPath: path: /
# lvchange -an /dev/mapper/test-vg-test-storage
# lvremove /dev/mapper/test-vg-test-storage

 

總結:

  • 掛載文件或目錄時以最小權限掛載
  • 上述腳本適用於定位所有因為掛載而導致的失敗

參考:

https://access.redhat.com/solutions/2961861


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM