Vgextend:“过滤器排除的设备”

Tib*_*ARD 11 disk-volume centos7

我正在实习,我被要求扩展一个卷组,似乎很好:

vgextend [my_group] /dev/sdb
Run Code Online (Sandbox Code Playgroud)

但现在我收到一条错误消息告诉我:

Device /dev/sdb excluded by a filter` 
Run Code Online (Sandbox Code Playgroud)

谁能帮我弄清楚什么时候出错,或者指导我设置过滤器的位置。

小智 13

对我来说,问题是我的 /dev/sdb 是一个 GPT 分区磁盘。您需要清除 GPT 记录。LVM 将此类设备过滤掉

wipefs -a /dev/sdi首先运行以删除任何 FS/GPT 签名。


Zat*_*rra 7

就我而言,我遇到了这个问题:

[root@test ~]# pvcreate /dev/vdb
  Device /dev/vdb excluded by a filter.

[root@test ~]# pvcreate /dev/vdb -vvv
...
      /dev/vdb: size is 385 sectors
        /dev/vdb: Skipping: Too small to hold a PV
        Closed /dev/vdb
...
Run Code Online (Sandbox Code Playgroud)

所以我检查了磁盘的大小并惊讶:

[root@test ~]# fdisk -l /dev/vdb

Disk /dev/vdb: 0 MB, 197120 bytes, 385 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
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我做了以下事情:

最初,当我创建磁盘时,我使用以下命令创建了它:

[root@kvmserver ~]# virsh attach-disk test --source /secret/test_disk1 --target vdb --persistent
Run Code Online (Sandbox Code Playgroud)

这是错误的,所以我做了一些阅读并发现我必须使用驱动程序(因为想象元数据)所以我做了以下事情:

[root@kvmserver ~]# virsh detach-disk test /secret/test_disk1 --config Disk detached successfully

[root@kvmserver ~]# virsh attach-disk test --source /secret/test_disk1 --target vdb --persistent --subdriver qcow2
Disk attached successfully
Run Code Online (Sandbox Code Playgroud)

现在一切正常:

[root@test ~]# fdisk -l /dev/vdb

Disk /dev/vdb: 1073 MB, 1073741824 bytes, 2097152 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

[root@test ~]# pvcreate /dev/vdb
  Physical volume "/dev/vdb" successfully created.
Run Code Online (Sandbox Code Playgroud)


小智 6

就我而言

    root@VirtualBox:~# pvcreate /dev/sdd /dev/sdc
    Device /dev/sdd excluded by a filter.
    Device /dev/sdc excluded by a filter.
Run Code Online (Sandbox Code Playgroud)

解决方法是: 检查磁盘是否没有分区。如果有,请写下分区的名称。

    root@VirtualBox:~# pvcreate /dev/sdd1 /dev/sdd2 /dev/sdc1 /dev/sdc2 /dev/sdc3
    WARNING: ext4 signature detected on /dev/sdc1 at offset 1080. Wipe it? [y/n]: y
      Wiping ext4 signature on /dev/sdc1.
      Physical volume "/dev/sdd1" successfully created.
      Physical volume "/dev/sdd2" successfully created.
      Physical volume "/dev/sdc1" successfully created.
      Physical volume "/dev/sdc2" successfully created.
      Physical volume "/dev/sdc3" successfully created.
Run Code Online (Sandbox Code Playgroud)


小智 5

另一种可能性;我今天遇到了这个。我的 /dev/sdb 上的 pvcreate 返回“...被过滤器排除”。lvm.conf 中没有过滤器,大小也很好。但@Zatarra 推荐的 -vvv 选项有所帮助。在其中我看到,

 Closed /dev/sdb
/dev/sdb: Skipping: Partition table signature found
Run Code Online (Sandbox Code Playgroud)

lsblk 显示没有分区,fdisk 没有帮助。但 gdisk 显示有 GPT 分区信息写入设备。添加它可能会起作用 - 但我在 gdisk 的专家功能下使用了“zap”选项(危险!)。

很高兴在那之后继续。