/dev/joschi: Wirrer Geist, wirre Texte

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.
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:
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                    0

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.
# 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 | boot


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:
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. ;)
  • No comments

Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

Trackbacks / Pingbacks