btw. linux kernel >= 2.6.39 && <= 3.0.0? try this! :)

CERT?!? ;-)

# ubuntu, 20120123
apt-get update
apt-get upgrade

literatur:
blog.zx2c4.com/749
mempodipper.c
heise.de: “Linux: Root-Rechte durch Speicherzugriff”

Posted in Enterprise, RL | Tagged , , | Leave a comment

EMC Symmetrix WWIDs interpretieren

Hängt man an Linux-Systeme SAN-Devices, so versieht das OS sie mit einem eindeutigen Namen. Dieser wird via SCSI erfragt – im Bsp. einer Symmetrix ist das eine 32-stellige Zahl. Muss man darüber sprechen ist das eher unpraktisch. :) Netterweise ist der kürzere DeviceName, welche der Symmetrix-Admin kennt (täglich Brot), dort simpel einkodiert. Ab der 20sten Stelle ist das einfach hex-codiertes ASCII (zumindest bei Symmetrix VMAX). Warum das interessant ist – naja, es liefert mir einen guten Vorwand zu zeigen wie man Python in der Admin-Praxis nutzen kann:

def chunks(l,n):
    """
    split a list/string into groups of n-elements
    """
    return [ l[i:i+n] for i in range(0,len(l),n) ]

if __name__ == '__main__':

    wwid = "0123456789ABCDEF0123533030323433"
    sid=wwid[9:20]
    devenc_hex = wwid[20:]
    devenc_hex = chunks(devenc_hex,2)
    devdec=''.join(map(chr,map(int,devenc_hex,[16]*len(devenc_hex))))
    print "%s => %s , %s => %s" % (wwid,sid,devenc_hex, devdec)

Output für die WWID 0123456789ABCDEF0123533030323433 (klar, warum das doof auzusprechen ist? ;) ergibt:

hessenm@aomame:/tmp/blu$ python ./bla.py
0123456789ABCDEF0123533030323433 => 9ABCDEF0123 , \
    ['53', '30', '30', '32', '34', '33'] => S00243

…und zu erwähnen, dass ich ein kleines öffentliches Code-Repository auf bitbucket.org begonnen habe, wo ich derartige Sachen uploade. :-)

Posted in Enterprise, Tutorial | Tagged , , , , , , | Leave a comment

Webspace gemeinsam nutzen mit Owncloud (Audiostreaming angetestet)

Eigenen Webspace mit anderen gemeinsam nutzen und das so einfach wie möglich (also ohne Familienmitglieder für sshfs begeistern zu wollen ;-) und dennoch “Paranoia-kompatibel”? Owncloud macht das kinderleicht. Es bietet eine intuitive Weboberfläche mit der man seine Dateien verwalten & mit anderen teilen kann (Up-/Download/Shares etc.). Ein einfacher integrierte MusicPlayer erlaubt das Abspielen hochgeladene MP3s über den Browser & grundlegende PIM-Funktionen (Kalender & Kontakte) sind ebenfalls out-of-the-Box vorhanden. Plugininterfaces bzw. “Apps” für z.B. Photogalerien sind geplant.

Aber Owncloud macht sich durch folgende Features bereits jetzt richtig nützlich:

  • via WebDAV lässt sich der Speicherplatz über HTTP(S) einbinden und damit plattformunabhängig wie ein lokales Verzeichniss nutzen
  • Unterstützung für’s Ampache-Protokoll erlaubt Audiostreaming auf mobile Player wie z.B. ein Tablet
  • LDAP Anbindung

Auf owncloud.org/use gibt es eine gute Übersicht über die Nutzung, Installation (kinderleicht) und auch eine Online-Demo der in PHP geschriebenen Applikation.

