OpenVZ インストール · 2 min read · Nov 25, 2025

Ubuntu 13.04 (AMD64) に OpenVZ をインストールして使用する

Ubuntu 13.04 (AMD64) に OpenVZ をインストールして使用する

バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください

このHowToでは、OpenVZ用にUbuntu 13.04サーバーを準備する方法を説明します。OpenVZを使用すると、同じハードウェア上に複数の仮想プライベートサーバー(VPS)を作成できます。これはXenやLinux Vserverプロジェクトに似ています。OpenVZは、商用の仮想化ソリューションであるVirtuozzoのオープンソース版であり、仮想サーバーを提供する多くのプロバイダーによって使用されています。OpenVZカーネルパッチはGPLライセンスの下でライセンスされており、ユーザーレベルのツールはQPLライセンスの下にあります。

このhowtoは実用的なガイドとして意図されており、理論的な背景はカバーしていません。それらはウェブ上の他の多くの文書で扱われています。

この文書にはいかなる種類の保証もありません!これはこのようなシステムを設定する唯一の方法ではないことを言いたいです。この目標を達成する方法はたくさんありますが、これは私が取る方法です。これがあなたにとって機能するという保証はありません!

1 予備ノート

ここではx86_64(amd64)システムを使用しています。i386システムの場合、いくつかのコマンドがわずかに異なります。

2 OpenVZのインストール

Ubuntu 13.04には、公式リポジトリにOpenVZカーネルがありません。したがって、OpenVZプロジェクトの公式RPMパッケージからOpenVZをインストールする必要があります(Debian 6.0にRPMからカーネルをインストールするを参照) - ploopサポート付きで

2.1 OpenVZプロジェクトの公式RPMパッケージからのインストール

最新のvzkernel、vzctl、ploop、およびvzquota RPMパッケージをhttp://wiki.openvz.org/Download/kernel/rhel6およびhttp://wiki.openvz.org/Download/utilsからダウンロードします。例えば、次のようにします:

cd /tmp
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-devel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-core-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-lib-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/vzquota/3.1/vzquota-3.1-1.x86_64.rpm

次のパッケージをインストールします…

apt-get install fakeroot alien libcgroup1

…そしてRPMパッケージをDEBパッケージに変換します:

fakeroot alien --to-deb --scripts --keep-version vz*.rpm ploop*.rpm

次のようにDEBパッケージをインストールします:

dpkg -i vz*.deb ploop*.deb 

次に、システムを再起動したときに正しいカーネル(OpenVZカーネル)が起動することを確認する必要があります。最後のコマンドの出力には、次のようなものが表示されるはずです:

vzkernel (2.6.32-042stab076.8) を設定中 …
update-initramfs: /boot/initrd.img-2.6.32-042stab076.8を生成中
WARNING: /lib/modules/2.6.32-042stab076.8/modules.builtinを開けませんでした: そのようなファイルやディレクトリはありません
WARNING: /tmp/mkinitramfs_I0VIfE/lib/modules/2.6.32-042stab076.8/modules.builtinを開けませんでした: そのようなファイルやディレクトリはありません
grub.cfgを生成中 …
linuxイメージを見つけました: /boot/vmlinuz-3.8.0-19-generic
initrdイメージを見つけました: /boot/initrd.img-3.8.0-19-generic
linuxイメージを見つけました: /boot/vmlinuz-2.6.32-042stab076.8
initrdイメージを見つけました: /boot/initrd.img-2.6.32-042stab076.8
memtest86+イメージを見つけました: /memtest86+.bin
完了

これは、システムに別のカーネル(3.8.0)があり、openVZカーネル(2.6.32)がリストの最初ではないことを意味します。したがって、OpenVZカーネルをデフォルトカーネルにするために、2つのオプションがあります - GRUBでデフォルトカーネルを調整する(推奨)か、非VZカーネルを削除することです。

GRUBでデフォルトカーネルを調整するには、/etc/default/grubを開きます…

vi /etc/default/grub

