Server Setup · 8 min read · Dec 07, 2025

Xen Auf Debian Wheezy Mit LVM

Xen Auf Debian Wheezy Mit LVM

Autor: Jason Norwood-Young jason [at] freespeechpub dot co dot za

Also, Sie haben ernsthafte Serverbedürfnisse. Sie möchten eine Menge Server mit ein paar Betriebssystemen, die ihre eigenen verrückten Seiten betreiben, um gerechte Dinge zu tun, die Welt zu bedienen und sie zu einem besseren Ort zu machen. Es gibt nur ein Problem - Sie sind arm. Zu arm, um AWS-Server und Rackspace-Server zu starten, ohne die Stunden zu zählen, in denen sie laufen, und jedes Mal zu weinen, wenn Sie die Rechnung erhalten.

Machen Sie sich keine Sorgen - Sie können haben, wonach Sie suchen, für viel weniger als diese Cloud-Server kosten, insbesondere wenn Sie sie 24/7/365 benötigen. Mit Virtualisierung können Sie einen großen Server verwenden, um viele kleine Server zu hosten. Es ist fast so, als hätten Sie Ihre eigene Cloud!

Dieses Tutorial behandelt die Installation von Xen und Ihrer ersten virtuellen Maschine auf Debian Wheezy. Wenn Sie Squeeze verwenden, schauen Sie sich Falko Timmes Tutorial an, das ich als Inspiration für meines verwendet habe (auch wenn wir die Dinge ein wenig anders machen).

0. Auswahl eines Servers, um dies auszuführen

Ich benutze Hetzner Deutschland. Warum? Weil sie verdammt billig sind. In einer virtualisierten Umgebung suchen Sie wirklich nach viel Speicher. Je mehr Speicher, desto mehr virtuelle Systeme können Sie darauf quetschen, und desto größer können sie sein. Ich habe zwei 32-GB-Server, mit denen ich etwa 8 Server zwischen 1 GB und 4 GB ohne Probleme betreiben kann. Dies ist keine Empfehlung irgendeiner Art, und ich habe keine Beziehung zu Hetzner, außer dass ich ihnen jeden Monat mein hart verdientes Geld überweise.

Was Sie suchen, ist ein Anbieter, der Ihnen einen Root-Server schön und günstig gibt, mit viel und viel Speicher und der Möglichkeit, ihn aus der Ferne neu zu starten und wiederherzustellen, falls Sie wirklich Mist bauen.

1. Installation von Xen

Ich gehe davon aus, dass Sie Wheezy installiert haben, als Root angemeldet sind und alle apt-get-Updates und apt-get-Upgrades durchgeführt haben, die Sie durchführen müssen. Also lassen Sie uns loslegen!

apt-get install xen-linux-system xen-tools

Dies installiert Xen, einige Hochspeicherzeugnisse und die sehr nützlichen xen-tools, die wir später verwenden werden, um unsere virtuellen Images zu erstellen.

Als nächstes möchten wir Xen mitteilen, wie es mit dem Netzwerk umgehen soll. Ich habe ein kleines Geständnis zu machen: Ich bin kein Netzwerktyp. Tatsächlich verabscheue ich Netzwerke. Es ist die Rohrleitung des Internets, und ich weigere mich, mich zu bücken und meinen Klempner-Po zu zeigen. Und Xen-Netzwerke sind kompliziert, mit seltsamen Routen und Brücken und Gott weiß was noch. Also mache ich einfach die einfachste, schnellste, schmutzigste Lösung - ich stecke es in den NAT-Modus. (Nein, ich weiß nicht wirklich, was NAT ist, aber es funktioniert, okay? Hören Sie auf, Fragen zu stellen.)

pico /etc/xen/xend-config.sxp

Kommentieren Sie die folgenden beiden Zeilen aus:

    (network-script network-nat)
    (vif-script     vif-nat)

Obwohl wir Xen installiert haben, läuft es tatsächlich nicht. Xen läuft auf Kernel-Ebene, was bedeutet, dass Sie tatsächlich in Xen booten müssen.

Zuerst müssen wir Debian mitteilen, dass es Xen anstelle seines üblichen Kernels booten soll:

dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen update-grub

Dann müssen wir neu starten:

reboot

Ich weiß, dass Sie nicht warten können, um sich in Ihr neues, großartiges Xen-System einzuloggen, aber geben Sie ihm einen Moment Zeit zum Neustarten.

Okay, versuchen Sie es jetzt.

Wie wäre es jetzt?

Sind Sie drin? Sind wir gut? Gut. Lassen Sie uns fortfahren.

2. Kontrolle von Xen

Jetzt möchten Sie sicherstellen, dass Xen tatsächlich läuft. Unter Squeeze konnten Sie einfach uname -r ausführen, und Sie würden etwas sehen wie: 2.6.32-5-xen-amd64. Aus irgendeinem mysteriösen Grund, der der Menschheit unbekannt ist, funktioniert dies unter Wheezy nicht, also machen Sie stattdessen Folgendes:

xen dmesg

Sie sollten etwas sehen wie:

