harry’s memorandum

おれおれメモ

XenServer6.2で俺的にはほぼ完璧になった

ついに Xenserver 6.2 がリリースです。
http://www.xenserver.org/
http://sourceforge.jp/magazine/13/06/28/151500



XenServer6.2がOSSになったことが理由なのか知りませんが、有償の機能だったHA(High Availability)やDMC(Dynamic Memory Control) も普通に使えるっぽいです。VMwareHyper-Vではメモリバルーニングやダイナミックメモリは無償版でも普通に使えいたけどXenServerの無償版ライセンスでは使えなかったので、非常に嬉しいです。

私がXenServerを押している理由は、vCenterやSystemCenterのようなものを導入しなくても、ホストのどれか1つが統合管理(Control Domain)してくれるので、別途サーバを用意する必要がないというところです。無償で統合管理の機能があるので、VMテンプレートやライブマイグレーションも普通に使えます。だいたいはXenServerで事足りるのですが、メモリ管理だけは他の仮想化製品(無償版)と比べて若干の機能不足を感じていましたが、XenServer6.2でやっと無償でDMCが使えるので、これでほぼ完璧になりましたよ!!

無償版だと使えなかったDMCのタブの内容。
f:id:dharry:20130629133156p:plain

DMCはメモリの下限と上限を設定するだけ。
f:id:dharry:20130629133205p:plain

やったね!

Windows8/Windows2012のRDP8

仕事柄、新しいWindowsやLinuxディストリビューションがリリースしたときは、リリースノートぐらいはみているのですが、Windows8/Windows2012に関してはあまり見ていなかったので、休み中に斜め読みしていたら、これはこれは...楽しい機能が結構増えていたんですね。

RemoteFXは、USBのリダイレクトもサポートしている。この機能は、クライアント デバイスのUSBをダイレクトにVDI上で動作しているOSにマッピングする(1つのUSBデバイスを複数のOSを同時に利用できるわけではない)。この機能を利用すれば、シンクライアントのUSB端子に接続したUSBメモリ、プリンタ、Webカメラ/ビデオ、USB電話機などが、VDI上で利用できる。

http://cloud.watch.impress.co.jp/docs/column/2012lab/20121026_568604.html

クライアントのUSBと仮想マシンのUSBをマッピングできるってのは素晴らしい。

XenServerの仮想ディスク拡張

XenServerの仮想ディスク拡張はNFS VHDだとGUIで簡単にできるけど、LVHDの場合はCLIで変更が必要なもよう。
CITRIXのナレッジに説明あるけど、微妙に古くてコマンドオプションも違ってたりするので備忘録として書いておく。
https://support.citrix.com/article/CTX125970

拡張するVMを探してUUIDを覚えておく。

$ xe vm-list

VMのVDI(Virtual Disk Image)のUUIDを調べる。

$ xe vm-disk-list uuid=<vmのuuid>

sr-name-labelと書いてあるのがVDI(Virtual Disk Image)。UUIDを指定してのサイズを変更する。

$ xe vdi-resize uuid=<vdiのuuid> disk-size=64GiB

あとはOSからディスク拡張する処理を行なって終了。WindowsもLinuxも便利になりましたね。

XenServerのrootパーティションを大きく取る方法

XenServerはインストールすると、rootパーティションが4GBしかなくて結構いやんな感じです。
稼働するVM数が多いとログの溜まり方が結構な量になってディスクフル、というお決まりのパターンで泣いている人も多いと思います。

http://rackerhacker.com/2012/01/13/xenserver-6-disable-gpt-and-get-a-larger-root-partition/
とりあえず、インストール時に

  1. [F2-Advanced]
  2. shell と入力してEnter
  3. シェルモードで/opt/xensource/installer/constants.pyを修正
  4. root_sizeを検索して 4096 を任意のサイズに変更
  5. exit後にインストール画面に戻るので、そのままインストール

悩みは一気に解消ですね。
私はroot_sizeだけじゃなくてDOM0_MEMのサイズも少し多めに変更しています。

その他

Centosなどのグラフィカルインストールは、インストール時のオプションをつける。

 graphical utf8 vnc ip=<ipaddr> netmask=255.255.255.0

Please manually connect your vnc client to to begin the install というようにメッセーじがでるので、vncclientを使ってip:sessionをつけて接続するだけ。

VirtualBoxのAPIで楽しく仮想化ライフ (1)

周りがマックばかり購入するので、カッとなって Thinkpad X1 を購入しました。まずはUbuntu12.04にVirtualboxを入れて遊んでいます。ほんとSandyBridgeとSSDの速さは恐ろしいものがありますね。AMD信者としてはどうしていいのかわからない気持ちになります。

とはいえ、怒ったり泣いたりしても仕方がないのでVirtualBoxAPIで色々遊んでみることにしました。

rubyのgemによさげなものがあったので。まずはインストール。

$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
$ sudo gem install virtualbox
Fetching: ffi-1.0.11.gem (100%)
Building native extensions.  This could take a while...
Fetching: virtualbox-0.9.2.gem (100%)
Successfully installed ffi-1.0.11
Successfully installed virtualbox-0.9.2
2 gems installed
Installing ri documentation for ffi-1.0.11...
Building YARD (yri) index for ffi-1.0.11...
Installing ri documentation for virtualbox-0.9.2...
Building YARD (yri) index for virtualbox-0.9.2...
Installing RDoc documentation for ffi-1.0.11...
Installing RDoc documentation for virtualbox-0.9.2...

VMの一覧を取得。あら簡単。

require 'virtualbox'
require 'pp'

vm = VirtualBox::VM.all
vm.each {|v|
  pp :name => v.name, :uuid => v.uuid, :state => v.state
}

#=> 
#  {:name=>"windowsxpps3",
#   :uuid=>"0f264a29-2e96-4fd5-8870-6df96fe334fe",
#   :state=>:running}
#  {:name=>"debian6",
#   :uuid=>"18f307e9-173e-42d4-b3bd-39665af9b176",
#   :state=>:running}
#  {:name=>"ubuntu1204",
#   :uuid=>"edba9b7a-c28b-4469-9256-566c6e27641a",
#   :state=>:running}

起動していないVMを起動してみる。あらこれも簡単。

vm.each {|v|
  v.start unless v.running?
}

かなり便利な感じなので、もう少し使い込んでみたいと思います。