hda - みる会図書館


検索対象: UNIX MAGAZINE 2003年6月号
34件見つかりました。

1. UNIX MAGAZINE 2003年6月号

特集 Linux て RAID 0 図 27 GRUB で使えるコマンドー覧 〔 Uininal トⅱ ke ⅱ editing 池 5 硺ゆ 0 社 . FO ′を first 宿 . TAB lists 0- 第日 ( 0 第 p 厄ⅱ ms. Anyw6ere 引記 T*8 ⅱ 5t5 the possible ・ Of きⅵ / f ⅱ印 . ESC at any 朝 exits. ] 面〉ゆ btocktist FILE cat 日ぼ 「一礪糺 [ 川 0 い 0 ] ま印ね y 叩 m find 日し E 語 C—no-apm] ト i P 期刊刊 ot chainloader C—force) FILE conf i i 日ぼ ま SP laymat geometry 田一 [ C は R い [ ゆ [ -- 引ロ CPATTERN ... ] initrdFlLE CARG .. コ k 部一ト - no-m - 叩朝 ] [ ー typ 圧〕を狄 e t ⅳを 10- ー FR - 一氈 」尾日 LE 〔駅 G ... 〕 CFLAG) parttype PART 科 •d5crypt 面一 0 げ必 0 日圧 CARG .. コ 0 tn PRT TYF€ START LEN 「 00 弋 otnov i fy [ VI [ トは S 〕 ] ”「 i 引 [ -- ほ ] ー : P 1 ] [ ー弋 k 町 CTO-KEY FRW-KEY) [—pref ⅸ ] [ -- & ね g : S 圧 2 、、い部面 nal [ ー動 ] [--t ⅲ」隻 CS ] [ ー まを s れ e 「 KBYTES •,nhide P 期月 ⅶ印「 obe [ 正 ] 場合は、システムの起重加芋に図 26 のようなプートセレク トの画面か表示されます。 こで c を押すと、 OS 選択の画面が消え、 grub> というプロンプトか表示されます。これが GRUB の対話 モードです。 help と入力するとコマンドの一覧カ俵示さ れます ( 図 27 ) 。 GRUB 上では、 /dev/hda は (hd0) 、 /dev/hdc は ( hdl ) のように、ハードディスクを ( hd ? ) て表します。 ? は数字で、 BIOS でみつかった順に 0 から付けられてい きます。プライマリ・マスター (/dev/hda) とセカンダ リ・マスター (/dev/hdc) の 2 つカ材妾続されている場合 は、それぞれ (hd0) と (hdl) になります。 /dev/hdc が (hd2) ではなく (hdl) となることに注意してください。 また、パーティションまで含めると、 /dev/hdal は ( hd0 , 0 ) 、 /dev/hda2 は (hdO,1) のように表記されま す。最初のパーティションから順に 0 から数字カ咐けら れていきます。さらにファイルまて表すときは、、 ( hd0 , 0 ) /etc/hosts" のように、ノヾーティションの表記に / ヾスを加 えます。このとき、パスのう頁の / は、そのパーティショ ンにおけるファイルシステムの根のディレクトリを表して いることに注意してください。 たとえは、 Linux 実イのディレクトリ構造で、 hda3 を / b 。。 t にマウントしているとします。このとき、 Linux システム上での /boot/grub/grub. conf は、 GRUB 上 では (hdO,2)/grub/grub. conf と表されます。 GRUB を書き込む /dev/hdc の MBR に起動するための情報を書き込む には、次のように入力します。 UNIX MAGAZINE 2003.6 grub> root (hdO , 0 ) grub> install /boot/grub/stagel d (hdl) /boot/gr ub/stage2 p /boot/grub/grub. conf です。、 p /boot/grub/grub. conf " は、起重加こ 2 次 ダに続いて読み込まれる 2 次プートローダの所在の指定 その次の、、 /boot/grub/stage2" は、 1 次プートロー ます。 りセカンダリ・マスターの MBR に GRUB を書き込み 先で、この例では 2 台目のハードディスクのう頁、つま stagel" です。 d に続く、、 ( hdl ) " が GRUB の書込み 1 次プートローダとして書き込む内容が、、 /boot/grub/ install コマンドの引数の意味は次のようになります。 129 に接続されているハードディスクの電源コネクタを抜いて いったん PC の電源を落とし、プライマリ・マスター ている状態に戻します。 RAID デバイスを再構成して、ミラーリングがおこなわれ きることを確かめたあと、 DISK-I の電源をもとに戻し、 みましよう。セカンダリ・マスター (DISK-2) て起動で 電源を抜き、一印判勺なハードディスクの拠章を発生させて プライマリ・マスターのハードディスク (DISK-I) の 一時的なトラフルの場合 に置き換えるまでの手順を紹介します。 古郊章したケースを想定して、それを新たなハードディスク この節では、プライマリ・マスターのハードディスクが 0 トラブル実践 ら (hdl) へ変更したものなのです。 install コマンドの stagel のインストール先を、 (hdO) か 前述の GRUB のコマンドは、インストーラの実行する age2 p (hd0 , 0 ) /boot/grub/grub. conf install /boot/grub/stagel d (hdO) /boot/grub/st root (hdO,0) きます。 のために以下のコマンドカ躾行される様子を見ることがで コンソールを切り替えてみると、 GRUB のインストール 成 " のメニューか表示されているときに、 CtrI-AIt-F3 で なお、 OS のインストールにおいて、、起動ディスク作 ます。 プートローダか読み込む設定ファイルのパスの指定になり

2. UNIX MAGAZINE 2003年6月号

, 特集 Linux て RAID 0 図 18 hda の既存のパーティション デパイスプート始点 /dev/hda2 /dev/hdal 終点 1 550 プロック ID 549 4409811 615 530145 図 19 RAID を組むためのハードティスク (hdc) のパ デパイスプート始点 終点プロック ID /dev/hdcl /dev/hdc2 1 550 549 4409811 615 530145 システム 83 Linux 82 Linux スワップ ーティぐ / ョン システム fd Linux raid 自動検出 fd Linux raid 自動検出 れで、皆さんの手許のマシンにもミラーリングが導入でき るはずです。 手順 8. mdl から起動できたら、 hda を初期化してパーティシ して mdl から起動する。 7. 再起動する。このとき GRUB のカーネルの引数を変更 ジの作成と、 mdl 中の fstab の言当の変更をおこなう。 6. RAID デバイスから起動できるように、 initrd イメー 5. md2 をスワッフ。領域として初期化する。 の内容をコヒーする。 4. mdl に ext3 ファイルシステムを作成し、 /dev/hdal hda2 は failed-disk と指定する。 3. 同様に、 hdc2 と hda2 を用いる md2 を作成する。 し、 hdal は、、 failed-disk" と指定する。 2. hdcl と hdal をミラーリングする mdl を作庇ただ fdisk で作成する。 に作成する。 system ID が fd となる hdcl と hdc2 を 1. ミラーリング・デバイスのためのノヾーティションを hdc 手順は以下のようになります。 フ。領域という簡単なものにしてみました。 ルート・ファイルシステムと残りの領域、 hda2 がスワッ ラーリングしてみましよう。パーティションは hdal が 設疋された同し容量のハードディスクを追加し、これでミ セカンダリ・インターフェイスにもう 1 台マスターとして マスターとして設定されたハードディスクがあるとして、 以下の例では、 IDE のフライマリ・インターフェイスに hdc にパーティションを作成 9. hda? を md? に組み込む。 ョンを定義しなおす。 124 ドディスク (/dev/hdc) にパーティションを設定します。 IDE のセカンダリ・インターフェイスに接続したハー このとき、プライマリ・インターフェイスに接続したハー ドディスクと同じパーティション ( 図 18 ) にするのが、間 違いがなくて簡単でしよう。 しかし、よく考えると同し構成にしなくても間題はな く、 hda の内容が収まるのならどのようなパーティショ ンでもかまいません。たとえは hda にあるシステムで、 / と /boot や /var などが別々のパーティションとなっ ていても、 hdc の 1 つのノヾーティションに内容をまと めることができます。逆に、分けてしまうこともできま す。コピー先の RAID デバイスの初期状態では、 /dev /hda を参照せす ( そのために failed-disk と指定するの です ) 、 /dev/hdc だけで動くように構成するからです。 /dev/hda の内容を /dev/hdc だけで動作する RAID デ バイスに待避したあと、 /dev/hda をミラー用のデバイス に組み込むからといったほうが分かりやすいでしようか。 ノヾーティションの作成には、 fdisk コマンドや parted コマンドを使います。作成するパーティションの system ID は fd (Linux raid 自重辧屮 D にします ( 図 19 ) 。 RAID デバイス mdl と md2 の作成 新規に作成したパーティション (/dev/hdc?) だけで ミラーリング・デバイスを作成します。ここが重要で、 / dev / hda ? を使ってはいけません。 hdal と hdcl から rndl を、 hda2 と hdc2 から md2 を作成する予定です が、 hda のパーティションはまだ使用中であり、 hdal や hda2 をすぐに作成するわけにはいかないからです。 そこで、片方のデバイスか取り外された状態 (degrade モード ) から開始されるように、 ミラーリング・デバイス を初期化します。つまり、 hdal (hda2) か外され、 hdcl (hdc2) だけで動作しているミラーリング・テパイス mdl (md2) を作成します。 degrade モードで RAID を作成するには、 /etc/raid- tab ファイルで failed-disk というキーワードを使います。 UNIX MAGAZINE 2003.6

3. UNIX MAGAZINE 2003年6月号

特集 Linux て RAID 0 図 35 セカンタリ・マスターはより大きなパ デパイスプート /dev/hdal /dev/hda2 /dev/hda3 デパイスプート / de v /hdc 1 /dev/hdc2 /dev/hdc3 始点 2143 1072 1 始点 1609 805 1 ーテイぐ / ョン 終点プロック ID システム 6450066 fd Linux raid 6450097 + fd Linux raid 1076355 fd Linux raid 終点プロック ID システム 804 1608 1742 1071 2142 2410 8602776 8602807 + 2152710 fd Linux raid fd Linux raid fd Linux raid 自動検出 自動検出 自動検出 自動検出 自動検出 自動検出 図 36 ミラーリンク・デパイスの大きさは変わらない # raidhotadd /dev/md3 /dev/hdc3 read_ahead 1024 sectors Personalities [raidl] # cat /proc/mdstat md3 md2 md 1 active raidl hdc3[2] 1076288 blocks [ 2 / 1 ] active raidl hda2 [ 0 ] 6449984 blocks [ 2 / 1 ] active raidl hdal [ 0 ] 6449984 blocks [ 2 / 1 ] hda3 [ 0 ] . ] recovery CU- ] 7.4 % ( 80264 / 1076288 ) finish=l .4min speed=11466K/sec unused devices : く none> 132 というラベルを貼っていると、そうしたくなるときがあります。 5 ハードディスクに "uni-svr(RHL8.0):Secondary Master" など 換するにも、イ夏処理の終了を待たすに再起動ができ、復 ファイルシステムか利用するにも、ハードディスクを交 ます。 、、 [ ー U ] " となり、 hda2 がまだ非同期であると表示されてい 3 を入れ替えたあとの図 34 では、、、 hda2 [ 2 ] hdc2[1]" と 同期か終ってからいったん停止して、 DISK-2 と DISK- 表示から、 hdcl が非同期であると分かります。 hdcl の たとえは、図 32 では、、 hdcl [ 2 ] hdal[l]" と、、 [ ー U ] " の イスを対象として同期処理か再されます。 ライマリ・マスターにつなぎなおされた DISK-3 のデバ も交換可能 ) 。このような場合でも、次の起重加には、フ まり、 RAID の同期処理中にシステムを停止したときで バイスの同期を中断しているあいだでもおこなえます ( つ この DISK-3 と DISK-2 の接続の交換は、 RAID デ 替えられるわけです。 OS を起動できます。 DISK-3 と DISK-2 は自由に入れ ンストールするのを忘れてさえいなけ川ま、 DISK-3 から てもよいでしよう 5 。 DISK-3 の MBR に GRUB をイ 表 3 容量の異なるハードディスクを吏ったミラーリンク md hda hdc ( →変史後の容 0 大きなティスクをつなぐと・・・ これまでは、機種と容量か 1 司し 2 台のハードディスク でミラーリングをおこないました。こでは、容量の異な るハードディスクを使ったらどうなるかを試してみまし 表 3 のように、 mdl 、 md2 、 md3 がそれぞれ 6GB 、 6GB 、 IGB てオ冓成されているところに、 hdc として 8GB (hdcl) 、 8GB (hdc2) 、 2GB (hdc3) となるようにパー ティションを設定したハードディスク ( 図 35 ) を接続し、 RAID デバイスに組み込んでみます。 実際に試してみたところ、 RAID デバイスの大きさ (blocks) は変化しませんでした。さらに、 recovery か終 了して 2 つのハードディスクの内容か 1 司ーとなったあと、 mdl hdal (6GB) hdcl (6GB → 8GB) md2 hda2 (6GB) hdc2 (6GB → 8GB) md3 hda3 (IGB) hdc3 (IGB → 2GB) 旧イ乍業の待ち時間をかけなくてよいのか嬉しいですね。 UNIX MAGAZINE 2003.6

4. UNIX MAGAZINE 2003年6月号

0 特集 Linux て RAID 図 8 RAID デパイスの状態を swapon 、 mount 、 df コマンドで確認 # swapon —S Fi1ename /dev/md3 # df FiIesystem /dev/mdl none /dev/md2 # mount Type partition Used 1076280 0 Priority IK ープロック 6348712 119772 6348712 使用使用可使用 % マウント位置 1445024 0 87576 4581192 119772 5938640 /dev/mdl 0 Ⅱ / type ext3 (rw) none on /proc type proc (rw) 図 9 RAID の状態を調べる ( 正常時 ) /dev/md2 0 Ⅱ /var type ext3 (rw) none 0 Ⅱ /dev/shm type tmpfs (rw) none on /dev/pts type devpts ( r , g 土 d = 5 , mode = 620 ) usbdevfs 0 Ⅱ /proc/bus/usb type usbdevfs (rw) read_ahead 1024 sectors PersonaIities [raidl] # cat /proc/mdstat 24 % / 図 10 正常ではない場合 ([U-] の表励ヾある ) 2 % /var 0 % /dev/shm read_ahead 1024 sectors PersonaIities Craid1] # cat /proc/mdstat md3 md2 md 1 active raidl hda3 [ 0 ] 1076288 blocks [ 2 / 2 ] active raidl hda2 [ 0 ] 6449984 blocks [ 2 / 2 ] active raidl hdal [ 0 ] 6449984 blocks [ 2 / 2 ] hdc3 [ 1 ] [ 冊 ] hdc2 [ 1 ] hdcl[l] md3 md2 md 1 active raidl hda3 [ 0 ] 1076288 blocks [ 2 / 2 ] active raidl hda2 [ 0 ] 6449984 blocks [ 2 / 2 ] active raidl hdal [ 0 ] 6449984 blocks [ 2 / 1 ] hdc3[1] [ 冊 ] hdc2C1] unused devices : く none> UNIX MAGAZINE 2003.6 md 1 のデバイスだけで重川していることを表します。正常な状 という表示の、、 [ 2 / 1 ] [ U ー ] " は、 2 つのデバイスのうち 1 つ 6449984 blocks [ 2 / 1 ] [U—] active raidl hdal [ 0 ] ます degrade の状態です。図 10 の、 ・ resync 中 /resync 待ち ・ recovery ・ degrade 正常な状態以外に、次の状態があります。 す。 md2—md3 についても同オです。 方のパーティションが正常に重川していることが分かりま ることが、 2 行目の、、 [ 2 / 2 Ⅱ UU ] " という表示からは、両 つのパーティションを使って RAID 1 として動作してい この表示の 1 行目からは、 mdl が hdal と hdcl の 2 unused devices : く取 0 Ⅱ e > 6449984 blocks [ 2 / 1 ] [U-] md 1 active raidl hdal [ 2 ] hdcl [ 0 ] ディスクを交換しなけ川まなりません ) 。 という状態になります ( もちろん、その前に壊れたハード るために raidhotadd コマンドを実行すると、 recovery degrade 状態で測胙している RAID デバイスを手夏す バイス ( パーティション ) だけカ種川乍している状態です。 における degrade モードは、ミラーを構成する片方のデ 状態のことを degrade モードといいます。ミラーリング テンヾイスは完全ではないがデータの完全は保たれている 用することができます。このような状態、つまり RAID しかしこの状態でも、 RAID デバイスは通常どおりに利 ンか並ぶはすですが、 hdal[o] しか表示されていません。 態であれは、、 active raidl " の後ろに 2 つのノヾーティショ . ] recovery 0 .0 % ( 20320 / 6449984 ) finish=40.9min speed=10160K/sec 115

5. UNIX MAGAZINE 2003年6月号

0 特集 Linux て RAID 図 12 mkraid /dev/md4 の実行 # mkraid /dev/md4 handling MD device /dev/md4 analyzing super¯block disk 0 : /dev/hda4, 25101562kB , disk 1 : /dev/hdc4, 25101562kB , # cat /proc/mdstat [raidl] personalities read_ahead 1024 sectors raid superblock at 25101440kB raid superblock at 25101440kB md4 : active raidl hdc4 [ 1 ] hda4 [ 0 ] 25101440 blocks [ 2 / 2 ] [UU] speed=10333K/sec md3 md2 md 1 active raidl hda3 [ 0 ] 1076288 blocks [ 2 / 2 ] active raidl hda2[O] 6449984 blocks [ 2 / 2 ] active raidl hdal [ 0 ] 6449984 blocks [ 2 / 2 ] . ] resync hdc3 [ 1 ] hdc2 [ 1 ] [ 冊 ] hdcl [ 1 ] [UU] unused devices : く none> リスト 2 /etc/raidtab に追加する md4 の言聢 raiddev raid-level nr-raid-disks chunk—size /dev/md4 1 2 64k 1 0 4.2 % ( 1065656 / 25101440 ) finish=38.7min す。パーティションを作成したら、 system ID を fd に ノ、一ドディスクの残りの領域すべてを用いたものになりま 入力せすにリターンを押す ) と、新しいパーティションは 、、最初シリンダ " と、、終点シリンダ " に初期値を使う ( 値を persistent—superblock nr—spare—disks device raid—disk device raid-disk /dev/hda4 0 /dev/hdc4 1 hda4 と hdc4 の作成 次に、ミラーを構成するパーティションにこでは / dev /hda4 と /dev/hdc4) をそれぞれのハードディスクに作 成します。 インストール CD から起動し、 X の画面が表示された ところで CtrI-AIt-F2 を押すと現れるシェルから、 fdisk コマンドを使って新規のパーティションを作成します ( パ ーティションの操作には parted というコマンドも利用 できます。このコマンドについてはあとで説明します ) 。 hda4 を作成するためには、ハードディスク・デバイス /dev/hda を引数にして、 # fdisk /dev/hda を実行します。 fdisk での作業の様子を図 11 に示しま す。 n コマンドで新規にパーティションを作成するときに 118 するのを忘れないでください。 hdc4 も同様に # fdisk /dev/hdc を実行して作成します。 この作業カ鮗ったらシステムを再起動します。 RAID デバイス md4 のイ乍成 こまでの作業で、 RAID デバイス md4 を構成す るパーティション hda4 と hdc4 ができました。次に RAID デバイスの作成と初期化をおこないます。これに は mkraid コマンドを使います。構成したい RAID テンヾ イス (/dev/md4) を引数に指定してコマンドを実行する と、 /etc/raidtab の成疋に従って RAID デノヾイスの作 成と化 (resync) がおこなわれます ( 図 12 ) 。 作成はすぐにできますが、ミラーデバイスの resync の 処理は、大きなパーティションであれは。かなりの時間を要 します。たとえは、私のマシンでは 25GB の領域で 40 分以 - E かかりました (/proc/mdstat を cat コマンドで 表示するとその様子が分かります ) 。しかし、 RAID デバ イスの resync 処理や recovery 処理は、実行中であって UNIX MAGAZINE 2003.6

6. UNIX MAGAZINE 2003年6月号

, 特集 Linux て RAID 0 図 11 ソフトウェア RAID / く一ティション hda4 の作成 コマンド (m でヘルプ ) : n コマンドアクション e 拡張 p 基本領域 ( 1 ー 4 ) 領域番号 ( 1 ー 4 ) : 4 最初シリンダ ( 1743 ー 4865 , 初期値 1743 ) : 初期値 1743 を使います 終点シリンダまたは + サイズまたは + サイズ M または + サイズ K ( 1743 ー 4865 , 初期値 4865 を使います コマンド (m でヘルプ ) : t 領域番号 ( 1 ー 4 ) : 4 16 進数コード (L コマンドでコードリスト表示 ) : fd 初期値 4865 ) : 領域のシステムタイプを 4 から fd コマンド (m でヘルプ ) : p ティスク /dev/hda : ヘッド 255 , ユニット = シリンダ数 of 16065 (Linux raid 自動検出 ) に変更しました セクタ 63 , シリンダ 4865 * 512 パイト 終点プロックエ D デパイスプート /dev/hdal /dev/hda2 /dev/hda3 /dev/hda4 始点 1 805 1609 1743 システム 804 1608 1742 4865 6450066 6450097 + 1076355 25085497 + fd fd fd コマンド (m でヘルプ ) : w 領域テープルは交換されました ! ioctl() を呼び出して領域テープルを再読込みします。 UNIX MAGAZINE 2003.6 が /home となります ) 。 1. /etc/raidtab に md4 の設定を追加する (/dev/md4 めに、以下のように竹喋を進めていきます。 こでは、新規の RAID デバイス md4 を作成するた スキューモードでパーティション巣作をしてください。 CD - ROM やフロッピーディスクから OS を起動し、レ ション・テープルを書き換えるのは危険がともないます。 RAID にかぎらす、使用中のハードディスクのパーティ に ext3 ファイルシステムを作成します。 からなる RAID テンヾイス /dev/md4 を構築し、 md4 上 作成してみます。具ー勺には、 /dev/hda4 と /dev/hdc4 クの残りを使って、 /home ディレクトリを RAID 1 で デバイスを作ってみましよう。例として、ハードディス しました。今度はインストール後、つまり運用時に RAID さきはどは、インストール時に RAID デバイスを作成 0 RA 旧デバイスを新規に作成する 自動検出 自動検出 自動検出 自動検出 2. fdisk で hda4 と hdc4 を作成し、 する。 Linux raid Linux raid Linux raid Linux raid 3. RAID テパイス md4 を作成する。 システムを再起動 4. md4 に ext3 ファイルシステムを作成する。 /etc/raidtab の設疋 RAID デバイス md4 は次のような構成にします。 テパイス名は /dev/md4 ・ RAID の不鶤頁はミラーリング (RAID 1 ) 構成テンヾイスは /dev/hda4 と /dev/hdc4 プライマリ・マスターのパーティションである hda4 と セカンダリ・マスターのパーティションである hdc4 を ミラーリングします。 ・スペアテンヾイスはなし ・ chunk size は 64KB /etc/raidtab 内にある既存の md3 の設定などを参考 にしつつ、リスト 2 のような言当主を加えてください。 117

7. UNIX MAGAZINE 2003年6月号

0 特集 Linux て RAID 表 1 / ヾーティション構成 HDI hdal hda2 hda3 HD2 hdcl hdc2 hdc3 swap 残り 容量 6GB 6GB IGB 25GB RAID デ / くイス mdl md2 md3 図 1 RAID の言聢には Disk Druid をイ吏う 、マウントボイン / 、一ティション砂イその他カ ることができますフィルシステ に′、一ティションを ノール、 Druid によって対 ァイスクバーティショ、 ディスクバーティション設定 redhat には、点ではハードウェア RAID を使う必要があり ます ) 。つまり、同レ、一ドディスク内の 2 つのパーティ ションでミラーを作成することもできます。しかし、 れではハードディスクの古郞章に対処できません。あるパー ティションのミラーは、かならす別のノ、一ドディスクに置 くべきです。そこで、同一機種の 2 台のハードディスク にそれぞれ同レヾーティションを作成し、各パーティショ ンをこの 2 台のノ、一ドディスクを使ってミラーリングす ることにします。 ディスクのパーティションは表 1 のように成疋し、、、残 り " 以外のパーティションをそれぞれミラーリングしま す。ルート・ファイルシステムと / var 、スワッフ。領域で す。残りはテストで使います。細かくパーティションを 分けると、障害が発生して新しいハードディスクにパー ティションを設定しなおすときに面倒なので、起動専用 の / boot パーティションも作成していません。 スワッフ領域のミラーについては悩みました。ミラー化 せすに、各ハードディスクのスワップ領域をまとめて 1 つ のスワップ領域として用いることも可能です。このように すると、ミラー化する場合とくらべて容量が 2 倍になる うえに、 2 つのパーティションで負荷分散されるので性能 の止も見込めます。逆にミラーリングをおこなうと、 ラーリング・デバイスへの書込みは、 2 つのハードディス クのパーティションに等しくおこなわれるので、 I/O の 処理が純に 2 倍となります。 いろいろ考えましたが、次のような理由からスワップも ミラーリングしました。 ・スワッフ。領域が壊れると、そこを使っていたアプリケー ションか異常終了する可能性がある。 ・メモリが一ト分にあるので、あまりスワッフ。領域を大きく しても意味がない。 Red Hat Linux で RAID を利用すると、そのパーティ ションには、通常のノ、一ドディスクのような hdal などの 名前ではなく、 md() といった名前でアクセスします。 112 ンプイツ 0 ルプ ディスク / ヾーティション の設定 新しいユーザーがい x のインス トールする時に最も大きな障害と なるのがパーティション設定で す Red Hat Li 仙 x は自動バー ティション設定を提供することで これを簡単にします 自動バーティション設定を選択す れは、マウントボイントを割当て たリ、バーティションを作成した り、インストールに必要な領載 を確保したりするためにバーティ ション設定ツールを使う必要はあ りません 手動でパーティション設定を行う には、 Disk Druid バーティショ ン設定ツールを使用します 異なるインストール方法を選択す るときは戻るボタンを、このイン ストール方法のまま槐けるなら次 ホタンを押します 朝ヘルプを第す ( 出〔」リリースノート ( 区 ) 0 自動バーティション礙 ( ) 45k レ u を使用して学動パー多ン設定 ( ・◆第る ( 旦 ) ー◆ の名前には md0—md15 の 16 個か使えます。単純に順 番どおりに名前を付けていくのなら、 / ( ルート ) を md0 、 次を mdl 、 ・・のようにするのでしようが、 RAID デ バイスとハードディスク・パーティションの対応が分かり やすいように、 hdal と hdcl をミラーしたものを mdl 、 hda2 と hdc2 をミラーしたものを md2 としました。 0 インストール 今回使う Red Hat Linux 9 のインストーラは、 OS の インストール時にプート・パーティションも含め、すべて のパーティションを RAID 化することができます。これ はたいへん便利です。 たとえば、 Solaris 9 にもソフトウェア RAID 機能 がありますが 1 、そのインストールは簡単ではありません。 OS をインストールしたあとにかなりの作業が必要となり ます。 Red Hat Linux のインストーラは、 OS のインストー ル先をミラーリング・デバイスとすることができるので、 インストール後に RAID を構成するための作業がいっさ い必要ありません。 Red Hat Linux 9 でルート・ファイ ルシステムに設定できるのは RAID 1 ( ミラーリンクつだ けですが、それ以外のパーティションであれば RAID 0 、 RAID 5 とすることも可能です。 それでは、実際にインストールの様子をみていきましょ う。 Red Hat Linux 9 のインストールについてはいろい ろなところで紹介されているので、こではとくに RAID 1 2003 年 2 月号の「ワークステーションのおと」参照。 UNIX MAGAZINE 2003.6

8. UNIX MAGAZINE 2003年6月号

特集 Linux て RAID 0 図 21 RAID Repair で mkraid を実行 (RAID Repair) 8 # mkraid /dev/mdl raidl : mdl , not a11 disks are operational trylng tO recover array analyzing super¯block disk 0 : /dev/hdcl , 4409811kB , raid superblock at 4409728kB disk 1 : /dev/hdal , failed (RAID Repair) 9 # mkraid /dev/md2 raidl : md2 , not a11 disks are operational trying tO recover array analyzing super-block disk 0 : /dev/hdc2 , 530145kB , raid superblock at 530048kB 0 0 read_ahead 1024 sectors personalities [raidl] (RAID Repair) 10 # cat /proc/mdstat disk 1 : /dev/hda2, failed md2 md 1 active raidl hdc2[0] 530048 blocks [ 2 / 1 ] [U_] active raidl hdcl [ 0 ] 4409728 blocks [ 2 / 1 ] [U-] unused devices : くⅡ 0 Ⅱ e > 図 22 RAID デパイスに ext3 ファイルシステムを作成して # dump Oufcs 1000000 /dev/hdal # mkdir /a; mount /dev/mdl /a # tune2fs —c ー 1 —j /dev/mdl # mke2fs /dev/mdl hda の内容をコピー ()d /a; restore —rf ー ) # mkswap /dev/md2 # vi /a/etc/fstab ( 以下のように変更 ) /dev/mdl ext3 /dev/md2 SWap swap defaults defaults 1 1 mdl からシステムを起動 hda の内容が md デバイスにすべてコピーできたら、 126 次にプートローダである GRUB の設定ファイル /etc/ を、 mdl や md2 に置き換えます。 ターのパーティションを指定している部分 (LABEL=/) (hda?) を指定している部分や、間接的にプライマリ・マス フライマリ・マスターのノ、一ドディスクのノヾーティション テンヾイスを用いる新しい内容に設定しなおします ( 図 22 ) 。 ます、 mdl にコピーした /etc/fstab の記述を、 RAID 旧できなくなるおそれがあります。 ムを起動できるようにします。そうしないとシステムを復 をいったん初期化するので、間違いなく mdl からシステ します。このあとの作業で /dev/hda のハードディスク 次に md デバイスを使ってシステムか起動できるように grub. conf に、システム起重加寺の / ( ルート ) ノ、一ティショ ンを mdl に変更したエントリを追加します。ここで注意 しなけれはならないのは、 /dev/hda 上にある /etc/grub . conf だけでなく、 mdl にコヒーした /etc/grub. conf も 書き換える点です。というのも、この直後でおこなう起動 では /dev/hdal 上にある /etc/grub. conf が参照されま すが、最終的には / dev / mdl にある /etc/grub. conf が 参照されるからです。 図 23 がエントリを追加した例です。システムの起動 時に GRUB の起動 OS 選択メニューで表示される文 字列が title 行です。この例では、 GRUB のメニュー 画面で、、 Red Hat Linux ( 2.4.18 ー 27.8.0 ) " を選択すれ は、、プライマリ・マスターのハードディスクを使って起 動し、、、 Red Hat Linux [mdl]" を選択すれは、ミラー リング・デバイス mdl を使って起動します。こうしてお けば、 mdl を使った設定でシステムか起動できなくても、 従来のフライマリ・マスターのシステムを起動できます 3 。 このとき、 /etc/grub. conf て指定するカーネルの引数 を変えるとともに、 initrd 行で指定する initrd-*. img フ ァイルの更新も必喫かもしれません。図では /boot/initrd ー 2.4.1 & 27.8.0. img を指定していますが、この initrd-*. img ファイルが RAID デバイスを使用する前に作成され 3 このようにしなくても、 GRUB の走当カ OS ; 尺画面で、 e" を押せば、 ーヨ勺に設定を変えることもできます。 UNIX MAGAZINE 2003.6

9. UNIX MAGAZINE 2003年6月号

特集 Linux て RAID 0 これも、 RAID デバイスは完全ではないがデータの完 全性は保たれている状態です。もちろん recovery カ鮗れ は正常重川徂こ戻ります。 recovery と似た状態として、 resync 中と resync 待ち があります。以下の表示を見てください。 mdl : active raidl hdal [ 0 ] hdcl [ 1 ] 6449984 blocks [ 2 / 2 ] [UU] . ] resync = 30.6 % ( 116 が作成した /etc/raidtab ファイルの内容は、リスト 1 の 今回、システムをインストールしたときにインストーラ 者に手夏を要求します。 の起動を中止し、 RAID Repair のシェルを起動して管理 raidstart コマンドの夫行でエラーが発生すればシステム なるように raidstart コマンドを実行します。このとき、 イスか組み込まれてい川ま、 RAID テンヾイスか利用可能と のなかで、このファイルが存在し、カーネルに md テンヾ 具イイ勺には、システムの起重加に実行される rc. sysinit を作成する際には内容が参照されます。 存在するかどうかがチェックされ、新規に md デバイス ルに言当されています。このファイルはシステム起重加に その予想どおり、 RAID の設定は /etc/raidtab ファイ ti/etc ディレクトリなどの下に置かれていそうです。 ファイルはどこにあるのでしようか。 UNIX ふうであれ RAID を構成することはできましたが、これらの設定 0 RA 旧の設定ファイル ことか普通におこなえるのです。 に作成したファイルシステムをマウントして読み書きする たり、その状態から修復中の場合でも、 RAID デバイス ているときはもちろん、 1 台のハードディスクか壊れてい ミラーリングをしていれは、正常に重川し このように 利用可能です。 たときに実行されます。この状態でも RAID テンヾイスは は新規に RAID デバイスを作成 (mkraid コマンド ) し 同期処理を待っている状態が resync 待ちです。 resync いる ) ときが resync 中、 resync=DELAYED のように RAID を同期している仕の例では 30.6 % まで進んで re s yn c =DELAYED 6449984 blocks [ 2 / 2 ] [UU] md2 : active raidl hda2 [ 0 ] hdc2 [ 1 ] 1982216 / 6449984 ) finish=7.4min speed=10010K/sec リスト 1 /etc/raidtab ファイル raiddev raid—level nr—raid—disks chunk—size /dev/mdl persistent—superblock 1 2 64k 1 0 nr—spare—disks device raid—disk device raid—disk raiddev raid—level nr—raid—disks chunk—size /dev/hdal /dev/hdc 1 0 1 /dev/md2 persistent—superblock 1 2 64k 1 0 nr—spare—disks raid—disk raid—disk raiddev raid—level nr—raid—disks chunk—size /dev/hda2 /dev/hdc2 0 1 /dev/md3 persistent—superblock 1 2 64k 1 0 nr¯spare—disks raid—disk device raid—disk /dev/hda3 /dev/hdc3 0 1 ようになっていました。このファイルの内容から、たとえ ば /dev/mdl は次のようなものであることが分かります。 テンヾイス名は /dev/mdl ・ RAID の不軽頁はミラーリング (RAID 1 ) ・ RAID を構成する物理的なデバイスは hdal と hdcl ・スペアテンヾイスはなし ・ chunk size は 64KB スペアデバイスとは、 RAID を構成するデバイスが 壊れたときに、スペアとして使えるデバイスのことです。 chunk size は RAID テンヾイス用の一印判勺なメモリ領域の 大きさです。多くの RAID テパイスを使うときにはこの 値を大きくするほうがよいでしよう。 この /etc/raidtab の設定の言田については、 ・ http://ostenfeld.dk/-jakob/ Software-RAID. HOWTO/ を参照してください。 UNIX MAGAZINE 2003.6

