タグ別アーカイブ: XFS

RAIDで作成したmdをフォーマットしてマウントするまで

こんにちは。

先日ubuntuでraidを構築したんですが、まだマウントもしていなかったのでマウントしてみます。

まずいきなり問題が発生です。
前回raidを作成するときにmd0というデバイス名で作っていたんですが、その後の何度かの再起動で番号が変わってしまったようです。

shell> ls /dev/md*
/dev/md127

/dev/md:
bush:0

よくはわからないですがmd127というデバイスがあります。これがどうやら先日つくったraidのようです。念のためmdadmコマンドで確認しておきます。

sudo mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Fri Sep 26 09:19:13 2014
     Raid Level : raid5
     Array Size : 14650675200 (13971.97 GiB 15002.29 GB)
  Used Dev Size : 2930135040 (2794.39 GiB 3000.46 GB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Fri Oct  3 15:14:31 2014
          State : clean
 Active Devices : 6
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : bush:0  (local to host bush)
           UUID : c3db0680:1c5c7986:c90a298a:96a9efb0
         Events : 99

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       16        1      active sync   /dev/sdb
       2       8       32        2      active sync   /dev/sdc
       3       8       48        3      active sync   /dev/sdd
       4       8       64        4      active sync   /dev/sde
       6       8       80        5      active sync   /dev/sdf

ちなみに-Dは–detailと同じ意味らしいです。
ちゃんと/dev/sd{a,b,c,d,e,f}で構成されているraidのようですね。
なぜ番号が変わったかは…わかりません!なぜなのでしょうか。

と思ったら参考にしたサイトに「md*の番号は変わる」との記載がありました。なるほど!為になります。

さてこのmdをXFSでフォーマットしてマウントしていきます。
とはいってもmkfsでファイルテーブル(?)を書き込んでやるだけです。

shell> mkfs.xfs -f /dev/md127
meta-data=/dev/md127             isize=256    agcount=32, agsize=114458496 blks
         =                       sectsz=4096  attr=2, projid32bit=0
data     =                       bsize=4096   blocks=3662668800, imaxpct=5
         =                       sunit=128    swidth=640 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

これで完了です。
試しにマウントしてみます。

shell> sudo mkdir -p /mnt/hoge
shell> sudo mount -t xfs /dev/md127 /mnt/hoge

バッチリですね!

最後に自動マウントをさせてみたいと思います。どうやらmd*の番号の部分が変わってしまうらしくUUIDでマウントさせるといいらしいです。

UUIDの確認はtune2fsというコマンドでできるらしいのですが、このコマンドはファイルシステムがext2/3/4じゃないとだめらしいです。
今回のファイルシステムはxfsを使っていたので他の手段になります。

ググってみるとblkidというコマンドでできるようです。これで出力されるUUIDをマウントさせます。

shell> sudo umount /mnt/hoge
shell> blkid /dev/md127
/dev/md127: UUID="f8a0fa74-9e9d-48b2-a497-e593a6444572" TYPE="xfs"
shell> sudo vi /etc/fstab
...省略...
UUID=f8a0fa74-9e9d-48b2-a497-e593a6444572  /mnt/hoge      xfs     noatime 0           0
shell> sudo mount -a
shell> mount -v
...省略...
/dev/md127 on /mnt/hoge type xfs (rw,noatime)

バッチリですね!

今回参考にしたサイトです。
[Linux] 外付けUSBハードディスクをまるごとxfsでフォーマットする方法 – SumiTomohikoの日記

mdadmを使ったRAIDの構築 – 前人未踏の領域へ

raid – Ubuntu Server 12.04, MDADM device number suddenly changes? – Ask Ubuntu

Ubuntu 14.04 LTS でRAID5を構成してみた

宅内のNASがそろそろ一杯になりそうなので半年前程から構想していたファイルサーバの新設に着手した。

構成としては3TB*6なHDDでUbuntu 14.04で動かす。
サービスとしてはNFSを中心にSamba、FTPなどのファイル関係のサービスを立てる予定。

ちなみにOSの選定はFreeNASと迷ったんだけれどFreeNAS(というかFreeBSD)がなかなかNFSv4を取り入れてくれないことと、湯バード先生からの「Ubuntuでやれば簡単だよそんなん」という強い後押しをもらって助けてもらいながら着手。

 

というわけでまずはベースとなるRAIDの構成。

一応ファイルサーバなので冗長化構成にしようとおもっていて、3TB*6をRAID5かRAID6かに。もともと2TBをFreeNAS 0.7系のRAIDZで運用している。で、今回の新設&リプレイスでも冗長化をしたいなぁ、と。ちなみに前回のファイルサーバでは幸いな事に障害は発生せぬまま終わりそう。

で、いままであまり気にせずにRAIDとかやってたんだけれど、6台だと容量の効率とか耐障害性とか色々あるなぁということで、RAIDについて調べてみた。

下記のサイトが非常にわかりやすくまとめてくれていた。


HDD6台でRAID5構成
(0.03^6)+(0.03^5*0.97*6)+(0.03^4*0.97^2*15)+(0.03^3*0.97^3*20)+(0.03^2*0.97^4*15)=0.01245587
→障害確率1.25%(3台構成の時の5倍!)
※HDD有効利用率は83%

HDD6台でRAID6構成
 (0.03^6)+(0.03^5*0.97*6)+(0.03^4*0.97^2*15)+(0.03^3*0.97^3*20)=0.000504418
 →障害確率0.05%
 ※HDD有効利用率は67%

RAID構成のHDDの障害発生率一覧 | Asterisk Staff Blog

 

なるほど、RAID6(HDD二台を冗長化用)とすると障害発生率がかなりひくくなる、ということらしい。

でも3TB*6でも12TBしか容量を使うことができず、容量の実効効率が…、ということでRAID5を選択。

 

さてではRAIDの種類も決まったことで早速RAID5の構築へ。

下記のサイトを参考にしながら取り組みました。

Ubuntu mdadm その54 – RAID 6アレイを作成する基本的なコマンドの例・作成したアレイの確認と利用 – Ubuntu kledgeb

今回の構成ではUSBメモリにOSを入れてある。HDD等の構成は以下の通り

HDD1 /dev/sda
HDD2 /dev/sdb
HDD3 /dev/sdc
HDD4 /dev/sdd
HDD5 /dev/sde
HDD6 /dev/sdf

USBメモリ(ブートディスク) /dev/sda

この中でHDD1〜6をRAID5にする。

shell> sudo mdadm --create /dev/md0 --level=raid5 --raid-devices=6 --chunk=512 --verbose /dev/sd{a,b,c,d,e,f}

これでraidが構成される。確認は/proc/mdstatを見る

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdf[6] sde[4] sdd[3] sdc[2] sdb[1] sda[0]
14650675200 blocks super 1.2 level 5, 512k chunk, algorithm 2 [6/5] [UUUUU_]
[==========>..........] recovery = 54.5% (1598589964/2930135040) finish=219.0min speed=101293K/sec

unused devices: <none>

この状態でRAIDの同期中なのであとは同期完了まで待てばOK!