OpenVZ · 2 min read · Jan 18, 2026

OpenVZ On Debian Etch For Webservers

OpenVZ On Debian Etch For Webservers

Introduction

仮想化は素晴らしいです!サーバーにとって良いプラクティスであり、より安全で、スケーラブルで、置き換え可能で、複製可能にします。これらすべては、少しの追加の複雑さのコストで実現されます。

このガイドは、2つのデュアルコアオプテロン(64ビット)、2つの同一のディスク(RAID用)および大量のメモリを搭載したSupermicroマシンのインストール中に書かれています。なぜOpenVZを選んだのか?XENや最近のKVMカーネルモジュールではなく?XENは64ビットアーキテクチャに対してあまり安定しておらず(まだ)、その複雑さのためにかなりのオーバーヘッドが発生します(各VMは独自のカーネルを実行します)。KVMは非常にシンプルですが、カーネルを1つのプロセスとして実行することを制限するため、VMはマルチコアシステムの恩恵を受けることができません。

OpenVZでは、ホスト環境とすべてのVMのために1つのカーネルのみが実行されるため、セットアップがスリムであり、ウェブサーバーの良い候補となります。

Install the hosting system

まず、Etchをインストールします(インストーラーでRAIDを設定することを確認してください)。

ルート内のいくつかの煩雑なディレクトリやリンクを削除したいかもしれません(ガイドの残りの部分と同様に、rootとして):

cd /
rm cdrom
unlink vmlinuz.old
unlink vmlinuz
rmdir selinux/
rmdir initrd
unlink initrd.img.old
rmdir opt
rmdir srv/

次に、カスタムのOpenVZ対応カーネルをコンパイルしたいと思います。OpenVZサイトのこのガイドに従いました。私たちが行ったことの簡単な概要:

apt-get update
apt-get install linux-source-2.6.18 kernel-patch-openvz vzctl vzquota # このコマンドは承認が必要かもしれません
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
cp /boot/config-2.6.18-3-amd64 .config
aptitude install kernel-package # 次の行で必要です
make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_amd64.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grub

その後(/boot/grub/menu.lstを少し修正して正しいカーネルにデフォルト設定した場合)、再起動できます。

再起動後、OpenVZ対応カーネルを使用してすべてが機能しているか確認します:

