원격 시스템에서 물리적 디스크 오류가 발생한 경우 LVM 복구

원격 시스템에서 물리적 디스크 오류가 발생한 경우 LVM 복구

여기서 이런 질문을 많이 받는데, 저와 같은 상황을 겪는 사람을 본 적이 없습니다. 내 시스템의 LVM 볼륨 그룹에 오류가 발생하여 물리적으로 액세스할 수 없습니다. 자세한 내용은 아래를 참조하세요.

저는 4TB HDD와 750GB SSD라는 두 개의 물리적 볼륨을 갖춘 Debian 10 Linux 서버를 가지고 있습니다. SSD에는 부팅 볼륨이 포함되어 있습니다. HDD는 단일 물리 볼륨(/dev/sda, 4TB HDD)과 여러 논리 볼륨이 있는 LVM 볼륨 그룹으로 구성됩니다.

HDD는 분명히 결함이 있습니다. /dev/sda가 더 이상 존재하지 않고 디스크에서 읽으려고 시도하면 I/O 오류가 발생하기 때문에 진단이 불가능해 보입니다.

디스크의 데이터는 중요하지 않으며 시스템 백업이 있습니다. 문제는 그 시스템이 지구 반대편에 있는 스위스에 있는 내 집 지하실에 놓여 있는 머리 없는 리눅스 상자라는 점이었습니다. 제가 우려하는 점은 재부팅하면 부팅 중에 실패하고 진단 모드로 들어갈 가능성이 높으며 네트워크를 통해 액세스할 수 없다는 것입니다. 이런 경우에는 친구에게 그 정보를 모아서 나에게 우편으로 보내달라고 부탁해야 하는데, 몇 달 동안 다운될 것이기 때문에 정말 피하고 싶은 일입니다. 다음에 집을 방문해서 교체할 때까지는 /dev/sda 없이도 살아갈 수 있습니다.

LVM에서 얻은 출력은 다음과 같습니다.

sudo /sbin/pvdisplay -vd /dev/sda
  Error reading device /dev/Webcams/Birch-Snapshot at 0 length 512.
  Error reading device /dev/Webcams/Birch-Snapshot at 0 length 4096.
  Error reading device /dev/Webcams/Birch-Video at 0 length 512.
  Error reading device /dev/Webcams/Birch-Video at 0 length 4096.
  Error reading device /dev/Webcams/Roof-Snapshot at 0 length 512.
  Error reading device /dev/Webcams/Roof-Snapshot at 0 length 4096.
  Error reading device /dev/Webcams/Roof-Video at 0 length 512.
  Error reading device /dev/Webcams/Roof-Video at 0 length 4096.
  Error reading device /dev/Webcams/Tree-Snapshot at 0 length 512.
  Error reading device /dev/Webcams/Tree-Snapshot at 0 length 4096.
  Error reading device /dev/Webcams/Tree-Video at 0 length 512.
  Error reading device /dev/Webcams/Tree-Video at 0 length 4096.
  Error reading device /dev/Webcams/Archive at 0 length 512.
  Error reading device /dev/Webcams/Archive at 0 length 4096.
  Error reading device /dev/Webcams/Video2 at 0 length 512.
  Error reading device /dev/Webcams/Video2 at 0 length 4096.
  Error reading device /dev/Webcams/Backup at 0 length 512.
  Error reading device /dev/Webcams/Backup at 0 length 4096.
  Failed to find device for physical volume "/dev/sda".

vgs -vd 및 lvs -vd 모두 한 줄만 실행하고 인쇄합니다.

sudo /sbin/vgs -vd
    No volume groups found.

/etc/fstab은 다음과 같이 각 논리 볼륨을 마운트합니다:

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
/dev/Webcams/Archive            /mnt/Webcams/Archive        ext4    defaults,nofail         1 2

/dev/Webcams는 다음과 같습니다:

ls -l /dev/Webcams
total 0
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Archive -> ../dm-6
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Backup -> ../dm-8
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Birch-Snapshot -> ../dm-0
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Birch-Video -> ../dm-1
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Roof-Snapshot -> ../dm-2
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Roof-Video -> ../dm-3
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Tree-Snapshot -> ../dm-4
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Tree-Video -> ../dm-5
lrwxrwxrwx 1 root root 7 Aug 25 08:05 Video2 -> ../dm-7

