ギルド開発
ギルド開発
2014.06.19

OpenVZで仮想サーバを構築する方法

tetsu

こんにちは、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テンプレートのダウンロード先

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」の構築方法を紹介しようと思います。それでは、また!