EUserv vServer Active - Rundgang nach der Neuinstallation
Da saß ich nun nach der Bestellung des vServers von EUserv und wartete auf das Ende der Reinitialisierung. Wie schon erwähnt war diese nach anderthalb Tagen erledigt und Gentoo 2008.0 war auf dem vServer installiert worden.
Machen wir also einen kleinen Rundgang auf dem System direkt nach der Neuinstallation.
Machen wir also einen kleinen Rundgang auf dem System direkt nach der Neuinstallation.
Es wird tatsächlich nur ein nacktes Betriebssystem mit nur den nötigsten Anwendungen installiert. Im Endeffekt wurde einfach ein Stage 3 Tarball in ein OpenVZ-Template gepackt, etwa wie in diesem Artikel im OpenVZ Wiki.
Ein Problem bei Gentoo Linux ist, dass es keine festen Releases gibt. Andere (Binär-) Distributionen wie OpenSuSE Linux, CentOS, Ubuntu Linux usw. haben feste Releasezyklen, die bei den meisten Vertretern dieser Gattung in festen Zeitabständen erfolgen. Zu einem bestimmten Zeitpunkt (wenn keine kritischen Bugs mehr vorhanden sind) werden die Programmversionen für jedes Release "eingefroren" und die Umgebung somit stabilisiert; das nennt man dann "Mega freeze".
Beispiel: Bei OpenSuSE Linux 11.1 wird der Apache httpd in der Version 2.2.10 ausgeliefert. Das wird auch immer so bleiben. Es wird offiziell nie eine aktuellere Apache-Version für OpenSuSE Linux 11.1 geben. Lediglich Sicherheitspatches oder Bugfixes für schwere Probleme werden innerhalb der Lebenszeit der Distribution (bis zum Supportende) eingepflegt. Der Distributor (in diesem Fall Novell bzw. "die Community") portiert dazu entsprechende Patches für die ältere Version, die mit der Distribution ausgeliefert wird. Das nennt sich dann Backport. Über Repositories von Dritten kann man natürlich auch aktuellere Programmversionen erhalten. Der Knackpunkt dabei ist jedoch, dass es für diese "inoffiziellen" Pakete keinerlei Unterstützung seitens des Distributors gibt. Für Versionsfetischisten ist eine Distribution mit "Mega freeze" Entwicklungsmodell also eher ungeeignet.
Gentoo Linux hingegen verfolgt das Modell der Rolling Releases. Es gibt keine Veröffentlichung in bestimmten Zeitabständen, sondern die Pakete der Distribution (die Ebuilds) werden kontinuierlich aktualisiert. Backports sind dabei eher die Ausnahme, in der Regel werden stattdessen neuere Versionen der Programme angeboten, sofern diese verfügbar sind. Dadurch ist es verhältnismäßig schwierig eine stabile (im Sinne der installierten Softwareversionen) Umgebung zu erhalten. Es gibt schlicht und ergreifend zu oft neue Pakete. Ein vom Provider angebotenes Image für die vServer wird daher immer verhältnismäßig schnell veralten - wesentlich schneller als bei den Distributionen mit festen Releasezyklen.
Früher wurden für Gentoo Linux mehr oder weniger regelmäßig "Snapshots" des aktuellen Portage Trees (der "Paketdatenbank") und dazu eine LiveCD angefertigt. Das waren die "Releases" wie Gentoo 2007.2, 2007.4 oder zuletzt eben Gentoo 2008.0. Damit hatte man wenigstens ungefähr einen Anhaltspunkt, welche Pakete in einem bestimmten Snapshot von Gentoo Linux verfügbar sind. Gentoo 2008.0 war allerdings der letzte dieser Snapshots. In Zukunft wird es nur noch tägliche/wöchentliche Versionen der LiveCD geben, so dass man sich daran nicht mehr orientieren kann.
EUserv wird sich also überlegen müssen, ob und wie oft sie das Gentoo-Image aktualisieren, denn sonst bedeutet die Nutzung des Images für die Anwender nach einigen Monaten mehr Arbeit als eine eventuelle Installation von Hand.
Aber genug zu Distributions- und Release-Politik, zurück zum vServer.
In dem Hostsystem ist ein Intel Pentium Core 2 Duo E5200 mit 2.5 GHz verbaut. Dazu die Ausgabe von /proc/cpuinfo:
Der Prozessor ist sicherlich nicht die schlechteste Wahl, ich hätte jedoch eher eine Quadcore CPU verbaut. Andererseits wäre die Kalkulation damit vermutlich nicht mehr aufgegangen. Bei vServern gibt es wesentlich schlimmere Flaschenhälse als die CPU, wie etwa Festplatten I/O, Netzwerk I/O oder den begrenzten Hauptspeicher.
Der Inhalt von /proc/meminfo wird auf dem Gastsystem gefaked, ein Rückschluss auf die tatsächlich verbaute Speichermenge und damit eine Schätzung der auf dem System gehosteten virtuellen Server ist leider nicht möglich.
Die wichtigsten Kennwerte bei auf OpenVZ basierten Systemen finden sich in der Datei /proc/user_beancounters, so auch im Fall des vServer Active:
Die Werte sind für den Laien etwas gewöhnungsbedürftig und ungewohnt. Eine schönere Ausgabe erhält man mit dem kleinen Skript vzfree.
Es werden also im Auslieferungszustand rund 8 MB Speicher verbraucht. Welche Programme die 8 MB belegen, erfährt man mit ps faux:
Die letzte Zeile kann man getrost ignorieren, da dies der ps Prozess selbst ist und nach der Ausgabe nicht mehr existiert.
Weiterhin ist bei einem dedizierten Server natürlich noch die Netzwerkkonfiguration von Interesse:
Dem virtuellen Netzwerkinterface venet0 wird dabei die primäre (und einzige) IP-Adresse des vServers zugeordnet. Eine MAC-Adresse hat dieses Netzwerkinterface naturgemäß nicht - es ist ja nur virtuell.
Das eingerichtete Routing ist zunächst auch normal, unterscheidet sich jedoch von den im Kundenmenü angegebenen Werten. Solange es funktioniert, soll es mir Recht sein.
Nun noch zwei Gentoo-spezifische Angaben zum System. Die installierten Bootdienste beschränken sich, oh Wunder, auf den Inhalt eines Stage3 Tarballs:
Die installierten Ebuilds geben ebenfalls wenig Grund zu Überraschungen. Leider habe ich vergessen, die Kategorien mit ausgeben zu lassen. Die Programmnamen sollten diesmal jedoch eindeutig genug sein:
Für zahlreiche der aufgelisteten Programme gibt es aus den weiter oben beschriebenen Gründen bereits Updates im stabilen Zweig von Gentoo. Kritische Fehler enthält jedoch keines der Programme in der installierten Version.
Das war er also, der virtuelle Rundgang auf dem vServer Active von EUserv mit dem Gentoo Linux 2008.0 Image. Wenn noch Angaben fehlen oder etwas unklar ist, könnt ihr gerne in den Kommentaren nachfragen.
Im nächsten Beitrag wird es um die Installation des Grundsystems und danach in jeweils einem weiteren Artikel um die Installation jeweils eines Dienstes bzw. Subsystems (Mailsystem, Webserver mit Unterstützung für dynamische Seiten, Nameserver) gehen, so dass der vServer danach fertig zum Einsatz ist. Je nachdem, wieviel Zeit ich in den nächsten Wochen entbehren kann, werde ich vielleicht auch einige Alternativen zu den installierten Programmen ausprobieren und dazu ebenfalls eigene Artikel schreiben.
Eine Administrationshilfe à la Confixx, SysCP oder Webmin werde ich nicht installieren, da diese die einsetzbare Software unverhältnismäßig einschränken und die auf einem vServer so wertvollen Ressourcen verschwenden. Desweiteren bieten sie eine zusätzliche Angriffsfläche auf das System, so dass ich derartige Programme meide, wann immer es möglich ist. Außerdem macht die ganze Aktion viel mehr Spaß, wenn man die Ärmel hochkrempeln und selbst herumprobieren kann.
Ein Problem bei Gentoo Linux ist, dass es keine festen Releases gibt. Andere (Binär-) Distributionen wie OpenSuSE Linux, CentOS, Ubuntu Linux usw. haben feste Releasezyklen, die bei den meisten Vertretern dieser Gattung in festen Zeitabständen erfolgen. Zu einem bestimmten Zeitpunkt (wenn keine kritischen Bugs mehr vorhanden sind) werden die Programmversionen für jedes Release "eingefroren" und die Umgebung somit stabilisiert; das nennt man dann "Mega freeze".
Beispiel: Bei OpenSuSE Linux 11.1 wird der Apache httpd in der Version 2.2.10 ausgeliefert. Das wird auch immer so bleiben. Es wird offiziell nie eine aktuellere Apache-Version für OpenSuSE Linux 11.1 geben. Lediglich Sicherheitspatches oder Bugfixes für schwere Probleme werden innerhalb der Lebenszeit der Distribution (bis zum Supportende) eingepflegt. Der Distributor (in diesem Fall Novell bzw. "die Community") portiert dazu entsprechende Patches für die ältere Version, die mit der Distribution ausgeliefert wird. Das nennt sich dann Backport. Über Repositories von Dritten kann man natürlich auch aktuellere Programmversionen erhalten. Der Knackpunkt dabei ist jedoch, dass es für diese "inoffiziellen" Pakete keinerlei Unterstützung seitens des Distributors gibt. Für Versionsfetischisten ist eine Distribution mit "Mega freeze" Entwicklungsmodell also eher ungeeignet.
Gentoo Linux hingegen verfolgt das Modell der Rolling Releases. Es gibt keine Veröffentlichung in bestimmten Zeitabständen, sondern die Pakete der Distribution (die Ebuilds) werden kontinuierlich aktualisiert. Backports sind dabei eher die Ausnahme, in der Regel werden stattdessen neuere Versionen der Programme angeboten, sofern diese verfügbar sind. Dadurch ist es verhältnismäßig schwierig eine stabile (im Sinne der installierten Softwareversionen) Umgebung zu erhalten. Es gibt schlicht und ergreifend zu oft neue Pakete. Ein vom Provider angebotenes Image für die vServer wird daher immer verhältnismäßig schnell veralten - wesentlich schneller als bei den Distributionen mit festen Releasezyklen.
Früher wurden für Gentoo Linux mehr oder weniger regelmäßig "Snapshots" des aktuellen Portage Trees (der "Paketdatenbank") und dazu eine LiveCD angefertigt. Das waren die "Releases" wie Gentoo 2007.2, 2007.4 oder zuletzt eben Gentoo 2008.0. Damit hatte man wenigstens ungefähr einen Anhaltspunkt, welche Pakete in einem bestimmten Snapshot von Gentoo Linux verfügbar sind. Gentoo 2008.0 war allerdings der letzte dieser Snapshots. In Zukunft wird es nur noch tägliche/wöchentliche Versionen der LiveCD geben, so dass man sich daran nicht mehr orientieren kann.
EUserv wird sich also überlegen müssen, ob und wie oft sie das Gentoo-Image aktualisieren, denn sonst bedeutet die Nutzung des Images für die Anwender nach einigen Monaten mehr Arbeit als eine eventuelle Installation von Hand.
Aber genug zu Distributions- und Release-Politik, zurück zum vServer.
In dem Hostsystem ist ein Intel Pentium Core 2 Duo E5200 mit 2.5 GHz verbaut. Dazu die Ausgabe von /proc/cpuinfo:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Pentium(R) Dual-Core CPU E5200 @ 2.50GHz stepping : 6 cpu MHz : 998.516 cache size : 2048 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl est tm2 cx16 xtpr lahf_lm bogomips : 5003.20 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
Der Prozessor ist sicherlich nicht die schlechteste Wahl, ich hätte jedoch eher eine Quadcore CPU verbaut. Andererseits wäre die Kalkulation damit vermutlich nicht mehr aufgegangen. Bei vServern gibt es wesentlich schlimmere Flaschenhälse als die CPU, wie etwa Festplatten I/O, Netzwerk I/O oder den begrenzten Hauptspeicher.
Der Inhalt von /proc/meminfo wird auf dem Gastsystem gefaked, ein Rückschluss auf die tatsächlich verbaute Speichermenge und damit eine Schätzung der auf dem System gehosteten virtuellen Server ist leider nicht möglich.
Die wichtigsten Kennwerte bei auf OpenVZ basierten Systemen finden sich in der Datei /proc/user_beancounters, so auch im Fall des vServer Active:
Version: 2.5
uid resource held maxheld barrier limit failcnt
11197: kmemsize 460962 928427 31875611 35028144 0
lockedpages 0 0 2059 2059 0
privvmpages 1783 7431 262144 274944 0
shmpages 640 656 50000 50000 0
dummy 0 0 0 0 0
numproc 5 11 300 300 0
physpages 937 1289 0 2147483647 0
vmguarpages 0 0 131072 2147483647 0
oomguarpages 937 1289 131072 2147483647 0
numtcpsock 2 2 200 200 0
numflock 0 1 50 50 0
numpty 1 1 128 128 0
numsiginfo 0 2 1024 1024 0
tcpsndbuf 38352 38352 6584420 9402468 0
tcprcvbuf 32768 0 6584420 9402468 0
othersockbuf 0 16656 4923119 9133807 0
dgramrcvbuf 0 8464 4923119 4923119 0
numothersock 0 5 200 200 0
dcachesize 0 0 6155930 6340608 0
numfile 136 170 4096 4096 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 10 10 2147483647 2147483647 0Die Werte sind für den Laien etwas gewöhnungsbedürftig und ungewohnt. Eine schönere Ausgabe erhält man mit dem kleinen Skript vzfree.
# wget http://vpsadmin.de/updates/vzfree -O /usr/local/bin/vzfree && chmod +x /usr/local/bin/vzfree # vzfree VPS Speichernutzung: Momentan genutzt: 8.10547 MB Zugesichert: 512 MB Maximal nutzbar: 1074 MB
Es werden also im Auslieferungszustand rund 8 MB Speicher verbraucht. Welche Programme die 8 MB belegen, erfährt man mit ps faux:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1516 544 ? Ss 12:23 0:00 init [3] root 30370 0.0 0.0 3900 912 ? Ss 12:24 0:00 /usr/sbin/sshd root 10082 0.0 0.2 6904 2340 ? Ss 17:47 0:00 \_ sshd: root@pts/0 root 11797 0.0 0.1 2672 1576 pts/0 Ss 17:47 0:00 \_ -bash root 15693 0.0 0.0 2156 840 pts/0 R+ 18:00 0:00 \_ ps fuax
Die letzte Zeile kann man getrost ignorieren, da dies der ps Prozess selbst ist und nach der Ausgabe nicht mehr existiert.
Weiterhin ist bei einem dedizierten Server natürlich noch die Netzwerkkonfiguration von Interesse:
# ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:81.XXX.XXX.XXX P-t-P:81.XXX.XXX.XXX Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:1612 errors:0 dropped:0 overruns:0 frame:0
TX packets:1096 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:123019 (120.1 Kb) TX bytes:223788 (218.5 Kb)Dem virtuellen Netzwerkinterface venet0 wird dabei die primäre (und einzige) IP-Adresse des vServers zugeordnet. Eine MAC-Adresse hat dieses Netzwerkinterface naturgemäß nicht - es ist ja nur virtuell.
Das eingerichtete Routing ist zunächst auch normal, unterscheidet sich jedoch von den im Kundenmenü angegebenen Werten. Solange es funktioniert, soll es mir Recht sein.
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 venet0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.0.2.1 0.0.0.0 UG 0 0 0 venet0
Nun noch zwei Gentoo-spezifische Angaben zum System. Die installierten Bootdienste beschränken sich, oh Wunder, auf den Inhalt eines Stage3 Tarballs:
# rc-update show
bootmisc | boot
checkfs | boot
checkroot | boot
clock | boot
hostname | boot
keymaps | boot
local | default nonetwork
localmount | boot
modules | boot
net.lo | boot
net.venet0 | default
netmount | default
rmnologin | boot
sshd | default
urandom | bootDie installierten Ebuilds geben ebenfalls wenig Grund zu Überraschungen. Leider habe ich vergessen, die Kategorien mit ausgeben zu lassen. Die Programmnamen sollten diesmal jedoch eindeutig genug sein:
acl-2.2.45 attr-2.4.39 autoconf-2.61-r2 autoconf-wrapper-4-r3 automake-1.10.1 automake-wrapper-3-r1 baselayout-1.12.11.1 bash-3.2_p33 bc-1.06.95 binutils-2.18-r3 binutils-config-1.9-r4 bison-2.3 busybox-1.8.2 bzip2-1.0.5-r1 ca-certificates-20070303-r1 com_err-1.40.9 coreutils-6.10-r2 cpio-2.9-r1 cracklib-2.8.12 db-4.5.20_p2 diffutils-2.8.7-r2 e2fsprogs-1.40.9 editor-0 expat-2.0.1 file-4.23 findutils-4.3.13 flex-2.5.33-r3 gawk-3.1.5-r5 gcc-4.1.2 gcc-config-1.4.0-r4 gdbm-1.8.3-r3 gettext-0.17 glibc-2.6.1 gmp-4.2.2 gnuconfig-20080123 gpm-1.20.1-r6 grep-2.5.1a-r1 groff-1.19.2-r1 gzip-1.3.12-r1 help2man-1.36.4 init-0 iputils-20071127 kbd-1.13-r1 less-418 libiconv-0 libintl-0 libpcre-7.7-r1 libperl-5.8.8-r2 libtool-1.5.26 libxml2-2.6.32 linux-headers-2.6.23-r3 Locale-gettext-1.05 lzma-utils-4.32.6 m4-1.4.11 make-3.81 man-1.6f-r1 man-pages-2.80 module-init-tools-3.4 mpfr-2.3.1 nano-2.1.2-r1 ncurses-5.6-r2 net-tools-1.60-r13 openssh-4.7_p1-r6 openssl-0.9.8g-r2 pager-0 pam-1.0.1 pambase-20080318 patch-2.5.9 pax-utils-0.1.17 perl-5.8.8-r5 perl-cleaner-1.05 pkgconfig-0.23 PodParser-1.35 popt-1.10.7 portage-2.1.4.4 procps-3.2.7 psmisc-22.6 python-2.5.2-r6 python-updater-0.5 readline-5.2_p12-r1 rsync-3.0.2 sandbox-1.2.18.1-r2 sed-4.1.5-r1 shadow-4.0.18.2 ss-1.40.9 sysvinit-2.86-r10 tar-1.20 tcp-wrappers-7.6-r8 Test-Harness-3.10 texinfo-4.11-r1 timezone-data-2008c udev-124-r1 unifdef-1.20 util-linux-2.13.1.1 wget-1.11.1 which-2.19 zlib-1.2.3-r1
Für zahlreiche der aufgelisteten Programme gibt es aus den weiter oben beschriebenen Gründen bereits Updates im stabilen Zweig von Gentoo. Kritische Fehler enthält jedoch keines der Programme in der installierten Version.
Das war er also, der virtuelle Rundgang auf dem vServer Active von EUserv mit dem Gentoo Linux 2008.0 Image. Wenn noch Angaben fehlen oder etwas unklar ist, könnt ihr gerne in den Kommentaren nachfragen.
Im nächsten Beitrag wird es um die Installation des Grundsystems und danach in jeweils einem weiteren Artikel um die Installation jeweils eines Dienstes bzw. Subsystems (Mailsystem, Webserver mit Unterstützung für dynamische Seiten, Nameserver) gehen, so dass der vServer danach fertig zum Einsatz ist. Je nachdem, wieviel Zeit ich in den nächsten Wochen entbehren kann, werde ich vielleicht auch einige Alternativen zu den installierten Programmen ausprobieren und dazu ebenfalls eigene Artikel schreiben.
Eine Administrationshilfe à la Confixx, SysCP oder Webmin werde ich nicht installieren, da diese die einsetzbare Software unverhältnismäßig einschränken und die auf einem vServer so wertvollen Ressourcen verschwenden. Desweiteren bieten sie eine zusätzliche Angriffsfläche auf das System, so dass ich derartige Programme meide, wann immer es möglich ist. Außerdem macht die ganze Aktion viel mehr Spaß, wenn man die Ärmel hochkrempeln und selbst herumprobieren kann.