WebDAV funktioniert sofort wunderbar, eine LDAP-Anbindung brauche ich privat nicht (gehe davon aus sie funzt problemfrei – vlt. mal auf Arbeit ausprobieren) aber beim Audio-Streaming – einer für mich sehr interessanten Option – hakt es leider schmerzhaft an mobilen Clients. Da der in Owncloud integrierte MusicPlayer bisher nur leidlich geeignet ist um umfangreiche Hörbücher abzuspielen und auf meinen Mobile-Devices (Handy, Tablet) mal sowas von überhaupt nicht funktioniert. ;-(

angetestet: Audiostreaming auf’s Handy oder Tablet

Im Android Market nach “Ampache” zu suchen hilft sofort – die kostenfreie App JustPlayer spricht dieses Protokoll und lässt sich gut bedienen (Amdroid mochte bei mir kein https & und Ampache.net lief nicht). Auf einem Handy mit Android 2.3.6 brachte das aber leider nix – lokales Audio wird gespielt, von der Owncloud hört man jedoch nix. ;-( Auf einem Tablet mit Android 3.2 funktioniert es hingegen zuerst einwandfrei – stürzte bei längerer Nutzung aber auch irgendwann ab! Keine Ahnung woran das liegt, aber so kann ich das z.B. meiner Süssen jedenfalls nicht schmackhaft machen. :-/ Schade eigentlich. Sobald der integrierte MusicPlayer besser wird oder jemand passende Apps veröffentlicht, sollte sich dieses “Problem” hftl. nicht mehr stellen. :-)

However…

Owncloud ist momentan ein idealer Kandidat zur Installation auf dem eigenen Server – weil’s tatsächlich ebenso praktisch wie einfach für jeden zu nutzen ist (und nicht zuletzt weil IMHO “Thin-Provisioning” ein nicht triviales Versprechen darstellt, das man ruhig mal von seinem Hoster einfordern darf *g* ;-). Und ja: mit “Cloud” hat Owncloud bisher wenig zu tun – macht nichts.

Posted in Uncategorized | Tagged , | Leave a comment

Viele IOPS kontrolliert produzieren mit C

Ich hatte ja schonmal über einen kleinen Hack zur (nachvollziehbaren) periodischen Generierung von wenigen IOs geschrieben. In einem “aktuellen Case” war Gegenteiliges von Nöten, sprich: ich wollte alle 1000 Mikrosekunden 4KB auf eine SAN-Disk schreiben (also 1000 “IOs” a 4KB pro Sekunde). Netterweise funzt das mit dem selben Code:

iosnail 4096 60000 1000 0 /dev/mapper/symvmax_XYZ_024E_debugdevice

schreibt 60 Sekunden lang pro Sekunde 1000 mal 4 KB (bzw. versucht dies ;) auf Disk (und soll dabei hostseitige Cache-Mechanismen nicht benutzen). Im Wiki gibt’s ein Beispiel dazu (iostat, symstat).

Der empirische “Erkenntnisgewinn” – den ich im konkreten Fall anstrebe – geht bisher leider gegen 0 (“bei uns ist alles grün – das Setup difft auch”). Nuja, immerhin kann ich das ehrlich “belastbar” sagen. ;)

Posted in Enterprise | Tagged , , , , | Leave a comment

Spielzeug für Couch-Potatoes: mein Tablet und “i”

Ich konnte es mir nicht verkneifen ein Tablet zu kaufen. Nachdem Samsung’s Galaxy dank Apple hier momentan nur über Umwege (mit teilweise absurden Preisaufschlägen) zu bekommen ist, habe ich mich entschieden Geld zu sparen & ein “Prekariats-Tablet” gekauft:

Acer Iconia Tab A500 Tablet (affiliate link)

Das A500 ist relativ preiswert (~400 EUR Saturn), läuft unter Android 3.2 und bringt fast alles mit was ich benötige: 10.1 Zoll, 32GB HDD (via MicroSD erweiterbar), WiFi, GPS, 2 Kameras (vorne/hinten), Mikrofon und USB. UMTS fehlt, aber das lässt sich bei Bedarf einfach via Smartphone lösen (Handy zum Hotspot machen). Die Cams liefern Bilder bescheidener Qualität, aber für Videofonie oder “Medienexperimente” mit z.B. Kivy reicht das vollkommen. Wie beim unsäglichen Trend zu pre-configured Laptops lässt es sich Acer nicht nehmen, das OS ein wenig zu “branden” indem es ein paar krude Applikationen zweifelhaften nutzens “fest” auf dem Tablet vorinstalliert – ohne es zu rooten lässt sich das nicht deinstallieren. Das stört nicht so sehr wie auf einem Smartphone, schließlich ist viel mehr Speicherplatz vorhanden – große “Anpassungen” hat sich Acer netterweise verkniffen.

Benchmarks & techn. Details zum A500 gibt es zuhauf im Netz. Mir ist der Aspekt “Usability” wichtiger. Ich nutze das Tablet seit ca. einer Woche täglich, hauptsächlich um zu surfen, RSS Feeds zu lesen, Radio oder Podcasts zu hören, kleine Mails zu tippern. Nicht das ich dies vorher nicht auch getan hätte (Netbook, Handy), aber ein Tablet verträgt sich tatsächlich besser mit abendlicher Entspannung – es macht einfach keine Arbeit. Kurzum: ich liebe es und will in Zukunft mehr davon! :-)

Die konkrete Inkarnation vom “Konzept Tablet” ist mir recht schnurz, hauptsache es geht in Richtung “offen, stabile APIs und bezahlbar” – Google’s Android auf Acer’s A500 macht hier eine gute Figur.

