"pvs" 명령은 PV 장치를 찾을 수 없지만 LV가 매핑되고 설치되었음을 의미합니다.

"pvs" 명령은 PV 장치를 찾을 수 없지만 LV가 매핑되고 설치되었음을 의미합니다.

내 시스템에 문제가 있습니다(내부 전원 코드 결함). 시스템을 백업 및 실행하고 어레이를 재구축하는 등 명령 pvs(및 vgs) lvs이 보고 No device found for PV <UUID>하지만 논리 볼륨이 소위잃어버린물리 볼륨은 DM 장치가 존재하고 매핑되어 있기 때문에 성공적으로 마운트될 수 있습니다 /dev/mapper.

PV 장치는 md-raid RAID10 어레이이고 괜찮아 보이지만 출력에 표시되지 않아 혼란스럽습니다 pvs.

일부 내부 테이블이 동기화되지 않은 문제인 것 같습니다. 올바르게 매핑하려면 어떻게 해야 합니까(재부팅하지 않고 문제가 해결될 것 같습니다)?


고쳐 쓰다:

다시 시작해도 문제가 해결되지 않았습니다. 이 문제는 750b 디스크(/dev/sdk)에서 구축된 RAID10 Far-2 어레이 및 750b 디스크에서 구축된 RAID0 어레이(/dev/md90)에 대해 "누락된" PV(/dev/md99)를 구성함으로써 발생한다고 생각합니다. 250GB 디스크(/dev/sdh) 및 500GB 디스크(/dev/sdl). 출력에서 pvscan -vvvlvm2 서명은 /dev/sdh에 있지만 /dev/md99에는 없는 것으로 나타납니다.

    Asking lvmetad for VG f1bpcw-oavs-1SlJ-0Gxf-4YZI-AiMD-WGAErL (name unknown)
  Setting response to OK
  Setting response to OK
  Setting name to b
  Setting metadata/format to lvm2
    Metadata cache has no info for vgname: "b"
  Setting id to AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN
  Setting format to lvm2
  Setting device to 2160
  Setting dev_size to 1464383488
  Setting label_sector to 1
    Opened /dev/sdh RO O_DIRECT
  /dev/sdh: size is 488397168 sectors
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
    Closed /dev/sdh
  /dev/sdh: size is 488397168 sectors
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
    Closed /dev/sdh
    /dev/sdh: Skipping md component device
  No device found for PV AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN.
    Allocated VG b at 0x7fdeb00419f0.
  Couldn't find device with uuid AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN.
    Freeing VG b at 0x7fdeb00419f0.

/dev/md99(PV여야 함)에 대한 유일한 참조는 이를 장치 캐시에 추가할 때입니다.


업데이트 2:

중지 하고 반복하여 시스템이 동일한 UUID를 가진 2개의 PV를 발견했기 때문에 어떤 PV를 사용할지 혼동하는 것이 문제인지 lvm2-lvmetad확인합니다.pvscan

    Using /dev/sdh
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
  /dev/sdh: lvm2 label detected at sector 1
  Found duplicate PV AzKyTe5Ut4dxgqtxEc7V9vBkm5mOeMBN: using /dev/sdh not /dev/md99
    /dev/sdh: PV header extension version 1 found
  Incorrect metadata area header checksum on /dev/sdh at offset 4096
    Closed /dev/sdh
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
  Incorrect metadata area header checksum on /dev/sdh at offset 4096
    Closed /dev/sdh
    Opened /dev/sdh RO O_DIRECT
    /dev/sdh: block size is 4096 bytes
    /dev/sdh: physical block size is 512 bytes
    Closed /dev/sdh
  Incorrect metadata area header checksum on /dev/sdh at offset 4096
    Telling lvmetad to store PV /dev/sdh (AzKyTe-5Ut4-dxgq-txEc-7V9v-Bkm5-mOeMBN)
  Setting response to OK

이 구성은 일시적이므로 디스크 사용량을 다시 조정하는 것이 좋겠다고 생각했습니다.

누군가가 보기 장치의 순서를 명시적으로 재정의하는 방법을 말해주지 않는 한 pvscan?

답변1

filter가장 먼저 확인해야 할 것은 및 의 global_filter옵션 입니다 /etc/lvm/lvm.conf. PV가 있는 장치를 필터링하지 않도록 하세요.

캐시는 cache_dir동일한 파일의 옵션으로 설정됩니다. 내 Debian 컴퓨터에서는 기본값이 입니다 /run/lvm. 캐시(있는 경우)는 이 디렉터리에 있어야 합니다. 설정 하면 obtain_device_list_from_udev캐시가 사용되지 않을 것이라고 생각합니다.

마지막으로 use_lvmetad설정되었는지 확인합니다. 그렇다면 LVM 메타데이터 데몬을 다시 시작해야 할 수도 있습니다.

답변2

pvscanRAID 어레이의 구성 요소 장치와 RAID 어레이 자체에서 동일한 UUID가 표시되어 문제가 발생한 것 같습니다 . 이는 일반적으로 장치가 직접적인 구성 요소라는 점을 인식하면 피할 수 있다고 생각합니다. 제 경우에는 장치가 RAID 장치의 구성 요소가 직접적으로는 아니지만 RAID 장치가 PV여야 하는 상황을 만들었습니다.

내 솔루션은 LV를 백업하고 어레이를 강제로 다운그레이드한 다음 다중 레벨 RAID를 사용하지 않도록 디스크를 재구성하는 것이었습니다. 다시 재부팅하면 장치 문자가 변경됩니다. 500Gb = /dev/sdi, 250Gb = /dev/sdj, 750Gb = /dev/sdk

# mdadm /dev/md99 --fail --force /dev/md90
# mdadm /dev/md99 --remove failed
# mdadm --stop /dev/md90
# wipefs -a /dev/sdi /dev/sdj               # wipe components
# systemctl stop lvm2-lvmetad
# pvscan -vvv
# pvs
..... /dev/md99 is now correctly reported as the PV for VG b
# fdisk /dev/sdi
...... Create 2 partitions of equal size, i.e. 250Gb
# fdisk /dev/sdj
...... Create a single 250Gb patitiion
# mdadm /dev/md91 --create -lraid5 -n3 /dev/sdi1 /dev/sdj1 missing
# mdadm /dev/md92 --create -lraid1 -n2 /dev/sdi2 missing
# pvcreate /dev/md91 /dev/md92
# vgextend b /dev/md91 /dev/md92
# pvmove /dev/md99
# vgreduce b /dev/md99
# pvremove /dev/md99
# mdadm --stop /dev/md99
# wipefs -a /dev/sdk
# fdisk /dev/sdk
..... Create 3 250Gb partitions
# mdadm /dev/md91 --add /dev/sdk1
# mdadm /dev/md92 --add /dev/sdk2

이야기의 교훈:

파일 시스템에 너무 많은 수준의 간접 참조를 도입하지 마십시오!

답변3

루트로서 다음 명령을 사용하면 문제가 해결됩니다.

pvscan --cache
pvscan 

관련 정보