실제로 RAID1을 올바르게 다시 생성하는 방법

실제로 RAID1을 올바르게 다시 생성하는 방법

체계:
Linux Mint 17.3이 탑재된 노트북, 시스템용 SSD 1개, 사용용 HDD 2개 mdadm.

상태:
RAID1을 제대로 생성하는 방법을 몰라서 제대로 생성하지 못했습니다.

  • GParted는 기본 gpt파티션 테이블이 존재하지 않고 백업 파티션 테이블을 사용하고 있다는 경고를 표시하는데 두 번 표시되는 것 같습니다.

  • GParted는 두 HDD의 파티션에 ext4파일 시스템이 아닌 linux-raid파일 시스템이 포함되어 있음을 보여줍니다.

  • raidGParted는 두 HDD 모두에 플래그를 표시하지 않습니다.

  • 재부팅으로 인해 어레이가 작동하지 않게 되었습니다. 즉, 자동으로 마운트되지 않았을 뿐만 아니라 어레이를 중지하고 재조립하지 않고 마운트하지도 못했다는 뜻입니다.

  • 어레이(미러링을 의미함)가 제대로 작동하는지 알 수 없는 등 제가 눈치채지 못한 다른 사항이 있을 수도 있습니다.

답변1

이 답변에서는 두 어레이 구성원(드라이브)의 모든 데이터가 삭제된다는 점을 분명히 해주시기 바랍니다. 따라서 먼저 백업해 두세요!


터미널을 열고root(su);당신이 가지고 있다면sudo활성화되면 다음을 수행할 수도 있습니다 sudo -i.man sudo모든 옵션에 대해):

sudo -i

mdX배열의 숫자 확인( ):

cat /proc/mdstat

md0에 설치되어 있다고 가정하면 /mnt/raid1먼저 어레이를 마운트 해제하고 중지해야 합니다.

umount /mnt/raid1
mdadm --stop /dev/md0

sda다음 과 같은 가정 하에 두 드라이브 모두에서 슈퍼블록을 지워야 합니다 sdb.

mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1

작업을 시작해 보겠습니다. 즉, 이전에 드라이브에 데이터와 파일 시스템이 있었다면 드라이브를 지워야 합니다. sda, sdb: 2명의 멤버가 있다고 가정합니다.

pv < /dev/zero > /dev/sda
pv < /dev/zero > /dev/sdb

어떤 이유로 이전 단계를 건너뛰려면 두 드라이브 모두에서 모든 파일 시스템을 지워야 합니다. 그런 다음 남은 것이 없는지 확인하고 두 드라이브 모두에서 GParted를 사용하여 해당 드라이브를 제외한 파일 시스템이 있으면 unknown지울 수 있는지 확인할 수 있습니다.

sda먼저, 3개의 파티션이 포함되어 있다고 가정하고 기존 파티션을 모두 지운 다음 다음을 수행합니다 .

wipefs --all /dev/sda3
wipefs --all /dev/sda2
wipefs --all /dev/sda1

두 드라이브 모두에서 사용하고 모든 파티셔닝을 수행하십시오.

그런 다음 다음 명령을 사용하여 파티션 구성표를 지웁니다.

wipefs --all /dev/sda
wipefs --all /dev/sdb

그런 다음 GPT(GUID 파티션 테이블)를 사용하여 두 드라이브를 모두 초기화합니다.

gdisk /dev/sda
gdisk /dev/sdb

두 경우 모두 다음을 사용합니다.

o Enter
y Enter결정을 확인하기 위한 새로운 빈 GUID 파티션 테이블(GPT) 결정을 확인하기 위한
w Enter변경 사항 작성
y Enter

이제 두 드라이브를 모두 분할해야 하지만 GParted를 사용하면 프로세스에서 원하지 않는 파일 시스템이 생성되므로 gdisk다시 사용하지 마십시오.

gdisk /dev/sda
gdisk /dev/sdb

