howto backup huge MySQL servers?

How to backup huge mysql myisam databases with a massive load of tables?
I encountered the backup of database servers that hold on to some hundreds of database schemas with each about one hundred tables while having some hundred gigabytes of data in them as a big problem in mysql servers.

There are some issues with that:
* shutting down mysql may take up to an hour until all opened file handles have been closed
* mysqldump’ing all the databases and tables takes several hours
* uptime is mission critical

Tonight I stumbled upon two approaches:

Filesystem Snapshots

I thought of that option before, though never followed that thought till the very end. While searching for other approaches that might seem fit for at least testing them out, I found this small line:
echo "FLUSH TABLES WITH READ LOCK; SYSTEM /path/to/helper/backupscript.sh; UNLOCK TABLES;" | mysql -u <user> -p <password>
(http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html at the third comment at the time of writing of this article)

In our case we could use this line as part of our backup script and instead of „/path/to/helper/backupscript.sh“ we would run a wrapper script to create a snapshot of the underlying LVM.

Maatkit’s mk-parallel-dump

The former maatkit was incorporated into the percona toolkit and the mk-parallel-dump and mk-parallel-restore were dropped. But luckily there are some backups on github. For example: https://github.com/ets/maatkit
There you can find a slightly enhanced version of the latest maatkit.

mk-parallel-dump might be an option for those older database servers, that lack a snapshot-able filesystem.

Disclaimer

Though I did not yet test any of these options myself. As soon as I tested them, I will do a new article on them.

HowTo: build the jenkins vagrant-plugin

At present I am preparing some of the tools helpfull/necessary for continuous integration: jenkins, vagrant, gitlab, jira and puppet.
To make the first two of those work nicely together there exists a jenkins plugin called vagrant-plugin at https://github.com/rtyler/vagrant-plugin , https://github.com/smartlogic/vagrant-plugin and https://github.com/aberrios85/vagrant-plugin
I decided to use the last version, as the original supports only very aged versions of jenkins and vagrant.

This is how the plugin can be build into a hpi file: (validated by hours of trial and error)


# install rvm and jruby in one command
curl -sSL https://get.rvm.io | bash -s stable --ruby=jruby
# activate rvm
source ~/.rvm/scripts/rvm
# get the vagrant-plugin sources
git clone https://github.com/aberrios85/vagrant-plugin.git
cd vagrant-plugin
# install needed gems
bundle install
# build the whole bunch
jpi build

Now you can install the plugin pkg/vagrant.hpi into your jenkins. But pay attention – depending on your webserver configuration you might need to increase settings … for example „client_max_body_size“ in nginx, if you want to use the upload feature of the jenkins web interface.

Kann der Administrator bei $Provider meine Emails lesen?

In der letzten Zeit sind sehr viele Suchenden auf meine Seite gelangt, die wissen wollten, ob ein Admin bei einem bestimmten Provider die Emails der Kunden lesen kann.

Obwohl ich es nicht mit hundertprozentiger Sicherheit weiß und wenn ich es wüsste auch vermutlich darüber keine Aussage treffen dürfte, möchte ich versuchen ein paar grundlegende Aussagen zu Emails zu machen, die bei diesen Fragen helfen könnten.

  1. Die Email-Protokolle (SMTP, POP3 und IMAP4) in ihrer Ursprungsform sind Klartext-Protokolle – grundsätzlich kann jeder die Email mitlesen, der sich irgendwie in den Datenstrom zwischen Mail-Client des Versenders und Mail-Client des Empfängers einklinken kann.
  2. Es gibt verschlüsselte Varianten der Email-Protokolle, die entweder die veraltete Variante über SSL nutzen (SSMTP, IMAPS, POP3S) oder aber den aktuellen Standard über TLS nutzen (Stichwort STARTTLS). Gute Email-Clients schlagen IMMER vor, eine der verschlüsselten Varianten zu nutzen, wenn sie vom Email-Provider angeboten werden (siehe aktuelle Thunderbird Versionen).
  3. Diese Verschlüsselung betrifft jedoch AUSSCHLIESSLICH die Kommunikation zwischen dem Email-Client und dem Email-Server des eigenen Providers. Wenn ich die Verschlüsselung nutze, ist das kein Garant dafür, dass auch du verschlüsselte Datenübertragung nutzt.
  4. Ferner gibt es keine Garantie dafür, dass die Kommunikation der Email-Server von verschiedenen Email-Providern untereinander auch verschlüsselt kommunizieren – das KANN jedoch der Fall sein, wenn beide Server das unterstützen.
  5. Ob Emails in den Mailsystemen der Provider verschlüsselt abgelegt werden, ist dem Provider überlassen. Da die Ver- und Entschlüsselung aber einen enormen Aufwand an Rechenleistung (und damit einhergehend erhöhte finanzielle Aufwände) erfordert, gehe ich davon aus, dass kein Provider das tun würde ohne es groß und breit als Feature anzukündigen.

