mdadm raid 6 配列減少エラーのため、/dev/sda1 に new_offset を設定できません。

mdadm raid 6 配列減少エラーのため、/dev/sda1 に new_offset を設定できません。

mdadm raid6配列のサイズを10から8に縮小しました。
だから私は次の手順に従います。

pi@raspbian-x64:~ $ sudo mdadm --grow /dev/md0 --raid-devices=8
mdadm: this change will decrease the size of the array.
   use --grow --array-size first to truncate array.
   e.g. mdadm --grow /dev/md0 --array-size 2928887808

pi@raspbian-x64:~ $ sudo mdadm --grow /dev/md0 --array-size 2928887808

pi@raspbian-x64:~ $ sudo mdadm --grow /dev/md0 --raid-devices=8
mdadm: Cannot set new_offset for /dev/sda1

mdadmが/dev/sda1にnew_offsetを設定できない理由をご存知ですか?

私の配列の詳細は次のとおりです(コマンドを使用した後)。

pi@raspbian-x64:~ $ sudo mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue May 11 07:47:04 2021
        Raid Level : raid6
        Array Size : 2928887808 (2793.21 GiB 2999.18 GB)
     Used Dev Size : 488147968 (465.53 GiB 499.86 GB)
      Raid Devices : 10
     Total Devices : 8
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Mon Jul 18 02:18:12 2022
             State : clean, degraded
    Active Devices : 8
   Working Devices : 8
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : pi1:0
              UUID : 4314f81c:4b2f90a0:db6089d4:c5958ee0
            Events : 147618

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       -       0        0        3      removed
      10       8       65        4      active sync   /dev/sde1
       9       8       82        5      active sync   /dev/sdf2
       8       8       81        6      active sync   /dev/sdf1
       -       0        0        7      removed
       7       8        2        8      active sync   /dev/sda2
       6       8        1        9      active sync   /dev/sda1

現在、RAIDアレイには46%の空き容量があります。したがって、アレイを8つのデバイスに減らすことをお勧めします。

アップデート1:

デバイス数を10個から7個に減らしたいです。

newSize = devSize * (totalWantedDeviceCount - raid6deviceIntegrityCount)
newSize = 488147968 * (7 - 2)
newSize = 2440739840 (instead of 3905183744)

そのため、RAIDアレイファイルシステムのサイズを縮小できました。

sudo resize2fs /dev/md0 2440739840K

(私は多くのバグを修正しなければならなかったsudo e2fsck -f /dev/md0 -y

次に、mdadmでRAIDアレイのサイズを縮小しました。

sudo mdadm --grow /dev/md0 --array-size 2440739840

効率的な:

pi@raspbian-x64:~ $ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
    Creation Time : Tue May 11 07:47:04 2021
        Raid Level : raid6
        Array Size : 2440739840 (2327.67 GiB 2499.32 GB)
    Used Dev Size : 488147968 (465.53 GiB 499.86 GB)
    Raid Devices : 10
    Total Devices : 10
    Persistence : Superblock is persistent

    Intent Bitmap : Internal

    Update Time : Mon Aug 15 20:57:47 2022
            State : clean
    Active Devices : 10
Working Devices : 10
    Failed Devices : 0
    Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

            Name : pi1:0
            UUID : 4314f81c:4b2f90a0:db6089d4:c5958ee0
            Events : 205009

    Number   Major   Minor   RaidDevice State
    0       8        1        0      active sync   /dev/sda1
    1       8       33        1      active sync   /dev/sdc1
    2       8       81        2      active sync   /dev/sdf1
    5       8      129        3      active sync   /dev/sdi1
    10       8      113        4      active sync   /dev/sdh1
    11       8       49        5      active sync   /dev/sdd1
    8       8       97        6      active sync   /dev/sdg1
    4       8       17        7      active sync   /dev/sdb1
    7       8       66        8      active sync   /dev/sde2
    6       8       65        9      active sync   /dev/sde1

3つのデバイスを削除しようとしましたが、同じエラーが発生しました。

pi@raspbian-x64:~ $ sudo mdadm --grow /dev/md0 --raid-devices=7
mdadm: Cannot set new_offset for /dev/sda1

アップデート2:

配列のサイズを減らすことができなかったので、最初から新しい配列を新しく作成する必要がありました...

アップデート3:

Qbert-Pacmanトリックを使用して、RAIDアレイのサイズを縮小するために実行するために必要なコマンドを生成するのに役立つスクリプトを作成しました。githubのスクリプト
誰にも効果があるか教えてください。

ベストアンサー1

この情報が役立つことを願っています。私は、raid4アレイを8つのSSDドライブから4つのSSDドライブに減らそうとしたときに文書化したのと同じ手順に従いました。

  • ext4ファイルシステムのサイズが縮小されました。 2FS/ファイルシステムのサイズ変更 2929890816

  • mdadm raid4 配列のサイズが縮小されました。 mdadm -G /dev/md0 - 配列サイズ 2929890816

  • mdadm raid4デバイスを8台のSSDドライブから4台のSSDドライブに減らそうとしましたが、同じエラーが発生しました(mdadm: /dev/sdX に new_offset を設定できません。)。 mdadm -G /dev/md0 -l4 -n4

再構成中に一時データを保存するためにバックアップファイルを割り当てるオプションを追加することで、この問題を解決しました。前のコマンドは、mdadm raid4の縮小の問題を解決する次のコマンドに置き換えられました。

mdadm -G /dev/md0 -l4 -n4 --バックアップファイル/var/tmp/md0-backup

バックアップファイルが作成され、約10752kを使用して一時データを保持します。バックアップファイルの割り当てと使用を確認するコマンドを実行すると、次の追加出力が表示されます。

mdadm:10752Kの重要なセクションをバックアップする必要があります。

この情報が将来のmdadmデバイスの再構成作業に役立つことを願っています。

おすすめ記事