2009年11月6日金曜日

ZFS上のiSCSIターゲットをサイズ変更、ディスクを拡張して使う(Linux ext3編)

前編、Windows NTFS編からの続きー

 
 

iSCSIターゲットのサイズを拡張して環境変えずに使ってしまおうという目論見のLinux編。
ZFS+iSCSIについては前編に解説
 

使ったのはCentOS5、事前に断っておきたい事ですが記事内では普通のパーティションテーブルに作ったext3を対象に拡張しちゃってますが、普通は初期構築の時点でLVMでやるべきだと思います。
 
追記:LVMやりました。
 


今回拡張に使ったlinuxの環境


すでに結構特殊と言えなくもないが、テストに使った環境について。
 

VIrtualBoxでiSCSIデバイスを管理下のディスクにして、そこに直接CentOS5をインストール。
パーティションはこんな感じ、"/"が一番後ろにあるのがズルいっちゃあズルい環境。











sda1 sda2 sda3
/boot SWAP /

 

最初は8GBのHDDにこれをインストールしました。
 
 

ZFSボリューム拡張してから起動してみる


稼働中に突然拡張、そういえばしなかったなぁ、やってみればよかった。
 
ということで 8GB ⇒ 16GB に増やしたディスクでLinux起動!

容量は……
 
[caption id="attachment_1561" align="alignnone" width="728" caption="画像:増やしたHDDでまず起動"]画像:増やしたHDDでまず起動[/caption]
 
 


増えた増えた(w
もう驚かないぞ。
 

と言ってもいきなり拡張とかできない、パーティションテーブルが変わってないからだ。
さてどうしたもんか。
 
 



パーティションのサイズを変える


変えちゃうかー、パーティションの大きさ。
 

では適当なLiveCDで起動する、今回は手元にあったCentOS5.3のLiveCD。


見た目区別つかんなぁ...LiveCDから起動してますよー
 
[caption id="attachment_1562" align="alignnone" width="728" caption="画像:LiveCDからパーティション操作"]画像:LiveCDからパーティション操作[/caption]
 
 

では操作するディスクに狙いを定め、とにかく "fdisk" と"e2label"コマンドで以下の通り!

  1. "/"を削除 = "/dev/sda3" のパーティション消滅

  2.  
  3. "/dev/sda3" を再作成、残り最大限割り当て
    ※開始シリンダは消去前と死んでも合わせろ!

  4.  
  5. タイプ指定 82 してテーブル書き込み

  6.  
  7. パーティションラベルに"/"指定

  8.  

 

冒険のように見えますか? そうですねこりゃあ大冒険です
 
幸いlinuxのfdiskはパーティションのブートセクタを弄らないのか再作成するのか、このやり方でも後から中身を認識できちゃう。
 
Windows(DOS)のFDISKでやったら即死ですからね、一応HDD解析の鬼みたいな猛者にかかれば復旧の方法は有るみたいですが。
 
 
ではしれっと次に行きましょう。
 
 

ext3ファイルシステムを拡張する


パーティションの準備がすんだら、いよいよファイルシステムを拡張します。
 

シングルユーザで起動とか、甘っちょろいことなしに可能、そのためのコマンドをぶっ叩くまで。


"resize2fs" によって、パーティションの残り容量がちゃんと"/dev/sda3"に割り当てられます。
 
[caption id="attachment_1563" align="alignnone" width="728" caption="画像:ext3ファイルシステム拡張"]画像:ext3ファイルシステム拡張[/caption]
拡張完了めでたしめでたし。
ああ、結構時間かかるので気長に待ってね、たった8Gで10分くらい終わらなかったな。
 
 


あ、inodeとか?そういえば見てなかったな…(汗
いちいちリビルドみたいな事やってるから変わってるのかな。
 
 


LVMだとどうなるんだろう?


この記事の内容は、上手くいっているとはいえ色々なディスクの使用の掟などから完全に目をそむけている気がして正直お勧めはしません。
真っ当にやりたければボリュームマネージャにLVMを使用しておくべきかと思います。。。いやLVM使ってお願い。
 

さて、LVMといえど既存のディスクがいきなり拡張したらどうなるの?という質問をとある方より貰いましたが、実際問題ないと思っています。
後からできた領域は、実際最初からあって使用していなかった領域と同じ扱いになりそうです、16GBのディスクを買ってきて、8GBしかパーティション切らなかったイメージですかね。
 

最初に切ったパーティションの残り容量が0であろうが100GBであろうが、使い始めたらきっと関係ないでしょう。それがいざ拡張しようとしたときに突然現れた残り容量でも然り。
 
 

……と思うんですけどねぇ、実用のためには試してみないといけないなあ。
だれかやってみて!
 
追記:LVMやりました。
 
 
 


追記:なぜ後から拡張したいのか


だって後から容量を柔軟に追加できたら、シン・プロビジョニングが出来るじゃないですかー
今後TCO増加の重荷になりそうなストレージ関係は、裏を返せばコストを減らす事によってグリーンIT推進の原動力になる可能性も十分に秘めている、そこになんとか繋げたいんですよねー。
あとはZFSがデデュープを出来るようになれば・・・!
 

さあいつか役に立てばいいですが。