소프트웨어 Raid 재구축 시 LVM2 VolGroup 문제

소프트웨어 Raid 재구축 시 LVM2 VolGroup 문제

나는 가장 이상한 LVM 문제를 해결하려고 노력하고 있습니다.

저는 3TB 디스크 4개 중 소프트웨어 Raid 5를 사용하여 집에서 소규모 서버를 실행하고 있습니다. (섀시에는 하드웨어 Raid 컨트롤러를 위한 공간이 없습니다).

기술적인 관점에서 보면 Intel Rapid Storage Technology입니다.

서버의 스토리지 마운트는 다음과 같습니다.

물리 디스크 -> 소프트웨어 Raid 5 -> LVM2 -> EXT4

지난주 정전 이후 BIOS가 실패한 상태여서 디스크를 다시 RAID로 처리하도록 Bios를 재구성했습니다.

그러나 처음으로 Raid 컨트롤러 인터페이스를 살펴본 후 다음과 같은 사실을 발견했습니다.

여기에 이미지 설명을 입력하세요.

Raid 정보에서 디스크가 완전히 제거되어 상태가 실패했습니다. !

따라서 Raid 어레이를 삭제하고 다시 생성하는 다른 옵션이 없기 때문에 이 후에 시스템을 부팅할 수 있지만 내부에 LVM 저장소가 없습니다.

mdadm.conf가 다음으로 변경되었습니다.

ARRAY metadata=imsm UUID=3870907f:d7fafe1a:593e95f1:3496eea9
ARRAY /dev/md/Volume1 container=3870907f:d7fafe1a:593e95f1:3496eea9 member=0 UUID=0429e388:74a0f3ea:8ca3b4a3:5f976ec2

도착하다:

ARRAY metadata=imsm UUID=52065345:de8d583c:8fa56cc8:55d93798
ARRAY /dev/md/Volume1 container=52065345:de8d583c:8fa56cc8:55d93798 member=0 UUID=b8f3dcf7:0e95fede:e6224238:b2426835

그리고

blkid /dev/md126

지금 돌아오세요

/dev/md126: UUID="Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3" TYPE="LVM2_member"

Softwareaid가 다시 생성되었으므로 /etc/lvm/backup/ Volume 0에서 PV0의 UUID를 mowPbj-0RMX-Glr2-e6ar-vOgP-mcHH-k4sAmc에서 Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 로그인으로 변경했습니다. :

# Generated by LVM2 version 2.02.168(2) (2016-11-30): Mon Oct 14 00:05:24 2019

contents = "Text Format Volume Group"
version = 1

description = "Created *after* executing 'vgchange -ay'"

creation_host = "home"  # Linux home 4.15.17-1-pve #1 SMP PVE 4.15.17-9 (Wed, 9 May 2018 13:31:43 +0200) x86_64
creation_time = 1571004324  # Mon Oct 14 00:05:24 2019

LogVol0 {
    id = "Ch3etp-GYit-9qVW-nhEg-bv3K-IQnW-0jCjgM"
    seqno = 16
    format = "lvm2"         # informational
    status = ["RESIZEABLE", "READ", "WRITE"]
    flags = []
    extent_size = 8192      # 4 Megabytes
    max_lv = 0
    max_pv = 0
    metadata_copies = 0

    physical_volumes {

        pv0 {
            id = "Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3"
            device = "/dev/md126"   # Hint only

            status = ["ALLOCATABLE"]
            flags = []
            dev_size = 17581580288  # 8.18706 Terabytes
            pe_start = 2048
            pe_count = 2146188  # 8.18706 Terabytes
        }
    }

    logical_volumes {

        Logical_Volume_00 {
            id = "BWUgvn-24uy-XXf5-aFVx-o9YA-RF2H-2uD3OV"
            status = ["READ", "WRITE", "VISIBLE"]
            flags = []
            creation_time = 1395998316  # 2014-03-28 10:18:36 +0100
            creation_host = "debian"
            segment_count = 1

            segment1 {
                start_extent = 0
                extent_count = 2146188  # 8.18706 Terabytes

                type = "striped"
                stripe_count = 1    # linear

                stripes = [
                    "pv0", 0
                ]
            }
        }
    }

}

"pvdisplay"의 현재 출력:

