単一のドライブを新しいRAID 1アレイにどのように複製しますか?

単一のドライブを新しいRAID 1アレイにどのように複製しますか?

現在の状況の背景は次のとおりです。私はメンテナンスを担当しているDELL Precision T7600がありますが、ハードドライブを紛失しましたが、幸いにも/homeディレクトリだけがあり、今は復元されました。これで、ダウンタイムを最小限に抑えるために、OSドライブのRAID 1を作成する任務を引き受けました。

Arch-Linux wikiでハードドライブの複製について読んでおり、現在は次の内容に従います。二つ ガイド、最初の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ドライブを2つの空のドライブに複製しました。

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/sdaLiveUSBで次のコマンドを実行してこの問題を解決しました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

しばらくして研究読む一般的な Google検索、まだ私の状況に合った答えが見つかりません。

時間をかけてコメントありがとうございます!

答え1

まず、既存のディスクの端に少なくとも1 MBの空き容量があることを確認する必要があります。必要に応じて最後のパーティションのサイズを変更します。次に、両方のディスクからRAIDアレイを作成します(元のディスクを最初にリストします)。 RAIDメタデータをディスクの端に配置するには、-e 1.0スイッチを使用する必要があります。mdadm自動的に元のドライブの内容を新しいドライブにコピーし始めます。他のドライブからの起動中、または少なくとも読み取り専用でマウントされているすべてのファイルシステムでこれを行う必要があります。完了したら、再起動して grub を再インストールします。 /etc/fstabがUUIDを使用している場合は、これを行う必要があります。そうでない場合は、/dev/sdapYではなく/dev/mdXpYを指すように設定する必要があります。

関連情報