Daraus folgernd muss ich antworten, dass die Admins die Emails eines Kunden vermutlich rein technisch irgendwie lesen könnten. Es gibt aber ein paar Gründe, weshalb Mail-Admins deine Emails nicht lesen werden:

  1. Sie dürfen es nicht. Emails unterliegen dem Fernmeldegeheimnis – wer dagegen verstößt macht sich strafbar. Sollte man als Mail-Admin erst einmal wegen des Verstoßes gegen das Fernmeldegeheimnis belangt worden sein, wird man nur sehr schwer noch einen Job in dieser Branche finden.
  2. Das Volumen ist zu groß. Bei Providern in den Größenverhältnissen an die ich gerade denke laufen täglich Millionen von Emails ein.
  3. Sie dürfen es nicht.
  4. Sie haben schlichtweg anderes zu tun. Infrastrukturen dieser Größe bringen einen entsprechend großen Arbeitsaufwand mit sich, so dass die Leute wirklich besseres zu tun haben, als fremde Emails zu lesen.
  5. Sie dürfen es nicht.

Habe ich eigentlich schon erwähnt, dass Emails dem Fernmeldegeheimnis unterliegen?

Es gibt demnächst übrigens eine Email-Lösung in Deutschland, welche Ende-zu-Ende-Verschlüsselung implementiert und zwingend vorraussetzt: De-Mail.

Bei De-Mail muss die Übertragung und Speicherung der Emails zwingend komplett verschlüsselt statt finden. Das ist Bestandteil des Auftrages der Bundesregierung an die teilnehmenden Provider, die derzeit für De-Mail eine dedizierte und dezidierte Infrastruktur aufbauen.

Fun-Fact: BND, BfV und MAD lesen schon seit Jahren deine Emails

Die Zukunft mobiler Endgeräte?

Die Zukunft mobiler Endgeräte wünsche ich mir in etwa wie folgt beschrieben. Ich kam auf diese eigentlich nahe liegenden Gedanken im Gespräch zusammen mit einem Freund. Gegenstand des Gespräches waren die aktuellen Entwicklungen auf dem Handy- und Tablet-Markt.
Wir sind beide keine Insider, daher würde es mich noch nicht mal sehr wundern, wenn irgendwo schon an solchen Systemen gearbeitet wird.

Wenn ich mir anschaue wozu ich meinen Computer nutze, bin ich recht schnell durch die Anwendungsfälle durch:

  • Spielen (hauptsächlich aufwändige Spiele mit OpenGL oder DirectX9-11)
  • Surfen im Internet
  • Musik hören
  • Filme/DVDs anschauen
  • Streams anschauen
  • Chatten/Videotelefonie/Emailkommunikation

Die mit großem Abstand anspruchsvollste Aufgabe für meine Rechner ist wohl der erste Punkt: Computerspiele. Zugegeben, diese Tätigkeit ist mir persönlich auch die Wichtigste – sie nimmt aber bei weitem nicht die meiste Nutzungszeit ein. Die Zukunft mobiler Endgeräte? weiterlesen

The Adventures of Trent Micro and Casper Sky

Es war ein Systemstart wie jeder andere. Die Off-Face-Gang legte wieder mal einen Schnellstart hin, einer des Ad-OBE-Clans benötigte mal wieder sein „Update“ … und Casper startete seine übliche Patrouille.

So beginnt die erste Geschichte der Abenteuer von Trent Micro und Casper Sky. Trent und Casper sind Offiziere bei den Anti-Virus-Guards und müssen sich fortan ein Revier teilen. Ob die zwei Einzelkämpfer miteinander auskommen und welche Abenteuer sie erleben, könnt ihr auf hdderia.blogspot.com lesen.