…そしてGRUB_DEFAULT行を修正します(カウントは0から始まります;私たちのOpenVZはUbuntu GRUBサブメニューのAdvanced optionsで3番目のカーネルです(3.8.0カーネルの後のブートメニューの2番目のオプション)、したがってここに”1>2”を入れる必要があります(引用符内) - GRUBサブメニューの詳細については、こちらを参照してください: https://help.ubuntu.com/community/Grub2/Submenus):

| [...] GRUB_DEFAULT="1>2" [...] |

その後、GRUBを更新します:

update-grub

デフォルトカーネルを削除するには、次を実行します…

apt-get remove linux-image linux-image-3.8.0-19-generic

…そしてGRUBを更新します:

update-grub

正しいカーネルが起動することを確認したので、次に進むことができます。

次に、/etc/fstabでデバイス名の代わりにUUIDを使用していることを確認する必要があります。そうしないと、openVZカーネルでシステムが起動しない可能性があります。次を実行します…

blkid

…デバイス/パーティションのUUIDを見つけるために:

root@server1:/tmp# blkid
/dev/sda1: UUID=”9b8299f1-b2a2-4231-9ba1-4540fad76b0f” TYPE=”ext2”
/dev/sda5: UUID=”M83xtW-GofR-FFaa-myo1-T4Gw-grKe-Kg1Etc” TYPE=”LVM2_member”
/dev/mapper/server1–vg-root: UUID=”a5a6e916-64e1-4af9-8bd4-32491d7edcac” TYPE=”ext4”
/dev/mapper/server1–vg-swap_1: UUID=”a68ae8a2-c2cd-4e92-af08-a71661f8f719” TYPE=”swap”
root@server1:/tmp#

/etc/fstabを開きます:

vi /etc/fstab

私の元の/etc/fstabは次のようになっています(/bootパーティションのUUIDはすでに使用されていますが、/およびswapにはデバイス名が使用されています):

| # /etc/fstab: 静的ファイルシステム情報。 # # 'blkid'を使用して、デバイスのユニバーサルユニーク識別子を印刷します; # これはUUID=を使用して、デバイスの名前をより堅牢な方法で指定するために使用できます。 # ディスクが追加または削除されても機能します。fstab(5)を参照してください。 # # <ファイルシステム> <マウントポイント> <タイプ> <オプション> <ダンプ> <パス> /dev/mapper/server1--vg-root / ext4 errors=remount-ro 0 1 # /bootはインストール中に/dev/sda1にありました UUID=9b8299f1-b2a2-4231-9ba1-4540fad76b0f /boot ext2 defaults 0 2 /dev/mapper/server1--vg-swap_1 none swap sw |

すべてのパーティションにUUIDが使用されるように修正します:

| # /etc/fstab: 静的ファイルシステム情報。 # # 'blkid'を使用して、デバイスのユニバーサルユニーク識別子を印刷します; # これはUUID=を使用して、デバイスの名前をより堅牢な方法で指定するために使用できます。 # ディスクが追加または削除されても機能します。fstab(5)を参照してください。 # # <ファイルシステム> <マウントポイント> <タイプ> <オプション> <ダンプ> <パス> #/dev/mapper/server1--vg-root / ext4 errors=remount-ro 0 1 UUID=a5a6e916-64e1-4af9-8bd4-32491d7edcac / ext4 errors=remount-ro 0 1 # /bootはインストール中に/dev/sda1にありました UUID=9b8299f1-b2a2-4231-9ba1-4540fad76b0f /boot ext2 defaults 0 2 #/dev/mapper/server1--vg-swap_1 none swap sw 0 0 UUID=a68ae8a2-c2cd-4e92-af08-a71661f8f719 none swap sw 0 0 |

OpenVZが起動時に自動的に開始されることを確認します:

update-rc.d vz defaults
update-rc.d vzeventd defaults

次に、いくつかのライブラリをリンクする必要があります:

ln -s /usr/lib64/libvzctl-4.3.1.so /usr/lib
ln -s /usr/lib64/libploop.so /usr/lib

ploopコンテナを使用する場合は、次を実行します:

apt-get install parted

また、/etc/init.d/vzを開きます…

vi /etc/init.d/vz

…そして、再起動後に/var/lock/ploopディレクトリが再作成されることを確認するために、mkdir $VARLOCK/ploopという行を追加します:

| #!/bin/sh # 著作権 (C) 2000-2009, Parallels, Inc. すべての権利を保留します。 # # このプログラムはフリーソフトウェアです。あなたはそれを再配布したり、 # GNU一般公衆ライセンスの条件の下で変更したりできます。 # このライセンスのバージョン2、またはあなたの選択でそれ以降のバージョン。 # # このプログラムは役に立つことを期待して配布されていますが、 # いかなる保証もなく、商品性または特定の目的への適合性の暗黙の保証もありません。 # 詳細についてはGNU一般公衆ライセンスを参照してください。 # # あなたはこのプログラムと共にGNU一般公衆ライセンスのコピーを受け取ったはずです。 # 受け取っていない場合は、次に書いてください。 # Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # OpenVZ起動スクリプト、redhatおよびdebian関連のディストリビューション用。 ### # chkconfig: 2345 96 20 # 説明: OpenVZ起動スクリプト。 ### ### BEGIN INIT INFO # 提供: vz # 必要な開始: $network $remote_fs $syslog # 必要な停止: $network $remote_fs $syslog # 開始すべき: sshd vzeventd # 停止すべき: sshd vzeventd # デフォルト開始: 2 3 4 5 # デフォルト停止: 0 1 6 # 短い説明: OpenVZ起動スクリプト # 説明: OpenVZ起動スクリプト。 ### END INIT INFO # この行は、アクションワードを期待する/etc/init.d/rcを欺くために必要です . /usr/libexec/vzctl/scripts/initd-functions mkdir $VARLOCK/ploop [...] |

/vzから/var/lib/vzへのシンボリックリンクを作成して、後方互換性を提供します:

ln -s /vz /var/lib/vz

/etc/sysctl.confを開き、次の設定が含まれていることを確認します:

vi /etc/sysctl.conf

| [...] net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.eth0.proxy_arp=1 [...] |

/etc/sysctl.confを修正する必要がある場合は、次を実行します

sysctl -p 

次のステップは、仮想マシンのIPアドレスがホストシステムのIPアドレスとは異なるサブネットにある場合に重要です。これを行わないと、仮想マシン内のネットワークが機能しません!

/etc/vz/vz.confを開き、NEIGHBOUR_DEVSをallに設定します:

vi /etc/vz/vz.conf

| [...] # ARPリクエストを送信し、APRテーブルを変更するインターフェースを制御します。 NEIGHBOUR_DEVS=all [...] |

vzdumpをインストールします:

apt-get install vzdump

最後に、システムを再起動します:

reboot

システムが問題なく再起動すれば、すべてが正常です!

次を実行します

uname -r

新しいOpenVZカーネルが表示されるはずです:

root@server1:~# uname -r
2.6.32-042stab076.8
root@server1:~#

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。