(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
...

Wenn Sie das nicht sehen, haben Sie etwas falsch gemacht. Gehen Sie zurück und versuchen Sie es erneut. Für alle anderen, ERFOLG! Herzlichen Glückwunsch! Sie haben jetzt eine großartige Dom0-Instanz!

Dom-was? Wen nennen Sie dom?

Entspannen Sie sich, Kumpel. Dom0, oder Domain 0, ist Ihr Host-Server, das Ding, auf dem Sie sich jetzt befinden, der Boden des Haufens. Die Gastserver werden als DomU bezeichnet, möglicherweise weil es auch leicht beleidigend klingt.

xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0 31089     8     r——      8.8

Dieser Befehl listet alle unsere virtuellen Server auf, einschließlich Dom0. Im Moment ist das der einzige Server, den wir laufen haben.

Wir können viel mit xm machen, einschließlich xm create, das einen Server hochbringt, xm destroy, das einen Server tötet, xm reboot, das einen Server neu startet, und xm top, das alle laufenden Server überwacht.

3. Konfiguration von LVM

Sie können Xen-Server entweder als Blockgeräte oder als LVM-Instanzen erstellen. Ich mag LVM, weil es männlicher ist, und es macht es auch viel einfacher, die Partitionen später zu ändern.

Zuerst benötigen wir ein leeres, nicht gemountetes Laufwerk, um LVM darauf zu setzen. Ich habe kein leeres, nicht gemountetes Laufwerk, also werde ich einfach eines von meinem Server stehlen.

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

1.7TB für /home? Meinen Sie das ernst? Das scheint völlig unnötig zu sein.

pico /etc/fstab

Kommentieren Sie das betreffende Laufwerk aus

#/dev/md/3 /home ext4 defaults 0 0

Unmounten Sie das Laufwerk

umount /dev/md3

Gut, jetzt können wir unser LVM-Partitionsteil erstellen.

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

Rechtmäßig!

4. Konfiguration von Xen Tools

Xen Tools macht unser Xen-Leben viel einfacher, insbesondere wenn es darum geht, neue Server zu erstellen. Aber zuerst müssen wir es ein wenig konfigurieren.

pico /etc/xen-tools/xen-tools.conf
lvm = xen-vol
size   = 20Gb      # Disk image size.
memory = 4Gb    # Memory size
swap   = 512Mb    # Swap size
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 # (und alle anderen, die Sie möchten)
serial_device = hvc0
disk_device = xvda #default
copyhosts = 1

5. Erstellen eines Gastservers

Zeit für das Hauptereignis! Dies ist der Prozess, den Sie jedes Mal wiederholen werden, wenn Sie einen neuen Xen-Gastserver erstellen möchten.

Für unseren ersten Testserver werde ich etwas kleiner machen als die Standardwerte, die wir in xen-tools.conf festgelegt haben. Sie können alle Standardwerte in der Befehlszeile überschreiben, je nachdem, was Sie möchten. Da wir keinen DHCP-Server verwenden, müssen Sie “hostname” und “ip” jedes Mal festlegen. Alles andere ist optional.

xen-create-image --hostname=test --ip=192.168.1.99 --memory=512Mb --size=5G --swap=256Kb
General Information
--------------------
Hostname       :  test
Distribution   :  wheezy
Mirror         :  http://ftp.de.debian.org/debian/
Partitions     :  swap            256Kb (swap)
                  /               5G    (ext3)
Image type     :  full
Memory size    :  512Mb
Kernel path    :  /boot/vmlinuz-3.2.0-4-amd64
Initrd path    :  /boot/initrd.img-3.2.0-4-amd64
Networking Information
----------------------
IP Address 1   : 192.168.1.99 [MAC: 00:16:3E:27:33:2D]
Netmask        : 255.255.0.0
Broadcast      : 192.168.1.255
Gateway        : 192.168.1.2

Creating swap on /dev/xen-vol/test-swap
Done
Creating ext3 filesystem on /dev/xen-vol/test-disk
Done
Installation method: debootstrap
Running hooks
Done
No role scripts were specified.  Skipping
Creating Xen configuration file
Done
No role scripts were specified.  Skipping
Setting up root password
Generating a password for the new guest.
All done

Logfile produced at:
     /var/log/xen-tools/test.log
Installation Summary
---------------------
Hostname        :  test
Distribution    :  wheezy
IP-Address(es)  :  192.168.1.99
RSA Fingerprint :  de:92:b7:63:55:20:74:46:d3:de:cc:ff:55:22:69:24
Root Password   :  MlkaIn8

Dies erstellt die Konfigurationsdatei und die Partition für uns, startet den Server jedoch nicht für uns. Die Konfigurationsdatei befindet sich unter /etc/xen/hostname.cfg. Sie können diese Datei direkt bearbeiten, wenn Sie Dinge wie den Speicher später ändern müssen.

Lassen Sie uns den Server starten

xm create /etc/xen/test.cfg
Using config file "/etc/xen/test.cfg".
Started domain test (id=1)

Was ziemlich cool ist, ist, dass “test” zu unserer /etc/hosts-Datei hinzugefügt wird, was bedeutet, dass wir einfach Folgendes tun können:

ssh test

Verwenden Sie das Passwort, das Sie am Ende der xen-create-image-Ausgabe erhalten haben, und Sie sind drin!

Stellen Sie sicher, dass Sie das Internet sehen können:

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. Haben Sie ein Bier

Sie haben es sich verdient!

7. IP-Adressen auf Ihre virtuellen Server verweisen

Sie benötigen eine Menge IP-Adressen von Ihrem ISP (genannt ein Subnetz). Ich zahle ein wenig mehr im Monat für zusätzliche acht IP-Adressen. Aber sie direkt an Ihren virtuellen Server weiterzuleiten, erfordert ein wenig Arbeit.

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

Verwenden Sie –bridge=br0, wenn Sie xen-create verwenden. Für vorhandene /etc/xen/*.cfg-Dateien bearbeiten Sie diese Zeile:

    vif         = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34' ]

um es so aussehen zu lassen:

    vif         = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34','bridge=br0' ]

Zerstören und erstellen Sie den virtuellen Server bei Bedarf.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.