RAID組むよー

作成日 2007/07/03 いつものようにインストール画面。 ディスクは以下のようになっている。 sda 500G(HITACHI HDT72505) sdb 400G(WDC WD4000YR) sdc 500G(HITACHI HDT72505) sdd 400G(WDC WD4000YR) sde 500G(HITACHI HDT72505) パーティション分け。 最初にLVMボリュームグループの中身消さなきゃダメ。 VolGroup00のとこで削除すれば良い。 そのあと各HDDの中身を全部消す。 「空き」の状態にする。 ソフトウェアRAID以外のパーティションがあるとクローン出来ない。 sdaからsdbにクローンでコピー。 RAID 0 のみ、もしくはRAID 1のみなら、 インストール時にすぐ終わるのだが、 RAID 0+1を組もうとすると、出来ない? だからとりあえずRAID 0のみを組んでみようと思う。 sdaとsdbでね。 sdcとsddはインストール後に設定しようと思う。 sdeは今回使わない。 もし後に構成変えるならシステム用にする。 パーティションは以下の通り。 / 20G /boot 100M /tmp 5G /usr 3G swap 2048M /var 500M /home 残り ん? --------------------------------------------------------------- 「トランザクション実行中にエラーが発生」 トランザクションの実行中に次のような理由でエラーが発生しました。 ディスク容量の不足 以下のファイルシステムは要領を増やす必要があります。 571 M on /mnt/sysimage/usr --------------------------------------------------------------- だとさ。 実はこれが2回目のインストールで1回目にも出てたんだけどね。 次は簡略化して / 20G /boot 100B swap 2048M /home 残り だけにしてみた。 インストールするソフトも減らしてみた。 したら出来た。 容量に対してインストールするソフト多過ぎたのかな? でも/usrは3Gあれば足りると思ったのじゃが。 甘かったか。
2007/07/05 ディスクアレイの情報は /proc/mdstat で見れますよー。 ※ディスクアレイ…RAIDのような複数のHDDを組み合わせた記憶装置  例えば、RAID10だと、md0には{sda1,sdb1,sdc1,sdd1}の4つを組み合わせる。  ちなみに、IDEケーブルだとHDDの表記はhda,hdb…のようになる。 デバイス管理コマンド df 各ファイルシステムのサイズや使用状況の表示 オプション -k kバイト単位で表示 -h サイズに応じた単位で表示 -i iノードを表示
du 指定したファイルやディレクトリの使用容量を表示。 オプションを省略するとカレント・ディレクトリの容量を表示。 オプション -a 全てのファイルを表示 -c リストアップされたファイルの合計値を表示する。 -h サイズに応じた単位で表示する。 -s 指定されたディレクトリの合計のみ表示する。 -S サブディレクトリのサイズを含めない。
fdisk オプションを付けることでパーティションテーブルを表示させたり、 デバイスを指定することで対話的にパーティションの作成や変更、削除等を行うことができる オプション -l 指定したデバイスのパーティションテーブルを表示する。(シリンダ単位) -lu 指定したデバイスのパーティションテーブルを表示する。(セクタ単位) -s パーティション 指定したパーティションのサイズをブロック単位で表示する。 -v fdiskのバージョンを表示する。 コマンド a ブートフラグのオン、オフを行う。 d パーティションを削除する。 l パーティションタイプを一覧表示する。 m ヘルプを表示する。 n 新規にパーティションを作成する。 p パーティションテーブルを表示する。 q パーティションテーブルの変更を保存しないで終了する。 t パーティションのIDを変更する。 w パーティションテーブルの変更を保存して終了する。 参考:デバイス管理コマンド
現在はsdaとsdbでRAID1(ミラーリング)を組んでいる。 sda1〜5, sdb1〜5 sdc, sdd, sdeは分けてない。 # fdisk -l で確認できる。 では、sdcとsddを1〜5でパーティション分けをしよう。 # fdisk sdc 英語でいろいろ表示されて、 Command (m for help): と出るので、"m" とタイプして まずはコマンドを見てみる。 Command action(訳)  a ブート可のフラグをトグル  b bsdのディスクレーベルを編集  c DOSコンパチビリティーをトグル  d 区画を削除  l パーティションタイプを一覧表示  m このメニューを表示  n 新しい区画を作成  o DOS区画テーブルを新規に作成  p 区画テーブルの表示  q 変更を破棄して終了  s Sunディクスレーベルを新規に作成  t 区画のシステムIDを変更  u 表示と入力の単位を変更  v 区画テーブルの確認  w テーブルを書き込んで終了  x 上級者用コマンド と表示される。実際は英語。 新しく区画を作りたいので、"n"とタイプする。  e extended  p primary partition (1-4) と出るので、まずは基本パーティションを作る。 "p"とタイプする。 Partition number (1-4): 初期状態で作る場合は"1" First cylinder (1-60801, default 1): どこから作るかと聞かれているので、 "1"をタイプ, もしくはそのままEnterを押す。 60801という部分は、HDDの容量に応じて変化する。 Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801): どこまで作るかと聞かれているので、 bootパーティションとして100MB割り振ろうと思う。 "+100M", もしくは"13"(シリンダ数)とする。 すると、またCommandを選択する画面に戻る。 ここで"p"とタイプすると、 先ほど作成したパーティションが表示される。 ------------------------------------------------------ Device Boot  Start  End  Blocks  Id  System sdc1       1   13  104391  83  Linux ------------------------------------------------------ のようにね。 このようにして作成したい分だけ同じ作業をする。 上のIdというのはパーティションIDというものである。 Linuxのパーティションの場合は83となるらしい。 詳しくは、Commandで"l"(エル)と打つと表示される。 よく見ると、ID番号82は"Linux swap"となっている。 そう、swapのパーティションだけはIDを変更しなければならないのだ。 変更の仕方は、 Commandで"t"とタイプする。 パーティションが2つ以上あると、 Partition number (1-4): として聞かれる。 swap領域に割り当てた番号を入力する。 Hex code (type L to list codes): と出るので、ここで"82"を入力する。  (分からなくなったら"L"とタイプすれば全てのパーティションIDが見れる。) すると、 Changed system type of partition 2 to 82 (Linux swap / Solaris) みたいな感じで表示される。 もう一度、Commandで"l"と入力してやると、 Id の部分が"82"に変わってると思われ。 以上、コマンドでのパーティション分けですた。 Linuxって便利だね。 Window上でもこういうのあるのかな?? さて、sdcとsddのパーティション分けが済んだので、 次はとうとうRAIDを組むとしよう。 RAIDを組むために使うコマンドとして、 # mdadm というものがあります。 これはオプションがとても多いので、必要に応じて調べようかな。 # mdadm --detail /dev/md0 とするとディスクアレイ"md0"の詳細を見ることが出来ますよ。 RAID Levelはもちろん、RAIDを組んだ日付まで出るんだね、便利便利^^ RAID01を組みたいのじゃが、 そのためにはまずは現在動いているRAID1を止めなくてはならない。 試しにmd0からsdb1を取り外してみる。 # mdadm /dev/md0 -f /dev/sdb1 指定されたデバイスに対して不良とする # mdadm /dev/md0 -r /dev/sdb1 指定されたデバイスをアレイから除去する なんか不良ではないのに不良とするのは何か変な感じがするが。 # less /proc/mdstat で見てみると ----------------------------------- md0 : active raid1 sda1[0] 104320 blocks [2/1] [U_] md1 : active raid1 sda2[0] sdb2[1] 20482752 blocks [2/2] [UU] ----------------------------------- と、確かに取り外されているのが分かる。 こんな感じで全てのデバイスを除去する。 でもsdb1除去した後にsda1も除去しようとすると怒られる。 activeって言われますねぇ。 いろいろ調べてみたんですけども、 /etc/fstabでmd0,md1などmountしてる場所コメントアウトせんとあかんらしい。 んで、 --------------------------------------------------- #/dev/md1 / ext3 defaults 1 1 /dev/sda2 / ext3 defaults 1 1 #/dev/md0 /boot ext3 defaults 1 2 /dev/sda1 /boot ext3 defaults 1 2 ・ ・ ・ --------------------------------------------------- みたいにした。 んでrebootかけたんじゃが。 何かmount出来なかったみたいで起動時にエラー。 セーフモードで処理することになった。 viエディタでfstabの中身変えようとしたのだが、 read-only状態で書き換えれへん。 chmodで変えようとしても変えれへん。 どうしまひょ。 ちょうど良いのがありますた。 Fedora JP 掲示板 /のファイルシステムがread-onlyでmountされているので、 # mount -o remount,rw / で書き込みも可にしてあげるのであります。 ようやくfstabを編集出来るようになった。 けど、まず /etc/mdadm.conf の中身を全部コメントアウトしてみることにした。 したらmd0,md1に自動でデバイス組み込まないかなーと思ったのだ。 再起動。 相変わらずどこからかmd1, md2を読み込んでますよ。 でもいつのまにかmd0が消えてしもうた。 # mdadm --misc --stop /dev/md2 でmd2は消えた。 md1は消えない。なんでやねん? /proc/mdstat を見てみたのだが、 recovery = xx.x%とか出てた。 これが動いている間は操作出来ないとか? したら今までひたすら頑張ってる状態だったのを邪魔してたのかな??w とりあえず待ってみようか。 うーむ、やっぱ違ったらすぃ。 削除は出来まへんですた↓ しょうがないから、新しくRAID作っちゃおうということで、 --createとかで作ったわけですけども、 削除したはずのsda1もactiveだと言われる始末。 まぁ、現在動いているんだからactiveか。 結局元の設定に戻しましたー。 まぁいろいろ覚えたから良いっか。 また次の機会かなー。 mdadm(8) ver.1.0 man page [日本語] ディスクをRAIDにする
2007/07/09 今日もRAID日和ですね♪ ということで、いろいろやってるうちに訳わからなくなったので、 再インストールをすることにしました。
sda1  /boot  100M
sda2  /     30G
sda3  swap  2048M
sda5  /home  残り
でもやっぱりいくら見てもインストール時ではRAID10組めないのかな…。 mdadm使うしかないっか〜。 # mdadm -C /dev/md0 -l10 -n4 missing /dev/sdb1 /dev/sdc1 /dev/sdd1 missingとすると、デバイスを予約してくれるらすぃ。 ちなみに、-C(Create) -l(Level) -n(デバイスの数) sdaをmissingとしてるのは、現在動いているデバイスだから。 今まで無理やりRAID組もうとしてたんですね。 やっべ、途中で再起動したら設定消えた..orz もう一回設定し直しだす 参考文献 CentOS で Soft RAID1
2007/07/10 今日もRAID。毎日RAID。ニコニコ元気にRAID。アハハ。 md1, md2をmount出来なかったのは、 # mkfs でext3形式のファイルシステムじゃ無かったから。 # mkfs -j /dev/md0 と、順々にmd1, md2, md3に対してコマンド実行。 ようやくmd1,md2がmount出来ました。 んで、/パーティションである"md1"をmountして 現在稼動中のsdaの内容をcopyしようとしたのだが、 容量が足りないと怒られました。 昨日から気になってたのだが、 md1の容量をよく見るとどうも/bootパーティションにしか思えないのじゃ。 mdadmでsdb2, sdc2, sdd2を入れたはずなのに。 sdaだけインストール時にsoftwareパーティションじゃなかったから、 もしかして分け間違えたかな? じゃ… sdb1,sdc1,sdd1 → / sdb2,sdc2,sdd2 → /boot sdb3,sdc3,sdd3 → swap sdb5,sdc5,sdd5 → /home ってことですか? ありゃりゃ。 まぁ、いいか。 これでやってみるか、、 でも後から絶対混乱するよな〜、、 と思って、fdiskでパーティション分けなおしました。 んで、rebootしないと新しくなんないよー と言われたのでリブート! する前に、RAIDの設定読み込むようにしないとまた消えてしまう〜。 ということで、 # echo "DEVICE partitions" > /etc/mdadm.conf #mdadm --examine --scan >> /etc/mdadm.conf で現在のRAID設定をmdadmの設定ファイルに書き込み。 # cd /boot # mv initrd-2.6.xxx.img initrd-2.6.xxx.img.old # mkinitrd initrd-2.6.xxx.img 2.6.xxx としてRAIDの設定読み取ってくれるようにinitrdを作り直し。 さてさて、rebootしましょうか。 reboot後、ちゃんとRAID情報読み取ってくれてました。 さっきパーティション分けした分も変更してました。 んでmdadmでパーティション変更した分を用いてディスクアレイ作成し直し。 やっぱ容量多いディスクアレイは時間かかるね。 変更したらもう一度/etc/mdadm.conf再作成。 initrdももう一度作るのかな? いや、mdadm.confだけで良いか。 # mount /dev/md0 /mnt で一度/mntにmountしてから、 mnt, proc, sys, selinux, tmp, home を/mntに作り、 現在稼動中のsdaの中身を/mntにコピー。 # cp -a --target-directory=/mnt [いろいろなファイル] fstabの中身を書き換え。 /dev/md* を読み込ませるようにする。 いろいろやって再起動したら
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
の文字が…。無限ループだぁ、、 俺が何をした? 原因追求... /boot/grub/grub.conf を書き換えたり、 # grub-install /dev/sda とかしたりしたから…かな。 深いところいじるのって、怖いね。 またもや再インストールです..orz grubの設定書き換えて起動しなくなった時のために、 FDか何かに起動用ディスク作った方がいいかも。 したら再インストールしなくて良かったかもしれないのに。のにのに。 GRUBについて もう一つ。 "/boot" と "/" パーティションが分かれている場合は、
# grub-install --root-directory=/ /dev/sda
とかやらないといけないらしいよ。 ありゃりゃ。これかな? 参考:GRUBメニューが表示されなくなった 確かに、参考にしたサイトではパーティション分かれていなかったので、 # grub-install /dev/sda のみだった。ぐはっ!
2007/07/11 /boot/grub/grub.confに追加
title Fedora RAID(2.6.21-1.3228.fc7)
root (hd4,0)
kernel /vmlinuz-2.6.21-1.3228.fc7 ro root=/dev/md1 rhgb quiet
initrd /initrd-2.6.21-1.3228.fc7.raid.img
/etc/fstabも書き換え。 /, /boot, swap, /homeを/dev/md*を読み込むようにした。 今までのデバイスはコメントアウト。 grub-installしないで再起動してみるかな。 ってか、ブートディスク使って、 linux rescue と打てばレスキューモードで立ち上がるのかな。 Linux アーカイブ
2007/07/12 RAID。 できねー。 設定全然上手くいかね。 kernel panic なり GRUB stage2 GRUB stage2 GRUB stage2 GRUB stage2 ・ ・ なり表示される。 次は Software RAIDによるHDDの性能・信頼性向上 を参考にするか。 んでRAID1だけでまずやってみるかなー。 後、grub.confの中身で title Fedora RAID(2.6.21-1.3228.fc7)    root (hd4,0) のrootがhd4を指定しているのが気になる。
2007/07/13 しげふみメモ おしえてBP! linux memo Red Hat Enterprise Linux 3 システム管理ガイド っていうか、素朴な疑問。 level=10でディスクアレイを作成した場合、 どこがRAID0でどこがRAID1になるの? 最初にブートするべき場所はどこになるの? sdaだけにインストールしたなら単純で分かりやすい。 しかし、例えばRAID10を組むとする。 /bootパーティションとして、 sdb0, sdc0, sdd0の3台でmd0のディスクアレイを作成した場合。 まず最初にa,b,c,dのどこからMBRを読み込むの? いろいろと謎が深まるばかりだ。 今困った時の2chを見てたのだが、 いろいろと情報があるぞい。 俺の場合はどうしようかな。 現在HDD5台。 選択肢 ・RAID10 ・RAID5 で4台 + スペアディスク ・RAID6
2007/07/18 先生にも相談した結果、RAID5を採用することにした。 もうRAID構築ばかりに時間かけてられないしね。 支部会の資料提出が終わってからまた再開しようと思います。 調べた結果、RAID5は起動パーティションは割り振れない。 パリティデータを書き込むため、/bootや/といったパーティションは組み込めないのだ。 複数のデバイスで組み込みたいならRAID1だけ。 考えた結果、 sdaとsdbにおいて{/, /boot, swap}の3つでRAID1を組み、 sdc,sdd,sdeにおいて{/home}でRAID5を組むことにした。 すなわち、システム用とデータ用に分けたのです。 ハードディスクとRAIDの構成
レベルアレイデバイスパーティション容量
RAID1md0sda1,sdb1//boot,swap以外
RAID1md1sda2,sdb2/boot100M
RAID1md2sda3,sdb3swap2048M
RAID5md3sdc1,sdd1,sde1/home全て
RAIDを構築する by お便利.com