두 경우 모두 다음을 사용하십시오.
n Enter새 파티션의
Enter경우 첫 번째 파티션의 경우
Enter첫 번째 섹터의 기본값
Enter마지막 섹터의 기본값
fd00 EnterLinux RAID 유형의 경우
w Enter변경 사항을 기록하여
y Enter결정을 확인합니다.


아무것도 남지 않았는지 세 번 확인하려면 GParted를 사용하여 새로 생성된 두 개의 파티션을 살펴보고 다음을 제외한 파일 시스템이 포함되어 있으면 unknown지울 수 있습니다 .

wipefs --all /dev/sda1
wipefs --all /dev/sdb1

이제 드라이브를 확인할 수 있습니다.

mdadm --examine /dev/sda /dev/sdb

다음과 같이 말해야 합니다:

(type ee)

그렇다면 이제 파티션을 확인합니다.

mdadm --examine /dev/sda1 /dev/sdb1

다음과 같이 말해야 합니다:

No md superblock detected

그렇다면 RAID1 배열을 만들 수 있습니다.

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

배열이 완전히 생성될 때까지 기다립니다. 다음을 통해 이 프로세스를 관찰할 수 있습니다.

watch -n 1 cat /proc/mdstat

어레이를 생성한 후에는 해당 세부 정보를 확인해야 합니다.

mdadm --detail /dev/md0

다음과 같이 말해야 합니다:

          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

이제 어레이에 파일 시스템을 생성합니다. 시간이 많이 걸리기 ext4때문에 이를 피하는 것이 좋습니다 . 따라서 다음을 사용하는 경우 이름은 "lazyinit"입니다.ext4lazyinit

mkfs.ext4 /dev/md0

대신 다음을 사용하여 전체 즉시 초기화를 강제해야 합니다.

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

이러한 옵션을 지정하면 생성 중에 inode와 로그가 즉시 초기화되므로 대규모 배열에 유용합니다.

바로가기를 선택하고 ext4"피하는 것이 더 좋은 명령"을 사용하여 파일 시스템을 생성하기로 선택한 경우 ext4lazyinit모든 inode를 초기화하는 데 상당한 시간이 소요된다는 점에 유의하세요. 완료될 때까지 이를 지켜볼 수 있습니다. 예를 들면 다음과 같습니다.

iotop

파일 시스템 초기화를 위해 어떤 방법을 선택하든 초기화가 완료된 후 마운트해야 합니다.


이제 이 RAID1 배열에 대한 몇 가지 디렉터리를 만듭니다.

mkdir --parents /mnt/raid1

간단히 설치하세요.

mount /dev/md0 /mnt/raid1

기본적으로 완료되었으므로 GParted를 다시 사용하여 두 드라이브의 linux-raid파일 시스템과 raid플래그가 표시되는지 빠르게 확인할 수 있습니다.

그렇다면 GPT 파티션이 있는 RAID1 어레이를 올바르게 생성했으며 이제 여기에 파일을 복사할 수 있습니다.


파일 시스템의 UUID를 봅니다 md0.

blkid /dev/md0

UUID를 클립보드에 복사합니다.

fstab이제 선호하는 텍스트 편집기를 사용하여 편집 해야 합니다 .

nano /etc/fstab

항목을 추가합니다.

UUID=<the UUID you have in the clipboard>    /mnt/raid1    ext4    defaults     0    0

변경 사항을 저장한 후 올바른지 확인할 수 있습니다.

mount --all --verbose | grep raid1

다음과 같이 말해야 합니다:

already mounted

그렇다면 어레이 구성을 저장합니다. md아직 장치를 만들지 않은 경우 간단히 다음을 수행할 수 있습니다.

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

어레이가 이미 존재하는 경우 conf 파일로 리디렉션하지 않고 이전 명령을 실행하면 됩니다.

mdadm --detail --scan

새 배열을 mdadm.conf파일에 수동으로 추가합니다.


마지막으로 initramfs를 업데이트하는 것을 잊지 마세요:

update-initramfs -u

계획대로 모든 작업을 수행했는지 확인하고, 그렇다면 다시 시작할 수 있습니다.

reboot --reboot

관련 정보