text.ssig33.com

created at 2012-02-27 08:00:36 UTC

kvm を使ってみての感想を書く。正月に思いたって自宅サーバーの全てを仮想化した。 kvm を使っている。この二ヶ月間は安定して稼動している。非常によい。

ハードウェア

VT-x とか AMD-V が効く CPU があればいいんじゃないでしょうか。 IO MMU 仮想化(VT-d, AMD-Vi) があると USB2.0 とかを楽に使える。あるに越したことはないがこれをやるとコストが非常にはねあがる。

  • CPU: Pentium G630T (6000 円ぐらい)
  • マザーボード: mini-ITX で LGA1155 の適当なやつ(6000 円ぐらい)
  • メモリ: 16GB (9000 円弱)
  • ケース: 60-90W ぐらいの AC アダプタのついた適当なやつ(10000 円ぐらい)
  • HDD: 2TB (1 万円)

みたいな構成でだいたい 4 万円前後で組める。ぼくは既存の資産を流用出来る感じだったので、初期投資は 2 万円ぐらいに抑えることが出来た。

Pentium G630T という CPU は非常に安価であり、 TDP は 35W と(Fusion APU や Atom ほどではないにせよ)かなり低い。 TDP の値は多分内蔵グラフィックコア込みなので、そちらを使用しないサーバーではさらに電力を消費しない。たぶん 20W ちょい。 65W の AC アダプタのマシンでも安定して稼動する。貧者の仮想化には一押し。

金があるなら Core i5 の 35W のやつ(IO MMU 仮想化がある)とかもいいと思う。消費電力を徹底して抑えたいなら Fusion APU もアリだと思うけどメモリまわりなど制約が大きいし TDP の差も 10W ぐらい。微妙。

環境構築

debian sid がよい感じがする。とりあえずはじめてみる、という段階ではこの記事が非常に役にたった。

基本的にマシンを作成する際の流れは、

  1. ディスクイメージを作る
  2. マシンを作成 & 登録 & インストール開始
  3. VNC で繋いでインストール

というだけなので非常に単純でよろしい。

ディスクイメージには raw 形式と qcow2 形式が使えて、 qcow2 形式はスナップショットを取ったり、差分ディスクイメージを使ってインストール作業の重複を回避したりとか、そういう便利なことが出来る。またディスク容量をいきなり占有したりしないで必要な時に必要なぶんだけ確保する。

ただ qcow2 は raw 形式より遅いと言われているし実際ベンチマークを見ると遅い。ただ僕はこの遅さが問題になったことはまだない。

なお qcow2 の差分ディスクイメージをバックアップや世代管理に使用するというアイディアは非常によくない。素直に LVM とかを使うのがよい。

再起動

当たり前だが仮想マシンは気軽に再起動できる。何か問題があっても VNC 経由でコンソールに入ることが出来る。外出先から必要に応じて何の心配もなくマシンを再起動できるのはとてもよいことだ。

サスペンド

サスペンドは非常に有用な機能で、サーバーのバックアップを簡単にとれる。サスペンド -> ディスクイメージのバックアップ -> レジューム という動作をするスクリプトを書いておけば簡単にサーバーをバックアップ出来る。ディスクイメージのバックアップに LVM のスナップショットを使用するようにすればダウンタイムは最小限に抑えられる。

基本的に諦めたほうがいいこと

USB は諦めたほうがいい。 ehci を有効化する方法あるにはあるらしいのだが非常にめんどくさいっぽい。 USB1.1 で大丈夫な機材なら、まあ動く。

なんで今さら自宅サーバー?

世の中クラウドサービス全盛で、 heroku や App Engine のようなアプリケーション実行環境や、 Amazon EC2 のようなレンタルサーバーが勢いを極めている。こういうの素直に使えればそれが一番いいのだけど、ストレージが非常に高い。自宅サーバーだとストレージ 10TB とか用意しても初期投資 5 万円ぐらいで済む。

kvm は(主に libvirt のお陰で)、非常に使い勝手がよい。 Amazon EC2 にインスタンスを立てる感覚でマシンを作れる。とてもよい。