드라이브가 사라졌다가 새로운 블록 장치로 돌아올 때 대처 방법(LVM 또는 DM(장치 매퍼) 사용)

드라이브가 사라졌다가 새로운 블록 장치로 돌아올 때 대처 방법(LVM 또는 DM(장치 매퍼) 사용)

(이 정답은 이 질문과 표면적으로 거의 유사하지 않습니다. 질문을 하고 해당 질문을 참조하여 스스로 대답하십시오.)

VM에 3개의 독립 virtio드라이브(3개의 독립 블록 장치로 표시)가 할당되고 3개의 독립 VG(볼륨 그룹)에 할당되는 가상 호스팅 환경을 생각해 보세요.

  • 운영 체제 /dev/vda--vgroot
  • db-- /dev/vdbvgdata
  • var-- /dev/vdcvgvar

가상 머신이 온라인 상태가 되면 /dev/vdb사라집니다. 이는 VM이 ​​새 하이퍼바이저로 이동했지만 특정 볼륨이 멈추었거나 미친 시스템 관리자가 볼륨을 삭제하고 일시적으로 다른 호스트에 배치했기 때문일 수 있습니다. 제 경우에는 정말 행운이라고 생각합니다.

볼륨이 복원되면 Linux 커널(실제로 전부는 아니지만 적어도 RHEL6으로 시작)은 디스크가 기술적으로 "개방"으로 간주되므로 원래 드라이브 문자에 할당하지 않고 대신 새 드라이브 문자에 할당합니다. 장치: /dev/vdd.

그 후에는 모든 LVM 명령(예 vgs: )이 다음을 보고합니다.

/dev/data/db: read failed after 0 of 4096 at 10733158400: Input/output error
/dev/data/db: read failed after 0 of 4096 at 10733215744: Input/output error
/dev/data/db: read failed after 0 of 4096 at 0: Input/output error
/dev/data/db: read failed after 0 of 4096 at 4096: Input/output error

그러나 원래 볼륨을 감지 pvscan하고 여전히 이전 블록 장치를 읽으려고 시도하고 있습니다. vgscan재설치도 안 됩니다. 논쟁의 여지가 있으므로 재부팅은 허용되지 않습니다. 무엇을 해야 할까요?

답변1

iscsi이 질문은 디스크 관련 토론에서 답변되었습니다.여기. 나는 scsi를 전혀 사용하지 않고 그냥 virtio구글링했기 때문에 답을 찾는 데 도움을 받을 수 없습니다. 이 답변이 나타나면 Guiseppe의 답변에 꼭 투표하세요. 간단히 말해서 다음과 같습니다.

vgscan ; vgchange <vgname> --refresh

관련 정보