Nicht verschweigen möchte ich das einzige, was mich momentan echt nervt: wenn ich auf dem A500 über Google-Listen einen Podcast höre und sich das Display autom. abschaltet, dann “ruckelt” der Stream entsetzlich – die Abschaltzeit für’s Display hochzusetzen hilft natürlich, verballert aber unnötig Strom. Bei meinem Smartphone (Nexus One) unter Android 2.3.6 funzt das hingegen problemlos. Any ideas?

Posted in Uncategorized | Tagged , | 1 Comment

Wenige IOPS kontrolliert produzieren mit C

IOPS (Input/Output operations Per Second) auf ein (vernetztes) Storage-Device bieten regelmäßig Stoff für epische Diskussionen großer Bandbreite. Nützlich kann da sogar ein popeliges Tool sein, welches WENIGE IOs pro Sekunde, also z.B. je 1 Byte pro 1/4 Sekunde, auf eine Disk schreiben kann. Möglichst low-level versteht sich. Und sei’s nur, um die Stirn runzeln zu können ob der Fragen die sich da auftun. :-)

In C einen write()-Systemcall abzusetzen ist jedenfalls nicht schwer. Nachdem ich etwas gestöbert habe, konnte ich etwas passendes in C “zusammenkleben”. Folg. produziert z.B. alle 1/4 Sekunden einen write()-Call für popelige 4KiB (bis 800 mal sequenziell stumpf 4KiB geschrieben sind):

iosnail 4096 800 250000 0 /mnt/superdevice/bla.iosnail

Wenn man jetzt parallel systat & symstat (so man ‘ne Symmetrix im Zugriff hat) befragt
… und ebenso “kindgerecht” wie korrekt erklären kann, was da wo passiert (und woher man das weiß) dann hätte ich gerne eine Seminareinladung bitte! Thx! :-)

Posted in Uncategorized | Tagged , , | 1 Comment

Django Screencast für Einsteiger

Wer ein kleines, sehr sauberes Web-Framework ohne Dependency-Hell sucht und Django noch nicht oder nur vom “hören sagen” kennt, sollte einen Blick auf die Getting started with Django Screencasts von Kenneth Love riskieren.

Posted in Uncategorized | Tagged , , | Leave a comment

Deployment & Betrieb (nicht nur) von Eigenentwicklungen, oder: die Applikation als VM – ein Nachwort

2011. Die Cloud ist in aller Munde. Gleichzeitig konfigurieren Administratoren in den “Werkshallen” (Rechenzentren) vor dem Deployment kruder Applikationen noch immer Betriebssysteme händisch, wälzen Support-Matrizen, suchen applikationsspezifische Runtime-Environments, Libraries, Lizenzkeys, telefonieren mit Sales-Leuten, binden das ganze in diverse Clusterstacks und so weiter.

Das ist Arbeit, von der man sich viel sparen können sollte. Nicht um gelangweilt oder gar arbeitslos (siehe “weniger wichtig”) zu sein versteht sich. :-)

Der Schlüssel dazu ist meiner Meinung nach nicht nur ITIL (siehe “streitbare Begriffe” wie “gesunder Menschenverstand”, “Freiheit”, “Liebe”, “Problem-Anderer-Leute-Feld” (PAL), etc.) oder zc.buildout oder Puppet oder Grundeinkommen – das Anstreben von Simplizität (siehe UNIX-Konzept, DNA-Replikation, Mandelbrot-Menge, etc.) reicht vollkommen aus.

Jedenfalls sollte man IMHO wo’s nur geht “die” Applikation endlich zur virtuellen Maschine machen – und zwar ohne sich auf einen Vendor festzunageln! Ein egozentrisches Beispiel:

1. mein Development-Environment ist eine VM (Debian,GPL). Dort habe ich meine Sourcen, mein mercurial-Repository, meine Tools. Dank (InnoTek’s, äh Sun’s, äh Oracle’s) VirtualBox kann ich die mal im Park oder in der Bahn auf’m Netbook oder auch mal bei Windows-Menschen starten und an Software weiterentwickeln.

2. meine “Produktion” ist eine VM (Debian,GPL), läuft allerdings auf einem dicken “Eisen” unter SLES & KVM. Natürlich ist das nix weiter als eine Kopie der Prod-VM die ich unter VirtualBox (selbstverständlich in einem Crypto-Container) mal im Park oder in der Bahn auf’m Netbook oder auch mal bei Windows-Menschen… :-)

