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つのオプションがあります:
- OpenVZプロジェクトからの公式RPMパッケージを使用してインストールする(Debian 6.0でのRPMからカーネルをインストールを参照) - ploopサポート付き!(推奨)
- OpenVZプロジェクトからDebian Wheezyカーネルをインストールし、他のパッケージは公式Debian Wheezyリポジトリからインストールする(Debianでのインストールを参照) - ploopサポート付きのカーネルですが、Debianのvzctlパッケージはそれをサポートしていません。
- 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). # # |
すべてのパーティションに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). # # |
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/libploopコンテナを使用する場合は、次のコマンドを実行します:
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:~#新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。