pvdisplay 
  --- Physical volume ---
  PV Name               /dev/md126
  VG Name               LogVol0
  PV Size               8.19 TiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              2146188
  Free PE               0
  Allocated PE          2146188
  PV UUID               Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3

("vgcfgrestore LogVol0 LogVol0"을 사용하여 볼륨 그룹을 복원하려고 했을 때 pvdisk가 먼저 손실되어 이 새로운 pvdisk를 만들었습니다.)

"새" PVdisk를 생성하고 백업 파일을 복원한 후 lvdisplay는 다음과 같습니다:

  --- Logical volume ---
  LV Path                /dev/LogVol0/Logical_Volume_00
  LV Name                Logical_Volume_00
  VG Name                LogVol0
  LV UUID                BWUgvn-24uy-XXf5-aFVx-o9YA-RF2H-2uD3OV
  LV Write Access        read/write
  LV Creation host, time debian, 2014-03-28 10:18:36 +0100
  LV Status              NOT available
  LV Size                8.19 TiB
  Current LE             2146188
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto

PV:

  PV         VG      Fmt  Attr PSize   PFree 
  /dev/md126 LogVol0 lvm2 a--    8.19t     0 

왼쪽으로 스캔:

  inactive          '/dev/LogVol0/Logical_Volume_00' [8.19 TiB] inherit

lsblk -f:

sdb                isw_raid_member                                              
└─md126            LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 
sdc                isw_raid_member                                              
└─md126            LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 
sdd                isw_raid_member                                              
└─md126            LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 
sde                isw_raid_member                                              
└─md126            LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 

따라서 "vgchange -ay"를 사용하여 해당 VG를 활성화하면 출력이 다음과 같이 변경됩니다.

sdb                           isw_raid_member                                              
└─md126                       LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 
  └─LogVol0-Logical_Volume_00 LVM2_member           mowPbj-0RMX-Glr2-e6ar-vOgP-mcHH-k4sAmc 
sdc                           isw_raid_member                                              
└─md126                       LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 
  └─LogVol0-Logical_Volume_00 LVM2_member           mowPbj-0RMX-Glr2-e6ar-vOgP-mcHH-k4sAmc 
sdd                           isw_raid_member                                              
└─md126                       LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 
  └─LogVol0-Logical_Volume_00 LVM2_member           mowPbj-0RMX-Glr2-e6ar-vOgP-mcHH-k4sAmc 
sde                           isw_raid_member                                              
└─md126                       LVM2_member           Wzcm2T-H2pt-c41w-dbi5-K0IP-O7FU-GRfoA3 
  └─LogVol0-Logical_Volume_00 LVM2_member           mowPbj-0RMX-Glr2-e6ar-vOgP-mcHH-k4sAmc  

/dev/LogVol0/Logical_Volume_00의 유형은 다음과 같습니다.

/dev/LogVol0/Logical_Volume_00: LVM2 PV (Linux Logical Volume Manager), UUID: mowPbj-0RMX-Glr2-e6ar-vOgP-mcHH-k4sAmc, size: 9001769107456

그러면 새 LVM 내부에 "이전" LVM을 이미 생성했기 때문에 설치할 수 없다는 건가요?

Testdisk를 사용하면 LVM 내부의 ext4 파티션을 볼 수 있지만 볼륨을 어떻게 다시 얻을 수 있나요?

당신의 도움을 주셔서 감사합니다...

(아 예, 더 많은 백업이 필요하다는 것을 알고 있습니다...)

답변1

LV가 비활성으로 표시되면 다음을 시도합니다.

lvchange -ay

참고 사항: 뭔가 이상한 점이 있습니다. BIOS에서 RAID를 설정했는데 이것이 하드웨어 RAID이고 시스템에 하나의 가상 장치( /dev/sdX)만 표시됩니다. 이를 처리할 전용 카드가 없더라도 마더보드가 그 역할을 할 수 있습니다.

또는 소프트웨어 raid가 있고 운영 체제에서 모든 디스크를 볼 수 있으며 raid를 나타내는 특수 장치( )가 있습니다 /dev/mdX. 표면적으로 이것이 당신의 상황입니다. BIOS에서 무슨 일이 일어나고 있는지 이해하지 못하지만.

관련 정보