3. Fixe ich direkt auf der auf dem Eisen laufenden VM etwas (“Prozessbruch” -> wild! ;-) – kopiere ich mir die anschließend in meine “Staging” Umgebung (Laptop :). So merke ich recht schnell vor jedem Deployment, wenn ich vergessen habe etwas in meine Development-VM “zurückfließen” zu lassen. (ok, ich gebe zu an diesem Punkt hakt es ob Faulheit nicht selten :-)

4. Moment… KVM möchte die vbox-Images nicht & umgekehrt! Ja, da sind Konvertierungsschritte notwendig, na und?

5. Das Eisen oder der Linux-Cluster werfen komische “dazed & confused” Meldungen, komische Geräusche und letztlich macht die HA die Grätsche! -> Solution: Letztes Backup der Prod-VM einfach irgendwoanders hochbeamen (“Backup-Infrastruktur”, Laptop ;) und den Cluster betüddeln (der das ja nicht braucht, siehe “self-healing”).

6. Viel gute Software “funktioniert einfach so” (bei Betriebssystemen wird das z.B. als normal angesehen), und noch viel mehr könnte einfach so funktionieren. Jetzt fragen Sie sich mal, warum das eigentlich nicht so ist. (Falls Sie aus dem Management oder Sales-Bereich kommen – fragen Sie sich bitte mal: benutzen Sie ihre Software selbst auch? Bottom-Up meine ich? Falls Sie ein “Hacker” sind – fragen Sie sich mal: möchten Sie, wenn Sie Dinge benutzen müssen, die sie nicht interessieren, auch diese verstehen müssen? Interessieren Sie sich für Verwaltungsrecht bei unvermeidbaren Behördengängen? One-Click Patente??)

7. Letztlich sind wir alle irgendwo “User” – und nur wenn wir uns gegenseitig helfen, kann unnötige Arbeit verschwinden statt sie in neuen Schläuchen zu rekreieren. “EDV” sollte nicht “IT” heissen, nur damit die ursprüngliche Übersetzung “Ende der Vernunft” schwerer zu googlen ist. ;-)

8. Vielen Dank für Ihre geschätzte Aufmerksamkeit! & happy “write once, run everywhere!” (SUN Microsystems, 1996)! :-)

Zusammenfassung

Klar, das Thema “Virtualisierung” ist letztlich so alt wie ein Mainframe – aber im Gegensatz zu totem Baum “lebt sich die Virtualisierung” mittlerweile netzkompatibel (“frei und gut”).
Eine komplett pre-configured VM statt einer Applikation auszuliefern ist in vielen Fällen eine sehr gute Idee und ohne finanzielle Aufwände zu realisieren. Besonders für “Kleinkram” (was keine Abwertung von Sinnhaftigkeit meint – im Gegenteil, sondern hosting-Aspekte wie z.B. I/O Last). Auch können Backup & Restore Mechanismen vereinfacht werden.
Das Potential geht dann flöten, wenn man sich von einem Anbieter oder nebulösen (komplexen) Automatismen abhängig macht (siehe “KISS”) – nicht immer braucht es “Live Migration Capability” und “Self-Healing” und “elastic Scale-out”, zumindest kann es nicht schaden den Ball flach und stattdessen im Auge zu behalten, dass – wie Großmutter schon wusste – nicht alles Gold ist, was glänzt. :-)

Posted in Enterprise | Tagged , , , , , , , | Leave a comment

Willige Amateure…

und professionelle Schlampen scheinen großes Interesse am Thema ISCSI zu haben. Jedenfalls hämmern das die Bots hochfrequent in meine diesbezüglich längst veralteten Notizen. Der RSS feed ist dann auch zu nix gebrauchen (Page eigentlich ewig nicht mehr angefasst). 15 Minuten Zeit genommen und Akismet als Spamfilter im Wiki installiert. Noch unschlüssig ob es Bots u.U. irgendwie “ehrt”, daß sie keine “early adopters” sind und auch nicht das Thema “cloud” hinkritzeln…

Posted in Uncategorized | Leave a comment

Lieber TÜV… (Update)

Lieber TÜV, bitte lass mir meine Nuckelpinne!

a) Sie ist volljährig und eine treue Gefährtin.

b) Ohne verbeulte, alte Automobile auf den Straßen würde Rundgelutschtes nicht als schön durchgehen.

c) Mehr als 50 km/h verlange ich dem Auto selten ab. Von mir aus kann auf Autobahnen gerne ein Tempolimit eingeführt werden, damit nicht mehr soviele Menschen in verkehrssicheren Autos ihre (und andere) Gedärme über den Asphalt spritzen.

Herzlichen Dank,
Dein kaf!sch.

Posted in RL | Tagged , | Leave a comment