ソフトRAID1 LUKSディスクを大きなディスクに交換

ソフトRAID1 LUKSディスクを大きなディスクに交換

ソフトRAID1ディスク(2TB)2個を同じディスク(4TBディスク)2個に交換する予定です。現在のディスク構成は、debian 11を実行するソフトウェアRAID 1です。ディスクがルートではありません。

私の計画は、2TBディスクを新しい4TBディスクに交換(ホットスワップ可能)し、ディスクがmdadmと同期するのを待つことです(これを行う方法もわかりませんが、Googleで検索しているようです)。同期が完了した後、残りの2TBディスクを同じようにホットスワップし、別の4TBディスクと交換した後、mdadmが同期を完了するのを待つ予定です。

この時点でも、まだ拡張する必要がある2TBのLUKSディスクが2つ残っていることを願っています。これは面倒ですが、以前はラップトップで行ったことがありますが、RAID1構成では一度も試したことはありません。

  1. 私の計画はあなたに理解できますか?
  2. RAID 1 LUKSパーティションを拡張する方法(つまり、私の計画の最後のステップ)を案内しますか?
  3. よりスマートなオプションがありますか?

コメントで要求されたように、出力は次のようになりますlsblk

root@server:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda            8:0    0   3.6T  0 disk  
`-sda1         8:1    0   3.6T  0 part  
  `-md4        9:4    0   3.6T  0 raid1 
    `-4tb    253:1    0   3.6T  0 crypt /media/4tb
sdb            8:16   0   3.6T  0 disk  
`-sdb1         8:17   0   3.6T  0 part  
  `-md4        9:4    0   3.6T  0 raid1 
    `-4tb    253:1    0   3.6T  0 crypt /media/4tb
sdc            8:32   0 119.2G  0 disk  
`-sdc1         8:33   0 119.2G  0 part  
  `-md127      9:127  0 119.2G  0 raid1 /
sdd            8:48   0 119.2G  0 disk  
`-sdd1         8:49   0 119.2G  0 part  
  `-md127      9:127  0 119.2G  0 raid1 /
sde            8:64   0 465.8G  0 disk  
`-sde1         8:65   0 465.8G  0 part  
  `-md0        9:0    0 465.6G  0 raid1 
sdf            8:80   0   2.7T  0 disk  
`-sdf1         8:81   0   2.7T  0 part  
  `-3tb      253:2    0   2.7T  0 crypt /media/3tb
sdg            8:96   1 931.5G  0 disk  
`-sdg1         8:97   1 931.5G  0 part  
  `-md1        9:1    0 931.4G  0 raid1 
    `-vm     253:3    0 931.4G  0 crypt /media/vm
sdh            8:112  1   1.8T  0 disk  
`-sdh1         8:113  1   1.8T  0 part  
  `-md2        9:2    0   1.8T  0 raid1 
    `-backup 253:0    0   1.8T  0 crypt /media/backup
sdi            8:128  1 931.5G  0 disk  
`-sdi1         8:129  1 931.5G  0 part  
  `-md1        9:1    0 931.4G  0 raid1 
    `-vm     253:3    0 931.4G  0 crypt /media/vm
sdj            8:144  1   1.8T  0 disk  
`-sdj1         8:145  1   1.8T  0 part  
  `-md2        9:2    0   1.8T  0 raid1 
    `-backup 253:0    0   1.8T  0 crypt /media/backup

答え1

すべての/media/*マウントはdisk->partial->raid1->cryptを使用して階層化されているようです。

既存の2TBディスクがMBRスタイルでパーティション化されている場合は、MBRの最大容量制限に達するため、新しい新しいディスクでは実際にこれを実行できません。幸いなことに、LinuxソフトウェアRAIDでは、RAIDセットのさまざまな部分に同じタイプのパーティションを持つ必要はありません(または実際に起動できないディスクの場合は、パーティションスキームをまったく使用しないように選択できます)。

md2したがって、これがより大きなディスクに移行するRAIDセットであり、sdh最初に交換する必要があるとします。

  1. 障害があるとマークされたsdh1RAID1コンポーネント:mdadm --manage /dev/md2 --fail /dev/sdh1
  2. md2RAIDセットから取り外します。mdadm --manage /dev/md2 --remove /dev/sdh1
  3. ディスクがホットプラグされるとカーネルに通知しますecho 1 > /sys/block/sdh/device/delete。コントローラとディスクのモデルによっては、この操作を実行するとディスクが実際に回転しても回転しなくなる可能性があります。
  4. sdhディスクを新しいディスクと物理的に交換します。
  5. 新しいディスクデバイス名を確認してください。 (あるかもしれないし、そうでないかもしれません。/dev/sdhそう呼びますsdX)。
  6. パーティションを使用するには、GPTパーティションタイプを使用し、ディスク全体をカバーする単一のパーティションを作成します。パーティションタイプを「Linux RAID」(GPTパーティションタイプGUID A19D880F-05FC-4D3B-A006-743F0F84911E;ほとんどのGPTパーティションツールにはユーザーフレンドリーな指定方法があります。)パーティションは既存のRAIDセットサイズの半分程度になります。後で手順10でフル容量を使用する権限を付与するまで、mdadmミラーパーティションに必要な容量のみが使用されます。sdi1

(パーティションを使用している場合は、後でディスクを交換する必要があり、交換ディスクが見つからない可能性を防ぐために、ディスクを完全に使用するよりも特定のサイズを使用することをお勧めします。問題ではありません。)

  1. RAIDセットに新しいディスクを追加します。ディスクを分割した場合に使用しmdadm --manage /dev/md2 --add /dev/sdX1、ディスク全体を非パーティションRAIDデバイスとして使用することを決定した場合に使用しますmdadm --manage /dev/md2 --add /dev/sdX
  2. /proc/mdstat同期が完了するタイミングを監視して確認してください。
  3. 2番目のディスクに対して手順1〜8を繰り返しますsdj
  4. RAIDデバイスが増大した容量を最大限に活用できるmdadm --grow /dev/md2 --size=maxように、両方のディスクを交換して同期した後に使用されます。md2

--size=max(上記の手順6でパーティションを使用しないことを選択した場合は、手順6と同じ理由で、代わりに特定のサイズを使用することもできます。)

  1. md2デバイスのサイズが正常に調整されたら、それを使用してcryptsetup resize /dev/mapper/backupRAIDセットの上にある暗号化デバイスのサイズを変更できますmd2
  2. fsadm resize /dev/mapper/backupresize2fs /dev/mapper/backup最後に、ファイルシステム固有のツール(ext2 / ext3 / ext4ファイルシステムの種類、XFSなど)を使用または使用して、暗号化されたデバイスxfs_growfs /media/backup上のファイルシステムのサイズを変更します。

関連情報