2011年01月03日
■OpenVZ/Virtuozzo (DTI VPSなど) の利用者向け便利情報
DTIのServersMan@VPSなど、OpenVZ/VirtuozzoのVE (仮想環境) を利用している場合に便利な情報を書いてみる。
OpenVZ/Virtuozzoの仕組み
一言で言えば、FreeBSD Jailと類似している。(かなり高機能だが。)
OpenVZ/Virtuozzoは HWN (hardware node; ホスト側OS) とVE (virtual environment; ゲスト側OS) がカーネル・ファイルシステム・プロセス空間を共用しているため、以下のような制限がある。
- kernel周りの入れ替えは出来ない。
- sysctl -wや/proc/sys以下への書き込みによるカーネル設定の変更は出来ない。
- 時刻を設定することが出来ない。(HWN側で設定する)
- スワップを設定することが出来ない。
- その他もろもろ
リソース
プロセス数やメモリ使用量やその制限状況は/proc/user_beancountersを読み出すことで確認することが出来る。(rootのみ読み取り可能。) ちなみに "bean counter" は経理担当者・会計士という意味。*1
# cat /proc/user_beancounters
ここで、heldは現在の値、maxheldは直近に集計した時点の最大値、barrierとlimitは制限値や保証値*2、failcntがリソース割り当てに失敗した回数を表す。
VPSでfailしやすいリソースは、プロセス数 (numproc)、メモリ (vmguarpages=保証値、privvmpages=最大値)、TCPソケットの同時接続数 (numtcpsock) なので、この値を注意して見ておくと良い。保証値を超えた分はOOM killerで停止される可能性があるため、安定して運用するためにはこの範囲内で動作させる必要がある。
なお、商用版のVirtuozzo*3ではPPP (Parallels Power Panel) やVZPP (Virtuozzo Power Panel) からResource Alertを確認する事ができるように設定してあることが多い。
ネットワークインターフェイス
ネットワークインターフェイス名はethではなくvenetとなるため、ethのMACアドレス (HWaddr) をチェックしているソフトが動作しない。(技術的な理由と言うよりは、ライセンス確認のために行っていることが多い。)
プロバイダの操作を制限出来るか
プロバイダがVPS内を操作することが出来ないような設定は出来ない。たとえhosts.allow/hosts.denyでsshのアクセス制限をした場合でも、HWN側からvzctlコマンドでVE側にログインすることや、コマンドを直接実行することが出来る。
VE内の全プロセスはHWNからは全て操作可能のため、直接停止などのシグナルを送信することも可能。(HWNからvzps*4などを利用するとVE内のプロセスを見やすく表示することが出来る。)
ファイルシステムはHWNの /vz/root/$VEID 以下にそのまま展開されているため、HWN側から直接そのまま操作することが可能。
情報源
とりあえず OpenVZ Wiki 見ておけばいいと思う。
- 61 http://twitter.com/
- 23 http://longurl.org
- 20 http://pipes.yahoo.com/pipes/pipe.info?_id=3eebace824bb60a10f13c841c2c64478
- 19 http://twitter.com/kunihirotanaka/status/21764987865272321
- 16 http://pipes.yahoo.com/pipes/pipe.info?_id=faa858a20082ef6d25ad27557e37e011
- 15 http://reader.livedoor.com/reader/
- 15 http://tumblr.xn--y8jmg4a9b7g.jp/post/2582080797/dti-vps-magical-diary
- 14 http://pooh.gr.jp/
- 14 http://yamagata.int21h.jp/d/
- 13 http://www.google.com/reader/view/
