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-toolsDies 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.sxpKommentieren 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-grubDann müssen wir neu starten:
rebootIch 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 dmesgSie 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 listName ID Mem VCPUs State Time(s)
Domain-0 0 31089 8 r—— 8.8Dieser 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 -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% /home1.7TB für /home? Meinen Sie das ernst? Das scheint völlig unnötig zu sein.
pico /etc/fstabKommentieren Sie das betreffende Laufwerk aus
#/dev/md/3 /home ext4 defaults 0 0Unmounten Sie das Laufwerk
umount /dev/md3Gut, jetzt können wir unser LVM-Partitionsteil erstellen.
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-GZAfbWRechtmäß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.conflvm = 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 = 15. 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=256KbGeneral 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 : MlkaIn8Dies 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.cfgUsing 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 testVerwenden 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.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. 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/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.99Verwenden 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.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.