22 10月 2011 @ 3:46 PM 

LinuxでソフトウェアRAID5をくむならmd使うことになるわけで、作った。
色々と問題があったんだけども。

とりあえず、LVMと組み合わせようかとも思ったけど、組み合わせたところでメリットが見あたらなかったので今回は普通に構築した。

まず、RAID5に利用するパーティションを用意。
今回は1.5Tのパーティションを5つ。
sda3, sdb3, sdd1, sde1, sdf1
である。
パーティションタイプは0xfd(linux RAID auto detect)。
で、

# mdadm --create /dev/md2 --verbose --level=5 --raid-devices=5  /dev/sd[ab]3 /dev/sd[def]1

で最初作ったんだけど、アレイのリビルドが異常におそい。
4M/sくらいとか。
8000分以上とかなめてんの。

[>....................] resync = 1.6% (23715200/1465134592) finish=8221.9min speed=2921K/sec

チャンクサイズの問題だろうと思ったんだけど、まあ一旦構築したアレイのチャンクサイズは変更できないぽい。
ということで、チャンクサイズを指定して作り直す。
細かい容量なんて気にしないでどんと1024指定。

# mdadm -S /dev/md2
# mdadm --create /dev/md2 --verbose --level=5 --raid-devices=5  --chunk=1024 /dev/sd[ab]3 /dev/sd[def]1

当然作り直したらファイルシステムもなくなっていた。
まあ仕方ない。
これでいいだろう、と、様子をみてみると、なぜか一本スペアマークがついている。

md2 : active (auto-read-only) raid5 sdf1[5](S) sde1[3] sdd1[2] sdb3[1] sda3[0]
      5860536320 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [5/4] [UUUU_]

んーと。
とりあえずメタデータを掃除してやろう。

# mdadm -S /dev/md2
mdadm: stopped /dev/md2
# mdadm --misc --zero-superblock /dev/sda3
# mdadm --misc --zero-superblock /dev/sdb3
# mdadm --misc --zero-superblock /dev/sdd1
# mdadm --misc --zero-superblock /dev/sde1
# mdadm --misc --zero-superblock /dev/sdf1
# mdadm --create /dev/md2 --verbose --level=5 --raid-devices=5  --chunk=1024 /dev/sd[ab]3 /dev/sd[def]1

今度はうまくいったようだ。

# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active (auto-read-only) raid5 sdf1[4] sde1[3] sdd1[2] sdb3[1] sda3[0]
      5860536320 blocks super 1.2 level 5, 1024k chunk, algorithm 2 [5/5] [UUUUU]
        resync=PENDING

md1 : active raid1 sda1[0] sdb1[1]
      272960 blocks [2/2] [UU]

ということでアレイの情報を/etc/mdadm/mdadm.confに記述する。

# mdadm -Ds | grep md2 >> /etc/mdadm/mdadm.conf

mdadm.confにDEVICEの記述がないなら

DEVICE partitions

とでも記述しておけばいい。
個別に記述しても良いけどめんどくさい。

あとは普通にmke2fsとかしてファイルシステムを作ってfstab書いたりして使えばOK。

リビルドの速度は10倍になった。

[>....................]  resync =  2.4% (36325084/1465134080) finish=557.6min speed=42699K/sec

Posted By: ゆ。
Last Edit: 22 10月 2011 @ 03:50 PM

EmailPermalinkComments (0)
Tags
Tags:
Categories: Linux, PC
 22 10月 2011 @ 1:18 AM 

カーネル2.6.32-5でなんかI/O周りでkernel OOPSをはくので、むしゃむしゃしてkernelのバージョンをあげたんですよ。
でね、うちはxen使ってDomUが二つ動いていまして、Dom0はkernel 3.0.0-2で問題なく動いたんだけど、DomUの片方はブートしないでござるの巻きに陥ったわけでして、仕方ないのでそっちは2.6.32で動かしたんですよ。
で、色々と動作確認しているうちに、NFSでマウントしていたディレクトリのオーナーとグループがnobody, nogroupになってることに気づいたわけですよ。
そこから色々と試していくうちにわかったのが、NFSサーバのカーネルが3だと2.6でNFS接続するとnobody, nogroupになるということ。
ああ、ちゃんと共有対象ディレクトリのクライアントとサーバのユーザ名およびuid, グループ名およびgidは同じですよ。
2.6がサーバなら3がクライアントでも2.6がクライアントでも問題なし。
3がサーバの時、クライアントが3なら問題ないけど2.6だとだめ。
オプションでall_squashつけてanonuidとanongid設定しても駄目。
軽く数時間はまりましたよ。
とりあえずカーネルが更新待ちだなー。

追記
やっぱりall_squashとanonuidとanongidでいけました。
うそつきましたごめんなさい。
all_squashで全員nobody, nogroup扱いにして、anonuidとanongidでnobody, nogroupのIDを実際に動作させたいユーザのIDにマッピング。


Posted By: ゆ。
Last Edit: 22 10月 2011 @ 03:52 PM

EmailPermalinkComments (0)
Tags
Tags: ,
Categories: Linux, PC

 Last 50 Posts
 Back
Change Theme...
  • Users » 100
  • Posts/Pages » 314
  • Comments » 177
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight