|
||||
Linux技術トレーニング 基本管理コース II第2章 ディスク管理〜上級
2.ソフトウェアRAID2-1. ソフトウェアRAIDについて
ソフトウェアRAID
RAIDは「Redundant Array of Inexpensive Disks」の略で、安価なディスクを組み合わせて、信頼性の高い大容量ディスクアレイを形成しようというものです。実際の機能としては、パーティションを組み合わせてRAID構成を作るわけですが、1台のディスクを複数パーティションに分けて組み合わせても意味はありません。高性能、高信頼性を得るためには、複数台のディスクでRAIDシステムを構成してください。 ここで説明するソフトウェアRAIDは、RAIDの機能をカーネルで実現します。したがってRAIDコントローラーなどのハードウェアがない場合にも利用することが可能です。ただし、RAIDコントローラーでRAIDの機能を実現しているハードウェアRAIDと比較すると、ソフトウェアRAIDではI/O処理においてRAID機能の処理のために余分にCPUを使用しますので、I/Oパフォーマンスが低下することがあります。 RAIDの種類RAIDの種類にはリニアモードとRAIDレベルというものがあります。以下にLinuxのソフトウェアRAIDでサポートしているものについて説明します。
2-2. ソフトウェアRAIDの作成
通常のパーティションのように扱うことができます
ファイルシステムの構築 自動的にマウントするために/etc/fstabにデバイスの設定を追加
RAIDを構成する対象パーティションの作成
まず少なくとも、2つのパーティションを用意します。RAID-5であれば、最低3つのパーティションが必要となります。実際の運用では、それらのパーティションが、それぞれ別のディスク上になければ意味がありませんが、ソフトウェアRAIDのテストであれば、同じディスク上であっても特に問題はありません。それぞれのパーティションサイズが同じである必要はありませんが、異なるサイズのパーティションを利用した場合、利用されない領域が発生するので、ディスク領域を効率よく利用するためにはサイズが等しいことが望ましいでしょう。 ソフトウェアRAIDとして利用するパーティションは、パーティションのIDを0xFDに設定しておくと起動時に自動的にソフトウェアRAID用のパーティションとして認識されます。/sbin/fdiskでパーティションを作成する時点でパーティションのIDを0xFDに設定しておきましょう。次頁にその方法をご紹介します。 /etc/sysconfig/rawdevicesファイルを設定システム起動時に自動的にRAWデバイスをバインドするためには、etc/sysconfig/rawdevicesファイルへの設定が必要です。例えば以下のように設定します。 ・該当パーティションのIDを0xFDにする方法
# /sbin/fdisk /dev/sdd コマンド (m でヘルプ): p Disk /dev/sdd: 1073 MB, 1073741824 bytes 64 heads, 32 sectors/track, 1024 cylinders Units = シリンダ数 of 2048 * 512 = 1048576 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/sdd1 1 102 104432 83 Linux コマンド (m でヘルプ): t Selected partition 1 16進数コード (L コマンドでコードリスト表示): fd 領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました コマンド (m でヘルプ): p Disk /dev/sdd: 1073 MB, 1073741824 bytes 64 heads, 32 sectors/track, 1024 cylinders Units = シリンダ数 of 2048 * 512 = 1048576 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/sdd1 1 102 104432 fd Linux raid 自動検出/etc/mdadm.confの編集 次の例は、/dev/sdb1, /dev/sdc1, /dev/sdd1を使用してRAIDを構成するための設定です。 DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1,/dev/sdd1 ソフトウェアRAIDとして構成したいデバイスのデバイスファイル名は、通常は/dev/md0, /dev/md1という順番で割り当てていきます。設定内容の詳細に関してはmdadm.confのオンラインマニュアルを参照してください。 RAIDデバイスの作成/etc/mdadm.confの記述が完了したら、/sbin/mdadmコマンドを使用しRAIDデバイスを作成します。次の例は、/dev/sdb1,/dev/sdc1,/dev/sdd1を使用してRAID-5を構成するためのコマンドです。 # /sbin/mdadm -C /dev/md0 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1
ここで「 -C」 は新規作成を表します。 「/dev/md0」はRAIDデバイスファイル名を表します。 次のコマンドで定義済みのRAIDデバイスを編成し、起動することができます。 # /sbin/mdadm -A /dev/md0 また、次のコマンドでRAIDデバイスを停止し、すべてのリソースを開放することができます。 # /sbin/mdadm -S /dev/md0RAIDデバイスの状態確認 ソフトウェアRAIDの状態を調べるには以下のコマンドを使用します。
・/proc/mdstatの参照
# /bin/cat /proc/mdstat Personalities : [raid5] md0 : active raid5 sdd1[2] sdc1[1] sdb1[0] 196352 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>
・「/sbin/mdadm -D」コマンド
# /sbin/mdadm -D /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Tue Jul 19 18:17:28 2005 Raid Level : raid5 Array Size : 196352 (191.75 MiB 201.06 MB) Device Size : 98176 (95.88 MiB 100.53 MB) Raid Devices : 3 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue Jul 19 18:18:54 2005 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K Number Major Minor RaidDevice State 0 3 65 0 active sync /dev/sdb1 1 3 66 1 active sync /dev/sdc1 2 3 67 2 active sync /dev/sdd1 UUID : 5a9fe0cd:e89a279b:29b60829:ec3065d2 Events : 0.64RAIDデバイスの使用 mdadmで初期化が完了したRAIDデバイスは、通常のパーティションのように扱うことができます。次のコマンドは/dev/md0に割り当てられたRAIDデバイスに、ext3ファイルシステムを構築しています。 # /sbin/mkfs -t ext3 /dev/md0
MIRACLE LINUXでは、カーネルの起動時に自動的にRAIDデバイスを検出して、ソフトウェアRAIDを起動します。ただし、パーティションのIDを0xFDにすることを忘れないでください。 /dev/md0 /mnt/raid ext3 defaults 1 2 |