ifconfig # インターフェースと追加の "venet" インターフェースが表示されるはずです
cat /proc/vz/* # 何かが表示されるはずです(まだ何が表示されるかはあまり重要ではありません)
cat /proc/cpuinfo # CPUが稼働していることを確認
cat /proc/mdstat # RAIDが機能している
lsmod # "vz"で始まるモジュールが表示されるはずです

Make Virtual Private Servers (VPSs)

次に、デフォルトの最小テンプレートからVPSをセットアップし、開始します(/var/lib/vz/template/cacheにあります):

vzctl create 101 --ostemplate debian-3.1-amd64-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.mytest.org --save
vzctl set 101 --ipadd 10.0.0.101 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 10.0.0.2 --save
vzctl set 101 --privvmpages 500000:750000 --save # メモリを与える CHECKME
vzctl start 101
vzctl exec 101 passwd

その後、次のコマンドでVPSに接続できます:

ssh 10.0.0.101

カラフルなプロンプトに注意してください…

このテンプレートはSarge(3.1)テンプレートであり、Etch(4.0)にしたいので、VPSにrootとしてログインしたら、次のようにします:

nano /etc/apt/sources.list # ホスト(Etch)インストールのsources.listに合わせて編集
aptitude update
aptitude dist-upgrade

新しいVPSを試してみて、作業可能にし、後でさらにVPSの基盤として使用するために必要なパッケージをインストールします。

次に、カスタマイズしたVPSからテンプレートを作成します。これは簡単な作業です:

vzctl stop 101 # 停止します
rm -f /var/lib/vz/private/101/etc/ssh/ssh_host_* # 鍵を削除します(最初の起動時に新しいものが生成されます)
cd /var/lib/vz/private/101/
tar czf /var/lib/vz/template/cache/debian-etch-20061218-amd64.tar.gz .

ボラットが言うように:「素晴らしい!私は好きです!」

次に、以前と同様に、少し修正して追加のVPSをセットアップして実行できます:

vzctl create 102 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 102 --onboot yes --save
vzctl set 102 --hostname test102.mytest.org --save
vzctl set 102 --ipadd 10.0.0.102 --save
vzctl set 102 --numothersock 120 --save
vzctl set 102 --nameserver 10.0.0.2 --save
vzctl set 102 --privvmpages 500000:750000 --save # メモリを与える CHECKME
vzctl start 102
vzctl exec 102 passwd

(はい、あまり興味深い変更はないことを見ていますが)…

vzctl create 103 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 103 --onboot yes --save
vzctl set 103 --hostname test103.mytest.org --save
vzctl set 103 --ipadd 10.0.0.103 --save
vzctl set 103 --numothersock 120 --save
vzctl set 103 --nameserver 10.0.0.2 --save
vzctl set 103 --privvmpages 500000:750000 --save # メモリを与える CHECKME
vzctl start 103
vzctl exec 103 passwd

そして最初のVPS(vzctl start 101)を開始します。テンプレートの基盤として使用するためにオフラインにしていたことを思い出してください。

今、3つのVPSが稼働しています。vzlistでテストして、出力を確認します:

      VEID      NPROC STATUS  IP_ADDR         HOSTNAME
       101          5 running 10.0.0.101      test101.mytest.org
       102          5 running 10.0.0.102      test102.mytest.org
       103          5 running 10.0.0.103      test103.mytest.org

VPSにはメモリが必要です。デフォルトでは、あまりにも少なすぎるので、VPSの設定ファイル(/etc/vz/conf/*.conf)でvmguarpages、oomguarpages、privvmpagesなどを適切な値に設定してください。ページは4Kbに相当します。VPSを制限しすぎたために発生するエラーは、次のコマンドを実行することで確認できます:

vzctl exec 101 cat /proc/user_beancounters

UBC(user_beancounter)の最後の列にはゼロのみが含まれているべきです。そうでない場合は、いくつかの制限を引き上げてみてください。個々のオプションに関する詳細はOpenVZのドキュメントを参照してください。

これで、VPS上でApache、Postfixなどの設定を続けることができます… 幸運を!

ああ、私の/etc/vz/conf/101.confファイルはひどいです。ユーザーbeancounterのエラーが発生したため、いくつかの値を無造作に引き上げました。

cat /etc/vz/conf/101.conf
#  Copyright (C) 2000-2006 SWsoft. All rights reserved.
#
#  このプログラムはフリーソフトウェアです。あなたはそれを再配布または修正することができます。
#  GNU一般公衆ライセンスの条件の下で、フリーソフトウェア財団によって公開されたバージョン2のライセンス、または
#  (あなたの選択で)それ以降のバージョンの下で。
#
#  このプログラムは、役に立つことを期待して配布されていますが、
#  いかなる保証もなく、商品性または特定の目的への適合性の暗黙の保証もありません。
#  詳細については、GNU一般公衆ライセンスを参照してください。
#
#  あなたはこのプログラムと共にGNU一般公衆ライセンスのコピーを受け取ったはずです。
#  受け取っていない場合は、フリーソフトウェア財団に書き込んでください。
#  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
VERSION="2"
ONBOOT="yes"
# UBCパラメータ(バリア:制限の形式)
# プライマリパラメータ
AVNUMPROC="40:40"
NUMPROC="255:255"
NUMTCPSOCK="80:80"
NUMOTHERSOCK="255:255"
VMGUARPAGES="500000:9223372036854775807"
# セカンダリパラメータ
KMEMSIZE="33554432:36909875"
TCPSNDBUF="319488:524288"
TCPRCVBUF="524288:524288"
OTHERSOCKBUF="439296:439296"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="500000:9223372036854775807"
# 補助パラメータ
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:750000"
NUMFILE="10240:10240"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="1048576:1097728"
PHYSPAGES="0:9223372036854775807"
NUMIPTENT="128:128"
# ディスククォータパラメータ(ソフトリミット:ハードリミットの形式)
DISKSPACE="1048576:1153434"
DISKINODES="200000:220000"
QUOTATIME="0"
# CPUフェアスケジューラパラメータ
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/$VEID"
OSTEMPLATE="debian-3.1-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="101.mytest.org"
IP_ADDRESS="10.0.0.101"
NAMESERVER="10.0.0.2"
Share: X/Twitter LinkedIn

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

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