Aber Vorsicht: die Geschichten werden von einem IT’ler für IT’ler geschrieben und die Sprache enthält darum eine Menge Anspielungen und versteckte technische Details, die nicht Jeder ohne weiteres verstehen wird.

Continuous Log: Oracle VS Community, Teil 2

Oracle gibt OpenOffice auf.

Zur Pressemitteilung

Dies bestätigt in meinen Augen die hier skizzierte Entwicklung der von Oracle mit SUN aufgekauften OpenSource-Projekte. Viel mehr noch … Oracle scheint sogar bewußt in der Richtung zu agieren, die Projekte von sich weg zu treiben. Über die Hintergründe kann ich aber auch nur spekulieren … Geld spielt aber wahrscheinlich auch eine Rolle.

vergangener Ausfall und bevorstehender Umzug

Hallo Welt,

ich habe heute endlich die letzten Macken nach dem Ausfall in der Nach von Samstag auf Sonntag beseitigt. Zum Ausgleich gibt es aber auch eine gute Nachricht:

Zum Ausfall
Ursache: Während des Backups am frühen Morgen des 27.2. ist das Dateisystem auf dem Raid beschädigt worden.
Auswirkungen: Daten von fast exakt 24 Stunden sind verloren gegangen, Downtime von vielen Stunden beim Zurückspielen des letzten Backups.

Die gute Nachricht
Da ich mich am Wochenende mal wieder mit dem Server beschäftigen musste, habe ich festgestellt, dass die aktuellen Server meines Providers um 10€ günstiger sind als meiner und dabei etwa doppelte Ressourcen bieten.
Heute habe ich darum den neuen Server bestellt. In den nächsten Nächten werde ich die virtuellen Instanzen auf die neue Maschine umziehen. Das sollte problemfrei ablaufen und wird vor allem Nachts geschehen. Jeder der 5 Umzüge wird voraussichtlich eine Downtime von ca 1-2 Stunden des jeweiligen Dienstes nach sich ziehen – außer ich finde ne schnellere Alternative als die Proxmox-Offline-Migration.

Die stärkere Leistung möchte ich dann auch dazu verwenden zB wieder einen dauerhaften UrbanTerror Server zu hosten.

PyRoom Test (Updated)

Ich schreibe heute mit einem anderen Modell von Text-Editor – er arbeitet im Vollbild und hat fast keine sichtbaren Features. Ziel dahinter ist, dass er so wenig wie möglich ablenkt und man sich dadurch voll aufs schreiben konzentrieren kann.
Die Idee an sich ist sicherlich nichts Neues und es gibt bestimmt eine große Menge an verschiedenen Implementationen. Die von mir gerade getestete Implementation begnügt sich damit, den gesamten Bildschirm ab zu dunkeln und mit grüner Schrift auf schwarzem Hintergrund zu schreiben. Formatierungsoptionen sind bei solchen Programmen in der Regel gar nicht vorhanden.
Ich kenne noch eine andere Implementierung, welche derzeit leider nur für das iPad verfügbar ist. Dort werden auf hellem Hintergrund nur die aktuellen 3-4 Zeilen angezeigt, während ein paar Zeilen darüber und darunter ausgegraut werden. Alles was darüber hinaus geht, wird gar nicht mehr angezeigt. PyRoom Test (Updated) weiterlesen

Logstalgia – Gource

Nur ein kurzer Hinweis für die Sysadmins unter euch, die mir nicht bei Twitter folgen – oder es schlicht übersehen haben:

Bin heute auf Logstalgia und Gource aufmerksam gemacht worden:

Logstalgia ist eine OpenGL-Darstellung von Apache2-Access-Logs. Das Projekt findet sich hier: https://code.google.com/p/logstalgia/ – ihr solltet es euch DRINGEND anschauen.

Gource macht sehr ähnliches, allerdings mit Version-Control-Systemen wie GIT, Mercurial und Bazaar (es gibt auch Third-Party-Unterstützung für SVN und CVS). Stattet dem Projekt einen Besuch auf https://code.google.com/p/gource/ ab und schaut euch an, wie der Code aufgebaut ist.

Beide Projekte sind vom neuseeländischen Entwickler Andrew Caudwell (http://www.thealphablenders.com) und stehen unter der GPLv3 zur Verfügung.