アーカイブ

2009 年 9 月 のアーカイブ

keitairc-2.0b12

2009 年 9 月 25 日 コメントはありません

keitairc 2.0b12をリリースしました。

なんもなければ、このまま2.0になる予定。

2.0出すのにどんだけかかってんだとかいうツッコミはしないように(わら

b11からiPhone/iPod touch UIを大幅に修正してそれなりに使えるようになってる
ので、iPhoneユーザで古いもの使ってるような人は新しいのにしたほうがいいです。

今回はなんとなくdebianパッケージも置きました。

ダウンロードはこのあたりから。

Linux software raid (md)にon lineでデバイスを追加してサイズを拡大してみる

2009 年 9 月 23 日 コメントはありません

Linux Software RAID (md)の onlie resizeの続編的ですが。

このmdは紆余曲折あって(?)現在は1TB HDD 5本でRAID5(スペアなし)という構成になっています。

が、なんとなく若干手狭な感じが出てきました(debian の iso imageにBDとか入ってきた
せいか、油断するとあふれることが…)

そこで、少し前からkernelでサポートされた「mdにデバイスを追加してでかくしてみる」ことを
してみましょう。1TBを5本→1TBを6本の構成にしてみます。

最初はこんな感じ。

$ lsscsi
[6:0:0:0]    disk    ATA      WDC WD740GD-00FL 21.0  /dev/sda
[8:0:0:0]    disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdb
[11:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdc
[13:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdd
[14:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sde
[16:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdf
[18:0:0:0]   cd/dvd  Optiarc  DVD RW AD-7170A  1.02  /dev/sr0
$ df /storage
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/md0             3845731848 3078934784 766797064  81% /storage
$ df -h /storage
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/md0              3.6T  2.9T  732G  81% /storage
$ sudo mdadm --misc --detail /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Fri Oct 17 21:15:30 2008
     Raid Level : raid5
     Array Size : 3907039744 (3726.04 GiB 4000.81 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
   Raid Devices : 5
  Total Devices : 5
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Sep 22 08:58:55 2009
          State : clean
 Active Devices : 5
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : 7b919d4f:b9e7742c:84bd942a:d4b8378f
         Events : 0.19904

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       2       8       17        2      active sync   /dev/sdb1
       3       8       81        3      active sync   /dev/sdf1
       4       8       65        4      active sync   /dev/sde1

HDDはSATA/SASのエンクロージャに全部ささってますし、最近のSATAの
デバイスであれば(少なくともahciの一部、sata_sil24、sata_mvはOk)hot plugで
つなげば認識してくれるので、無造作に(物理的に)HDDをさして認識させます。

$lsscsi
[6:0:0:0]    disk    ATA      WDC WD740GD-00FL 21.0  /dev/sda
[8:0:0:0]    disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdb
[11:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdc
[13:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdd
[14:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sde
[15:0:0:0]   disk    ATA      WDC WD10EADS-00M 01.0  /dev/sdg
[16:0:0:0]   disk    ATA      WDC WD10EACS-22D 01.0  /dev/sdf

/dev/sdgが増えました。

fdisk とかでパーティションを一つだけ切って、タイプを Linux raid autodetect
(0xfd)にしときます。

$ fdisk -l /dev/sdg

Disk /dev/sdg: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xfec868df

   Device Boot      Start         End      Blocks   Id  System
/dev/sdg1               1      121601   976760001   fd  Linux raid autodetect

次にmdにこのHDDを追加します。

$ sudo mdadm /dev/md0 --add /dev/sdg1
mdadm: added /dev/sdg1                   
$ sudo mdadm --misc --detail /dev/md0
/dev/md0:                                
        Version : 0.90                   
  Creation Time : Fri Oct 17 21:15:30 2008
     Raid Level : raid5                   
     Array Size : 3907039744 (3726.04 GiB 4000.81 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)  
   Raid Devices : 5                                  
  Total Devices : 6
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Sep 22 09:08:50 2009
          State : clean
 Active Devices : 5
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : 7b919d4f:b9e7742c:84bd942a:d4b8378f
         Events : 0.19909

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       2       8       17        2      active sync   /dev/sdb1
       3       8       81        3      active sync   /dev/sdf1
       4       8       65        4      active sync   /dev/sde1

       5       8       97        -      spare   /dev/sdg1
$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdg1[5](S) sdc1[0] sde1[4] sdf1[3] sdb1[2] sdd1[1]
      3907039744 blocks level 5, 64k chunk, algorithm 2 [5/5] [UUUUU]

unused devices: 

こんな感じでスペアとして追加されます。

でもって、RAIDデバイスの数を変更します。
変更には mdadmの –grow オプションと –raid-devicesを組み合わせて指定します。

$ sudo mdadm /dev/md0 --grow --raid-devices=6
mdadm: Need to backup 1280K of critical section..
mdadm: ... critical section passed.

ここまでは、とりあえず数秒で終了します。

で、ここからRAIDの再構成が行われますがこれがものすごく時間がかかるので
気長に待ちましょう。

$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdg1[5] sdc1[0] sde1[4] sdf1[3] sdb1[2] sdd1[1]
      3907039744 blocks super 0.91 level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU]
      [>....................]  reshape =  0.0% (279424/976759936) finish=1951.8min speed=8337K/sec

unused devices: 

mdのサイズにもよると思いますが、今回のサイズだと丸一日はかかるつもりで
いないとダメです(わら

この間もmdデバイスはon lineなので、通常どおり使用できます(が、まぁ今回の構成だと
このrebuild中にHDD一本でも死ぬとアウトなわけですが(わら 基本ここにはmirrorしか
入って無いので最悪死んでも復元できるので気にしない。もちろん用途によっては、
もう少し冗長性をとりましょう)

ただし、このrebuildが終わらないと「mdとしてのサイズが以前のまま(デバイス追加
する以前のサイズのまま)」なので、以下のファイルシステムのresizeはできません。

でもって、rebuildが終わったのを確認したら、ファイルシステムをresizeします。

$ sudo resize2fs /dev/md0
resize2fs 1.41.9 (22-Aug-2009)
Filesystem at /dev/md0 is mounted on /storage; on-line resizing required
old desc_blocks = 233, new_desc_blocks = 292
Performing an on-line resize of /dev/md0 to 1220949920 (4k) blocks.

これも容量によると思いますが、30分くらい待つと完了。

$ df /storage
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/md0             4807165280 3089638432 1717526848  65% /storage
$ df -h /storage
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/md0              4.5T  2.9T  1.6T  65% /storage

ほい、できました。

カテゴリー: Linux タグ: , , , ,