<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tobi&#039;s Blog &#187; Linux(Ubuntu)</title>
	<atom:link href="http://www.fukurama.org/wordpress/category/technik/linux-ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fukurama.org/wordpress</link>
	<description></description>
	<lastBuildDate>Tue, 17 Jan 2012 20:23:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Probleme bei WLAN-Verbindungen</title>
		<link>http://www.fukurama.org/wordpress/2011/06/12/probleme-bei-wlan-verbindungen/</link>
		<comments>http://www.fukurama.org/wordpress/2011/06/12/probleme-bei-wlan-verbindungen/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 21:25:24 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[collision]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[Kollision]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[störung]]></category>
		<category><![CDATA[wlan]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=410</guid>
		<description><![CDATA[Als ich von der Stadt aufs Land gezogen bin dachte ich, dass ich ggf. mit meinem Netzanschluss ein Problem kriege (was der Fall ist:), aber dass WLAN-Empfang schwierig wird, ahnte ich nicht. Das Problem In der Stadt gab es 8 Netze in Reichweite. Da lief es immer gut. Hier sind es sage und schreibe 13 [...]]]></description>
			<content:encoded><![CDATA[<p>Als ich von der Stadt aufs Land gezogen bin dachte ich, dass ich ggf. mit meinem Netzanschluss ein Problem kriege (was der Fall ist:), aber dass WLAN-Empfang schwierig wird, ahnte ich nicht.</p>
<h2>Das Problem</h2>
<p>In der Stadt gab es 8 Netze in Reichweite. Da lief es immer gut. Hier sind es sage und schreibe 13 und da mein Sender 2 Stockwerke unter mir liegt, ist die Signalstärke aller Netze deutlich höher als das von meinem.</p>
<p>Als Resultat gibt es ständig Verzögerungen und manchmal kann ich mich gar nicht verbinden. Ich hab mir einen LAN-Stick geholt, der eine bessere Antenne abgibt, aber das hilft nur ein wenig. Am nervigsten sind aber die Unterbrechungen ohne Verbindungsabbruch. Es passiert einfach gar nichts mehr und nach 5 bis 10 Sekunden gehts dann wieder. Allerdings auch nur ein paar Sekunden und dann gibts gleich wieder &#8216;ne Zwangspause.</p>
<h2>Die Erkentnis</h2>
<p>Mit dem Linux-Tool <strong>iwlist</strong> (aus dem Ubuntu-Packet wireless-tools) hab ich mir mal alle Netzwerke in Reichweite auflisten lassen mit allen Parametern, die die Dinger so geschätzig von sich geben.</p>
<p>Das es viele sind, war mir ja bekannt. Auffällig war aber, dass sich viele auf sehr wenigen Kanälen häufen. Die sind anscheinend alle via &#8220;auto-Kanal&#8221; eingestellt, denn wer welchen Kanal benutzt wechselt recht oft, aber Kanal 1, 6 und 10 sind immer seeehr beliebt.</p>
<p>Kanal 3 kam nur bei einem Netz genau ein mal vor, Kanal 12 nie. Etliche Treiber sind laut <a href="http://wiki.ubuntuusers.de/wlan#Konfiguration-der-Kanaele-12-und-13">Ubuntu-Beschreibung zum WLAN</a> auf den US-Standard eingestellt und können Kanal 12 und 13 nicht verwenden. Aus dem Grund, vermute ich, meiden auch viele Sender den Bereich. </p>
<p>Ansonsten laufen 11 Netzwerke in der Betriebsart &#8220;n&#8221; (54MBit) und 2 mit &#8220;g&#8221; (48MBit). D.h. viele haben neue Sender und ich behaupte einfach mal, die benutzen immer den höchstmöglichen Standard. Wenn man keine Probleme damit hat, sollte das ja auch so sein. Meine Netzanbindung ist ganze 1,5MBit &#8220;dick&#8221;. Wozu also muss ich mit 54MBit mit meinem WLAN verbinden? Selbst &#8220;g&#8221; mit 48MBit ist sinnfrei. Ein uralt &#8220;b&#8221; mit 11MBit reicht vollkommen,</p>
<h2>Die Lösung</h2>
<p>Den Kanal 12 und 13 sind frei, also benutz ich fix die 12. Das half schon ein wenig, denn jetzt ist die Verbindung deutlich stabiler. Allerdings sind die Zwangspausen noch immer da.</p>
<p>Der Wechsel der Betriebsart von &#8220;mixed g+n&#8221; auf &#8220;n&#8221; brachte nur eher subjektiv etwas. Bei &#8220;g&#8221; waren die Pausen schon seltener. Bei &#8220;n&#8221; gibt es gar keine mehr. Den WLAN-Stick hab ich auch gleich wieder eingemottet, denn jetzt gehts auch ohne einwandfrei.</p>
<h2>Fazit</h2>
<p>Langsamer ist oft auch Störunanfälliger. Das das allerdings so gut funktioniert, hätte ich nicht gedacht.</p>
<p>Was mich etwas wundert ist die Tatsache, dass die Betriebsarten &#8220;n&#8221; und &#8220;g&#8221; eigentlich selbst abgestufte, langsamere Varianten haben, auf die zurückgegriffen wird, wenn es Verbindungsprobleme gibt. Das funktioniert ja, wie ich sehen kann, so überhaupt nicht gut. Vermutlich sind meine Zwangspausen die Zeiten, in denen die neue Geschwindigkeit ausgehandelt wird, mit der die Verbindung wieder ok ist. Aber bei den Verzögerungen ist das irgendwie nicht sinnvoll.</p>
<p>Egal. Jetzt gehts und gut iss.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2011/06/12/probleme-bei-wlan-verbindungen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DynDns-IP-Updates</title>
		<link>http://www.fukurama.org/wordpress/2011/01/17/dyndns-ip-updates/</link>
		<comments>http://www.fukurama.org/wordpress/2011/01/17/dyndns-ip-updates/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 21:43:47 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[dyndns]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=383</guid>
		<description><![CDATA[Mit dem hier beschriebenen Update-Script der DynDns-IP gab es leider auch massive Probleme, weswegen ich ein weiteres mal einen Tag offline war *grummel*. Diesmal ging es sogar so weit, dass unter dieser Domain ein anderer Webserver zu erreichen war. Immerhin nur eine personalisierte &#8220;It works&#8221; Seite, aber das ist schon SEHR ungünstig. Aber warum sich [...]]]></description>
			<content:encoded><![CDATA[<p>Mit dem <a href="/wordpress/2011/01/13/probleme-mit-easybox-802-und-dyndns">hier beschriebenen Update-Script der DynDns-IP</a> gab es leider auch massive Probleme, weswegen ich <strong>ein weiteres mal einen Tag offline war</strong> *grummel*. Diesmal ging es sogar so weit, dass unter dieser Domain ein anderer Webserver zu erreichen war. Immerhin nur eine personalisierte &#8220;It works&#8221; Seite, aber das ist schon SEHR ungünstig.</p>
<p>Aber warum sich das Leben schwer machen: ich hab deswegen heut mal intensiver nach einem Updateclienten gesucht und <strong>ddclient</strong> gefunden. Das wird auf der DynDns-Seite sogar direkt genannt und ist super simpel via <strong>apt-get</strong> installierbar. Der Installationsprozess hat sogar eine grafische Shell-Oberfläche, in der bequem alle Konfig-Eintragungen abgefragt werden. Sehr praktisch!</p>
<p>Einzige Änderung die man vornehmen sollte: das Update der IP-Adresse wird ja einfach via HTTP an DynDns.org gesendet und Username und Passwort gehen somit als Klartext übers Netz. Das kann man zumindest via SSL erledigen lassen, was durch den Konfigeintrag <code>ssl=yes</code> in der Datei <strong>/etc/ddclient.conf</strong> zu erledigen ist (siehe <a href="http://www.dyndns.com/support/kb/using_ddclient_with_dyndns_services.html">Anleitung bei DynDns.org</a>). Zur Sicherheit hab ich an gleicher Stelle noch die Option <codde>retry=yes gesetzt, damit jetzt die Updates auch wirklich gemacht werden. Sollte das immer noch Probleme machen, setze ich noch das force! *grrr*</codde></p>
<p>Ich hoffe, dass das jetzt mal endlich läuft, denn demnächst hab ich andere Sorgen als ein Server der nicht am Netz bleiben will.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2011/01/17/dyndns-ip-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probleme mit Easybox 802 und DynDns</title>
		<link>http://www.fukurama.org/wordpress/2011/01/13/probleme-mit-easybox-802-und-dyndns/</link>
		<comments>http://www.fukurama.org/wordpress/2011/01/13/probleme-mit-easybox-802-und-dyndns/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 00:25:46 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[dyndns]]></category>
		<category><![CDATA[easybox 802]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=372</guid>
		<description><![CDATA[Und schon wieder war der Server vom Netz aus nicht erreichbar. Grund diesmal: DynDns hatte nicht mehr die aktuelle IP meines Servers. Ich habe eine DSL-EasyBox 802 mit der aktuellsten Firmware (Version:20.02.223) und die Option &#8220;Dyndns&#8221; funktioniert dort gar nicht. Es gibt ständig die Meldung, dass ein Fehler bei der Autentifizierung bei dyndns.org aufgetreten ist. [...]]]></description>
			<content:encoded><![CDATA[<p>Und schon wieder war der Server vom Netz aus nicht erreichbar. Grund diesmal: DynDns hatte nicht mehr die aktuelle IP meines Servers. Ich habe eine DSL-EasyBox 802 mit der aktuellsten Firmware (Version:20.02.223) und die Option &#8220;Dyndns&#8221; funktioniert dort gar nicht.</p>
<p>Es gibt ständig die Meldung, dass ein Fehler bei der Autentifizierung bei dyndns.org aufgetreten ist. Nach einem Neustart des ganzen Teils geht es aber wieder. Und dann komt es auch vor, dass bei einem wechsel der IP das Ding laut Log behauptet, die IP ist noch immer gleich und DynDns muss nicht benachrichtigt werden. Kurzum: unbrauchbar und der totale Schrott.</p>
<p><ins datetime="2011-01-17T19:30:25+00:00">Viel zu Aufwendig und außerdem immer noch Fehleranfällig. Dieses Script hat auch behauptet, dass die IP nochh gleich ist, obwohl sie sich schon geändert hatte. ich hab <a href="/wordpress/2011/01/17/dyndns-ip-updates/">was anderes probiert</a>. Mal sehen ob&#8217;s jetzt geht.</ins></p>
<p><del datetime="2011-01-17T19:30:25+00:00">Immerhin gibts leiche Abhilfe unter Ubuntu mit dem Perl-Scriptchen <strong>dyndns</strong> welches über <strong>apt-get</strong> einfach installiert werden kann. Es nimmt einem die Arbeit ab die IP alle 5 Minuten zu kontrollieren und bei einer Änderung DynDns zu benachrichtigen.  Auch wird beachtet, dass man mindestens alle 30 Tage eine Meldung schicken muss, da DynDns sonst den Account sperrt. Allerdings ist die Doku für die Katz, da die Textbeschreibung vorne und hinten unvollständig ist. So wird der Parameter <strong>&#8211;file</strong> als Optional angesehen, obwohl man ihn braucht und Standardmäßigg wird die aktuelle IP durch <strong>ifconfig</strong> ermittellt, was ja nich stimmt, da diese ja nur  die interne IP ist.</del></p>
<p><del datetime="2011-01-17T19:30:25+00:00">Folgendes funktioniert aber einwandfrei:<br />
<code>dyndns --debug --login USERNAME --password PASSWORT --host HOSTNAME-BEI-DYNDNS --urlping-dyndns --file /var/log/dyndns.log -D 5 &#038;</code> Damit prüft er die eigene, aktuelle IP über ein Script auf DynDns, schreibt den aktuellen Stand in die Log und trägt die aktuelle IP bei DynDns ein, wenn sich seit dem letzten IP-Eintrag in der Datei was geändert hat.</del></p>
<p><del datetime="2011-01-17T19:30:25+00:00"><ins datetime="2011-01-13T22:00:24+00:00">Wichtig! Wenn man den Prozess startet, nicht vergessen, per <strong>disown</strong> das Ding auch frei zu geben. Ansonsten läuft der nur so lange, wie die eigene Shell. Ist mir gestern passiert, weswegen der Server <strong>SCHON WIEDER</strong> einen ganzen Tag nicht erreichbar war.</ins></del></p>
<p><del datetime="2011-01-17T19:30:25+00:00">Damit man sich nicht mehr drum kümmern muss, ist folgendes Startscript hilfreich: <code>#!/bin/sh -e<br />
echo "dyndns $1 ..."<br />
case $1 in<br />
	start)<br />
		dyndns --debug --login USERNME --password PASSWORD --host HOSTNAME-BEI-DYNDNS --urlping-dyndns --file /var/log/dyndns.log -D 5 &#038;<br />
		disown<br />
		echo "started"<br />
	;;<br />
	restart|reload|force-reload)<br />
		echo "Error: argument '$1' not supported"<br />
		exit 3<br />
	;;<br />
	stop)<br />
		killall dyndns<br />
		echo "stopped"<br />
	;;<br />
	*)<br />
		echo "Usage: /etc/init.d/dyndns {start|stop}"<br />
		exit 3<br />
	;;<br />
esac<br />
exit 0</code><br />
Damit es beim Syastemstart gleich mit gestartet wird, muss es nur unter <strong>/etc/init.d/dyndns</strong> abgelegt und mit <code>sudo chmod +x /etc/init.d/dyndns</code> und zusätzlich <code>sudo update-rc.d dyndns defaults 98</code> aktiviert werden.</del></p>
<p><del datetime="2011-01-17T19:30:25+00:00">Das funktioniert jetzt jedenfalls erst mal wieder alles korrekt. Ich hoffe nur, dass mir jetzt nicht noch ein Teil ärger macht und der Server endlich mal problemlos am Netz bleibt</del></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2011/01/13/probleme-mit-easybox-802-und-dyndns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probleme mit Ubuntu und Debian bei Via-Prozessoren</title>
		<link>http://www.fukurama.org/wordpress/2011/01/12/probleme-mit-ubuntu-und-debian-bei-via-prozessoren/</link>
		<comments>http://www.fukurama.org/wordpress/2011/01/12/probleme-mit-ubuntu-und-debian-bei-via-prozessoren/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 23:21:27 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[bootup]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[freeze]]></category>
		<category><![CDATA[hang]]></category>
		<category><![CDATA[nehemia]]></category>
		<category><![CDATA[ondemand]]></category>
		<category><![CDATA[processor]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[via]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=369</guid>
		<description><![CDATA[Mein Server hatte ja eine gewisse Downtime und die hatte einen ziemlich unangenehmen Hintergrund. Das Problem Nachdem ich Ubuntu neu Installiert hatte, bzw auch bei den Live-CDs, frohr das System nach einiger Zeit ein. Und zwar sehr genau immer an der gleichen Stelle im Bootprozess ohne allerdings irgend einen Logeintrag oder eine Fehlermeldung zu hinterlassen. [...]]]></description>
			<content:encoded><![CDATA[<p>Mein Server hatte ja eine gewisse Downtime und die hatte einen ziemlich unangenehmen Hintergrund.</p>
<h3>Das Problem</h3>
<p>Nachdem ich Ubuntu neu Installiert hatte, bzw auch bei den Live-CDs, frohr das System nach einiger Zeit ein. Und zwar sehr genau immer an der gleichen Stelle im Bootprozess ohne allerdings irgend einen Logeintrag oder eine Fehlermeldung zu hinterlassen. Und das System frohr wirklich komplett ein, da rührte sich gar nichts mehr.</p>
<p>Ich habe so ziemlich alles durchprobiert: Ubuntu 8.04, 8.10, 9.04, 9.10, 10.04 und 10.10 jeweils als Desktop, Server oder Alternativ-Variante. Das Interessante: ich hatte da 8.04 bereits mal am laufen. Auch das aktuelle Debian ging nicht. Allerdings funktionierte Knoppix und DamnSmallLinux. Die Hardware hatte also keinen Schaden.</p>
<p>Nach endlosen Stunden und immerhin einem guten halben Jahr Downtime bin ich durch Zufall über einen <a href="http://forum.ubuntuusers.de/topic/ubuntu-8-04-ubuntu-8-10-ubuntu-9-04-frieren-b/?highlight=desktop+login#post-1942534">Foreneintrag</a> gestolpert, worin die Probleme ziemlich genau beschrieben wurden.</p>
<h3>Die Ursache</h3>
<p>Schuld ist das Startscript <strong>/etc/init.d/ondemand</strong> welches folgende Zeile ausführt <code>echo -n ondemand &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor</code>. </p>
<h3>Die Lösung</h3>
<p>Die Lösung ist simpel. aber nicht immer leicht zu machen. Eine Installation per Live-CD ist nicht möglich, da das Script schon dort beim Booten verwendet wird. Und die Live-CD auspacken, die Daten suchen  und verändern, darauf hatte ich keine Lust. Während der Installation geht es folgendermaßen:</p>
<p>Mit der Alternativ-CD bzw. ich habe es mit der Server-CD gemacht, wird das beim Booten der CD nicht aufgerufen. Man kann die Installation komplett durchlaufen, muss dann aber am Ende der Installation via <strong>STRG + ALT + F2</strong> in eine der anderen Konsolen wechseln, und per <code>vi /target/etc/init.d/ondemand</code> und dort unterhalb der ersten Zeile <code>exit 1</code> einfügen. Alternativ kann man auch einfach <code>sudo update-rc.d -f ondemand remove</code> benutzen und das Script wird dann nicht mehr aufgerufen. Dann einfach die Installation beenden und den Rechner neu starten und alles funktioniert.</p>
<p>Für den Fall, das es nach einem Dist-Upgrade passiert, hilft nur noch der Start mit einer Rettungs-Distribution und dann das Script eben auf der Systemplatte entsprechend per <strong>vi</strong> wie oben beschrieben deaktivieren.</p>
<h3>Hintergrund</h3>
<p>Mit dem Script bzw. dem oben erwähnten Echo-Befehl, wird ein Verwaler für die Prozessor-Taktung (SpeedStepping) aktiviert. Standardmäßig läuft der Prozessor auf voller Geschwindigkeit, aber um Strom zu sparen und ihn kühl zu halten kann er langsamer laufen.</p>
<p>Seit der Ubuntu-Version 8.04 gibt es im Kernel einen Fehler, der sich bei Via-Prozessoren auswirkt. Wird irgend ein anderer als der volle Prozessor-Takt verwendet, hält das System einfach an. Das passiert nicht nur, wenn der Wert auf <strong>ondemand</strong> gesetzt wird, sondern auch jede andere Option hat diese Wirkung. Außer das standardmäßige <strong>performance</strong>, das funktioniert.</p>
<p>Mit der oben beschriebenen Lösung bleibt der Prozessor also immer auf voller Taktung und verbraucht dadurch ggf. mehr Strom. In meinem Fall, einem VIA C3 Nehemia mit 800 MHz, macht das irgendwas unter 3 Watt Mehrverbrauch aus. Genau kann ich das aber nicht sagen. Ein bisschen Wärmer ist er dadurch auf alle Fälle. Derzeit sind es ca 56°C, vorher waren es im Schnitt um die 50°C.</p>
<h3>Die Gemeinheit daran</h3>
<p>&#8230;war, dass das Ganze mit einer Verzögerung von 60 Sekunden ab aufruf des Scriptes gemacht wird. Dadurch ergibt sich diese charakteristische, immer gleiche Zeitspanne bis zum Systemtot. Außerdem erklärt das auch die nicht im Zusammenhang mit dem Einfrieren stehenden Logeinträge des Bootvorganges, denn er brach immer beim USB-Host-Init ab, weswegen ich an der Stelle ewig rumgesucht hab .. natürlich ohne Erfolg.</p>
<p>Und da Ubuntu8.04 ja mal lief trieb mich das richtig in den Wahnsinn. Das wurde alllerdings per DistUpgrade gemacht und hat anscheinend irgend etwas bei diesem Dienst noch auf dem alten Stand gelassen. Anders kann ich es mir nicht erklären.</p>
<p>Ich war so kurz davor aufzugeben und mir wieder einen Hoster zu suchen :/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2011/01/12/probleme-mit-ubuntu-und-debian-bei-via-prozessoren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN-Server unter Ubuntu aufsetzen</title>
		<link>http://www.fukurama.org/wordpress/2009/07/16/svn-server-unter-ubuntu-aufsetzen/</link>
		<comments>http://www.fukurama.org/wordpress/2009/07/16/svn-server-unter-ubuntu-aufsetzen/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 22:04:22 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[create]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=349</guid>
		<description><![CDATA[Da mein bisheriges SVN-Repository abgeschalten wurde, musste ich mich darum kümmern selber eines aufzusetzen. Große Ansprüche habe ich da nicht, es sollte nur einfach und schnell eingerichtet und über eine IP/Domain erreichbar sein. Folgende Möglichkeiten hab ich gefunden: Das blanke Verzeichnis als Repository SVN hat eigentlich gar keinen Server, sondern nur eine Vorggegebene Verzeichnisstruktur und [...]]]></description>
			<content:encoded><![CDATA[<p>Da mein bisheriges SVN-Repository abgeschalten wurde, musste ich mich darum kümmern selber eines aufzusetzen. Große Ansprüche habe ich da nicht, es sollte nur einfach und schnell eingerichtet und über eine IP/Domain erreichbar sein. Folgende Möglichkeiten hab ich gefunden:</p>
<dl>
<dt>Das blanke Verzeichnis als Repository</dt>
<dd>SVN hat eigentlich gar keinen Server, sondern nur eine Vorggegebene Verzeichnisstruktur und eine dazugehörige Datenbank, die zusammen ein Repository darstellen. Man kann als Datei direkt per <strong>svn [COMMAND] file:///my/repository/path</strong> darauf zugreifen. Da man hier aber nur lokal zugreifen kann, die Benutzerrechte entsprechend anpassen muss und ansonsten auch keinerlei Zugriffsschutz einrichten kann, fiel das schonmal flach.</dd>
<dt>Als Apache2-Modul</dt>
<dd>Ein Apache-Server in dem per WebDAV und SVN connector auf das Repository zugegriffen werden kann. Hier hab ich keine brauchbare Anleitung finden können, die mir schnell genug zum Ziel führte. Außerdem müsste dann immer ein Apache laufen, was mir ein wenig wie mit Kanonen auf Spatzen zu schießen erscheint. Also so auch nicht.</dd>
<dt>Der mitgelieferte svnserve-Deamon</dt>
<dd>Ein eigener Deamon der mit svn schon mitgeliefert wird und super simpel funktioniert. Er ist nicht sonderlich sicher, aber ich greife nur über ein VPN auf den Dienst zu, da ist die Sicherheit nicht ganz so wichtig. Hier war <a href="http://odyniec.net/articles/ubuntu-subversion-server/">diese Anleitung</a> ganz hilfreich, die mir hier auch als Grundlage diente.</dd>
</dl>
<p>Folgendes muss (als Root oder per Sudo) getan werden, um ein SVN-Repository incl. &#8220;Server&#8221; aufzusetzen:</p>
<h3>Vorbereiten</h3>
<dl>
<dt>apt-get install subversion</dt>
<dd>Alle benötigten SVN Module installieren</dd>
<dt>mkdir /home/svn;chown root:root /home/svn;chmod go-rwx /home/svn</dt>
<dd>Das Root-Verzeichniss anlegen, in dem alle SVN-Repositories untergebracht werden sollen, und die Rechte so setzen, dass nur root darin etwas machen kann</dd>
<dt>echo -e &quot;[users]\nmyUser = myUnencryptedPwd&quot; &gt; /home/svn/.passwd</dt>
<dd>Legt die allgemeingültige &#8220;Benutzertabelle&#8221; für SVN an. Hier der Benutzer <strong>myUser</strong> mit dem Passwort <strong>myUnencryptedPwd</strong>. Neue Benutzer einfach in die Datei in eine neue Zeile eintragen. Aber <strong>ACHTUNG</strong>: die Passworter liegen im Klartext vor und das lässt sich in der Form auch nicht ändern. Also am besten eigene, nur für dieses SVN gedachte Passwörter benutzen.</dd>
<dt>echo -e &quot;[general]\nanon-access = none\nauth-access = write\npassword-db = ../../.passwd&quot; &gt; /home/svn/svnserve.conf</dt>
<dd>Legt die SVNServe-Config an und zwar so, dass die eben angelegte Benutzertabelle verwendet wird und nur autorisierte Benutzer auf die Repositories zugreifen dürfen</dd>
<dt>chmod 600 /home/svn/.passwd;chmod 600 /home/svn/svnserve.conf</dt>
<dd>Die Rechte zur Sicherheit nochmal einschränken, schließlich stehen da Passwörter im Klartext drin</dd>
</dl>
<p>Die angelegte Benutzertabelle und die Server-Config sollen in allen Repositories gelten, weswegen sie hier im SVN-Root-Verzeichnis liegen. Man kann das auch für jedes einzelne Repository machen, aber das das brauche zumindest ich an dieser Stelle nicht.</p>
<h3>Server einrichten und starten</h3>
<dl>
<dt><a href='http://www.fukurama.org/wordpress/wp-content/uploads/2009/07/svnserve'>Dieses Init-Script runterladen</a>&#8230;</dt>
<dd>&#8230;und dann die Zeile<br />
<code>DAEMON_ARGS="-d -r /home/svn --listen-host 127.0.0.1"</code>anpassen. IP und Port z.B. Das Script selber stammt aus der oben erwähnten Anleitung.</dd>
<dt>mv [INITDATEI] /etc/init.d/svnserve;chmod +x /etc/init.d/svnserve</dt>
<dd>Die Datei im Standart-Startordner des Systemes ablegen und die Rechte anpassen</dd>
<dt>update-rc.d svnserve defaults</dt>
<dd>Bewirkt, dass der Server beim Systemstart immer mitgestartet wird</dd>
<dt>/etc/init.d/svnserve start</dt>
<dd>Startet des SVN-Server</dd>
</dl>
<h3>Ein Repository anlegen</h3>
<p>Diesen Schritt kann man für jedes neue Repository ausführen</p>
<dl>
<dt>svnadmin create /home/svn/myFirstRepo</dt>
<dd>Legt das Repository an, also die SVN Datenbank und die Grundlegenden Verzeichnisse. In dem Fall mit dem Namen <strong>myFirstRepo</strong></dd>
<dt>cd /home/svn/myFirstRepo/conf;rm *;ln -s ../../svnserve.conf;</dt>
<dd>Entfernt die Config und Benutzertabelle für das Repository und verwendet die oben angelegten, globalen Dateien</dd>
<dt>/etc/init.d/svnserve restart</dt>
<dd>Startet des SVN-Server neu, damit er die Änderungen auch mitbekommt</dd>
</dl>
<p>Jetzt kann man per <strong>svn info svn://127.0.0.1/myFirstRepo</strong>, nur eben mit der passenden IP, prüfen ob alles geht. Der Login sollte abgefragt und ein paar grundlegende Daten über das Repository angezeigt werden.</p>
<p>Dem neuen Repository fehlen aber noch ein paar Dinge, die die meisten SVN-Clienten einfach voraussetzen. Z.B. dass man Branches im /branches Verzeichnis ablegt und dass der Trunk unter /trunk liegt u.v.m. Deshalb ist es sinnvoll, gleich die empfohlene Verzeichnisstruktur anzulegen. Hierzu muss man als normaler Benutzer folgendes tun:</p>
<p><code>mkdir tmp<br />
mkdir tmp/trunk<br />
mkdir tmp/trunk/myFirstProject<br />
mkdir tmp/branches<br />
mkdir tmp/branches/myFirstProject<br />
mkdir tmp/tags<br />
mkdir tmp/tags/branches<br />
mkdir tmp/tags/branches/myFirstProject<br />
svn import tmp svn://127.0.0.1/myFirstRepo -m  "svn-Verzeichnisstruktur erstellt"</code></p>
<h3>Weiteres Projekt einem repository hinzufügen</h3>
<p>Damit werden die grundlegenden Verzeichnisse im Repository abgelegt. Die <strong>myFirstProjekt</strong>-Verzeichnisse sind die Verzeichnisse für ein einzelnes Projekt. Will man eines weiteres hinzufügen, muss man folgendes, wieder als normaler Benutzer, tun:</p>
<p><code>svn co svn://127.0.0.1/myFirstRepo<br />
mkdir myFirstRepo/trunk/mySecondProject<br />
mkdir myFirstRepo/branches/mySecondProject<br />
mkdir myFirstRepo/tags/branches/mySecondProject<br />
svn ci myFirstRepo -m"Weiteres Projekt angelegt</code></p>
<p>Alles in allem gar nicht viel Arbeit, aber die Tatsache, dass es ziemlich unsicher ist, hinterlässt schon einen starken Nachgeschmack. Aber in meinem VPN laufen noch ganz andere, extrem unsichere Dienste, so dass das hier den Kohl auch nicht fett macht.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/07/16/svn-server-unter-ubuntu-aufsetzen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Schreiboperationen auf SSD vermeiden (unter Ubuntu)</title>
		<link>http://www.fukurama.org/wordpress/2009/05/25/schreiboperationen-auf-ssd-vermeiden-unter-ubuntu/</link>
		<comments>http://www.fukurama.org/wordpress/2009/05/25/schreiboperationen-auf-ssd-vermeiden-unter-ubuntu/#comments</comments>
		<pubDate>Mon, 25 May 2009 20:44:41 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[901]]></category>
		<category><![CDATA[avoid writing]]></category>
		<category><![CDATA[eeepc]]></category>
		<category><![CDATA[ssd]]></category>
		<category><![CDATA[ssdfs]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unionfs]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=341</guid>
		<description><![CDATA[Wenn man schon so &#8216;nen Schicken EEE-PC 901 geschenkt bekommt, will man den ja auch richtig einrichten. In dem Ding ist z.B. eine SSD verbaut und da sich die Schreibzyklen stark auf die Lebensdauer auswirken, dachte ich mir, kann man da doch bestimmt was machen. Geplant war, die Teile der Platte, die häufige Schreiboperationen erdulden [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man schon so &#8216;nen Schicken EEE-PC 901 geschenkt bekommt, will man den ja auch richtig einrichten. In dem Ding ist z.B. eine SSD verbaut und da sich die Schreibzyklen stark auf die Lebensdauer auswirken, dachte ich mir, kann man da doch bestimmt was machen.</p>
<p>Geplant war, die Teile der Platte, die häufige Schreiboperationen erdulden müssen, irgendwie zu schützen und die Änderungen gesammelt auf die Platte zu schreiben. Genau nach diesem Prinzip funktioniert <strong>unionfs</strong>. Man kann beliebig viele Quellen der Reihe nach übereinander legen und die oberste Quelle mit Schreibrechten wird eben zum Schreiben aller Änderungen benutzt, die darunter liegenden Schichten nur zum Lesen. Im vorliegenden Fall habe ich also die Teile der Platte, die geschützt werden sollten, als unterste Schicht mit Schreibschutz verwendet und oben drüber eine RAM-Disk gelegt.</p>
<h2>Orte mit vielen Schreiboperationen</h2>
<p>Folgende Verzeichnisse konnte ich bei Ubuntu ausmachen, die oft geschrieben werden:</p>
<dl>
<dt>/tmp</dt>
<dd>Das allgemeine, temporäre Verzeichnis. Viele Scripte legen da ihren Kram ab, aber viel Platz verbraucht es nie.</dd>
<dt>/var/tmp</dt>
<dd>Noch ein temporäres Verzeichnis. Keine Ahnung, wer da so alles rein schreibt. Ebenfalls recht klein vom Platzbedarf.</dd>
<dt>/var/log</dt>
<dd>Alle Logdateien (eigentlich) aller Prozesse. Hier wird städig rein geschrieben und gerade Desktopanwender brauchen die Infos nie</dd>
<dt>/media</dt>
<dd>Ein leeres Verzeichnis, in dem beim mounten von z.B. USB-Sticks Verzeichnisse als Einhängpunkte erstellt und später wieder entfernt werden.</dd>
<dt>/home/*/</dt>
<dt>
<dd>Das Benutzerverzeichnis des aktuell angemeldeten Benutzers wird bei laufender X-Oberfläche ständig beschrieben. Da ist, neben /var/log, so ziemlich am meisten los.</dd>
</dt>
<dt>/etc/mtab</dt>
<dd>In dieser Datei wird jegliches Ein- und Aushängen von Datenträgern dokumentiert.</dd>
</dl>
<dl>
<p>Bei so vielen zu schützenden Verzeichnissen bedeutet das am Ende aber, dass man viele RAM-Disks anlegen muss. Ich bin mir nicht sicher, aber die Dinger wachsen dynamisch mit bis zur angegebenen Obergrenze, wenn man Daten hinein legt. Entfernt man aber Daten, glaube ich nicht, dass der Speicher wieder freigegeben wird. Zumindest nicht alles und auch nicht sofort. Also sollte es, um dieser Frage einfach aus dem Weg zu gehen, nur eine RAM-Disk geben. Außerdem ist dann die Verwaltung des verbrauchten Platzes einfacher und die Überwachung, wie viel noch frei ist, ebenfalls.</p>
<h2>SSD-FS als Init-Script</h2>
<p>Um die Aufgabe möglichst einfach zu erledigen, hab ich <a href='http://www.fukurama.org/wordpress/wp-content/uploads/2009/05/ssdfs'>dieses ssdfs-Script</a> erstellt, dass zur Boot-Zeit direkt nach dem mounten aller normalen Laufwerke aus /etc/mtab eine RAM-Disk erstellt und an die entsprechenden Verzeichnisse per <strong>mount &#8211;bind</strong> hängt. Auch /etc/mtab wurde per &#8211;bind an eine Datei auf der RAM-Disk gebunden. Die Verzeichnisse, deren Daten erhalten bleiben sollen, wurden per <strong>unionfs</strong> und weiteren Teilen der RAM-Disk schreibgeschützt. Die Installationsanleitung sowie ein paar Kommentare zum Verhalten und ein paar Schalter zum Debuggen etc. sind im Script selbst ganz oben enthalten. Das Script würde ich aber als Entwicklerversion ansehen und keinesfalls für den Normalbetrieb benutzen. (siehe weiter unten)</p>
<h2>Erfolge</h2>
<p>Insgesamt konnte ich das Dateisystem damit so schützen, dass vom Einschalten des Rechners bis zum Ausschalten nur 45 Schreiboperationen ausgeführt wurden. Und die alle in /etc/mtab (mehr dazu gleich, unter &#8220;Probleme&#8221;). Alle Änderungen an den Daten werden beim Runterfahren am Stück geschrieben und so unnötiges Schreiben verhindert.</p>
<h2>(Schwere) Probleme</h2>
<p>Folgende Probleme sind mir beim Entwickeln aufgefallen, die leider so gravierend sind, dass ich das Projekt erst mal verworfen habe:</p>
</dl>
<dl>
<dt>Unionfs kann kein Merge</dt>
<dd>Mit unionfs kann man auf simple Weise die ursprünglichen Daten und Änderungen trennen. Das wird z.B. bei Live-CDs benutzt, um das System normal zu benutzen ohne auf die CD-ROM schreiben zu können. Aber es wurde nur GENAU DAFÜR gemacht. D.h. man kann nicht sagen &#8220;führe die Änderungen jetzt mal auf die ursprünglichen Daten aus&#8221;. Im Script habe ich einen Trick benutzt, das selber zu machen: es wird per <strong>rdiff</strong> einfach eine Daten mit allen Änderungen zwischen den ursprünglichen Daten und dem kompletten Unionfs durchgeführt. Das dauert zwar etwas länger, da alle Daten ein mal gelesen werden müssen, funktioniert aber zuverlässig.</dd>
<dt>Unionfs ist zickig</dt>
<dd>Wenn man unterhalb eines Unionfs per &#8211;bind Verzeichnisse eingehangen hat, bleibt ein umount des Unionfs einfach stehen. Man kann dann nur noch hart ausschalten und alle Daten, die noch nicht auf die Platte gesynct wurden, sind verloren. Auch kann man Unionfs-Quellen nur aushängen, nicht den Status ändern oder sie gar wieder einhängen. Das führt ebenfalls zum Absturz des Unionfs und eben wieder zum Datenverlust. Daraus ergibt sich, dass man ein Sync der Daten auf die Platte nur genau ein mal machen kann. Ein regelmäßiges Syncen, um Datenverluste zu vermeiden durch ausgehen des Rechners z.B. durch zu wenig Akkuleistung, ist nicht möglich.</dd>
<dt>/etc/mtab wird uneinheitlich verwendet</dt>
<dd>Hier waren, nach dem alles andere recht gut lief, die letzten 45 Schreiboperationen zu finden. In dem Init-Script der mtab ist extra angegeben, wenn die Datei ein Link ist, dass dieser dann korrekt behandelt wird. Das funktioniert aber gar nicht, da andere Prozesse diese Ausnahme nicht kennen und das System schon beim Starten korrumpieren. D.h. die unionfs-Laufwerke werden zwar erstellt, können aber nicht mehr gesynct werden und es gehen somit wieder Daten verloren. Per <strong>mount &#8211;bind</strong> kann man auch einzelne Dateien binden, aber auch das funktioniert hier nicht. Der df-Befehl z.B. erkennt dann überhaupt kein Laufwerk mehr, und unionfs lässt nicht schon wieder nicht unmounten&#8230; und wieder mal Datenverlust.</dd>
<dt>Umount von per &#8211;bind eingebundenen Laufwerken ist zickig</dt>
<dd>Wegen der Zickigkeit von Unionfs habe ich mehrere Laufwerke übereinander legen müssen, um z.B. das Unionfs beim Syncen mit einem Schreibschutz versehen zu können, da Unionfs bei dieser Aktion direkt abstürzt und wenn beim Syncen gleichzeitg Änderungen in der Quelle gemacht werden, bestimmt viel Datenmüll raus kommt. Bei so verschachtelten &#8211;bind Anweisungen scheint es umount irgendwann aus der Bahn zu werfen. Sporadisch wurde ein Umount verweigert, was wieder zu Datenverlust führte.</dd>
</dl>
<h2>Fazit</h2>
<p>Dieser Weg funktioniert ziemlich gut, ist aber extrem Instabil und führt zu gravierenden Datenverlusten. Zum basteln und lernen ist das gut geeignet, zu mehr aber auch nicht. Zum Vergleich: Ich habe während der Entwicklung das System ca. 200 mal neu starten müssen und ~90% der Zeit die Daten der Sitzung komplett verloren.</p>
<p>Ich für meinen Teil habe viel über Unionfs, die mtab und das System an sich gelernt. Das Script selber werde ich aber erst dann wieder anfassen, wenn Unionfs &#8220;etwas&#8221; stabiler geworden ist. Ansonsten richte ich mir die Umgebung gerade so ein, dass die Daten, die oft geschrieben werden, auf einer SD-Karte liegen und nicht auf der SSD, um bei Ausfällen für 10 € einfach eine neue SD-Karte zu kaufen statt einer teuren SDD. Aber dazu später mehr</p>
<h3>PS:</h3>
<p>Ich hab den Blog schon gute 3 Monate komplett vernachlässigt, was aber meinem Garten zuzuschreiben ist, denn im Frühling ist da einfach sehr viel zu tun. Jetzt, wo ich quasi nur auf&#8217;s Ernten warte, werd ich auch wieder mehr schreiben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/05/25/schreiboperationen-auf-ssd-vermeiden-unter-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Server-Status überwachen</title>
		<link>http://www.fukurama.org/wordpress/2009/01/23/server-status-uberwachen/</link>
		<comments>http://www.fukurama.org/wordpress/2009/01/23/server-status-uberwachen/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 06:46:45 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[overview]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=316</guid>
		<description><![CDATA[Um meinen Server mal ein wenig im Blick zu haben, und auch um ein wenig PHP-Erfahrung zu sammeln, hab ich das Script zur Anzeige des Server-Status eines Bekannten ein wenig erweitert. Dabei herausgekommen ist eine einfache Seite auf der die, zumindest für mich, wichtigsten Daten angezeigt werden wie z.B. die Uptime, eingeloggte Benutzer, RAM-Verbrauch, Partitions-Belegung [...]]]></description>
			<content:encoded><![CDATA[<p>Um <a href="/wordpress/2009/01/12/thinclient-pc-als-server-anschaffung-und-einrichtung/">meinen Server</a> mal ein wenig im Blick zu haben, und auch um ein wenig PHP-Erfahrung zu sammeln, hab ich das Script zur Anzeige des Server-Status eines Bekannten ein wenig erweitert. Dabei herausgekommen ist eine einfache Seite auf der die, zumindest für mich, wichtigsten Daten angezeigt werden wie z.B. die Uptime, eingeloggte Benutzer, RAM-Verbrauch, Partitions-Belegung incl. INodes, Festplatten-APM-Status, ein paar Temperaturen und die Prozessliste.</p>
<p><a href="/wordpress/wp-content/uploads/2009/01/server_status.htm"><img src="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/serverstatus-150x150.jpg" alt="Server-Status" title="Server-Status" width="150" height="150" class="alignleft size-thumbnail wp-image-320" /></a><br />
<a href="/wordpress/wp-content/uploads/2009/01/server_status.htm">Das Ganze sieht so aus</a>, wobei das Beispiel nur eine statische Ausgabe ist da die Informationen eventuell für Angriffe relevant sein könnten. Das Script dieses Servers ist per .htaccess geschützt.</p>
<p>Den <a href="/wordpress/wp-content/uploads/2009/01/server_status.php">Quelltext des Scriptes, der hier zu finden ist,</a> hab ich versucht halbwegs sauber zu halten. Der PHP-Teil ist ein Objekt und die Ausgabe erfolgt über einen Datenhash, so dass man leicht Änderungen und Erweiterungen vornehmen kann. Allerdings sind viele Dinge vermutlich unnötig umständlich gelöst da ich PHP quasi direkt beim Schreiben lernen musste. Ansonsten muss das Script nur irgendwo im Webserver-Pfad abgelegt und dann einfach im Browser aufgerufen werden. Es gibt aber ein paar Dinge, die eingerichtet werden müssen, damit sie angezeigt werden.</p>
<p>Die Temperaturen werden per <strong>lm-sensors</strong> gemessen. <a href="http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/">Hier ist eine Beschreibung dazu</a>, wie man es installiert und einrichtet. Da die Seite oft nicht erreichbar ist, hier eine kurze Zusammenfassung:</p>
<dl>
<dt>sudo apt-get install lm-sensors</dt>
<dd>Installieren der benötigten Programme</dd>
<dt>sudo sensors-detect</dt>
<dd>Richtet die Treiber ein. Hier muss man eigentlich nur alles mit Ja beantworten. Bei mir blieb es an einer Stelle hängen, so dass ich nach dem abbrechen und neu durchgehen diese Stelle dann mit Nein übergangen habe. Ansonsten ist es ziemlich simpel</dd>
<dt>sensors</dt>
<dd>Liefert die Messergebnisse.</dd>
</dl>
<p>Die Messwerte sind nicht immer korrekt und müssen teilweise interpretiert werden. Bei mir mit dem VIA C3 ist die System-Temperatur eigentlich die CPU-Temperatur und der als CPU-Temperatur angegebene Wert ist mit dauerhaft über 140°C unbrauchbar. Die North-Bridge-Temperaur scheint allerdings glaubwürdig. Da die Daten, die geliefert werden, sehr unterschiedlich sein können, muss das Statusscript hier mit hoher warscheinlichkeit bei jedem System ein wenig angepasst werden.</p>
<p>Der APM-Status der Festplatten beruht auf dem <a href="/wordpress/2008/11/09/festplatten-apm-verbessert/">selbst erstellten APM-Script</a>. Man könnte die Daten auch per hdparm auslesen, was bei mir aber das Aufwachen der Platten bewirkt. Außerdem braucht hdparm root-Rechte, und die werde ich sicher keinem PHP-Script verpassen.</p>
<p>Ansonsten ist noch zu erwähnen, dass die Daten mit den Überschriften der Shellausgabe als Schlüssel verwendet werden. Mein System ist in englischer Sprache und die Schlüssel werden entsprechend so verwendet. Bei anderen Sprachversionen ist auch hier an etlichen Stellen eine Anpassung nötig.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/01/23/server-status-uberwachen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ThinClient-PC als Server: Anschaffung und Einrichtung</title>
		<link>http://www.fukurama.org/wordpress/2009/01/12/thinclient-pc-als-server-anschaffung-und-einrichtung/</link>
		<comments>http://www.fukurama.org/wordpress/2009/01/12/thinclient-pc-als-server-anschaffung-und-einrichtung/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 12:34:57 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[thin client]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=300</guid>
		<description><![CDATA[Ich habe ja schon erwähnt, dass dieser Blog jetzt auf meinem Mini-Server läuft. Der Aufbau des selbigen war nicht immer ganz einfach, weshalb ich das hier mal festhalten will. Vorgeschichte Wegen Problemen mit dem WebHoster war ich genötigt mir Alternativen zu suchen diesen Blog unterzubringen. Da ich wenig Geld ausgeben und trotzdem gerne einen kompletten [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe ja schon erwähnt, dass dieser Blog jetzt auf meinem Mini-Server läuft. Der Aufbau des selbigen war nicht immer ganz einfach, weshalb ich das hier mal festhalten will.</p>
<p><strong>Vorgeschichte</strong><br />
Wegen <a href="/wordpress/2009/01/05/probleme-mit-wordpress-beim-hoster/">Problemen mit dem WebHoster</a> war ich genötigt mir Alternativen zu suchen diesen Blog unterzubringen. Da ich wenig Geld ausgeben und trotzdem gerne einen kompletten Server haben wollte um mehr Freiheiten und Möglichkeiten zu haben, fiel mir die häusliche 16 MBit ADSL Leitung ein, die ständig mit dem Netz verbunden und quasi ungenutzt ist. Ein Test mit einer lokalen WordPress-Anwendung zeigte, dass mit dieser Upload-Leitung problemlos 2,5 (nicht gzip&#8217;pte) Seitenabrufe pro Sekunde drin waren, was für meine Ansprüche völlig genügt. Mit gzip sind es dann ca. 8 Seiten pro Sekunde.</p>
<p><strong>Vorbereitung</strong><br />
Da der Server ständig vor meiner Nase steht, muss er klein und geräuschlos sein. Und wegen der Kosten preisgünstig in der Anschaffung und stromsparend. Ein gebrauchter Laptop war zu teuer und zu unflexibel, da die Hardware nicht groß angepasst werden kann und ein &#8220;normaler&#8221; Rechner braucht viel Strom und Platz. Also ging ich auf die Suche nach ThinClient-PCs.</p>
<p>Die meisten davon haben nur eine DiskOnChip-&#8221;Platte&#8221; (Flash), die absolut nicht ausreichen für einen Server, da sie meist unter 128MB groß sind. IDE und SATA Anschlüsse sind auch nicht überall dabei aber ein flotter USB-Anschluss mit externer Festplatte geht ja auch. Aber bei Nachfragen stellte sich heraus, dass die DiskOnChip-Teile oft auf einem IDE-Anschluss stecken und die Angabe bei der Beschreibung schlicht und einfach fehlte. Ich entschied mich für IDE und gegen USB weil es mit simpler erschien.</p>
<p>Die RAM-Ausstattung sieht bei gebrauchten ThinClients eher dürftig aus und hat in einigen dieser PCs Sonderformen, wie z.B. spezielle Laptop-RAM-Riegel. Die maximal verwaltbare RAM-Größe ist oft nicht wirklich hoch, aber auch sowas erfährt man erst nach gezielter Nachfrage. Meine Mindestanforderung lag bei 1GB RAM, was sich noch gerade so einrichten ließ.</p>
<p>Bei Festplatten hatte ich, durch Versuche am eigenen Rechner, herausgefunden, dass 3,5 Zoll Festplatten knapp 15 Watt verbrauchen und eben auch deutlich hörbar sind. Zumindest meine. Also hab ich gleich nach 2,5 Zoll Platten gesucht, die in so ein kleines Gehäuse auch viel besser rein passen.</p>
<p><strong>Anschaffung</strong><br />
Den Rechner (CA 800 ThinClient, VIA) gabs gebraucht bei eBay für 60 Euro und 1 GB (SD)RAM, (2&#215;512 Riegel) für 20 Euro. 2 x 30GB IDE Festplatten für je 20 Euro und 2 x 3,5-zu-2,5-Zoll IDE-Adaptern à 7 Euro mussten es dann auch noch sein, denn der IDE-Anschluss ist der normale für 3,5 Zoll Platten. Leider gibt es größere 2,5 Zoll IDE-Patten scheinbar nirgends mehr neu zu kaufen, was mich auf diese maximal 2 x 30GB festnagelte.</p>
<p>Ergibt also gesamt 134 Euro für alles.</p>
<p><a href="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver.jpg"><img src="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-150x150.jpg" alt="ThinClient als Server: Außenansicht" title="ThinClient als Server: Außenansicht" width="150" height="150" class="alignnone size-thumbnail wp-image-305" /></a></p>
<p>Schön ist das Teil nicht besonders, aber das war ja eh keine Voraussetzung.</p>
<p><strong>Ausstattung</strong><br />
Folgendes hatte ich damit am Start:</p>
<ul>
<li>Gehäuse mit 29 cm Breite, 23 cm Tiefe und 5,5 cm Höhe</li>
<li>externes Netzteil</li>
<li>800 MHz VIA C3 Nehemiah Prozessor, 1 Kern</li>
<li>1 GB SD RAM (2 x 512 MB Riegel) .. das Limit dieses Rechners</li>
<li>100 MBit LAN</li>
<li>1 PCI + 1 ISA Steckplatz</li>
<li>1 IDE Anschluss für 2 Geräte</li>
<li>2 x 30 GB IDE Festplatten</li>
<li>2 x USB v1.0 Anschlüsse für externe Geräte. 100kb/s langsam</li>
<li>Onboard-Sound</li>
<li>Onboard Intel-Grafik mit VGA-Ausgang</li>
<li>PS2 Anschlüsse für Maus und Tastatur</li>
<li>Diverse Uralt-Schnittstellen wie Serielle Ports.</li>
</ul>
<p>Die externen Schnittstellen des Servers:</p>
<p><a href="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-schnittstellen.jpg"><img src="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-schnittstellen-150x150.jpg" alt="ThinClient als Server: Schnittstellen" title="ThinClient als Server: Schnittstellen" width="150" height="150" class="alignnone size-thumbnail wp-image-309" /></a></p>
<p><strong>Einbau der Festplatten</strong></p>
<p>Im Gehäuse ist es sehr eng und trotzdem musste ich dort die 2 Platten verbauen. Da das vom Hersteller nicht vorgesehen war musste improvisiert werden.</p>
<p>Eine einfache und billige Lösung dafür ist, die Festplatten mit Abstandshaltern auf die Hauptplatine zu &#8220;legen&#8221; und dann mit dem Gehäusedeckel zu fixieren, so dass nichts verrutschen kann. Dazu braucht man nur ein Lineal, eine Schere und einen Schnellhefter aus relativ festem Plastik. Man schneidet ein Viereck aus dem Schnellhefter von der Größe der Grundfläche der Festplatte und lässt dabei rechts und links knapp 1cm Rand überstehen. Diese Ränder knickt man dann nicht ganz rechtwinklig nach unten ab und stellt dieses umgedrehte &#8220;U&#8221; dann auf die Ränder.</p>
<p>Die Ränder der Halterung sollten jeweils an der Außenseite von z.B. aufgelöteten Schnittstellen oder Jumper blockiert werden, so dass beim Druck von oben auf die Halterung die Konstruktion nicht einfach zusammenklappt, wegknickt oder verrutscht. Andere Bauteile, vor allem SMD-Teilchen, sollten nicht belastet werden, denn wenn die im Betrieb mal warm und dann durch die Halterung zur Seite gedrückt werden, lösen sie sich im schlimmsten Fall von der Platine und das Board ist im Eimer.</p>
<p>Auf dieses U kam bei mir dann die erste Festplatte welche dort mit Isolierklebeband einfach draufgeklebt wurde. Da drauf kam eine weitere Lage Plastik vom Schnellhefter, wobei das Lüftungsloch der Platte ausgespart wurde. Das wurde wiederim mit Isolierklebeband auf Platte 1 fixiert. Da drauf liegt dann ein IDE-Kabel und da drauf Festplatte 2, wiederum mit Isolierklebeband mit all dem verbunden.</p>
<p><a href="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-platteneinbau-1.jpg"><img src="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-platteneinbau-1-150x150.jpg" alt="ThinClient als Server: Festplatteneinbau 1" title="ThinClient als Server: Festplatteneinbau 1" width="150" height="150" class="alignnone size-thumbnail wp-image-306" /></a></p>
<p>Das Ganze ist jetzt schon relativ stabil, bleibt es aber nur so lange, wie man leicht von oben drauf drückt. Deswegen liegt das restliche IDE-Kabel, die Stromkapel der Platten und noch ein wenig als &#8220;S&#8221; gebogene Schnellhefter-Reste lose obendrauf und zwar so, dass beim Schließen des Gehäuses das ganze Konstrukt leicht auf die Hauptplatine gedrückt wird. Ich könnte das Ding jetzt sogar schütteln und es würde sich nichts bewegen.</p>
<p><a href="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-platteneinbau-2.jpg"><img src="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-platteneinbau-2-150x150.jpg" alt="ThinClient als Server: Festplatteneinbau 2" title="ThinClient als Server: Festplatteneinbau 2" width="150" height="150" class="size-thumbnail wp-image-307" /></a></p>
<p><a href="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-platteneinbau-3.jpg"><img src="http://www.fukurama.org/wordpress/wp-content/uploads/2009/01/thinclientserver-platteneinbau-3-150x150.jpg" alt="ThinClient als Server: Festplatteneinbau 3" title="ThinClient als Server: Festplatteneinbau 3" width="150" height="150" class="size-thumbnail wp-image-308" /></a></p>
<p><strong>Wärmeentwicklung</strong><br />
Da nach dieser Umbauaktion der Platz fas völlig ausgenutzt ist, ist Wärmestau natürlich ein Thema. Da das Ding aber so wenig Energie verbraucht, ist es doch erstaunlich kühl. Der Server läuft schon seit Monaten durch und die Festplatten-Temperatursensoren liefern mir 41°C und 37°C als Werte (gemessem mit <code>hdparm -H /dev/sda</code>). Wenn der Prozessor unter Vollast eine Weile läuft, schafft er 67°C, unter normalen Bedingungen sind es um die 40°C.</p>
<p>Ein Problem besteht allerdings bei der Gehäuseunterseite. Wenn ich den Server auf einen Holzuntergrund stelle erhöhen sich die genannten Temperaturen um gute 5°C. Deswegen liegt er jetzt plan auf dem Metallgehäuse meines &#8220;normalen&#8221; Rechners, so dass die Unterseite vollflächig aufliegt und nach unten ein bisschen Wärme abgegeben werden kann.</p>
<p><strong>System einrichten</strong><br />
Bei der <a href="/wordpress/2008/08/19/ubuntu-vom-usb-stick-aus-installieren/">Installation des Betriebssystemes (Ubuntu)</a> hab ich darauf Wert gelegt, dass das System wenig Resourcen verbraucht und einfach Wart- und Erweiterbar ist. Somit läuft auf der Kiste ein Ubuntu Desktop in der Minimalinstallation von rund 700MB Größe und knapp 120MB Ramverbrauch. Zum Vergleich: die Server-Version von Ubuntu braucht nur 80MB RAM als Minimalinstallation, aber leider läuft der Kernel nicht auf diesem System.</p>
<p><strong>System optimieren</strong><br />
Der Server soll ja in 99% seiner Zeit nur Mails verwalten und Webseiten ausliefern. Alles keine Dinge wobei eine Festplatte wirklich gebraucht werden würde. Da eben diese ja somit unnötig Strom verbrauchen und genau so unnötig verschleißen, sollten sie in eben 99% der Zeit kompett abgeschalten sein. Das ist derzeit so gelöst, dass <a href="/wordpress/2008/09/15/festplattenzugriffe-unter-linux-ubuntu-minimieren/">alle relevanten Daten für den Web-Server und alle anderen Dienste im RAM abgelegt sind</a>. Die Daten werden täglich per rsync auf die Platte gesichert. Ansonsten war noch, wegen des <a href="/wordpress/2008/09/23/festplatten-apm-spinnt/">miesen APM bei meinen Hitachi-Platten</a>, ein <a href="/wordpress/2008/11/04/festplatten-apm-uberlisten/">eigenes APM</a> nötig. Beides läuft schon seit einiger Zeit stabil und problemlos, wobei es Zwischenzeitlich bei <a href="/wordpress/2009/01/10/mysql-crash-wegen-apparmor-und-mount-bind/">MySQL sogar gravierende Probleme</a> gab, die sich aber <a href="/wordpress/2009/01/11/mysql-crashursache-gefunden-hup-signal-bei-mysql-ist-kein-neustart/">jetzt erledigt haben</a>.</p>
<p>Natürlich gabs dann noch die unvermeidlichen <a href="/wordpress/2008/09/16/angriffe-auf-ssh-port/">Angriffe aus dem Netz</a>, die sich allerdings <a href="/wordpress/2008/11/21/angriffe-auf-sshftp-port-eindammen/">mit einigen Firewall-Einstellungen gut eindämmen lassen</a>.</p>
<p><strong>Messdaten</strong><br />
In der Praxis ist ja immer alles ein wenig anders, deswegen mal ein paar gemessene Daten.</p>
<dl>
<dt>Prozessorleistung</dt>
<dd>16,8 Sekunden (Kleiner ist besser). Gemessen mit folgender Befehlszeile, die zwar nicht wirklich repräsentativ, aber einfach nachvollziehbar ist: <code>time perl -e 'foreach(1..10_000_000) { my $a = ($_ % 2) }'</code> Als Grundlage gilt die &#8220;user&#8221; Angabe.</dd>
<dt>Festplattendurchsatz</dt>
<dd>21.95 MB/sec. Gemessen per <code>hdparm -t /dev/sda</code></dd>
<dt>Stromverbrauch</dt>
<dd>24 Watt im Leerlauf, 34 Watt unter Vollast. Wobei die Messung mit einem 08/15 Leistungsmesser für die Steckdose erfolgte. Ich vermute, wenn man die Blindleistung und Messfehler noch abzieht, liegt das Teil bei knapp 10 Watt im Leerlauf.</dd>
<dt>Netzwerkleistung</dt>
<dd>80 KB/s download, 250 KB/s upload. Er hängt halt an einer 16MBit-ADSL Leitung.</dd>
<dt>Blog-Geschwindigkeit (WordPress)</dt>
<dd>~8 Seiten pro Sekunde, allerdings nur mit (Hyper)Cache-Plugin. Dieser Blog läuft ja aktuell auf dem Mini-Server, es ist durchaus brauchbar.</dd>
<dt>RAM-Verbrauch</dt>
<dd>~180 MB, wobei 60MB für die RAM-Disk drauf gehen</dd>
<dt>Verbrauchter Plattenplatz</dt>
<dd>Mit allen Tools und weiterem Schnickschnack derzeit 1,2 GB
</dd>
</dl>
<p>Zum Vergleich der Prozessorleistung ein paar Daten von Rechnern freiwilliger Testpersonen. Allesamt schneller als der Mini <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' />  Die Prozessorangaben wurden per <code>cat /proc/cpuinfo|grep "model name"</code> ermitelt.</p>
<dl>
<dt>Intel(R) Xeon(R) CPU E5430  @ 2.66GHz / 8 Cores [ vserver / Gentoo ]</dt>
<dd>1,67s</dd>
<dt>Intel(R) Core(TM)2 CPU 6400  @ 2.13GHz / 2 Cores[ Tobi ws / Ubuntu ]</dt>
<dd>1,78s</dd>
<dt>Intel(R) Core(TM)2 Duo 2.4 GHz / 2 Cores [ Jo / Mac ]</dt>
<dd>1,88s</dd>
<dt>Intel 2,16GHz 2,38 / 2 Cores [ Ben / Mac ]</dt>
<dd>2,30s</p>
<dt>Intel(R) Pentium(R) D CPU 2.80GHz / 2 Cores [ Tobi old-ws / Ubuntu ]</dt>
</dd>
<dd>2,52s</dd>
<dt>Intel(R) Pentium(R) 4 CPU 3.00GHz / 2 Cores [ Alex / Gentoo ]</dt>
<dd>2,88s</dd>
<dt>AMD Athlon(tm) 64 3500+ 2,2GHz / 1 Core [ Alex server / Gentoo ]
</dt>
<dt>3,02s </dt>
<dt>AMD Athlon(tm) 64 Processor 3700+ / 1 Core [ Ben home / gentoo ]</dt>
<dd>3,39s</dd>
<dt>AMD Athlon(tm) 64 Processor 3000+ [ Tobi home / Ubuntu ]</dt>
<dd>4,23s</dd>
<dt>Intel(R) Atom(TM) CPU  230   @ 1.60GHz / 1 Core [ Jo server / Debian ]</dt>
<dd>6,29s</dd>
<dt>AMD Athlon XP 1200+ / 1 Core [ Alex home / Gentoo ]</dt>
<dd>6,36s</dd>
</dl>
<p><strong>Fazit</strong><br />
Ich bin sehr zufrieden mit dem Mini-Server. Die Einrichtung war, aufgrund fehlenden Wissens und einiger technischer Stolpersteine schwer, aber lehrreich. Die Leistung übertrifft meine Erwartungen und es sind noch genügend Kapazitäten frei, um da noch einiges hinzuzufügen. Ich bereue nichts <img src='http://www.fukurama.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Anwendungen einrichten und weiteres&#8230;</strong><br />
Eingerichtet ist, wie schon gesagt, derzeit dieser  WordPress-Blog mit ein paar Anpassungen, dann noch ein FTP-Client, SSH und ein StreamingServer. Aber das ist eine andere Geschichte und die wird ein anderes mal erzählt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/01/12/thinclient-pc-als-server-anschaffung-und-einrichtung/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL-Crashursache gefunden: HUP-Signal bei MySQL ist kein Neustart</title>
		<link>http://www.fukurama.org/wordpress/2009/01/11/mysql-crashursache-gefunden-hup-signal-bei-mysql-ist-kein-neustart/</link>
		<comments>http://www.fukurama.org/wordpress/2009/01/11/mysql-crashursache-gefunden-hup-signal-bei-mysql-ist-kein-neustart/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 20:23:44 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[hup]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ramdisk]]></category>
		<category><![CDATA[reload]]></category>
		<category><![CDATA[restart]]></category>
		<category><![CDATA[signal]]></category>

		<guid isPermaLink="false">http://www.fukurama.org/wordpress/?p=310</guid>
		<description><![CDATA[Bei der Erstellung des Scripts zum Spiegeln von /var in eine RAM-Disk habe ich, aus Mangel an Wissen und Erfahrung, das HUP-Signal benutzt um alle Prozesse, die unterhalb von /var ein offenes Filehandle haben, neu zu starten, damit die Überlagerung keinen Datenmüll ergibt. Bei ein paar, z.B. den klogd, hat das von vornherein nicht funktioniert, [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Erstellung des <a href="/wordpress/2008/09/15/festplattenzugriffe-unter-linux-ubuntu-minimieren/">Scripts zum Spiegeln von /var in eine RAM-Disk</a> habe ich, aus Mangel an Wissen und Erfahrung, das HUP-Signal benutzt um alle Prozesse, die unterhalb von /var ein offenes Filehandle haben, neu zu starten, damit die Überlagerung keinen Datenmüll ergibt. Bei ein paar, z.B. den klogd, hat das von vornherein nicht funktioniert, weswegen die explizit über ihr Init-Script neu gestartet werden.</p>
<p>Bei MySQL hat es nur scheinbar funktioniert, denn der Grund für den <a href="/wordpress/2009/01/10/mysql-crash-wegen-apparmor-und-mount-bind/">Crash von MySQL</a> war genau das nicht neustarten. Der MySQL-Server hatte noch offene Filehandles auf dem Festplatten-Verzeichnis, dann hat die RAM-Disk das Verzeichnis überlagert und alle dann geöffneten Filehandles zeigten auf die RAM-Disk. Das Resultat war, wie zu erwarten war, Datenmüll.</p>
<p>Bei dem Script für die RAM-Disk ist MySQL jetzt auch explizit per Init-Script neu gestartet und das Ganze wurde von mir ausgiebig getestet: seit dieser Änderung bestehen keine Probleme mehr.</p>
<p>Jetzt muss ich mir nur noch überlegen, wie ich alle laufenden Prozesse mit Filehandles in /var dazu bringen kann, sich komplett neu zu starten. Derzeit fällt mir, außer Signalen, nichts ein, denn automatisch auslesen kann ich nur die PID und die Namen der Prozesse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/01/11/mysql-crashursache-gefunden-hup-signal-bei-mysql-ist-kein-neustart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL-Crash wegen apparmor und &#8220;mount -bind&#8221;</title>
		<link>http://www.fukurama.org/wordpress/2009/01/10/mysql-crash-wegen-apparmor-und-mount-bind/</link>
		<comments>http://www.fukurama.org/wordpress/2009/01/10/mysql-crash-wegen-apparmor-und-mount-bind/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 11:51:47 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Linux(Ubuntu)]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[apparmor]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ramdisk]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">/wordpress/?p=298</guid>
		<description><![CDATA[Zuerst: endlich nach etlichen Stunden wieder online! *puh* Kaum auf dem eigenen Server und schon gravierende Probleme. Die MySQL-Datenbank ist Gestern irgendwann im Laufe des Tages komplett drauf gegangen. Warscheinlich wegen apparmor und meinen Spielereien mit &#8220;mount -bind&#8221; und einer RAM-Disk. Resultat war, dass die Datenbank irgend einen Zwischenstand erreichte, der komplett inkonsistent war. Die [...]]]></description>
			<content:encoded><![CDATA[<p>Zuerst: endlich nach etlichen Stunden wieder online! *puh*</p>
<p>Kaum auf dem eigenen Server und schon gravierende Probleme. Die MySQL-Datenbank ist Gestern irgendwann im Laufe des Tages komplett drauf gegangen. Warscheinlich wegen <a href="/wordpress/2009/01/09/mysql-server-auf-ram-disk-probleme-beim-administrieren/">apparmor und meinen Spielereien mit &#8220;mount -bind&#8221; und einer RAM-Disk</a>.</p>
<p>Resultat war, dass die Datenbank irgend einen Zwischenstand erreichte, der komplett inkonsistent war. Die Post-Tabelle war auf dem Stand von vorige Woche und die Tabelle &#8220;wp_options&#8221; enthielt plötzlich Kommentardaten. Also ist ganz unten auf der Ebene des Dateisystemes was gewaltig in die Hose gegangen.</p>
<p>Ich habe die bisherigen Daten des Blogs nur retten können, da ich ein Backup von letzte Woche hatte und die fehlenden Posts einfach aus dem Browsercache per grep (und per Hand! *schwitz*) wieder raus gefriemelt habe.</p>
<p>Da ich die Idee, alle Daten die sich oft ändern in einer RAM-Disk zu halten, nicht aufgeben will und die Schuld nicht bei MySQL sondern bei Apparmor suche, habe ich das erst mal so gelassen. Aber ich habe das MySQL-Profil aus der apparmor-Konfig genommen. Mal sehen, was das bringt, ich werde weiter darüber berichten.</p>
<p>Ich mach jetzt jedenfalls öfter Backup der Datenbank und muss mein Auto-Backup-Vorhaben mal endlich in die Tat umsetzen.</p>
<p><ins datetime="2009-01-10T12:33:34+00:00">Erste Erkentnis: es könnte daran liegen, dass das disk2ram-Script den MySQL-Server und Apparmor nur per HUP-Signal neustartet. Ich habe jetzt Apparmor wieder aktiviert und beim disk2ram die beiden Prozesse explizit neu gestartet. Mal sehen&#8230;</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fukurama.org/wordpress/2009/01/10/mysql-crash-wegen-apparmor-und-mount-bind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

