![이 습격 정보 출력을 어떻게 읽나요?](https://rvso.com/image/192217/%EC%9D%B4%20%EC%8A%B5%EA%B2%A9%20%EC%A0%95%EB%B3%B4%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9D%BD%EB%82%98%EC%9A%94%3F.png)
저는 현재 새로운 RAID 어레이(raid1)를 설정한 다음 이를 활성 파일 시스템에 사용 가능한 파티션으로 마운트해야 하는 원격 우분투 18.04 서버에서 작업하고 있습니다. 나에게 첫 번째 단계는 현재 무슨 일이 일어나고 있는지 이해하는 것입니다. 활성 시스템 내부에는 RAID 1 어레이로 연결된 2개의 하드 드라이브가 있다는 것을 알고 있습니다. 나는 lsblk
몇 가지 정보를 수집하기 위해 명령을 사용했습니다. 출력은 다음과 같습니다:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 894,3G 0 disk
├─nvme0n1p1 259:1 0 4G 0 part
│ └─md0 9:0 0 4G 0 raid1 [SWAP]
├─nvme0n1p2 259:2 0 512M 0 part
│ └─md1 9:1 0 511,4M 0 raid1 /boot
└─nvme0n1p3 259:3 0 889,8G 0 part
└─md2 9:2 0 889,6G 0 raid1 /
그렇다면 이것은 내 물리적 장치가 이라는 장치라는 것을 의미합니까 nvme0n1
? 그리고 이것은 3개 부분(스왑, 부트, /)으로 분할됩니다. 동일한 물리적 장치( nvme0n1
)인 경우 파티션( nvme0n1p1,nvme0n1p2,nvme0n1p3
)이 로 분리되는 이유는 무엇입니까 md0,md1,md2
? 이들 nvme0n1p1
그리고 의 차이점은 무엇인가요 md0
?
내가 더 나아가 다음과 같은 결과를 얻는다면 cat /proc/mdstat
:
md2 : active raid1 nvme0n1p3[1]
932840768 blocks super 1.2 [2/1] [_U]
bitmap: 7/7 pages [28KB], 65536KB chunk
md1 : active raid1 nvme0n1p2[1]
523712 blocks super 1.2 [2/1] [_U]
md0 : active raid1 nvme0n1p1[1]
4190208 blocks super 1.2 [2/1] [_U]
이것은 3개의 활성 공격대 블록을 보여줍니다. 하나의 RAID 어레이만 실행 중입니다. 출력을 해석할 수 없습니다. 도움이 필요합니다.
감사해요
답변1
이것이 전체 lsblk
출력이라면 유감스럽게도 하나의 물리적 저장 장치인 nvme0n1
.
귀하는 nvme0n1
세 개의 파티션으로 분할되어 있으며 각 파티션은 소프트웨어-RAID1 미러링을 위해 개별적으로 설정되어 있습니다. 그러면 세 가지 소프트웨어 RAID 장치인 md0
, md1
및 가 제공됩니다 md2
. 각각은 전체 디스크가 아닌 단일 소프트웨어 RAID 파티션에 해당합니다.
이와 같이 파티션별로 RAID를 설정하면 BIOS가 Linux 소프트웨어 RAID를 전혀 인식하지 못하는 경우에도 BIOS에서 디스크를 파티션된 디스크로 인식할 수 있습니다. 이를 통해 부팅 및 일부 복구 시나리오를 더 쉽게 처리할 수 있으며 필요한 경우 비 RAID 구성으로 쉽게 되돌릴 수 있습니다.
일반적인 미러링 상태에서는 미러링된 + md0
세트 , + 세트 등을 참조합니다. 파일 시스템을 마운트하고 및 장치를 사용하여 스왑을 활성화합니다 . 해당 장치가 사용을 위해 열리 자마자 소프트웨어-RAID 하위 시스템은 독점 액세스를 위해 기본 물리적 파티션을 잠그므로 RAID가 활성화된 동안 파티션에 대한 모든 액세스가 RAID 계층을 통과해야 합니다.nvme0n1p1
nvme1n1p1
md1
nvme0n1p2
nvme1n1p2
md0
md1
md2
그러나 각 소프트웨어-RAID 세트에는 RAID1 쌍의 후반부가 없습니다.이는 시스템이 두 개의 동일한 NVMe 장치에 소프트웨어 RAID로 설정되었지만 그 중 하나(아마도 nvme1n1
)가 이미 실패했음을 의미할 수 있습니다.또는 시스템이 단일 NVMe 디스크에 RAID1 세트의 절반으로 설정되어 두 번째 NVMe 장치를 얻는 즉시 실제 RAID1로 쉽게 전환할 수 있도록 설정되었을 수도 있습니다. 그러나 어떤 이유로 이런 일이 발생하지 않았습니다. 아니면 다른.
가장 먼저 해야 할 일은 실패한 NVMe를 교체(또는 누락된 것을 추가)한 다음 기존 RAID 쌍을 복구하는 것입니다.
- 기존 디스크의 파티션 테이블을 새 디스크로 복사합니다.
mdN
해당 장치 의 예비용으로 새 디스크의 파티션을 초기화합니다.- 각 쌍에서 RAID1 복구를 시작합니다.
- MBR과 GRUB의 일부가 미러링된 파티션 외부에 있으므로 부트로더의 두 번째 복사본을 두 번째 디스크에 설치합니다.
- 물리적 장치 중 하나의 오류가 다시 발견되지 않도록 RAID 장치에 대한 모니터링을 설정합니다.
이 작업이 완료되면 새 RAID 어레이를 설정하는 원래 작업에 대해 생각해 볼 수 있습니다. 그렇게 하려면 기존 스토리지가 nvme0n1
완전히 사용되고 있는 것처럼 보이기 때문에 더 많은 물리적 스토리지가 필요합니다(현재 하프 미러가 완전히 복구되면 미러 컴패니언도 마찬가지입니다).
답변2
예, 출력에는 하나의 물리적 장치(nvme0n1)만 표시됩니다.
예, 출력에는 3개의 파티션이 있음이 표시됩니다.
흥미로운 부분은 의 정보입니다 /proc/mdstat
.삼구성된 RAID 장치가 모두 표시됩니다 [_U]
. 건강한 시스템에서는 다음과 같이 표시되어야 합니다 [UU]
. 3개의 RAID 장치는 raid1(미러링)로 구성되어 있으므로 두 번째 드라이브의 오류로 인해 아직 데이터 손실이 발생하지 않은 것으로 추정됩니다. 물론 두 번째 드라이브는 제거되었기 때문에 감지되지 않을 수도 있습니다.
부트 로그를 연구하면 두 번째 드라이브가 발견되면 힌트를 얻을 수 있습니다.
nvme0n1p1은 파티션입니다. 시작 부분에는 레이드 헤더가 있습니다. 파티션의 나머지 섹터는 md0 장치의 데이터로 사용됩니다. 일반적인 하드 드라이브일 수 있는 두 번째 드라이브가 연결되면 spinning rust
최소한 3개의 파티션이 있을 것으로 예상됩니다. 그 중 하나(관례상 첫 번째 드라이브가 있으므로 /dev/hda1)도 RAID를 갖게 됩니다. 헤더를 저장하고 나머지 섹터는 /dev/md0 장치에 대한 두 번째 데이터 복사본을 보관하는 데 사용됩니다.