11.2 ソフトウェアRAIDのサイズの増加

始める前に、「セクション 11.1, サイズ変更プロセスの理解」のガイドラインをレビューしてください。

11.2.1 コンポーネントパーティションのサイズの増加

RAID 1、4、5、または6のサイズを増加するには、このセクションのプロシージャを適用します。RAID内のコンポーネントパーティションごとに、RAIDからパーティションを削除し、そのサイズを変更し、パーティションをRAIDに戻し、RAIDが安定するまで待機してから続行します。パーティションが削除されている間、RAIDはディグレードモードで動作し、ディスクの 耐障害性がまったくないか、または低下しています。複数の同時ディスク障害を許容できるRAIDの場合でも、一度に2つ以上のパーティションを削除しないでください。

警告: RAIDに、ディスクの耐障害性がないか、単に一貫性がない場合、パーティションのどれかを削除すると、データが失われます。パーティションの削除は注意深く行い、必ず、データのバックアップをとってください。

このセクションのプロシージャでは、次のテーブルに示すデバイス名を使用します。それらの名前は、必ず、ご使用のデバイスの名前に変更してください。

表 11-3 コンポーネントパーティションのサイズを増加するシナリオ

RAIDデバイス

コンポーネントパーティション

/dev/md0

/dev/sda1

/dev/sdb1

/dev/sdc1

RAID用コンポーネントパーティションのサイズを増加するには:

  1. 端末コンソールを開いて、rootユーザまたは同等の権限でログインします。

  2. 次のように入力して、RAIDアレイが一貫性を保っており、同期されていることを確認します。

    cat /proc/mdstat
    

    このコマンドの出力によって、RAIDアレイがまだ同期中と分かる場合は、同期化の完了まで待って、続行してください。

  3. コンポーネントパーティションの1つをRAIDアレイから削除します。たとえば、次のように入力して、/dev/sda1を削除します。

    mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1
    

    成功するためには、failとremoveの両方のアクションが行われる必要があります。

  4. 次のオプションの1つを実行して、「ステップ 3」で削除したパーティションのサイズを増加します。

    • fdisk(8)cfdisk(8)parted(8)などのディスクパーティショナを使用して、パーティションのサイズを増加します。通常は、このオプションが選択されます。

    • パーティションの常駐ディスクを、容量のより大きいデバイスに置き換えます。

      このオプションは、元ディスクの他のファイルシステムがシステムによりアクセスされない場合だけ選択できます。置き換え用デバイスをRAIDに追加すると、元のデバイスにあったデータをすべて再構築しなければならないので、データの同期にはるかに長い時間がかかります。

  5. パーティションをRAIDアレイに再追加します。たとえば、次のように入力して、/dev/sda1を追加します。

    mdadm -a /dev/md0 /dev/sda1
    

    RAIDが同期され、一貫性を持つまで待機してから、次のパーティションの処理に進みます。

  6. アレイ内の残りのコンポーネントデバイスごとに、「ステップ 2」から「ステップ 5」まで繰り返します。必ず、コマンドを変更して、正しいコンポーネントパーティションを使用してください。

  7. カーネルがRAIDのパーティションテーブルを再読み込みできないというメッセージが表示されたら、すべてのパーティションのサイズ変更後にコンピュータを再起動して、パーティションテーブルの更新を強制する必要があります。

  8. セクション 11.2.2, RAIDアレイのサイズの増加に進みます。

11.2.2 RAIDアレイのサイズの増加

RAID内の各コンポーネントパーティションのサイズ変更後(「セクション 11.2.1, コンポーネントパーティションのサイズの増加」参照)も、新しい使用可能スペースの認識を強制するまで、RAIDアレイの設定では、元のアレイサイズが使用され続けます。RAIDアレイのサイズを指定したり、使用可能な最大スペースを使用できます。

このセクションのプロシージャでは、RAIDデバイスのデバイス名として //dev/md0を使用しています。必ず、この名前は変更して、ご使用のデバイスの名前を使用してください。

  1. 端末コンソールを開いて、rootユーザまたは同等の権限でログインします。

  2. 次のように入力して、アレイのサイズとアレイに認識されるデバイスサイズをチェックします。

    mdadm -D /dev/md0 | grep -e "Array Size" -e "Device Size"
    
  3. 次のいずれかの操作を行います。

    • 次のように入力して、アレイサイズを使用可能な最大サイズまで増加します。

      mdadm --grow /dev/md0 -z max
      
    • 次のように入力して、アレイサイズを指定の値まで増加します。

      mdadm --grow /dev/md0 -z size
      

      sizeを、キロバイト(1キロバイトは1024バイト)単位で目的のサイズを表す整数値で置き換えます。

  4. 次のように入力して、アレイのサイズとアレイに認識されるデバイスサイズを再チェックします。

    mdadm -D /dev/md0 | grep -e "Array Size" -e "Device Size"
    
  5. 次のいずれかの操作を行います。