10. UNIX MAGAZINE 2003年6月号

特集 Linux 0 て RAID /dev/hda? が使われているのであれば、 /etc/fstab の設 定か grub. conf の設定に誤りがあります。、、 swapon -s で何も表示されない場合には、 md2 の初期化に失敗して いる可能性もあるでしよう。 /proc/mdstat の内容も調 べて、ミラーリング・デバイスがハードディスク 1 台だ けで重川していることを石忍してください。 mdl や md2 を使ってシステムカ川しているならば、 次にフライマリ・マスターのハードディスクを RAID に 組み込む竹喋に移ります。 128 つまりセカンダリ・マスターに接続したノ、一ドディスクか ところが実際に試してみると、些細な理由から hdcl 、 たのもこのためです。 点です。今回、すべてのパーティションをミラーリングし り、サービスを続行できることがこのシステムの最大の利 もう一方の正常なハードディスクだけで OS を起動させた クラッシュしたとしても、データか守られるだけでなく、 tiOS か起動できることになります。片方のディスクが うことは、どちらカー方のディスクだけでも重川乍していれ ト・パーティションがミラーリングされているとい hdcl への GRUB のインストール ついては頁で説明します ) 。 す ( セカンダリ・マスターへの GRUB のインストールに リ・マスターだけでシステムか起動するようにしておきま GRUB をインストールするなど、万一のときにセカンダ あとは、セカンダリ・マスターのディスクの MBR に # raidhotadd /dev/md2 /dev/hda2 # raidhotadd /dev/mdl /dev/hdal おした hdal や hda2 のパーティションを組み込みます。 操作しているミラーリング・デバイスに、新たに作成しな 最後に、 raidhotadd コマンドを使って現在片方のみで 換えてください。 、 failed-disk" と記述していた部分を、、 raid-disk" に書き 次に、 /etc/raidtab ファイルを変更します。これまで わせてパーティションを切りなおします。 ンを解放したあと、ミラーリング・デバイスのサイズに合 手夏をおこなうことになります。ます hda のパーティショ ドディスクを新規のハードディスクとみなして RAID の こからの作業は、既存のプライマリ・マスターのハー プライマリ・マスターディスクのパーティションの再言聢 図 26 GRUB の起動醯 駅田 vers i on 0.92 ( 63 能 r / 24467 upper m 印 0 「 y ) ー Red Hat Linux mdl Red Hat Linux ( 2.4 コ 8-27.8. の The highlighted entry wi Ⅱ be automatically in 4 seconds. before tmting, 0 「・ざ fO 「 a command-line. CO 町 s 2f0 「 e booting' ・ a' tO modify the kernel arguments Press enter to boot the s 引 t OS, ' ぎ to は the Use the and v keys tO select which entry is *. インストールの際、 OS の起動に GRUB を選んでいた マンドラインで作業を進めます。 こでは、プートセレクタとして起動した GRUB のコ を押すと入れる対話モードでもおこなえます。 す。また、システム起重加芋の GRUB のプロンプトで c Linux の動作中でも /sbin/grub コマンドで実行できま に GRUB を書き込みます。 GRUB のインストールは、 具体的には、 /dev/hdc のディスクの MBR に新た ません。 ら、忘れすにプートローダをインストールしなければなり ドディスクのみでは起、きないことになります。ですか クにはプートローダは入っていません。当然、そのハー ハードディスクに入れ替えたときも、そのハードディス また、不幸にもハードディスクか壊れてしまい、新しい のです。 にしか入っておらす、 /dev/hdc からは起動できなかった ートローダがインストールされると思いきや、 /dev/hda /dev/mdl の実体は hdal と hdcl なので、その両方にプ である GRUB を /dev/mdl にインストールしました。 ーしッコー " トール時の、、プートローダの設疋では、プートローダ 定でインストールされていなけれはなりません。インス ートローダである GRUB が適切な場所に、適切な設 ハードディスクから Linux か起動するためには、プ です。そこで、以下て紹介する作業を忘れないようにしま 原因はプートローダがインストールされていなかったため ハードディスクだけを使って起動けることはできました ) 。 ら OS を起動できませんでした ( プライマリ・マスターの UNIX MAGAZINE 2003.6