/dev/mapper 디렉토리도 있습니다:

ls -l /dev/mapper
total 0
crw------- 1 root root 10, 236 Aug  3 10:44 control
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Archive -> ../dm-6
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Backup -> ../dm-8
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Birch--Snapshot -> ../dm-0
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Birch--Video -> ../dm-1
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Roof--Snapshot -> ../dm-2
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Roof--Video -> ../dm-3
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Tree--Snapshot -> ../dm-4
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Tree--Video -> ../dm-5
lrwxrwxrwx 1 root root       7 Aug 25 08:05 Webcams-Video2 -> ../dm-7

따라서 /dev/Webcams 및 /dev/mapper는 모두 /dev에 있는 파일에 대한 심볼릭 링크를 갖습니다.

ls -l /dev/*dm-*
brw-rw---- 1 root disk 253, 0 Aug 25 08:05 /dev/dm-0
brw-rw---- 1 root disk 253, 1 Aug 25 08:05 /dev/dm-1
brw-rw---- 1 root disk 253, 2 Aug 25 08:05 /dev/dm-2
brw-rw---- 1 root disk 253, 3 Aug 25 08:05 /dev/dm-3
brw-rw---- 1 root disk 253, 4 Aug 25 08:05 /dev/dm-4
brw-rw---- 1 root disk 253, 5 Aug 25 08:05 /dev/dm-5
brw-rw---- 1 root disk 253, 6 Aug 25 08:05 /dev/dm-6
brw-rw---- 1 root disk 253, 7 Aug 25 08:05 /dev/dm-7
brw-rw---- 1 root disk 253, 8 Aug 25 08:05 /dev/dm-8

내 질문: 재부팅 중에 시스템이 진단 모드로 전환되지 않도록 하려면 어떤 조치를 취해야 합니까? /etc/fstab에서 관련 줄을 주석 처리하는 것으로 충분할까요, 아니면 다른 작업을 수행해야 합니까?

제가 걱정하는 점은 lvm 자체가 부팅 중에 확인하여 부팅이 완료되지 못하게 하는 오류를 발생시킬 수 있다는 것입니다. 나는 다른 볼륨에는 lvm을 사용하지 않으므로 이론적으로는 적어도 패키지를 제거할 수 있다고 생각합니다. 비록 시스템 상태를 고려할 때 그것이 현명한 것인지는 확실하지 않지만.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

/etc/fstab언급된 각 줄을 주석 처리합니다 /dev/Webcams. 시스템에 동일한 볼륨 그룹에 속하는 다른 디스크가 없으면 이 정도면 충분합니다.

Linux LVM(커널 버전 2.6 이상)은 일반적으로 VG 구성을 저장하지 않습니다 /etc. 모든 구성 정보는 개별 PV의 LVM 헤더에 저장됩니다. 루트 파일 시스템이 LVM에 있는 경우 initramfs는 일반적으로 루트 파일 시스템(및 /etc/initramfs-tools/conf.d/resumeDebian의 경우 스왑 영역)이 포함된 특정 LV만 활성화하려고 시도합니다.

해당 sda디스크가 웹캠 VG의 유일한 디스크였고 이제 오류가 발생한 경우 LVM은 재부팅 후 VG가 존재한다는 사실조차 알지 못합니다. 이를 참조하는 행을 주석 처리한 후에는 /etc/fstab부팅 프로세스를 방해하는 설치 시도 실패가 있어서는 안 됩니다.

그러나 웹캠 VG에 아직 살아 있고 작동 중인 다른 디스크도 포함되어 있는 경우 LVM은 VG의 일부를 감지하므로 시작 시 비상 셸로 들어갈 수 있습니다. vgreduce --removemissing --force부팅하기 전에 실행하면 이런 일이 발생하는 것을 방지 할 수 있습니다 . 이렇게 하면 누락된 디스크를 잊어버리도록 이 VG의 나머지 디스크에 있는 VG 구성이 효과적으로 업데이트됩니다. 이 --force옵션을 사용하면 부품이 손실될 수 있는 모든 LV가 지워지거나 삭제됩니다.

관련 정보