Hatena::ブログ(Diary)

Magical Diary このページをアンテナに追加 RSSフィード

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 見ておけばいいと思う。

http://wiki.openvz.org/

*1:あまり好意的な使い方ではないようだ。

*2:barrierとlimitの意味リソースによって異なる

*3DTIでは採用していない。

*4:OpenVZには無い。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/hirata_yasuyuki/20110103/openvz_virtuozzo_faq