サーバー設定 · 3 min read · Dec 07, 2025
Debian Wheezy上のLVMを使用したXen
Debian Wheezy上のLVMを使用したXen
著者: Jason Norwood-Young jason [at] freespeechpub dot co dot za
あなたは本格的なサーバーのニーズを持っています。いくつかのオペレーティングシステムを持つサーバーの束を望んでおり、それぞれが独自のクレイジーなサイトを運営し、正しいことを行い、世界に奉仕し、より良い場所にしています。ただ一つの問題があります - あなたは貧乏です。AWSサーバーやRackspaceサーバーを立ち上げるにはお金がなく、稼働時間を数え、請求書を受け取るたびに泣いています。
心配しないでください - あなたが探しているものを、特に24時間365日稼働させる必要がある場合、クラウドサーバーのコストよりもはるかに安く手に入れることができます。仮想化を使用すれば、一台の大きなサーバーでたくさんの小さなサーバーをホストできます。まるで自分のクラウドを持っているかのようです!
このチュートリアルでは、Debian Wheezyの上にXenと最初の仮想マシンをインストールする方法を説明します。Squeezeを使用している場合は、私がインスピレーションを得たFalko Timmeのチュートリアルをチェックしてください(私たちは少し異なる方法で作業していますが)。
0. 実行するサーバーの選択
私はHetzner Germanyを使用しています。なぜなら、彼らは非常に安いからです。仮想化環境では、実際に求めているのは大量のメモリです。メモリが多ければ多いほど、そこに詰め込める仮想システムが増え、サイズも大きくできます。私は32GBのサーバーを2台持っており、これにより1GBから4GBの間で約8台のサーバーを問題なく運営できます。これは何らかの推奨ではなく、私は毎月彼らに私の苦労して得た現金を渡す以外にHetznerとの関係はありません。
あなたが探しているのは、安くてたくさんのメモリを持ち、リモートで再起動や救助ができるルートサーバーを提供してくれるプロバイダーです。
1. Xenのインストール
Wheezyをインストールし、rootとしてログインし、必要なすべてのapt-getアップデートとapt-getアップグレードを行ったと仮定します。それでは始めましょう!
apt-get install xen-linux-system xen-toolsこれにより、Xen、一部の高メモリのもの、そして後で仮想イメージを作成するために使用する非常に便利なxen-toolsがインストールされます。
次に、Xenにネットワーキングの処理方法を教えたいと思います。小さな告白をしなければなりません:私はネットワーキングの専門家ではありません。実際、私はネットワーキングが大嫌いです。それはインターネットの配管であり、私は配管工の割れ目を見せることを拒否します。そして、Xenのネットワーキングは複雑で、奇妙なルートやブリッジ、そして神のみぞ知る他の何かがあります。だから、私は最も簡単で迅速で汚い解決策を採用します - NATモードにします。(いいえ、NATが何か本当に知りませんが、動作します、わかりましたか?質問をやめてください。)
pico /etc/xen/xend-config.sxp次の2行のコメントを外します:
(network-script network-nat)
(vif-script vif-nat)Xenをインストールしたにもかかわらず、実際には実行されていません。Xenはカーネルレベルで実行されるため、実際にXenにブートする必要があります。
まず、Debianに通常のカーネルの代わりにXenをブートするように指示する必要があります:
dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen update-grub次に再起動する必要があります:
reboot新しい素晴らしいXenシステムにsshで接続したい気持ちはわかりますが、再起動するまで少し待ってください。
さて、今試してみてください。
今はどうですか?
入れましたか?問題ありませんか?良いですね。続けましょう。
2. Xenの制御
さて、Xenが実際に実行されていることを確認したいと思います。Squeezeでは、uname -rを実行するだけで、2.6.32-5-xen-amd64のようなものが表示されました。人類には謎の理由で、これはWheezyでは機能しないので、代わりにこれを行います:
xen dmesg次のようなものが表示されるはずです:
(XEN) Xen version 4.1.4 (Debian 4.1.4-3+deb7u1) ([email protected]) (gcc version 4.7.2 (Debian 4.7.2-5) ) Sun May 5 14:44:49 UTC 2013
(XEN) Bootloader: GRUB 1.99-27+deb7u2
(XEN) Command line: placeholder
(XEN) Video information:
(XEN) VGA is text mode 80x25, font 8x16
(XEN) VBE/DDC methods: V2; EDID transfer time: 1 seconds
(XEN) Disc information:
(XEN) Found 2 MBR signatures
(XEN) Found 2 EDD information structures
...それが表示されない場合は、何か間違ったことをしています。戻ってもう一度試してください。他の皆さん、おめでとうございます!あなたは今、素晴らしいDom0インスタンスを持っています!
Dom-何?誰がドムと呼んでいるのですか?
リラックスしてください。Dom0、またはDomain 0は、あなたのホストサーバーであり、今いるもの、ピラミッドの底です。ゲストサーバーはDomUと呼ばれ、恐らくそれも少し侮辱的に聞こえるからです。
xm listName ID Mem VCPUs State Time(s)
Domain-0 0 31089 8 r—— 8.8そのコマンドは、Dom0を含むすべての仮想サーバーをリストします。現時点では、それが実行中の唯一のサーバーです。
私たちはxmを使用して多くのことができます。xm createはサーバーを立ち上げ、xm destroyはサーバーを終了させ、xm rebootはサーバーを再起動し、xm topはすべての実行中のサーバーを監視します。
3. LVMの設定
XenサーバーをブロックデバイスまたはLVMインスタンスとして作成できます。私はLVMが好きです。なぜなら、より男らしいからであり、後でパーティションをリサイズするのがはるかに簡単だからです。
まず、LVMを置くための空のマウントされていないドライブが必要です。私は空のマウントされていないドライブを持っていないので、サーバーから一つを盗むことにします。
df -hFilesystem Size Used Avail Use% Mounted on
rootfs 1008G 915M 956G 1% /
udev 10M 0 10M 0% /dev
tmpfs 3.0G 292K 3.0G 1% /run
/dev/disk/by-uuid/5642a4c4-1bcb-49e2-b89c-7d754e6a521a 1008G 915M 956G 1% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 9.2G 0 9.2G 0% /run/shm
/dev/md1 496M 34M 437M 8% /boot
/dev/md3 1.7T 196M 1.7T 1% /home/homeに1.7TB?本気ですか?それは全く不必要に思えます。
pico /etc/fstab問題のドライブのコメントを外します
#/dev/md/3 /home ext4 defaults 0 0ドライブをアンマウントします
umount /dev/md3さて、これでLVMパーティションを作成できます。
pvcreate /dev/md3 Writing physical volume data to disk "/dev/md3"
Physical volume "/dev/md3" successfully createdvgcreate xen-vol /dev/md3vgdisplay --- Volume group ---
VG Name xen-vol
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1.71 TiB
PE Size 4.00 MiB
Total PE 448996
Alloc PE / Size 0 / 0
Free PE / Size 448996 / 1.71 TiB
VG UUID wa0QCN-lBc1-545B-zMwf-vIuS-VXXI-GZAfbW素晴らしい!
4. Xen Toolsの設定
Xen Toolsは、特に新しいサーバーを作成する際に、私たちのXenライフをはるかに簡単にします。しかし、まず少し設定する必要があります。
pico /etc/xen-tools/xen-tools.conflvm = xen-vol
size = 20Gb # ディスクイメージサイズ。
memory = 4Gb # メモリサイズ
swap = 512Mb # スワップサイズ
gateway = 192.168.1.2
netmask = 255.255.0.0
broadcast = 192.168.1.255
mirror = http://ftp.de.debian.org/debian/
mirror_precise = http://archive.ubuntu.com/ubuntu # (お好みで他のものも)
serial_device = hvc0
disk_device = xvda #デフォルト
copyhosts = 15. ゲストサーバーの作成
メインイベントの時間です!これは、新しいXenゲストサーバーを作成するたびに繰り返すプロセスです。
最初のテストサーバーのために、xen-tools.confで設定したデフォルトよりも少し小さいものを作成します。コマンドラインでデフォルトをオーバーライドすることができます。dhcpサーバーを使用していないため、毎回「hostname」と「ip」を設定する必要があります。他のすべてはオプションです。
xen-create-image --hostname=test --ip=192.168.1.99 --memory=512Mb --size=5G --swap=256Kb一般情報
--------------------
ホスト名 : test
配布 : wheezy
ミラー : http://ftp.de.debian.org/debian/
パーティション : swap 256Kb (swap)
/ 5G (ext3)
イメージタイプ : full
メモリサイズ : 512Mb
カーネルパス : /boot/vmlinuz-3.2.0-4-amd64
Initrdパス : /boot/initrd.img-3.2.0-4-amd64
ネットワーキング情報
----------------------
IPアドレス 1 : 192.168.1.99 [MAC: 00:16:3E:27:33:2D]
ネットマスク : 255.255.0.0
ブロードキャスト : 192.168.1.255
ゲートウェイ : 192.168.1.2
/dev/xen-vol/test-swapにスワップを作成中
完了
/dev/xen-vol/test-diskにext3ファイルシステムを作成中
完了
インストール方法: debootstrap
フックを実行中
完了
役割スクリプトは指定されていませんでした。スキップします
Xen設定ファイルを作成中
完了
役割スクリプトは指定されていませんでした。スキップします
ルートパスワードを設定中
新しいゲストのためのパスワードを生成中。
すべて完了
ログファイルが生成されました:
/var/log/xen-tools/test.log
インストール概要
---------------------
ホスト名 : test
配布 : wheezy
IPアドレス : 192.168.1.99
RSAフィンガープリント : de:92:b7:63:55:20:74:46:d3:de:cc:ff:55:22:69:24
ルートパスワード : MlkaIn8これにより、設定ファイルとパーティションが作成されますが、サーバーは起動しません。設定ファイルは/etc/xen/hostname.cfgにあります。後でメモリなどを変更する必要がある場合は、このファイルを直接編集できます。
サーバーを起動しましょう
xm create /etc/xen/test.cfgUsing config file "/etc/xen/test.cfg".
Started domain test (id=1)「test」は/etc/hostsファイルに追加されるため、次のように実行できます:
ssh testxen-create-image出力の最後に受け取ったパスワードを使用すると、接続できます!
インターネットに接続できることを確認してください:
ping google.comPING google.com (173.194.70.113) 56(84) bytes of data.
64 bytes from fa-in-f113.1e100.net (173.194.70.113): icmp_req=1 ttl=48 time=6.05 ms
64 bytes from fa-in-f113.1e100.net (173.194.70.113): icmp_req=2 ttl=48 time=6.03 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 6.030/6.044/6.058/0.014 ms6. ビールを飲む
あなたはそれに値します!
7. IPアドレスを仮想サーバーにポイントする
ISPからたくさんのIPアドレス(サブネットと呼ばれます)が必要です。私は追加の8つのIPアドレスのために少し多く支払っています。しかし、それらを仮想サーバーに直接通すには少し作業が必要です。
pico /etc/network/interfacesauto br0
iface br0 inet static
address 192.168.1.2
netmask 255.255.0.0
pre-up brctl addbr $IFACE
post-down brctl delbr $IFACE/etc/init.d/networking restartifconfig br0br0 Link encap:Ethernet HWaddr 82:18:d1:b8:37:c9
inet addr:192.168.1.2 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::9118:d1ff:feb8:37c9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:172 (172.0 B)ip addr add 80.1.2.41 dev eth0iptables -A PREROUTING -t nat -p all -i eth0 -d 80.1.2.41 -j DNAT --to 192.168.1.99xen-createを使用する際は–bridge=br0を使用します。既存の/etc/xen/*.cfgファイルについては、この行を編集します:
vif = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34' ]次のように見えるようにします:
vif = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34','bridge=br0' ]必要に応じて仮想サーバーを破棄して作成します。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。