OpenVZの管理
VPSの設定が終わったら、続いてvzctl start vpsid の実行によってゲストシステムを起動する。vpsidにはゲストシステム作成時に割り当てたIDを指定する。
VPSの起動に関するいくつかのメッセージがコンソールに現れ、最後に「VPSを起動中...(VPS start in progress...)」と表示されるはずだ。vzlistコマンドを使えば、実行中のVPSを確認することができる。vzlistを実行すると、次のような出力が得られる。
VPSID NPROC STATUS IP_ADDR HOSTNAME 1002 4 running 10.0.1.34 vroomfondle
-aオプションを指定すると、実行中でないものも含めてすべてのVPSが表示される。VPSによるリソースの消費量を確認したいこともあるだろう。あるVPSが使っているメモリ容量を確認するには、vzcalc -v vpsid を実行する。すると、次のような出力が得られるはずだ。
Resource Current(%) Promised(%) Max(%) Low Mem 0.13 1.20 1.20 Total RAM 0.55 n/a n/a Mem + Swap 0.36 1.83 n/a Alloc. Mem 0.67 1.83 13.82 Num. Proc 0.06 n/a 0.40 -------------------------------------------- Memory 0.67 1.83 13.82
指定したVPSによるメモリの現在の使用量および割り当て量、割り当て可能な最大量が示されている。
VPS関連のその他のパラメータは-oオプションを指定することで確認できる。詳細についてはvzcalcのmanページを参照してほしい。
デフォルトでは、システムのブート時にVPSは起動されないようになっている。ほとんどの状況では、システムの再起動後にVPSのロードを行いたいと思うだろう。vzctlを使って次のように実行すれば、この設定を変えることができる。
vzctl set vpsid --onboot yes --save
vzctlユーティリティは、メモリの総容量、各種CPUリソース、iptablesモジュールへのアクセスなど、システムパラメータの設定にも使える。いくつか例をお見せしよう。
OpenVZで不満に思うのは、「あるVPSに256MBを割り当てる」といった直接的な指定ができず、2つのパラメータを調整しなければならないことと、OpenVZによるメモリの処理方法を理解しようとするにはきわめて技術的な内容のドキュメントをいくつか読まなければならないことだ。
説明を簡単にするために、メモリ容量が最低256MB、最大1GBとなるVPSの設定方法を考えよう。この場合には、vmguarpages(VPSに対して割り当てが保証されるメモリ)およびprivvmpages (認められるメモリの最大容量)の各パラメータを設定すればよい。
vzctl set vpsid --vmguarpages 65536 --save
vzctl set vpsid --privvmpages 262144 --save
メモリの容量をわざわざ計算するのではなくもっと直観的に「ページ」単位でこの設定を行う別の方法がSWsoftのフォーラムに記されていた。設定したいメモリ容量(MB)に256をかけるだけで正しい値が得られるというものだ。
vzctl set vpsid --vmguarpages $((256 * 256)) --save
vzctl set vpsid --privvmpages $((256 * 1024)) --save
詳細については、vzctlのmanページやOpenVZ Wikiをはじめとするドキュメントを参照してほしい。
各VPSに対してパラメータを設定すると、その内容が/etc/vz/conf/vpsid.confに格納される。このファイルに手作業で変更を加えるなら、vzcfgvalidateユーティリティを使うことで設定内容の誤りを防ぐことができる。
多くの場合、ホスティング環境では管理者によってrootパスワードが変更されたシステムに入る必要がある。物理的なシステムであれば、リブートを行ってからシングルユーザモードでrootアクセス権を得て管理タスクを処理する必要があるが、OpenVZであれば、該当するハードウェアノード(ホストシステム)にログインし、次のようにログイン用のvzctlを実行するだけで済む。
vzctl enter vpid
これでVPSにrootとしてログインできるのだ。何であれ実行が必要な管理タスクを終えた後は、exitと入力するだけでホストシステムのセッションに戻れる。また、あるユーザのパスワードをリセットしたければ、--userpasswdオプションを使って次のように実行するだけでよい。
vzctl set vpsid --userpasswd user:passwd
指定したユーザが存在しない場合は、新たに作成される。
実際にVPSに入らずにVPSのコマンドを実行したい場合は、vzctlのexecパラメータを使えばrootとしてコマンドを実行できる。たとえば、DebianのVPS内で手早くアップグレードを実行するには次のように実行する。
vzctl exec vpsid apt-get upgrade
こうするとVPSそのものの内部でapt-get upgradeが実行されるのだ。
またVPSをシャットダウンする場合は、vzctl stop vpsid と実行すればVPS内でクリーンシャットダウンが行われる。vzctl restart vpsid の実行によってVPSを再起動することも可能だ。なお、VPSのシャットダウンや再起動はVPS内で普通に実行することもできる。
VPSの終了方法
以上でゲストシステムの操作は十分に行えたので、そろそろ終わりにするとしよう。理由は何であれVPSから抜け出るには、次のようにvzctlでdestroyコマンドを用いる。
vzctl destroy veid
ここで1つ注意すべき点がある。vzctlユーティリティはVPSを破棄する前に確認を一切行わないのだ。Enterキーを押すとすぐにVPSは削除され、プライベートデータのディレクトリも削除される。バックアップをとっていなければ、そのデータを復旧させようにも手の施しようがない。
OpenVZにはもっと多くの機能があるが、最初に膨大な時間をかけてWikiを読破することなくOpenVZを始められるだけの情報はお伝えしたつもりだ。VPSをうまく実行できたら、その後はWikiやmanページを参照しながらOpenVZで他にどんなことができるのかを自らの目で確かめてもらいたい。
