一方のRAID-1パーティションを縮小し、別のパーティションを増やします。

一方のRAID-1パーティションを縮小し、別のパーティションを増やします。

2TBと3.5TBを/dev/md2搭載した専用サーバーがあります。//dev/md3/home

/dev/md2今500GBに縮小して/dev/md3約5TBに増やしたいです。どうすればいいですか?/dev/md2サイズは500GBに調整できましたが、下のレイヤーを/dev/sd[a,b]3500GBに変更せずに5TBに増やし/dev/md3ました。/dev/sd[a,b]4

出力cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1]
      3714478663 blocks super 1.2 [2/2] [UU]
        resync=PENDING
      bitmap: 28/28 pages [112KB], 65536KB chunk

md2 : active raid1 sda3[0] sdb3[1]
      2111700992 blocks super 1.2 [2/2] [UU]
      [====>................]  resync = 22.1% (467664704/2111700992) finish=144.6min speed=189433K/sec
      bitmap: 13/16 pages [52KB], 65536KB chunk

md1 : active raid1 sda2[0] sdb2[1]
      523712 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      33521664 blocks super 1.2 [2/2] [UU]

関連出力fdisk -l(RAMディスク項目なし):

Disk /dev/sdb: 5.5 TiB, 6001175126016 bytes, 11721045168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 26A1CC9A-D448-41DA-AB97-926922E45FAD

Device          Start         End    Sectors  Size Type
/dev/sdb1        4096    67112959   67108864   32G Linux RAID
/dev/sdb2    67112960    68161535    1048576  512M Linux RAID
/dev/sdb3    68161536  4291825663 4223664128    2T Linux RAID
/dev/sdb4  4291825664 11721045134 7429219471  3.5T Linux RAID
/dev/sdb5        2048        4095       2048    1M BIOS boot

Partition table entries are not in disk order.


Disk /dev/sda: 5.5 TiB, 6001175126016 bytes, 11721045168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: CF6FA031-2CD0-4CD6-939B-E761A2871AB2

Device          Start         End    Sectors  Size Type
/dev/sda1        4096    67112959   67108864   32G Linux RAID
/dev/sda2    67112960    68161535    1048576  512M Linux RAID
/dev/sda3    68161536  4291825663 4223664128    2T Linux RAID
/dev/sda4  4291825664 11721045134 7429219471  3.5T Linux RAID
/dev/sda5        2048        4095       2048    1M BIOS boot

Partition table entries are not in disk order.


Disk /dev/md0: 32 GiB, 34326183936 bytes, 67043328 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/md1: 511.4 MiB, 536281088 bytes, 1047424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/md2: 2 TiB, 2162381815808 bytes, 4223401984 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/md3: 3.5 TiB, 3803626151424 bytes, 7428957327 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

ベストアンサー1

すでにRAID1があるため、再構成中にディスク障害のリスクを軽減する準備ができている場合はこれを実行できます。これは完全なレシピではないので、何をしているのかを知る必要があります。それでもデータが失われる可能性が高いです。強くあなたを促すバックアップする始める前に。本当。はい、本気です。

全体的な計画は

  1. RAIDミラーの取り外し
  2. 新しい要件に対応するために現在使用されていない半分のサイズを調整します。
  3. 新しいサイズのパーティションで新しいRAIDハーフミラーを作成する
  4. アクティブな半分のすべてのファイルシステムを新しくサイズ変更された半分にコピーします(これを行う前に、できるだけ多くのサービスを停止してください)。
  5. RAIDの新しい半分で再起動(トリッキー)
  6. ミラーの残りの半分をRAIDに追加
  7. 整える

これでライブシステムに適用する前に、まずバックアップを作成してください。

実行中に、いくつかのワンタイムループバックディスクイメージのプロセスを試してみてください。これを作成する方法は次のとおりです。

dd if=/dev/zero bs=1M count=200 > disk1.dat                          # Create a 200MB "disk"
cp -p disk1.dat disk2.dat                                            # And another

parted disk1.dat --align optimal unit MiB --script mklabel gpt       # First disk label
parted disk1.dat --align optimal unit MiB mkpart primary 1 2         # Dummy partition
parted disk1.dat --align optimal unit MiB mkpart primary 2 3
parted disk1.dat --align optimal unit MiB mkpart primary 3 150       # First useful partition
parted disk1.dat --align optimal unit MiB mkpart primary 150 100%    # Second

parted disk2.dat --align optimal unit MiB --script mklabel gpt       # Second disk
parted disk2.dat --align optimal unit MiB mkpart primary 1 2
parted disk2.dat --align optimal unit MiB mkpart primary 2 3
parted disk2.dat --align optimal unit MiB mkpart primary 3 150
parted disk2.dat --align optimal unit MiB mkpart primary 150 100%

