こんにちは、tetsuです。今回はサーバ仮想化ソフトウェアである「OpenVZ」について紹介します。
「OpenVZ」とは
サーバ仮想化ソフトウェアには他に「KVM」や「VMware」など様々ありますが、「OpenVZ」は仮想化のハードウェア要件となる「VT-d/AMD-V」( バーチャライゼーション・テクノロジー)が不要で、ほとんどのPCでインストール可能です。
- ※注意点
- 「OpenVZ」は他の仮想化ソフトウェアと比較すると弱点があります。それは、他のソフトウェアでは「Windows」を仮想化することができるのに、「OpenVZ」はそれができないこと。したがって「Windwos」の仮想化を考えている方はおすすめできません。「CentOS」や「Ubuntu」などLinuxだけでも良い方のみとなります。
今回は検証のため、次のようなスペックのPCで検証しています。
スペック
- CPU:AMD Phenom(tm) 9350e
- メモリー:2GB
- HDD:600GB
※大分古い家庭用PCです
また、今回は「CentOS 6.2」上でのインストール方法となります。
OpenVZのインストール
SELinuxの無効化
次のコマンドを実行することで「SELinux」の動作状況を確認できます。
getenforce
コマンド実行後、「enforcing」と表示された場合は「SELinux」が有効となっている為、
次のコマンドを実行し、無効化します。setenforce 0
このコマンドでは一時的に無効としただけになりますので、
再起動すると再び有効となってしまいます。
再起動しても無効となるように、下記のファイルの箇所を修正します。ファイル
/etc/selinux/config
修正前)
SELINUX=enforcing
修正後)
SELINUX=disabled
「iptables」の無効化
「iptables」にある程度の調整が必要ですが、今回は検証のため、下記のコマンドで無効化します。
/etc/rc.d/init.d/iptables stop chkconfig iptables off
「sysctl.conf」の修正
続いてカーネルパラメータを記述する設定ファイルの修正をします。
以下のファイルに設定を追加します。
ファイル
/etc/sysctl.conf
修正前)
net.ipv4.ip_forward = 0
修正後)
net.ipv4.ip_forward = 0 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv6.conf.default.forwarding = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.default.proxy_arp = 0 kernel.sysrq = 1
「OpenVZ」リポジトリの追加とカーネルインストール
以下のコマンドを実行し「yum」リポジトリに「OpenVZ」リポジトリを追加します。
cd /etc/yum.repos.d/ wget http://download.openvz.org/openvz.repo rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
続いて次のコマンドで「OpenVZ」のカーネルをインストールします。
yum -y install vzkernel
インストール後、再起動を行います。
reboot
最後に「OpenVZ」の管理に必要なソフトウェアをインストールします。
yum -y install ploop vzctl vzquota
以上で必要な仮想化に必要ソフトウェアのインストールは完了です。
仮想サーバの作成方法
仮想サーバを作成するには、仮想サーバのOSを用意する必要があります。「OpenVZ」ではそのOSを「OSテンプレート」と呼び、下記のサイトから任意のOSテンプレートを取得することが可能です。
・OSテンプレートのダウンロード先
https://download.openvz.org/template/precreated/
OSテンプレートのダウンロード
今回は「CentOS 6」のOSテンプレートをダウンロードします。
cd /vz/template/cache/ wget http://download.openvz.org/template/precreated/centos-6-x86_64.tar.gz
仮想サーバの作成
OSテンプレートのダウンロードが完了後、次のコマンドで仮想サーバを作成してみましょう。
vzctl create {コンテナID} --ostemplate centos-6-x86_64 --config ve-vswap-1g
「コンテナID」は任意の数字(「110」や「200」など)を指定します。
「--ostemplate」オプションでは利用するOSテンプレート名を指定します。「--config」はCPUやHDDなどの設定が定義されたファイルです。
今回はメモリ1GBのHDD20GBと設定されている設定ファイルを利用します。なお、設定ファイルは以下のディレクトリにあり、自分好みの設定を作成する事も可能です。
- 設定ファイルのディレクトリ先
/etc/vz/conf/
仮想サーバの初期設定
仮想サーバが作成されたら、最低限の設定を行います。
次のようなコマンドでそれぞれ設定していきます。HOST名の追加
vzctl set {作成したコンテナID} --hostname xxxx --save
IPアドレスの追加
vzctl set {作成したコンテナID} --ipadd xxx.xxx.xxx.xxx --save
DNSの指定
vzctl set {作成したコンテナID} --nameserver xxx.xxx.xxx. --save
仮想サーバの起動
初期設定が完了したら、次のコマンドで仮想サーバを起動してみましょう。
vzctl start {作成したコンテナID}
無事に起動を確認できれば、以下のコマンドで仮想サーバにログイン可能で、仮想サーバ内でのコマンド実行が可能です。
vzctl enter {作成したコンテナID}
まとめ
ここまでで、「OpenVZ」を利用した仮想化環境の構築となります。
仮想化は昔と比べてはるかに技術の進歩が目覚ましく、「OpenVZ」は「KVM」や「VMware」などに比べてやや押され気味(?)ですが、個人的にはLinuxを検証ですぐ用意したいときに重宝してます。
次回は仮想サーバをコマンドで管理せず、GUIで簡単に管理できる「OpenVZ Web Panel」の構築方法を紹介しようと思います。それでは、また!
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。