From: Sebastian Bachmann Date: Thu, 30 May 2013 18:15:42 +0000 (+0200) Subject: move vortrags sites X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=0071ac91d5e1137b1074d3a51c0d4410213b7acd;p=debienna.git move vortrags sites --- diff --git a/Benutzer/AndreasRottmann/index.mdwn b/Benutzer/AndreasRottmann/index.mdwn index 91ceed6..1d690d0 100644 --- a/Benutzer/AndreasRottmann/index.mdwn +++ b/Benutzer/AndreasRottmann/index.mdwn @@ -6,6 +6,6 @@ Homepage: [[http://yi.org/rotty|http://yi.org/rotty]] Blog: [[http://rottylog.yi.org|http://rottylog.yi.org]] -[[SchemeVortrag|SchemeVortrag]] +[SchemeVortrag](/Vortrag/SchemeVortrag) [[!tag CategoryHomepage]] diff --git a/DebianAmWrt/index.mdwn b/DebianAmWrt/index.mdwn deleted file mode 100644 index 2209a0d..0000000 --- a/DebianAmWrt/index.mdwn +++ /dev/null @@ -1,50 +0,0 @@ - - -# Debian am Linksys WRT54GS - -* Was ist der WRT54GS? -* Was sind die Vorteile einer eigenen Firmware? - * Spielerei - * Shell auf dem WRT - * Mehr Möglichkeiten als die offizielle Linksys Firmware - * z.B: OpenVPN -* Meine Wahl: OpenWRT - * Paketsystem, ähnlich Debian -* Wieso zusätzlich noch Debian installieren? - * Spielerei - * Mipsel Architektur - * Gcc/Binutils -> Code schreiben - * Debugging -* Wie macht man's? - * Debootstrap will nicht (Bashisms) - * CDebootstrap muss her - * Debian Binary funktioniert auf OpenWRT nicht (glibc <-> uclibc) - * Man muss cdebootstrap (und libdebian-installer) .ipkg Pakete - * mit der OpenWRT Toolchain bauen - * Nicht genug Platz am WRT (nur 8Mb Flash) -> NFS share - * Bootstrap am WRT läuft nicht glatt durch weil dpkg fehlt - * Lässt sich in Busybox einkompilieren, erfordert aber etwas mehr Änderungen, und man muss den ganzen OpenWRT Tree bauen. - * Einfacherer Weg (etwas hacky): - * cdebootstrap --arch am NFS server im Share, das scheitert irgendwann, weil Arch-spezifische sachen fehlschlagen. Dpkg ist dann aber schon entpackt. Danach lässt man cdebootstrap am WRT laufen (selbe Optionen), das merkt dass schon einiges da ist, und macht dort weiter wo cdebootstrap am host aufgehört hat - * Danach: Chroot & Freude an Debian haben! - -## Addenum: Links - -Bild vom WRT: - - * [[http://tinyurl.com/dqsrs|http://tinyurl.com/dqsrs]] -Infos über die verschiedenen Hardware-Versionen - - * [[http://www.linksysinfo.org/modules.php?name=Content&pa=showpage&pid=6|http://www.linksysinfo.org/modules.php?name=Content&pa=showpage&pid=6]] -OpenWRT: - - * [[http://openwrt.org/|http://openwrt.org/]] -OpenWRT SDK: - - * [[http://downloads.openwrt.org/whiterussian/rc2/bin/OpenWrt-SDK-Linux-i686-1.tar.bz2|http://downloads.openwrt.org/whiterussian/rc2/bin/OpenWrt-SDK-Linux-i686-1.tar.bz2]] -CDebootstrap Pakete von [ChristianAichingerAkaGreek0](/Benutzer/ChristianAichingerAkaGreek0): - - * [[http://greek0.net/wrt|http://greek0.net/wrt]] - - - [[!tag CategoryVortragsUnterlagen]] diff --git a/Kalender/2009-10-15/index.mdwn b/Kalender/2009-10-15/index.mdwn index d8e5df7..c9e0816 100644 --- a/Kalender/2009-10-15/index.mdwn +++ b/Kalender/2009-10-15/index.mdwn @@ -3,7 +3,7 @@ ### geplante Themen -* [[SlackWorkshop|SlackWorkshop]] von [SebastianBachmann](/Benutzer/SebastianBachmann) +* [SlackWorkshop](/Vortrag/SlackWorkshop) von [SebastianBachmann](/Benutzer/SebastianBachmann) * Function Pointer in C * reverse debugging mit GDB 7.0 * GNU/kFreeBSD diff --git a/OpenVz/index.mdwn b/OpenVz/index.mdwn index 50f02f5..6f9761e 100644 --- a/OpenVz/index.mdwn +++ b/OpenVz/index.mdwn @@ -1,5 +1,5 @@ -OpenVZ ist eine freie Lösung zur Virtualisierung von Servern unter GNU/Linux. Mehr zum Thema findest du unter [[XenVirtualisierung|XenVirtualisierung]]. OpenVZ ist der Kern von Parallels Virtuozzo und stellt eine Alternative zu Xen dar. +OpenVZ ist eine freie Lösung zur Virtualisierung von Servern unter GNU/Linux. Mehr zum Thema findest du unter [XenVirtualisierung](/Vortrag/XenVirtualisierung). OpenVZ ist der Kern von Parallels Virtuozzo und stellt eine Alternative zu Xen dar. ## Host-system vorbereiten diff --git a/SchemeVortrag/index.mdwn b/SchemeVortrag/index.mdwn deleted file mode 100644 index 77460c6..0000000 --- a/SchemeVortrag/index.mdwn +++ /dev/null @@ -1,28 +0,0 @@ - -Datum: 30.1. 2006 - -So, jetzt hat [[Lefant]] [[mich|AndreasRottmann]] endlich überredet, einen Votrag ueber Scheme und meine aktuellen Hacktivties zu halten. Auf dieser Seite kritzle ich mir mal meine Notitzen zusammen; falls jemand Anmerkungen hat, immer her damit! - -* Scheme - - * Geschichte - * Standard(s) / RnRS / SRFIs - * Implementierungen (Kurzüberblick über die, mit denen ich schon gespielt habe) - * - [[Guile|http://www.gnu.org/software/guile]], [[scsh|http://www.scsh.net]], [[Scheme48|http://www.s48.org]] - * Resourcen: [[IRC|http://community.schemewiki.org/?%23scheme-on-freenode]]/[[Usenet|news:comp.lang.scheme]]/[[CSW|http://community.schemewiki.org]]/[[Planet Scheme|http://planet-scheme.yi.org/]] -* Scheme48 - - * Architekturueberblick (WTF is [[PreScheme|PreScheme]]?) - * Modulsystem - * Slime48 (Kurzdemo) -* s42 - - * Was isses und wieso isses überhaupt? - * Feats: FFI, Universe, Networking API - * Conjure - * Was soll/wird passieren? -* Infos - -[[http://en.wikipedia.org/wiki/Scheme_programming_language|http://en.wikipedia.org/wiki/Scheme_programming_language]] - - [[!tag CategoryVortragsUnterlagen]] diff --git a/SlackWorkshop/index.mdwn b/SlackWorkshop/index.mdwn deleted file mode 100644 index c17e64a..0000000 --- a/SlackWorkshop/index.mdwn +++ /dev/null @@ -1,9 +0,0 @@ - - -# Slack Workshop - -By [SebastianBachmann](/Benutzer/SebastianBachmann) at 15.10.2009 - -IP: - -Slides: [[http://www.free-minds.net/files/slack_workshop.pdf|http://www.free-minds.net/files/slack_workshop.pdf]] diff --git a/Vortrag/DebianAmWrt/index.mdwn b/Vortrag/DebianAmWrt/index.mdwn new file mode 100644 index 0000000..2209a0d --- /dev/null +++ b/Vortrag/DebianAmWrt/index.mdwn @@ -0,0 +1,50 @@ + + +# Debian am Linksys WRT54GS + +* Was ist der WRT54GS? +* Was sind die Vorteile einer eigenen Firmware? + * Spielerei + * Shell auf dem WRT + * Mehr Möglichkeiten als die offizielle Linksys Firmware + * z.B: OpenVPN +* Meine Wahl: OpenWRT + * Paketsystem, ähnlich Debian +* Wieso zusätzlich noch Debian installieren? + * Spielerei + * Mipsel Architektur + * Gcc/Binutils -> Code schreiben + * Debugging +* Wie macht man's? + * Debootstrap will nicht (Bashisms) + * CDebootstrap muss her + * Debian Binary funktioniert auf OpenWRT nicht (glibc <-> uclibc) + * Man muss cdebootstrap (und libdebian-installer) .ipkg Pakete + * mit der OpenWRT Toolchain bauen + * Nicht genug Platz am WRT (nur 8Mb Flash) -> NFS share + * Bootstrap am WRT läuft nicht glatt durch weil dpkg fehlt + * Lässt sich in Busybox einkompilieren, erfordert aber etwas mehr Änderungen, und man muss den ganzen OpenWRT Tree bauen. + * Einfacherer Weg (etwas hacky): + * cdebootstrap --arch am NFS server im Share, das scheitert irgendwann, weil Arch-spezifische sachen fehlschlagen. Dpkg ist dann aber schon entpackt. Danach lässt man cdebootstrap am WRT laufen (selbe Optionen), das merkt dass schon einiges da ist, und macht dort weiter wo cdebootstrap am host aufgehört hat + * Danach: Chroot & Freude an Debian haben! + +## Addenum: Links + +Bild vom WRT: + + * [[http://tinyurl.com/dqsrs|http://tinyurl.com/dqsrs]] +Infos über die verschiedenen Hardware-Versionen + + * [[http://www.linksysinfo.org/modules.php?name=Content&pa=showpage&pid=6|http://www.linksysinfo.org/modules.php?name=Content&pa=showpage&pid=6]] +OpenWRT: + + * [[http://openwrt.org/|http://openwrt.org/]] +OpenWRT SDK: + + * [[http://downloads.openwrt.org/whiterussian/rc2/bin/OpenWrt-SDK-Linux-i686-1.tar.bz2|http://downloads.openwrt.org/whiterussian/rc2/bin/OpenWrt-SDK-Linux-i686-1.tar.bz2]] +CDebootstrap Pakete von [ChristianAichingerAkaGreek0](/Benutzer/ChristianAichingerAkaGreek0): + + * [[http://greek0.net/wrt|http://greek0.net/wrt]] + + + [[!tag CategoryVortragsUnterlagen]] diff --git a/Vortrag/SchemeVortrag/index.mdwn b/Vortrag/SchemeVortrag/index.mdwn new file mode 100644 index 0000000..77460c6 --- /dev/null +++ b/Vortrag/SchemeVortrag/index.mdwn @@ -0,0 +1,28 @@ + +Datum: 30.1. 2006 + +So, jetzt hat [[Lefant]] [[mich|AndreasRottmann]] endlich überredet, einen Votrag ueber Scheme und meine aktuellen Hacktivties zu halten. Auf dieser Seite kritzle ich mir mal meine Notitzen zusammen; falls jemand Anmerkungen hat, immer her damit! + +* Scheme + + * Geschichte + * Standard(s) / RnRS / SRFIs + * Implementierungen (Kurzüberblick über die, mit denen ich schon gespielt habe) + * - [[Guile|http://www.gnu.org/software/guile]], [[scsh|http://www.scsh.net]], [[Scheme48|http://www.s48.org]] + * Resourcen: [[IRC|http://community.schemewiki.org/?%23scheme-on-freenode]]/[[Usenet|news:comp.lang.scheme]]/[[CSW|http://community.schemewiki.org]]/[[Planet Scheme|http://planet-scheme.yi.org/]] +* Scheme48 + + * Architekturueberblick (WTF is [[PreScheme|PreScheme]]?) + * Modulsystem + * Slime48 (Kurzdemo) +* s42 + + * Was isses und wieso isses überhaupt? + * Feats: FFI, Universe, Networking API + * Conjure + * Was soll/wird passieren? +* Infos + +[[http://en.wikipedia.org/wiki/Scheme_programming_language|http://en.wikipedia.org/wiki/Scheme_programming_language]] + + [[!tag CategoryVortragsUnterlagen]] diff --git a/Vortrag/SlackWorkshop/index.mdwn b/Vortrag/SlackWorkshop/index.mdwn new file mode 100644 index 0000000..c17e64a --- /dev/null +++ b/Vortrag/SlackWorkshop/index.mdwn @@ -0,0 +1,9 @@ + + +# Slack Workshop + +By [SebastianBachmann](/Benutzer/SebastianBachmann) at 15.10.2009 + +IP: + +Slides: [[http://www.free-minds.net/files/slack_workshop.pdf|http://www.free-minds.net/files/slack_workshop.pdf]] diff --git a/Vortrag/VortragSNMP/index.mdwn b/Vortrag/VortragSNMP/index.mdwn new file mode 100644 index 0000000..06416b2 --- /dev/null +++ b/Vortrag/VortragSNMP/index.mdwn @@ -0,0 +1,7 @@ + + +## SNMP Vortrag + +[SebastianBachmann](/Benutzer/SebastianBachmann) am Kalender/2009-05-28 + +Folien: [[http://www.free-minds.net/files/snmp.pdf|http://www.free-minds.net/files/snmp.pdf]] diff --git a/Vortrag/VortragSNMP/snmp.pdf b/Vortrag/VortragSNMP/snmp.pdf new file mode 100644 index 0000000..66a6fbf Binary files /dev/null and b/Vortrag/VortragSNMP/snmp.pdf differ diff --git a/Vortrag/XenVirtualisierung/index.mdwn b/Vortrag/XenVirtualisierung/index.mdwn new file mode 100644 index 0000000..3f42f91 --- /dev/null +++ b/Vortrag/XenVirtualisierung/index.mdwn @@ -0,0 +1,295 @@ + +_Kurzanleitung zum Anlegen einer [[Xen Virtual Machine|http://www.cl.cam.ac.uk/Research/SRG/netos/xen/]] unter Debian GNU/Linux._ [[!toc ]] + + +### Xen? WTF? + +Mit Hilfe von virtuellen Maschinen können wir verschiedene Dienste (HTTP, Datenbank, Mail, BIND etc.) getrennt von einander fahren bzw. Server für verschiedene User/Anwendungsbereiche auf einem Host verwenden, ohne dass die jeweiligen VMs einander sehen. Ist der eine Webserver beispielsweise kompromitiert, laufen Email, Datenbanken etc. weiter, ohne von der Attacke betroffen zu sein. Außerdem fällt die Wartung leichter. Und zum Testen unterschiedlichster Software (Entwicklungsserver unter sid, Production unter sarge etc.) bzw. zum parallelen Betrieb unterschiedlicher Distributionen (wer will das schon? *g*) bzw. unterschiedlicher Betriebssyteme (Debian GNU/Linux neben [[Debian GNU/kFreeBSD|http://www.debian.org/ports/kfreebsd-gnu/]] oder sogar [[Debian GNU/Hurd|http://www.debian.org/ports/hurd/]]) ist das ganze überhaupt supi! + +Xen steht unter der GPL und wird hauptsächlich an der University of Cambridge entwickelt. Für weitere Infos siehe [[http://wiki.debian.org/Xen|http://wiki.debian.org/Xen]] sowie [[http://linuxwiki.de/Xen|http://linuxwiki.de/Xen]] oder andere Howtos. ;-) + +Falls dein System nicht auf Debian basieren sollte (wie kann denn das sein? *fg*), findest du hier eine Liste weiterer Howtos: + +* [[HowTos - Xen Wiki|http://wiki.xensource.com/xenwiki/HowTos]] + +### Xen and friends... + +Während [[Linux-VServer|http://linux-vserver.org/]] am Kernel ABI virtualisiert und somit keine Guest-Kernels, sondern nur Guest-Environments benötigt, wird bei Xen - wie auch bei [[UML (User Mode Linux)|http://user-mode-linux.sourceforge.net/]] - die ganze Maschine virtualisiert und ein Guest-Kernel verwendet, d.h. die Virtualisierung findet auf einer anderen Ebene statt. + +Der Hauptunterschied zu [[UML (User Mode Linux)|http://user-mode-linux.sourceforge.net/]] wiederum besteht darin, dass Xen einen eigenen Mikrokernel, den so genannten Hypervisor, verwendet und die Guest-VM somit nicht einfach als ein Prozess des Linux Makrokernels, sondern als Hypervisor-Partition läuft. (Danke an ["Bertl"] für die Aufklärung! :-) ) + +* vgl. [[XML Validation: XEN with Sarge|http://www.xmlvalidation.com/xen_howto_sarge.0.html]] + +## Host (dom0) + +Nachdem Xen 3.0 sich noch im Entwicklungsstadium befindet und regelmäßig verbessert wird, haben wir beim Test am [[DebiennaTreff|DebiennaTreff]] darauf verzichtet, ein Debian-Paket zu verwenden, sondern bauten uns Xen stattdessen from Source. Für diejenigen, denen das (zumindest für den Anfang) zu stressig ist, gibt es aber auch eine kurze Beschreibung zum Installieren über dpkg/apt. + + +### Debian + +Es gibt die unterschiedlichsten Repositorys, von denen du Xen für Debian GNU/Linux beziehen kannst. Seit einiger Zeit gibt es auch ein Debian Xen Team und Xen ist in sid/unstable. Solltest du ein Produktionssystem fahren, benötigst du einen Backport (s. [[http://www.backports.org/|http://www.backports.org/]]) oder einen inoffiziellen Build, z.B. von Ralph Passgang. Eine genauere Auflistung findet sich hier: [[http://wiki.xensource.com/xenwiki/DebianPackageMaintenance|http://wiki.xensource.com/xenwiki/DebianPackageMaintenance]] + +Nachdem die richtigen Quellen in /etc/apt/sources eingetragen sind und die Paketlisten mit 'apt-get update' bzw. 'aptitude update' auf den aktuellen Stand gebracht wurden (s. [[http://www.debian-administration.org/articles/320|http://www.debian-administration.org/articles/320]]), können wir Xen schon installieren. + +* [[!format txt """ +pablo@packman:~$ sudo aptitude install xen-hypervisor-3.0-i386 xen-utils-3.0 linux-image-2.6.16-1-xen-686 bridge-utils iproute sysfsutils libc6-xen xen-tools +"""]] +In manchen Paketen findet sich das Skript 'update-grub-xen', welches die korrekten Entries für den Bootloader in /boot/grub/menu.lst schreibt. Wo dies nicht der Fall ist, muss dieser Schritt händisch durchgeführt werden (siehe weiter unten). + +Um bei einem 2.6er Kernel eine bessere Leistung zu erzielen, müssen wir unter Sarge noch die TLS-Bibliothek (Thread Local Storage) verschieben. Selbiges sollte später auch bei den Gastsystemen unternommen werden. + +* [[!format txt """ +pablo@packman:~$ sudo mv /lib/tls /lib/tls.disabled +"""]]VORSICHT: Bei einem Upgrade der GNU C-Bibliothek(en) wird dieser Schritt automatisch rückgängig gemacht. Für einen "nachhaltigen Weg" siehe: [[http://wiki.xensource.com/xenwiki/DebianTlsLibcDiversion|http://wiki.xensource.com/xenwiki/DebianTlsLibcDiversion]] +Dieser Schritt entfällt unter AMD64! + +Zuletzt müssen wir noch ein [[initramfs|http://wiki.debian.org/initramfs]] Image selber generieren. Alternativ gibt es unter [[http://www.debian-administration.org/articles/396|http://www.debian-administration.org/articles/396]] eine Anleitung für Xen mit mkinitrd. Die althergebrachte [[InitRamDisk|http://wiki.debian.org/Initrd]] wird jedoch zunehmend von initramfs abgelöst. Weitere Infos hierzu gibt es unter: + +* [[InitrdReplacementOptions - Debian Wiki|http://wiki.debian.org/InitrdReplacementOptions]] [[!format txt """ +pablo@packman:~$ sudo update-initramfs -c -k 2.6.16-1-xen0 +"""]]oder: [[!format txt """ +pablo@packman:~$ sudo mkinitrd /boot/initrd-2.6.16-1-xen0.img 2.6.16-1-xen0 +"""]] + +### Custom + +Wir nehmen ein minimales Debian GNU/Linux 3.1 "Sarge", besorgen uns die Xen-Sourcen und kompilieren die Xen-Tools samt Kernel. Die GNU C Library sollte möglichst aktuell sein. Zum Entpacken des Xen-Tarballs benötigen wir gzip, für den Kernel bzip2 und zum Holen benötigen wir das Paket bittorrent. Der 'Compiler results cacher' ccache beschleunigt das Kompilieren von C/C++ Code, indem bei erneutem Umsetzen dort fortgesetzt wird, wo der Kompiliervorgang zuvor unterbrochen wurde. Zum grafischen Einstellen der Kernel-Settings brauchen wir ncurses-dev. Siehe auch: + +* [[What Debian packages do I need for Xen?|http://wiki.xensource.com/xenwiki/XenFaq#head-fed1b310b70f97c7691d4cde77d653441dc4eeaf]] [[!format txt """ +pablo@packman:~$ sudo aptitude install gzip bzip2 ccache libc6 libc6-dev bittorrent ncurses-dev +"""]] +Um ccache im Pfad zu haben, müssen wir noch einen kleinen Hack machen. Folgendes gilt für die GNU Bourne Shell - äquivalent für Z Shell et.al. + +* [[!format txt """ +pablo@packman:~$ editor .bash_profile +"""]][[!format txt """ +if [ -d /usr/lib/ccache ] ; then + PATH=/usr/lib/ccache:"${PATH}" +fi +"""]] +Nun holen wir uns Xen. Den aktuellen [[BitTorrent|BitTorrent]]-Link bekommen wir unter: [[http://www.xensource.com/xen/downloads/dl_x30tarball_bt.html|http://www.xensource.com/xen/downloads/dl_x30tarball_bt.html]] + +Anschließend entpacken wir den Tarball. Prinzipiell kann das alles als User erfolgen. + +* [[!format txt """ +pablo@packman:~$ cd src/ +pablo@packman:~/src$ btdownloadcurses http://tx.downloads.xensource.com/torrents/xen-3.0.2-src.tgz.torrent +pablo@packman:~/src$ tar xfz xen-3.0.2-src.tgz +"""]] +Bevor wir Xen kompilieren, öffnen wir auf einer zweiten virtuellen Kosole, einem zweiten Terminalfenster oder am besten in GNU Screen ccache. Falls der Compile-Vorgang unterbrochen wird, sollte bei einem zweiten Versuch unter 'cache hit' 1 statt 0 stehen. + +* [[!format txt """ +pablo@packman:~/src$ screen watch ccache -s +C-a C-c +pablo@packman:~/src$ make +"""]] +Nachdem wir uns nun ein paar Tassen Kaffee oder mehrere Chips-Packerl gegönnt haben und unser Prozessor warmgelaufen ist, haben wir den längsten Teil hinter uns. Nun müssen wir noch einen Linux-Kernel für Xen bauen. Xen selbst bootet erst einen Mikrokernel, der in Folge den Linux-Betriebssystemkern aufruft. + +[KlausIta](/Benutzer/KlausIta) empfiehlt, sicherzustellen, ob alle benötigten Module aktiviert sind und ext3fs-Unterstützung (rootfs) fix in den Kernel zu integrieren. Außerdem sollten SATA bzw. SCSI aktiviert werden, falls benötigt. Für weitere Hilfe zum Kernel Bauen mit make-kpkg, sprich "The Debian Way", könnten die unteren Abschnitte des folgenden Dokuments hilfreich sein. + +* [[Creating custom kernels with Debian's kernel-package system|http://newbiedoc.sourceforge.net/system/kernel-pkg.html]] [[!format txt """ +pablo@packman:~/src$ cd linux-2.6.16-xen/ +pablo@packman:~/src/linux-2.6.16-xen$ make menuconfig +pablo@packman:~/src/linux-2.6.16-xen$ cd .. +pablo@packman:~/src$ make dist +"""]] +Im Folgenden können wir Xen installieren ... + +* [[!format txt """ +pablo@packman:~/src$ cd xen-3.0.2 +pablo@packman:~/src/xen-3.0.2$ make world +pablo@packman:~/src/xen-3.0.2$ make install +"""]] +Nun haben wir den Xen Hypervisor, einen Kernel und die Xen-Tools. Zuletzt müssen wir die Xen-Dienste registrieren und einen Boot-Eintrag in GRUB, dem GNU Grand Unified Bootloader, vornehmen. Solltest du keine eigene /boot-Partition haben, bitte unbedingt die Pfade anpassen. Außerdem sollten gegebenfalls root= und die Dateinamen an das eigene System angepasst werden. Sollte das alles Neuland für dich sein, siehe hier für weiterführende Links: [[http://wiki.debian.org/GRUB|http://wiki.debian.org/GRUB]] + +* [[!format txt """ +pablo@packman:~/src/xen-3.0.2$ sudo update-rc.d xend defaults 20 21 +pablo@packman:~/src/xen-3.0.2$ sudo update-rc.d xendomains defaults 21 20 +pablo@packman:~/src/xen-3.0.2$ sudoedit /boot/grub/menu.lst +"""]][[!format txt """ +### END DEBIAN AUTOMAGIC KERNELS LIST + +# boot xen vm host +title Xen +root (hd0,0) +kernel /xen-3.0-i386.gz +module /vmlinuz-2.6.16-1-xen root=/dev/hda1 ro console=tty0 +module /initrd.img-2.6.16-1-xen +"""]] + +### Konfiguration + +Wir können die dom0 nun rebooten und Xen starten. Nicht vergessen, unter GRUB den richtigen Eintrag auszuwählen! ;-) + +Folgende kleine Eingriffe müssen eventuell vorgenommen werden: + +* Netzwerkeinstellungen unter /etc/network/interfaces von DHCP auf statisch ändern. (don't forget: /etc/init.d/networking restart) +* Die Nameserver in /etc/resolv.conf anpassen. +* Unter /etc/hostname den Namen des Hosts bzw. der dom0 eintragen. +* Ist eine Netzwerk-Bridge erwünscht, muss die natürlich auch unter /etc/network/interfaces angegeben werden. [[!format txt """ + pre-up brctl addbr xenbr0 + pre-up brctl addif xenbr0 eth0 + post-down brctl delbr xenbr0 +"""]] +Weitere Infos zu Debian und network-bridge: + +* [[Anleitung zum Absichern von Debian - Aufsetzen einer überbrückenden Firewall (bridge Firewall)|http://www.debian.org/doc/manuals/securing-debian-howto/ap-bridge-fw.de.html]] +* [[QEMU - Debian - Linux - TUN/TAP - network bridge|http://compsoc.dur.ac.uk/~djw/qemu.html]] [[!format txt """ +pablo@packman:~$ apt-cache show bridge-utils +Package: bridge-utils +Priority: optional +Section: net +Installed-Size: 148 +Maintainer: Santiago Garcia Mantinan +Architecture: i386 +Version: 1.0.4-1 +Depends: libc6 (>= 2.3.2.ds1-4), libsysfs1 +Recommends: ifupdown +Conflicts: ifupdown (<< 0.6.0) +Filename: pool/main/b/bridge-utils/bridge-utils_1.0.4-1_i386.deb +Size: 26900 +MD5sum: ef7bd97c308bc0291f6584f557abecf9 +Description: Utilities for configuring the Linux ethernet bridge + This package contains utilities for configuring the Linux ethernet + bridge in Linux 2.4 or later. The Linux ethernet bridge can be used + for connecting multiple ethernet devices together. The connecting is + fully transparent: hosts connected to one ethernet device see hosts + connected to the other ethernet devices directly. +"""]] +Wir können nun den Xen-Domänendienst starten. Eventuell muss hier noch eine Änderung vorgenommen werden. + +* [[!format txt """ +pablo@packman:~$ sudo /etc/init.d/xendomains start +touch: kann ,,/var/lock/subsys/xendomains" nicht berühren: Datei oder Verzeichnis nicht gefunden +"""]] +Falls bei dir derselbe Fehler auftritt, musst du einfach nur das Verzeichnis anlegen, in das die Datei xendomains geschrieben werden soll. + +* [[!format txt """ +pablo@packman:~$ sudo mkdir -p /var/lock/subsys/ +"""]] +Anschließend legen wir fest, wo unsere Virtual Machines liegen werden, welche IP unser Server (Gateway) hat, wo der Kernel liegt und dergleichen mehr. + +* [[!format txt """ +pablo@packman:~$ sudo mkdir -p /srv/xen +pablo@packman:~$ sudoedit /etc/xen-tools/xen-tools.conf +"""]][[!format txt """ +dir = /srv/xen +size = 2Gb +memory = 128Mb +swap = 128Mb +fs = ext3 +dist = sarge +gateway = 192.168.1.1 +netmask = 255.255.255.0 +passwd = 1 +initrd = /boot/initrd.img-2.6.16-1-xen +kernel = /boot/vmlinuz-2.6.16-1-xen +mirror = http://ftp.at.debian.org/debian/ +"""]] + +## Gast (domU) + + +### VM-Image + +Sollte bis jetzt alles erfolgreich gewesen sein, können wir nun testweise ein Gastsystem aufsetzen. In den meisten Howtos wird dazu erst mit dd ein Image erstellt, dann partitioniert und über loop gemountet, und anschließend mit dbootstrap ein System aufgespielt. Dieses Image könnte nun beliebig oft kopiert werden und als Basis für verschiedenste Server u.dergl. verwendet werden. + +Optional kann auch mit xen-create-image ein Image erstellt werden. Danach wird der Xen-Dienst gestartet und die Xen-Mashine mit Hilfe von xm erstellt. + +* [[!format txt """ +pablo@packman:~$ sudo xen-create-image --dir=/srv/xen --size=2Gb --swap=128Mb --memory=128Mb --fs=ext3 --cache=yes --dist=etch --hostname=debiennerl --dhcp --initrd=/boot/initrd.img-2.6.16-1-xen --kernel=/boot/vmlinuz-2.6.16-1-xen- --mirror=http://http://ftp.at.debian.org/debian/ +pablo@packman:~$ sudo xend start +pablo@packman:~$ sudo xm create debiennerl -c +"""]] +Einfacher als das manuelle Erstellen einer VM kann es sein, ein bestehendes System zu übernehmen: Entweder mittels dd in ein Image schreiben, oder ein bestehendes Logical Volume einer Linux LVM in Xen einbinden. Das ganze muss nur noch in die Konfigurationsdatei eingetragen werden und schon kann's losgehen! + +* [[!format txt """ + # -*- mode: python; -*- + kernel = "/boot/vmlinuz-2.6.16-1-xen" + ramdisk = "/boot/initrd.img-2.6.16-1-xen" + memory = 128 + name = "debiennerl" + vif = [['|bridge=xenbr0' ]] + disk = ['phy:/dev/debiennerl/root,hda1,w','phy:/dev/lvmxen/domu1-swap,hda2,w'] + ip="192.168.1.100" + netmask="255.255.255.0" + gateway="192.168.1.1" + hostname = "debiennerl" + root = "/dev/mapper/debiennerl-root ro" + extra = "4" +"""]] + +### LVM + +Sollte der Einsatz von Logical Volumes erwünscht aber LVM noch nicht eingerichtet sein, musst du folgendes machen: LVM Partition anlegen (mit cfdisk, gparted o.ä.), LVM 2 Tools installieren, Volume Group anlegen, Logical Volumes anlegen und formatieren. Zum Verwalten von LVMs kann alternativ auch evmsn (ncurses) bzw. emvsgui (gtk) verwendet werden. + +Überprüfen der Partitionstabelle: + +* [[!format txt """ +redtux@testix:~$ fdisk -l /dev/sda + +Platte /dev/sda: 122.9 GByte, 122942324736 Byte +16 Köpfe, 63 Sektoren/Spuren, 238216 Zylinder +Einheiten = Zylinder von 1008 × 512 = 516096 Bytes + + Gerät boot. Anfang Ende Blöcke Id System +/dev/sda1 * 1 705 355288+ 83 Linux +/dev/sda2 706 238216 119705544 f W95 Erw. (LBA) +/dev/sda5 706 2737 1024096+ 83 Linux +/dev/sda6 2738 238216 118681384+ 8e Linux LVM +"""]] +LVM einrichten: + +* [[!format txt """ +redtux@testix:~$ sudo aptitude install lvm2 +redtux@testix:~$ sudo pvcreate /dev/sda6 +redtux@testix:~$ sudo vgcreate vserver /dev/sda6 +redtux@testix:~$ sudo lvcreate -L1000 -nroot vserver + Logical volume "root" created +redtux@testix:~$ sudo lvcreate -L1G -nswap vserver + Logical volume "swap" created +redtux@testix:~$ sudo lvscan -v + Finding all logical volumes + ACTIVE '/dev/vserver/root' [[1000,00|MB]] inherit + ACTIVE '/dev/vserver/swap' [[1,00|GB]] inherit +redtux@testix:~$ sudo mkfs.ext3 -L xen-dom0 /dev/vserver/root +redtux@testix:~$ sudo swapon -v /dev/vserver/swap +swapon für /dev/vserver/swap +redtux@testix:~$ sudo swapon -s +Filename Type Size Used Priority +/dev/hdb8 partition 562424 165328 -1 +/dev/hda5 partition 248968 0 -2 +/dev/mapper/vserver-swap partition 1048568 0 -3 +"""]] + +### Sonstiges + +Damit eine Xen VM beim Hochfahren des Hosts automatisch gestartet wird, muss ein Link in /etc/xen/auto/ erstellt werden. + +* [[!format txt """ +pablo@packman:~$ sudo ln -s /etc/xen/debiennerl /etc/xen/auto/ +"""]] +Um die laufenden VMs anzuzigen, gibt es den befehl 'xm list'. + +* [[!format txt """ +pablo@packman:~$ xm list +Name ID Mem(MiB) VCPUs State Time(s) +Domain-0 0 64 1 r----- 112.0 +debiennerl 3 128 1 ------ 27.4 +"""]] +Mit 'xm console ' gelangen wir auf die Konsole der jeweiligen VM. + +* [[!format txt """ +pablo@packman:~$ xm console 3 +"""]] +Weitere Tipps folgen (hoffentlich) mit der Zeit. + + +## Siehe auch + +* [[The Perfect Xen 3.0 Setup For Debian|http://www.howtoforge.com/perfect_setup_xen3_debian]] +* [[Xen Wiki|http://wiki.xensource.com/xenwiki/]] +* [[xen live migration|http://aipc54.ai.wu-wien.ac.at/cgi-bin/blosxom/2006/05/20]] + + + [[!tag CategoryVortragsUnterlagen]] diff --git a/VortragSNMP/index.mdwn b/VortragSNMP/index.mdwn deleted file mode 100644 index 06416b2..0000000 --- a/VortragSNMP/index.mdwn +++ /dev/null @@ -1,7 +0,0 @@ - - -## SNMP Vortrag - -[SebastianBachmann](/Benutzer/SebastianBachmann) am Kalender/2009-05-28 - -Folien: [[http://www.free-minds.net/files/snmp.pdf|http://www.free-minds.net/files/snmp.pdf]] diff --git a/XenVirtualisierung/index.mdwn b/XenVirtualisierung/index.mdwn deleted file mode 100644 index 3f42f91..0000000 --- a/XenVirtualisierung/index.mdwn +++ /dev/null @@ -1,295 +0,0 @@ - -_Kurzanleitung zum Anlegen einer [[Xen Virtual Machine|http://www.cl.cam.ac.uk/Research/SRG/netos/xen/]] unter Debian GNU/Linux._ [[!toc ]] - - -### Xen? WTF? - -Mit Hilfe von virtuellen Maschinen können wir verschiedene Dienste (HTTP, Datenbank, Mail, BIND etc.) getrennt von einander fahren bzw. Server für verschiedene User/Anwendungsbereiche auf einem Host verwenden, ohne dass die jeweiligen VMs einander sehen. Ist der eine Webserver beispielsweise kompromitiert, laufen Email, Datenbanken etc. weiter, ohne von der Attacke betroffen zu sein. Außerdem fällt die Wartung leichter. Und zum Testen unterschiedlichster Software (Entwicklungsserver unter sid, Production unter sarge etc.) bzw. zum parallelen Betrieb unterschiedlicher Distributionen (wer will das schon? *g*) bzw. unterschiedlicher Betriebssyteme (Debian GNU/Linux neben [[Debian GNU/kFreeBSD|http://www.debian.org/ports/kfreebsd-gnu/]] oder sogar [[Debian GNU/Hurd|http://www.debian.org/ports/hurd/]]) ist das ganze überhaupt supi! - -Xen steht unter der GPL und wird hauptsächlich an der University of Cambridge entwickelt. Für weitere Infos siehe [[http://wiki.debian.org/Xen|http://wiki.debian.org/Xen]] sowie [[http://linuxwiki.de/Xen|http://linuxwiki.de/Xen]] oder andere Howtos. ;-) - -Falls dein System nicht auf Debian basieren sollte (wie kann denn das sein? *fg*), findest du hier eine Liste weiterer Howtos: - -* [[HowTos - Xen Wiki|http://wiki.xensource.com/xenwiki/HowTos]] - -### Xen and friends... - -Während [[Linux-VServer|http://linux-vserver.org/]] am Kernel ABI virtualisiert und somit keine Guest-Kernels, sondern nur Guest-Environments benötigt, wird bei Xen - wie auch bei [[UML (User Mode Linux)|http://user-mode-linux.sourceforge.net/]] - die ganze Maschine virtualisiert und ein Guest-Kernel verwendet, d.h. die Virtualisierung findet auf einer anderen Ebene statt. - -Der Hauptunterschied zu [[UML (User Mode Linux)|http://user-mode-linux.sourceforge.net/]] wiederum besteht darin, dass Xen einen eigenen Mikrokernel, den so genannten Hypervisor, verwendet und die Guest-VM somit nicht einfach als ein Prozess des Linux Makrokernels, sondern als Hypervisor-Partition läuft. (Danke an ["Bertl"] für die Aufklärung! :-) ) - -* vgl. [[XML Validation: XEN with Sarge|http://www.xmlvalidation.com/xen_howto_sarge.0.html]] - -## Host (dom0) - -Nachdem Xen 3.0 sich noch im Entwicklungsstadium befindet und regelmäßig verbessert wird, haben wir beim Test am [[DebiennaTreff|DebiennaTreff]] darauf verzichtet, ein Debian-Paket zu verwenden, sondern bauten uns Xen stattdessen from Source. Für diejenigen, denen das (zumindest für den Anfang) zu stressig ist, gibt es aber auch eine kurze Beschreibung zum Installieren über dpkg/apt. - - -### Debian - -Es gibt die unterschiedlichsten Repositorys, von denen du Xen für Debian GNU/Linux beziehen kannst. Seit einiger Zeit gibt es auch ein Debian Xen Team und Xen ist in sid/unstable. Solltest du ein Produktionssystem fahren, benötigst du einen Backport (s. [[http://www.backports.org/|http://www.backports.org/]]) oder einen inoffiziellen Build, z.B. von Ralph Passgang. Eine genauere Auflistung findet sich hier: [[http://wiki.xensource.com/xenwiki/DebianPackageMaintenance|http://wiki.xensource.com/xenwiki/DebianPackageMaintenance]] - -Nachdem die richtigen Quellen in /etc/apt/sources eingetragen sind und die Paketlisten mit 'apt-get update' bzw. 'aptitude update' auf den aktuellen Stand gebracht wurden (s. [[http://www.debian-administration.org/articles/320|http://www.debian-administration.org/articles/320]]), können wir Xen schon installieren. - -* [[!format txt """ -pablo@packman:~$ sudo aptitude install xen-hypervisor-3.0-i386 xen-utils-3.0 linux-image-2.6.16-1-xen-686 bridge-utils iproute sysfsutils libc6-xen xen-tools -"""]] -In manchen Paketen findet sich das Skript 'update-grub-xen', welches die korrekten Entries für den Bootloader in /boot/grub/menu.lst schreibt. Wo dies nicht der Fall ist, muss dieser Schritt händisch durchgeführt werden (siehe weiter unten). - -Um bei einem 2.6er Kernel eine bessere Leistung zu erzielen, müssen wir unter Sarge noch die TLS-Bibliothek (Thread Local Storage) verschieben. Selbiges sollte später auch bei den Gastsystemen unternommen werden. - -* [[!format txt """ -pablo@packman:~$ sudo mv /lib/tls /lib/tls.disabled -"""]]VORSICHT: Bei einem Upgrade der GNU C-Bibliothek(en) wird dieser Schritt automatisch rückgängig gemacht. Für einen "nachhaltigen Weg" siehe: [[http://wiki.xensource.com/xenwiki/DebianTlsLibcDiversion|http://wiki.xensource.com/xenwiki/DebianTlsLibcDiversion]] -Dieser Schritt entfällt unter AMD64! - -Zuletzt müssen wir noch ein [[initramfs|http://wiki.debian.org/initramfs]] Image selber generieren. Alternativ gibt es unter [[http://www.debian-administration.org/articles/396|http://www.debian-administration.org/articles/396]] eine Anleitung für Xen mit mkinitrd. Die althergebrachte [[InitRamDisk|http://wiki.debian.org/Initrd]] wird jedoch zunehmend von initramfs abgelöst. Weitere Infos hierzu gibt es unter: - -* [[InitrdReplacementOptions - Debian Wiki|http://wiki.debian.org/InitrdReplacementOptions]] [[!format txt """ -pablo@packman:~$ sudo update-initramfs -c -k 2.6.16-1-xen0 -"""]]oder: [[!format txt """ -pablo@packman:~$ sudo mkinitrd /boot/initrd-2.6.16-1-xen0.img 2.6.16-1-xen0 -"""]] - -### Custom - -Wir nehmen ein minimales Debian GNU/Linux 3.1 "Sarge", besorgen uns die Xen-Sourcen und kompilieren die Xen-Tools samt Kernel. Die GNU C Library sollte möglichst aktuell sein. Zum Entpacken des Xen-Tarballs benötigen wir gzip, für den Kernel bzip2 und zum Holen benötigen wir das Paket bittorrent. Der 'Compiler results cacher' ccache beschleunigt das Kompilieren von C/C++ Code, indem bei erneutem Umsetzen dort fortgesetzt wird, wo der Kompiliervorgang zuvor unterbrochen wurde. Zum grafischen Einstellen der Kernel-Settings brauchen wir ncurses-dev. Siehe auch: - -* [[What Debian packages do I need for Xen?|http://wiki.xensource.com/xenwiki/XenFaq#head-fed1b310b70f97c7691d4cde77d653441dc4eeaf]] [[!format txt """ -pablo@packman:~$ sudo aptitude install gzip bzip2 ccache libc6 libc6-dev bittorrent ncurses-dev -"""]] -Um ccache im Pfad zu haben, müssen wir noch einen kleinen Hack machen. Folgendes gilt für die GNU Bourne Shell - äquivalent für Z Shell et.al. - -* [[!format txt """ -pablo@packman:~$ editor .bash_profile -"""]][[!format txt """ -if [ -d /usr/lib/ccache ] ; then - PATH=/usr/lib/ccache:"${PATH}" -fi -"""]] -Nun holen wir uns Xen. Den aktuellen [[BitTorrent|BitTorrent]]-Link bekommen wir unter: [[http://www.xensource.com/xen/downloads/dl_x30tarball_bt.html|http://www.xensource.com/xen/downloads/dl_x30tarball_bt.html]] - -Anschließend entpacken wir den Tarball. Prinzipiell kann das alles als User erfolgen. - -* [[!format txt """ -pablo@packman:~$ cd src/ -pablo@packman:~/src$ btdownloadcurses http://tx.downloads.xensource.com/torrents/xen-3.0.2-src.tgz.torrent -pablo@packman:~/src$ tar xfz xen-3.0.2-src.tgz -"""]] -Bevor wir Xen kompilieren, öffnen wir auf einer zweiten virtuellen Kosole, einem zweiten Terminalfenster oder am besten in GNU Screen ccache. Falls der Compile-Vorgang unterbrochen wird, sollte bei einem zweiten Versuch unter 'cache hit' 1 statt 0 stehen. - -* [[!format txt """ -pablo@packman:~/src$ screen watch ccache -s -C-a C-c -pablo@packman:~/src$ make -"""]] -Nachdem wir uns nun ein paar Tassen Kaffee oder mehrere Chips-Packerl gegönnt haben und unser Prozessor warmgelaufen ist, haben wir den längsten Teil hinter uns. Nun müssen wir noch einen Linux-Kernel für Xen bauen. Xen selbst bootet erst einen Mikrokernel, der in Folge den Linux-Betriebssystemkern aufruft. - -[KlausIta](/Benutzer/KlausIta) empfiehlt, sicherzustellen, ob alle benötigten Module aktiviert sind und ext3fs-Unterstützung (rootfs) fix in den Kernel zu integrieren. Außerdem sollten SATA bzw. SCSI aktiviert werden, falls benötigt. Für weitere Hilfe zum Kernel Bauen mit make-kpkg, sprich "The Debian Way", könnten die unteren Abschnitte des folgenden Dokuments hilfreich sein. - -* [[Creating custom kernels with Debian's kernel-package system|http://newbiedoc.sourceforge.net/system/kernel-pkg.html]] [[!format txt """ -pablo@packman:~/src$ cd linux-2.6.16-xen/ -pablo@packman:~/src/linux-2.6.16-xen$ make menuconfig -pablo@packman:~/src/linux-2.6.16-xen$ cd .. -pablo@packman:~/src$ make dist -"""]] -Im Folgenden können wir Xen installieren ... - -* [[!format txt """ -pablo@packman:~/src$ cd xen-3.0.2 -pablo@packman:~/src/xen-3.0.2$ make world -pablo@packman:~/src/xen-3.0.2$ make install -"""]] -Nun haben wir den Xen Hypervisor, einen Kernel und die Xen-Tools. Zuletzt müssen wir die Xen-Dienste registrieren und einen Boot-Eintrag in GRUB, dem GNU Grand Unified Bootloader, vornehmen. Solltest du keine eigene /boot-Partition haben, bitte unbedingt die Pfade anpassen. Außerdem sollten gegebenfalls root= und die Dateinamen an das eigene System angepasst werden. Sollte das alles Neuland für dich sein, siehe hier für weiterführende Links: [[http://wiki.debian.org/GRUB|http://wiki.debian.org/GRUB]] - -* [[!format txt """ -pablo@packman:~/src/xen-3.0.2$ sudo update-rc.d xend defaults 20 21 -pablo@packman:~/src/xen-3.0.2$ sudo update-rc.d xendomains defaults 21 20 -pablo@packman:~/src/xen-3.0.2$ sudoedit /boot/grub/menu.lst -"""]][[!format txt """ -### END DEBIAN AUTOMAGIC KERNELS LIST - -# boot xen vm host -title Xen -root (hd0,0) -kernel /xen-3.0-i386.gz -module /vmlinuz-2.6.16-1-xen root=/dev/hda1 ro console=tty0 -module /initrd.img-2.6.16-1-xen -"""]] - -### Konfiguration - -Wir können die dom0 nun rebooten und Xen starten. Nicht vergessen, unter GRUB den richtigen Eintrag auszuwählen! ;-) - -Folgende kleine Eingriffe müssen eventuell vorgenommen werden: - -* Netzwerkeinstellungen unter /etc/network/interfaces von DHCP auf statisch ändern. (don't forget: /etc/init.d/networking restart) -* Die Nameserver in /etc/resolv.conf anpassen. -* Unter /etc/hostname den Namen des Hosts bzw. der dom0 eintragen. -* Ist eine Netzwerk-Bridge erwünscht, muss die natürlich auch unter /etc/network/interfaces angegeben werden. [[!format txt """ - pre-up brctl addbr xenbr0 - pre-up brctl addif xenbr0 eth0 - post-down brctl delbr xenbr0 -"""]] -Weitere Infos zu Debian und network-bridge: - -* [[Anleitung zum Absichern von Debian - Aufsetzen einer überbrückenden Firewall (bridge Firewall)|http://www.debian.org/doc/manuals/securing-debian-howto/ap-bridge-fw.de.html]] -* [[QEMU - Debian - Linux - TUN/TAP - network bridge|http://compsoc.dur.ac.uk/~djw/qemu.html]] [[!format txt """ -pablo@packman:~$ apt-cache show bridge-utils -Package: bridge-utils -Priority: optional -Section: net -Installed-Size: 148 -Maintainer: Santiago Garcia Mantinan -Architecture: i386 -Version: 1.0.4-1 -Depends: libc6 (>= 2.3.2.ds1-4), libsysfs1 -Recommends: ifupdown -Conflicts: ifupdown (<< 0.6.0) -Filename: pool/main/b/bridge-utils/bridge-utils_1.0.4-1_i386.deb -Size: 26900 -MD5sum: ef7bd97c308bc0291f6584f557abecf9 -Description: Utilities for configuring the Linux ethernet bridge - This package contains utilities for configuring the Linux ethernet - bridge in Linux 2.4 or later. The Linux ethernet bridge can be used - for connecting multiple ethernet devices together. The connecting is - fully transparent: hosts connected to one ethernet device see hosts - connected to the other ethernet devices directly. -"""]] -Wir können nun den Xen-Domänendienst starten. Eventuell muss hier noch eine Änderung vorgenommen werden. - -* [[!format txt """ -pablo@packman:~$ sudo /etc/init.d/xendomains start -touch: kann ,,/var/lock/subsys/xendomains" nicht berühren: Datei oder Verzeichnis nicht gefunden -"""]] -Falls bei dir derselbe Fehler auftritt, musst du einfach nur das Verzeichnis anlegen, in das die Datei xendomains geschrieben werden soll. - -* [[!format txt """ -pablo@packman:~$ sudo mkdir -p /var/lock/subsys/ -"""]] -Anschließend legen wir fest, wo unsere Virtual Machines liegen werden, welche IP unser Server (Gateway) hat, wo der Kernel liegt und dergleichen mehr. - -* [[!format txt """ -pablo@packman:~$ sudo mkdir -p /srv/xen -pablo@packman:~$ sudoedit /etc/xen-tools/xen-tools.conf -"""]][[!format txt """ -dir = /srv/xen -size = 2Gb -memory = 128Mb -swap = 128Mb -fs = ext3 -dist = sarge -gateway = 192.168.1.1 -netmask = 255.255.255.0 -passwd = 1 -initrd = /boot/initrd.img-2.6.16-1-xen -kernel = /boot/vmlinuz-2.6.16-1-xen -mirror = http://ftp.at.debian.org/debian/ -"""]] - -## Gast (domU) - - -### VM-Image - -Sollte bis jetzt alles erfolgreich gewesen sein, können wir nun testweise ein Gastsystem aufsetzen. In den meisten Howtos wird dazu erst mit dd ein Image erstellt, dann partitioniert und über loop gemountet, und anschließend mit dbootstrap ein System aufgespielt. Dieses Image könnte nun beliebig oft kopiert werden und als Basis für verschiedenste Server u.dergl. verwendet werden. - -Optional kann auch mit xen-create-image ein Image erstellt werden. Danach wird der Xen-Dienst gestartet und die Xen-Mashine mit Hilfe von xm erstellt. - -* [[!format txt """ -pablo@packman:~$ sudo xen-create-image --dir=/srv/xen --size=2Gb --swap=128Mb --memory=128Mb --fs=ext3 --cache=yes --dist=etch --hostname=debiennerl --dhcp --initrd=/boot/initrd.img-2.6.16-1-xen --kernel=/boot/vmlinuz-2.6.16-1-xen- --mirror=http://http://ftp.at.debian.org/debian/ -pablo@packman:~$ sudo xend start -pablo@packman:~$ sudo xm create debiennerl -c -"""]] -Einfacher als das manuelle Erstellen einer VM kann es sein, ein bestehendes System zu übernehmen: Entweder mittels dd in ein Image schreiben, oder ein bestehendes Logical Volume einer Linux LVM in Xen einbinden. Das ganze muss nur noch in die Konfigurationsdatei eingetragen werden und schon kann's losgehen! - -* [[!format txt """ - # -*- mode: python; -*- - kernel = "/boot/vmlinuz-2.6.16-1-xen" - ramdisk = "/boot/initrd.img-2.6.16-1-xen" - memory = 128 - name = "debiennerl" - vif = [['|bridge=xenbr0' ]] - disk = ['phy:/dev/debiennerl/root,hda1,w','phy:/dev/lvmxen/domu1-swap,hda2,w'] - ip="192.168.1.100" - netmask="255.255.255.0" - gateway="192.168.1.1" - hostname = "debiennerl" - root = "/dev/mapper/debiennerl-root ro" - extra = "4" -"""]] - -### LVM - -Sollte der Einsatz von Logical Volumes erwünscht aber LVM noch nicht eingerichtet sein, musst du folgendes machen: LVM Partition anlegen (mit cfdisk, gparted o.ä.), LVM 2 Tools installieren, Volume Group anlegen, Logical Volumes anlegen und formatieren. Zum Verwalten von LVMs kann alternativ auch evmsn (ncurses) bzw. emvsgui (gtk) verwendet werden. - -Überprüfen der Partitionstabelle: - -* [[!format txt """ -redtux@testix:~$ fdisk -l /dev/sda - -Platte /dev/sda: 122.9 GByte, 122942324736 Byte -16 Köpfe, 63 Sektoren/Spuren, 238216 Zylinder -Einheiten = Zylinder von 1008 × 512 = 516096 Bytes - - Gerät boot. Anfang Ende Blöcke Id System -/dev/sda1 * 1 705 355288+ 83 Linux -/dev/sda2 706 238216 119705544 f W95 Erw. (LBA) -/dev/sda5 706 2737 1024096+ 83 Linux -/dev/sda6 2738 238216 118681384+ 8e Linux LVM -"""]] -LVM einrichten: - -* [[!format txt """ -redtux@testix:~$ sudo aptitude install lvm2 -redtux@testix:~$ sudo pvcreate /dev/sda6 -redtux@testix:~$ sudo vgcreate vserver /dev/sda6 -redtux@testix:~$ sudo lvcreate -L1000 -nroot vserver - Logical volume "root" created -redtux@testix:~$ sudo lvcreate -L1G -nswap vserver - Logical volume "swap" created -redtux@testix:~$ sudo lvscan -v - Finding all logical volumes - ACTIVE '/dev/vserver/root' [[1000,00|MB]] inherit - ACTIVE '/dev/vserver/swap' [[1,00|GB]] inherit -redtux@testix:~$ sudo mkfs.ext3 -L xen-dom0 /dev/vserver/root -redtux@testix:~$ sudo swapon -v /dev/vserver/swap -swapon für /dev/vserver/swap -redtux@testix:~$ sudo swapon -s -Filename Type Size Used Priority -/dev/hdb8 partition 562424 165328 -1 -/dev/hda5 partition 248968 0 -2 -/dev/mapper/vserver-swap partition 1048568 0 -3 -"""]] - -### Sonstiges - -Damit eine Xen VM beim Hochfahren des Hosts automatisch gestartet wird, muss ein Link in /etc/xen/auto/ erstellt werden. - -* [[!format txt """ -pablo@packman:~$ sudo ln -s /etc/xen/debiennerl /etc/xen/auto/ -"""]] -Um die laufenden VMs anzuzigen, gibt es den befehl 'xm list'. - -* [[!format txt """ -pablo@packman:~$ xm list -Name ID Mem(MiB) VCPUs State Time(s) -Domain-0 0 64 1 r----- 112.0 -debiennerl 3 128 1 ------ 27.4 -"""]] -Mit 'xm console ' gelangen wir auf die Konsole der jeweiligen VM. - -* [[!format txt """ -pablo@packman:~$ xm console 3 -"""]] -Weitere Tipps folgen (hoffentlich) mit der Zeit. - - -## Siehe auch - -* [[The Perfect Xen 3.0 Setup For Debian|http://www.howtoforge.com/perfect_setup_xen3_debian]] -* [[Xen Wiki|http://wiki.xensource.com/xenwiki/]] -* [[xen live migration|http://aipc54.ai.wu-wien.ac.at/cgi-bin/blosxom/2006/05/20]] - - - [[!tag CategoryVortragsUnterlagen]]