11.2.3 ファイルシステムのサイズの増加

アレイサイズの増加後は (「セクション 11.2.2, RAIDアレイのサイズの増加」参照)、ファイルシステムのサイズ変更ができます。

ファイルシステムのサイズを使用可能な最大スペースまで増加したり、正確なサイズを指定できます。ファイルシステムに正確なサイズを指定する場合は、その新しいサイズが次の条件を満たすかどうか確認してください。

  • 新しいサイズは、既存データのサイズより大きくなければなりません。さもないと、データが失われます。

  • ファイルシステムのサイズは使用可能なスペースより大きくできないので、新しいサイズは、現在のRAIDサイズ以下でなければなりません。

Ext2またはExt3

Ext2とExt3のファイルシステムは、resize2fsコマンドでマウントまたはアンマウントする際にサイズ変更できます。

  1. 端末コンソールを開いて、rootユーザまたは同等の権限でログインします。

  2. 次の方法の1つで、ファイルシステムのサイズを増加します。

    • ファイルシステムのサイズを、/dev/md0と呼ばれるソフトウェアRAIDデバイスの最大使用可能サイズまで拡張するには、次のコマンドを入力します。

      resize2fs /dev/md0
      

      sizeパラメータを指定しない場合、サイズはパーティションのサイズにデフォルト設定されます。

    • ファイルシステムを特定のサイズに拡張するには、次のコマンドを入力します。

      resize2fs /dev/md0 size
      

      sizeパラメータは、要求されたファイルシステムの新サイズを指定します。単位を指定しない場合のsizeパラメータの単位は、ファイルシステムのブロックサイズです。オプションとして、sizeパラメータの後ろに、次の単位指定子の1つを付けることができます。sは512バイトのセクタ、Kはキロバイト(1キロバイトは1024バイト)、Mはメガバイト、Gはギガバイトを表します。

    サイズ変更が完了するまで待って、続行します。

  3. ファイルシステムがマウントされていない場合は、この時点で、ファイルシステムをマウントします。

    たとえば、Ext2ファイルシステムを、/dev/md0という名前のRAIDに、マウントポイント/raidでマウントするには、次のように入力します。

    mount -t ext2 /dev/md0 /raid
    
  4. 次のように入力して、マウントされたファイルシステムに対するサイズ変更の効果をチェックします。

    df -h
    

    ディスクフリー(df)コマンドは、ディスクの合計サイズ、使用されたブロック数、およびファイルシステム上の使用可能なブロック数を表示します。-hオプションは、読みやすい形式でサイズを出力します(1K,、234M、2Gなど)。

ReiserFS

Ext2およびExt3と同様に、ReiserFSファイルシステムは、マウントまたはアンマウント時にサイズを増加できます。サイズ変更は、RAIDアレイのブロックデバイス上で行われます。

  1. 端末コンソールを開いて、rootユーザまたは同等の権限でログインします。

  2. /dev/md0と呼ばれるソフトウェアRAIDデバイスのファイルシステムのサイズを、次の方法の1つを使用して変更します。

    • ファイルシステムのサイズをデバイスの使用可能な最大サイズまで拡張するには、次のように入力します。

      resize_reiserfs /dev/md0
      

      サイズを指定しないと、ボリュームはパーティションのフルサイズまで拡張されます。

    • ファイルシステムを特定のサイズに拡張するには、次のコマンドを入力します。

      resize_reiserfs -s size /dev/md0
      

      sizeを目的のサイズ(バイト単位)で置き換えます。50000K(キロバイト)、250M(メガバイト)、2G (ギガバイト)など、値の単位を指定することもできます。代わりに、プラス(+)記号を値の前に付けることにより、現在のサイズに対する増加を指定することもできます。たとえば、次のコマンドは、/dev/md0上のファイルシステムのサイズを500 MB分増加します。

      resize_reiserfs -s +500M /dev/md0
      

    サイズ変更が完了するまで待って、続行します。

  3. ファイルシステムがマウントされていない場合は、この時点で、ファイルシステムをマウントします。

    たとえば、ReiserFSファイルシステムを、/dev/md0というRAIDに、マウントポイント/raidでマウントするには、次のように入力します。

    mount -t reiserfs /dev/md0 /raid
    
  4. 次のように入力して、マウントされたファイルシステムに対するサイズ変更の効果をチェックします。

    df -h
    

    ディスクフリー(df)コマンドは、ディスクの合計サイズ、使用されたブロック数、およびファイルシステム上の使用可能なブロック数を表示します。-hオプションは、読みやすい形式でサイズを出力します(1K,、234M、2Gなど)。