OpenVZ インストール · 3 min read · Oct 04, 2025

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

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

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

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

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

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

1 前提条件

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

2 OpenVZのインストール

Debian Wheezyには、公式リポジトリにOpenVZカーネルがありません。したがって、私たちには3つのオプションがあります:

  1. OpenVZプロジェクトからの公式RPMパッケージを使用してインストールする(Debian 6.0でのRPMからカーネルをインストールを参照) - ploopサポート付き!(推奨)
  2. OpenVZプロジェクトからDebian Wheezyカーネルをインストールし、他のパッケージは公式Debian Wheezyリポジトリからインストールする(Debianでのインストールを参照) - ploopサポート付きのカーネルですが、Debianのvzctlパッケージはそれをサポートしていません。
  3. Proxmoxパッケージからインストールする(Debian WheezyにProxmox VEをインストールを参照) - カーネルに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カーネル)が起動することを確認する必要があります。最後のコマンドの出力には、次のような内容が表示されるはずです:

Setting up vzkernel (2.6.32-042stab076.8) ...  
update-initramfs: Generating /boot/initrd.img-2.6.32-042stab076.8  
WARNING: could not open /lib/modules/2.6.32-042stab076.8/modules.builtin: No such file or directory  
WARNING: could not open /var/tmp/mkinitramfs_baPCFp/lib/modules/2.6.32-042stab076.8/modules.builtin: No such file or directory  
Generating grub.cfg ...  
Found linux image: /boot/vmlinuz-3.2.0-4-amd64  
Found initrd image: /boot/initrd.img-3.2.0-4-amd64  
Found linux image: /boot/vmlinuz-2.6.32-042stab076.8  
Found initrd image: /boot/initrd.img-2.6.32-042stab076.8  
done

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

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

vi /etc/default/grub

… そしてGRUB_DEFAULT行を修正します(カウントは0から始まります; 各カーネルにはリカバリーモードもあるため、OpenVZカーネルは3番目のカーネルであり、ここに2を入れる必要があります):

| [...] GRUB_DEFAULT=2 [...] |

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

update-grub

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

apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64

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

update-grub

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

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

blkid

… でデバイス/パーティションのUUIDを確認します:

root@server1:/tmp# blkid  
/dev/mapper/server1-swap_1: UUID="c465cb44-1bf9-4fbe-bb31-17139fd43004" TYPE="swap"  
/dev/sda5: UUID="WRK6Xm-fg52-T836-sp4k-6uxm-trHH-FiRdBx" TYPE="LVM2_member"  
/dev/sda1: UUID="46d1bd79-d761-4b23-80b8-ad20cb18e049" TYPE="ext2"  
/dev/mapper/server1-root: UUID="d5ac6d76-0b69-46da-b0c1-a4376f2f0e4e" TYPE="ext4"  
root@server1:/tmp#

/etc/fstabを開きます:

vi /etc/fstab

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

| # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # /dev/mapper/server1-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=46d1bd79-d761-4b23-80b8-ad20cb18e049 /boot ext2 defaults 0 2 /dev/mapper/server1-swap_1 none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 |

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

| # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # #/dev/mapper/server1-root / ext4 errors=remount-ro 0 1 UUID=d5ac6d76-0b69-46da-b0c1-a4376f2f0e4e / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=46d1bd79-d761-4b23-80b8-ad20cb18e049 /boot ext2 defaults 0 2 #/dev/mapper/server1-swap_1 none swap sw 0 0 UUID=c465cb44-1bf9-4fbe-bb31-17139fd43004 none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 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 # Copyright (C) 2000-2009, Parallels, Inc. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # OpenVZ startup script, used for redhat and debian related distributions. ### # chkconfig: 2345 96 20 # description: OpenVZ startup script. ### ### BEGIN INIT INFO # Provides: vz # Required-start: $network $remote_fs $syslog # Required-stop: $network $remote_fs $syslog # Should-Start: sshd vzeventd # Should-Stop: sshd vzeventd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: OpenVZ startup script # Description: OpenVZ startup script. ### END INIT INFO # This line is needed to cheat /etc/init.d/rc who expects action word . /usr/libexec/vzctl/scripts/initd-functions mkdir $VARLOCK/ploop [...] |

/var/lib/vzへの後方互換性を提供するために、/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

| [...] # Controls which interfaces to send ARP requests and modify APR tables on. 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

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

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