단일 드라이브를 새 RAID 1 어레이에 어떻게 복제합니까?

단일 드라이브를 새 RAID 1 어레이에 어떻게 복제합니까?

현재 상황에 대한 배경은 다음과 같습니다. 제가 유지 관리를 담당하고 있는 DELL Precision T7600이 있는데, 하드 드라이브를 잃어버렸는데 다행히 /home 디렉토리만 있고 지금은 복원되었습니다. 이제 가동 중지 시간을 최소화할 수 있도록 OS 드라이브의 RAID 1을 만드는 임무를 맡았습니다.

Arch-Linux 위키에서 하드 드라이브 복제에 대해 읽었으며 현재 다음 내용을 따르고 있습니다. 가이드, 첫 번째 grub2 구성으로 기울고 있지만 프로세스를 이해할 수 없습니다. 아마도 제가 이것을 너무 복잡하게 만들고 있는 것 같지만 이것은 간단한 dd if=/dev/sdc of=/dev/md126명령입니다. dd장치 파일에서 배열로 이동하는 것이 가능하거나 권장됩니까? 여기에 모범 사례가 무엇인지 잘 모르겠습니다.

/dev/md0 장치에 접근 해 보았 dd으나 원래 장치보다 조금 작아서 dd에 복사할 수 없다는 오류가 발생했습니다 /dev/md0. 또한 어레이 부팅을 시도했지만 error: file '/grub/i386-pc/normal.mod' not found.멈춰서 grub rescue>, 무엇을 관리해야 할지 모르겠습니다. 그래서 grub-install작동하기 위해 어레이를 마운트하려고 시도했지만 mount다음과 같이 실패했습니다.unknown filesystem type 'linux_raid_member'

다음 명령을 실행하여 OS 드라이브를 두 개의 빈 드라이브에 복제했습니다.

sudo pv /dev/sdc | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) | dd of=/dev/null

첫 번째 시도와 같이 grub 오류 없이 내 OS 드라이브를 성공적으로 복제했습니다. Grub이 로드되었지만 OS 부팅에 실패하여 dracut 패닉 모드에 갇혔습니다. sfdisk -d /dev/sdc | sfdisk /dev/sda에 대해 LiveUSB에서 다음 명령을 실행하여 이 문제를 제거했습니다 sdb.

이번에는 Fedora가 로드되었지만 패닉 모드에 갇혔습니다. 적어도 제 경우에는 /etc/fstab이전에 처리했던 것처럼 존재하지 않는 항목으로 인해 발생했습니다. 그래서 /파티션 만 마운트하기 위해 fstab을 다듬었습니다 .

이제 다음을 실행합니다.

sudo mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sda /dev/sdb

내 Live USB 스틱에서 어레이를 생성했지만 이 작업을 완료한 후에도 드라이브가 여전히 부팅되지 않습니다. 그래서 dd각각의 파티션으로 다시 파티션을 나누어야 했습니다 . 나는 다시 원점으로 돌아왔다.sdc2sdc3sdb

이번에는 3개의 별도 RAID 파티션을 만들기로 결정했습니다. 그리고 다음이라는 파일을 만들었습니다 /etc/grub.d/09_raid1_setup.

menuentry 'Fedora RAID 1' --class fedora --class gnu-linux --class gnu --class os {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod ext2
    insmod mdraid1x
    set root='(md/2)'
    search --no-floppy --set=root /dev/md2 
    linux /vmlinuz-3.18.9-100.fc20.x86_64 root=/dev/md3 ro
    initrd /initramfs-3.18.9-100.fc20.x86_64.img
}

그런 다음 새 것을 다시 만들고 실행하여 /boot/grub2/grub.cfginitramfs 를 업데이트했습니다.grub2-mkconfig -o /boot/grub2/grub.cfgdracut -f /boot/initramfs-currentimage

sdb또한 다음과 같이 파티션 테이블과 일치 하도록 파티션 테이블을 변경하지 않는 실수를 저질렀습니다 sda.

Part. #     Size        Partition Type            Partition Name
----------------------------------------------------------------
         1007.0 KiB  free space
1        1024.0 KiB  BIOS boot partition
2        500.0 MiB   Linux RAID
3        97.7 GiB    Linux RAID
4        2.6 TiB     Linux RAID
         455.5 KiB   free space

initramfs 이미지를 생성하고 업데이트하기 전까지는 말이죠 grub.cfg.

이제 lsblk의 출력은 다음과 같습니다.

NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0   2.7T  0 disk  
├─sda1    8:1    0     1M  0 part  
├─sda2    8:2    0   500M  0 part  
├─sda3    8:3    0  97.7G  0 part  /
└─sda4    8:4    0   2.6T  0 part  
sdb       8:16   0   2.7T  0 disk  
├─sdb1    8:17   0     1M  0 part  
├─sdb2    8:18   0   500M  0 part  
│ └─md2   9:2    0 499.7M  0 raid1 /boot
├─sdb3    8:19   0  97.7G  0 part  
│ └─md3   9:3    0  97.6G  0 raid1 
└─sdb4    8:20   0   2.6T  0 part  
  └─md4   9:4    0   2.6T  0 raid1 
sdc       8:32   0   2.7T  0 disk  /home

그리고 /etc/fstab는:

/dev/md3 /                       ext4    defaults        1 1
/dev/md2 /boot                   ext4    defaults        1 2
UUID=f9fba42e-80f4-41b1-b309-88b22f642907 /home                 ext4    defaults        1 2

얼마 후에연구,읽다, 그리고일반적인 구글 검색, 아직 내 상황에 맞는 답변을 찾을 수 없습니다.

시간을 내어 의견을 보내주셔서 감사합니다!

답변1

먼저, 기존 디스크 끝에 최소 1MB 정도의 여유 공간이 있는지 확인해야 합니다. 필요한 경우 마지막 파티션의 크기를 조정합니다. 그런 다음 두 디스크 모두에서 RAID 어레이를 생성하십시오(원래 디스크를 먼저 나열하십시오). RAID 메타데이터를 디스크 끝에 배치하려면 -e 1.0스위치를 사용해야 합니다 . mdadm자동으로 원래 드라이브의 내용을 새 드라이브에 복사하기 시작합니다. 다른 드라이브에서 부팅하는 동안 또는 적어도 읽기 전용으로 마운트된 모든 파일 시스템에서 이 모든 작업을 수행해야 합니다. 완료되면 재부팅하고 grub을 다시 설치하십시오. /etc/fstab이 UUID를 사용하는 경우 이를 수행해야 합니다. 그렇지 않은 경우 /dev/sdapY가 아닌 /dev/mdXpY를 가리키도록 설정해야 합니다.

관련 정보