關於LVM管理PVcreate過程中錯誤Device /dev/sdb not found (or ignored by filtering)


今天在做環境中一台機器磁盤擴容過程中出現此報錯,第一次遇到,說一下情況:

1、我的機器中原本有一個LV 500G,作為nova節點的存儲空間,空間不夠,想擴容1T,浪潮服務器,加入兩塊1T磁盤,跟之前兩個600G盤一樣,做RAID1;(注:此動作需要重啟服務器,要做追加,把新加的盤做raid,否則會對之前數據產生不利影響)

2、加入之后開機,發現sdb,執行fdisk,保存退出:

 

3、此時 fdisk -l 或lsblk 發現sdb1,執行partprobe,重新發現分區表;

4、做pv:執行pvcreate,然后報錯Device /dev/sdb not found (or ignored by filtering)。

 

百度此報錯,說法一:“這是由於掛了盤卻沒有格式化”,

親測掛一塊裸盤分區后不格式化,依舊能夠執行pvcreate /dev/sdb1命令,可見這種說法並不能解決,在格式化之前執行pvcreate 命令並不會有問題(Centos7)。

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-root 253:0    0 17.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   30G  0 disk 
sr0              11:0    1 1024M  0 rom  

[root@localhost ~]# fdisk /dev/sdb 分區轉換8e之后

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-root 253:0    0 17.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   30G  0 disk 
└─sdb1            8:17   0   30G  0 part 
sr0              11:0    1 1024M  0 rom  
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

 

百度報錯說法二:執行以下步驟可以解決。

實驗后發現,這個也無法解決。

先執行:

1 # dd if=/dev/urandom of=/dev/sdb bs=512 count=64
后再次執行

1 # pvcreate /dev/sdb
dd if=/dev/urandom是提供永不為空的隨機字節數據流,以上命令是把/dev/sdb覆蓋分區塊,也就是擦除分區,然並卵。

[root@localhost ~]# dd if=/dev/urandom of=/dev/sdb bs=512 count=64
記錄了64+0 的讀入
記錄了64+0 的寫出
32768字節(33 kB)已復制,0.015772 秒,2.1 MB/秒
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-root 253:0    0 17.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   30G  0 disk 
sr0              11:0    1 1024M  0 rom  

 

百度說法三:按照錯誤說法,既然已經找到了/dev/sdb1,那肯定就是括號中的原因: ignored by filtering,實驗發現確實如此。

解決方案:

(1)找到lvm配置文件:vim /etc/lvm/lvm.conf,搜索找到devices字段中filter

devices {


        # Configuration option devices/dir.
        # Directory in which to create volume group device nodes.
        # Commands also accept this as a prefix on volume group names.
        # This configuration option is advanced.
        dir = "/dev"


        # Configuration option devices/scan.
        # Directories containing device nodes to use with LVM.
        # This configuration option is advanced.
        scan = [ "/dev" ]

。。。。。。。。。。。。。。。。。。。。。。。

 # Accept every block device:
        # filter = [ "a|.*/|" ]
        # Reject the cdrom drive:
        # filter = [ "r|/dev/cdrom|" ]
        # Work with just loopback devices, e.g. for testing:
        # filter = [ "a|loop|", "r|.*|" ]
        # Accept all loop devices and ide drives except hdc:
        # filter = [ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
        # Use anchors to be very specific:
        # filter = [ "a|^/dev/hda8$|", "r|.*/|" ]
        #
        # This configuration option has an automatic default value.
        # filter = [ "a|.*/|" ]


        # Configuration option devices/global_filter.
        # Limit the block devices that are used by LVM system components.
        # Because devices/filter may be overridden from the command line, it is
        # not suitable for system-wide device filtering, e.g. udev and lvmetad.
        # Use global_filter to hide devices from these LVM system components.
        # The syntax is the same as devices/filter. Devices rejected by
        # global_filter are not opened by LVM.
        # This configuration option has an automatic default value.
    global_filter = [   "a|/dev/sda7|", "r|.*/|" ]

找到global_filter一行發現,此filter允許(a)/dev/sda7,拒絕(r)其他所有此目錄下名稱(如上,此目錄為dir=/dev下),

bingo,問題就出在這里,/dev/sdb/在這里被過濾掉了,因此不搜索。

解決之道就出來了,在此行【】中添加:“a|sdb1|”,注意不能用/dev/sdb1,因為/dev/已經有了,就是上面說的dir=/dev/。

之后再執行pvcreate命令,通過,問題解決。
---------------------
版權聲明:本文為CSDN博主「sdu_king」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/sdu_king/article/details/74933121


免責聲明!

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



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