d1=$(losetup --show --find --partscan disk1.dat); echo $d1           # Loop device
d2=$(losetup --show --find --partscan disk2.dat); echo $d2

mdadm --create /dev/md103 --metadata default --level=1 --raid-devices=2 ${d1}p3 ${d2}p3
mdadm --create /dev/md104 --metadata default --level=1 --raid-devices=2 ${d1}p4 ${d2}p4

mkfs -t ext4 -L 103 /dev/md103
mkfs -t ext4 -L 104 /dev/md104

mkdir /mnt/103 /mnt/104                                              # Mountpoints for our test filesystems
mount /dev/md103 /mnt/103
mount /dev/md104 /mnt/104

いくつかのデータをコピーしてプロセスを試みることができる/dev/md1032つのRAID1ファイルシステムがあります。ループバックディスクイメージデバイスのデフォルト名としておよびを/dev/md104使用しました。$d1$d2

以下はいくつかの詳細です。バックアップは完了しましたか?

  1. RAIDミラーの取り外し

    次のコマンドを使用すると、2つのRAIDパーティションの半分が失敗するように設定できます。

    mdadm /dev/md103 --set-faulty ${d2}p3 --remove ${d2}p3    # sdb3
    mdadm --zero-superblock ${d2}p3
    
    mdadm /dev/md104 --set-faulty ${d2}p4 --remove ${d2}p4    # sdb4
    mdadm --zero-superblock ${d2}p4
    
  2. 2番目のディスクパーティションのサイズ変更

    優先ツールを使用して、2 番目のディスクのパーティションを削除して再作成します。例えば、

    parted $d2 --align optimal unit MiB rm 3
    parted $d2 --align optimal unit MiB rm 4
    

    この時点でシステムを再起動する必要があるかもしれません。 (または要件が満たされる可能性があります。)完了したら、ループデバイスを再作成して割り当てるpartprobeことを忘れないでください。$d1$d2

    parted $d2 --align optimal unit MiB mkpart primary 3 50
    parted $d2 --align optimal unit MiB mkpart primary 50 100%
    
  3. 新しいサイズのパーティションで新しいRAIDハーフミラーを作成する

    RAIDデバイスとファイルシステムを作成します。最初の項目がすでに配列の一部であるかのように警告するので、心配しないでください。以前はそうでしたが、今はそうではありません。

    mdadm --create /dev/md203 --metadata default --level=1 --raid-devices=2 missing ${d2}p3
    mdadm --create /dev/md204 --metadata default --level=1 --raid-devices=2 missing ${d2}p4
    
    mkfs -t ext4 -L 203 /dev/md203
    mkfs -t ext4 -L 204 /dev/md204
    
    mkdir /mnt/203 /mnt/204
    mount /dev/md203 /mnt/203
    mount /dev/md204 /mnt/204
    
  4. アクティブな半分のすべてのファイルシステムを新しくサイズ変更された半分にコピーする

    ファイルシステムができるだけ安定しているように実行する前に、できるだけ多くのサービスを停止することが重要です。

    cp -ax /mnt/103 /mnt/203    # cp -ax / /mnt/203
    cp -ax /mnt/104 /mnt/204    # cp -ax /home /mnt/204
    
  5. 新しいハーフRAIDで再起動

    /etc/mdadm/mdadm.conf新しいアレイにアップデートする必要があります。このコマンドを使用して、まだリストされていない項目を追加します。

    mdadm --examine --scan
    

    また、新しいルートファイルシステムを見つけるためにgrubシステムを更新する必要があります。initramfs設定にこれらの詳細が記載されていないため、ご案内できません。

  6. ミラーの残りの半分をRAIDに追加

    新しいハーフミラーでRAIDが正常に実行されていると確信している場合は、元のハーフミラーを削除して新しいハーフミラーに再追加できます。それでもファイルシステムをマウントすると、これらのコマンドは失敗します。 (この段階ではそうではありません。)

    mdadm --stop /dev/md103
    mdadm --zero-superblock ${d1}p3
    
    mdadm --stop /dev/md104
    mdadm --zero-superblock ${d1}p4
    

    上記のコマンドを使用して、残りのディスクパーティションのサイズを変更しますparted

    新しいハーフミラーRAID1に新しくサイズ変更されたパーティションを追加する

    mdadm /dev/md203 --add ${d1}p3
    mdadm /dev/md204 --add ${d1}p4
    
  7. 整える

    、、、から/etc/mdadm/mdadm.conf既存のデバイスを削除します。再起動。grubinitramfs/etc/fstab

おすすめ記事