サーバー設定 · 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 list
Name                                        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 -h
Filesystem                                              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 created
vgcreate xen-vol /dev/md3
vgdisplay
  --- 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.conf
lvm = 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 = 1

5. ゲストサーバーの作成

メインイベントの時間です!これは、新しい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.cfg
Using config file "/etc/xen/test.cfg".
Started domain test (id=1)

「test」は/etc/hostsファイルに追加されるため、次のように実行できます:

ssh test

xen-create-image出力の最後に受け取ったパスワードを使用すると、接続できます!

インターネットに接続できることを確認してください:

ping google.com
PING 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 ms

6. ビールを飲む

あなたはそれに値します!

7. IPアドレスを仮想サーバーにポイントする

ISPからたくさんのIPアドレス(サブネットと呼ばれます)が必要です。私は追加の8つのIPアドレスのために少し多く支払っています。しかし、それらを仮想サーバーに直接通すには少し作業が必要です。

pico /etc/network/interfaces
auto 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 restart
ifconfig br0
br0       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 eth0
iptables -A PREROUTING -t nat -p all -i eth0 -d 80.1.2.41 -j DNAT --to 192.168.1.99

xen-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' ]

必要に応じて仮想サーバーを破棄して作成します。

Share: X/Twitter LinkedIn

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

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