11.3 ソフトウェアRAIDのサイズの削減

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

11.3.1 ファイルシステムのサイズの削減

RAIDデバイス上のファイルシステムのサイズを削減する際には、新しいサイズが次の条件を満たすかどうか確認してください。

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

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

SUSE Linux Enterprise Server SP1では、Ext2、Ext3、およびReiserFSだけが、ファイルシステムのサイズを減少させるユーティリティを提供します。以降の該当するプロシージャを使用して、ファイルシステムのサイズを減少させてください。

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

Ext2またはExt3

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

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

  2. RAID上のファイルシステムのサイズを減少させるには、次のコマンドを入力します。

    resize2fs /dev/md0 <size>
    

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

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

  3. ファイルシステムがマウントされていない場合は、この時点で、ファイルシステムをマウントします。たとえば、Ext2ファイルシステムを、/dev/md0という名前のRAIDに、マウントポイント/raidでマウントするには、次のように入力します。

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

    df -h
    

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

ReiserFS

ReiserFSファイルシステムのサイズは、ボリュームがアンマウントされる場合のみ、減少させることができます。

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

  2. 次のコマンドを入力して、デバイスをアンマウントします。

    umount /mnt/point
    

    サイズを削減するパーティションにシステムファイル(ルート/ボリュームなど)が含まれていると、ブート可能なCDまたはフロッピーからブートする場合のみ、アンマウントが可能です。

  3. /dev/md0と呼ばれるソフトウェアRAIDデバイス上のファイルシステムのサイズを減らすには、次のように入力します。

    resize_reiserfs -s size /dev/md0
    

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

    resize_reiserfs -s -500M /dev/md0
    

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

  4. 次のコマンドで、ファイルシステムをマウントします。

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

    df -h
    

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

11.3.2 コンポーネントパーティションのサイズの削減

一度に1つのRAIDのコンポーネントパーティションをサイズ変更します。コンポーネントパーティションごとに、そのパーティションをRAIDから削除し、パーティションサイズを変更し、パーティションをRAIDに戻したら、RAIDが安定するまで待機します。パーティションが削除されている間、RAIDはディグレードモードで動作し、ディスクの 耐障害性がまったくないか、または低下しています。複数の同時ディスクエラーに耐えるRAIDの場合でも、一度に2つ以上のコンポーネントパーティションを削除しないでください。

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

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

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

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」で削除したパーティションのサイズを増加します。

    • fdiskcfdiskpartedなどのディスクパーティショナを使用して、パーティションのサイズを増加します。

    • パーティションの常駐ディスクを別のデバイスで置き換えます。

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

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

    mdadm -a /dev/md0 /dev/sda1
    

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

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

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

  8. セクション 11.3.3, RAIDアレイサイズの削減に進みます。

11.3.3 RAIDアレイサイズの削減

RAID内の各コンポーネントパーティションのサイズ変更後も、新しい使用可能スペースの認識を強制するまで、RAIDアレイの設定では、元のアレイサイズが使用され続けます。--growオプションを使用して、使用可能なディスクスサイズの変更を読み込むように強制してください。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. 次のいずれかの操作を行います。

    • アレイのサイズ変更が成功していたら、作業完了です。

    • アレイが予期どおりにサイズ変更されていない場合は、いったん再起動してから、このプロシージャを再試行する必要があります。