Kategori Ubuntu

drbd: storage live migration

Montag, August 1st, 2016

Um VMs zwischen HDD und SSD zu migrieren wäre ein „lvmove“ äquivalent ganz praktisch. Dies kann es aber nicht geben, da der Pfad zum lv dann auch angepasst werden muss. Um meine Master Slave Setup dennoch Live migrieren zu können, habe ich ein neues gleich großes lv erstellt, die Platte ausgehangen und die neue wie folgt eingegangen.

Zunächst habe ich geprüft ob ich Master oder Slave bin (ro:Secondary)

grep -A1 '^11:' /proc/drbd 
11: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
    ns:1176552 nr:236 dw:1176788 dr:233640 al:194 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

Dann habe ich dem DRBD Verbund die Storage aus gehangen:

drbdadm detach drbdvm11
grep -A1 '^11:' /proc/drbd 
11: cs:Connected ro:Secondary/Primary ds:Diskless/UpToDate C r-----
    ns:1176552 nr:272 dw:1176824 dr:233640 al:194 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

Dies DRBD Config Datei editiert und bei der localen node das neue lv auf der neuen vg eingetragen.

vim /etc/drbd.d/drbdvm11.res
disk       /dev/mapper/vg2-drbdvm11;

Danach muss das neue lv von DRBD initialisiert werden:

drbdadm create-md drbdvm11
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
success

Anschließend wird alles wieder gestartet und die Synchronisation begibt automatisch.

drbdadm attach drbdvm11
grep -A1 '^11:' /proc/drbd 
11: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
    ns:0 nr:184320 dw:184320 dr:0 al:194 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:7155452
grep -A1 '^11:' /proc/drbd 
11: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
    ns:0 nr:7339804 dw:7339804 dr:0 al:194 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

Pause Taste

Montag, Juni 6th, 2016

Immer wenn ich meinen Arbeitsplatz verlasse Sperre ich meinen Bildschirm. Vor eingestellt ist ALT + L. Das geht aber einfacher. Unter Systemeinstellungen => Tastatur kann man im Reiter „Tastenkürzel“ die voreingestellten Einstellungen bearbeiten. Unter System => Bildschirm sperren habe ich hier die Pause Taste hinterlegt.

Damit ich aber weiß, wann ich in Pause gegangen bin habe ich mir ein kleine Script geschrieben:

bin/pause

#!/bin/bash
gnome-screensaver-command -l
logger "PAUSE"

Dieses sperrt den Bildschirm und schreibt eine Logzeile ins Syslog:
Jun 6 17:00:00 desktop user: PAUSE

Hierfür habe ich mir unter Systemeinstellungen => Tastatur kann man im Reiter „Tastenkürzel“ ein eigenes Tastenkombination definiert
pause

Im auth.log steht equivalten wann ich mich wieder eingeloggt habe:
Jun 6 18:00:00 desktop compiz: gkr-pam: unlocked login keyring

dhclient debug modus

Donnerstag, Juni 2nd, 2016

Einen debug modus für dhclient habe ich leider vergeblich gesucht. Es gab weder ein simulate noch ein oder „–dry-run“ womit ich eine Adressermittlung und was es genau machen würde. Da es sich bei den von dhclient aufgerufenen Scripten um Bash scripte handelt, habe ich diese kurzerhand umgeschrieben.

Unter /sbin/dhclient-script liegt das Script das das von dhclient nach erfolgreicher Adressermittlung aufgerufen wird. Hier habe ich alle aktiven iproute2 Kommandos gegen echo’s ersetzt und alle hooks endfernt. Im Beispiel eines Bridgeinterface für eine Freifunk Verbindung sah das so aus:

dhclient  -v br-ffac
Internet Systems Consortium DHCP Client 4.1-ESV-R4
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

  ip link set dev br-ffac up
Listening on LPF/br-ffac/fe:54:00:78:80:96
Sending on   LPF/br-ffac/fe:54:00:78:80:96
Sending on   Socket/fallback
DHCPREQUEST of 10.5.20.96 on br-ffac to 255.255.255.255 port 67
DHCPACK of 10.5.20.96 from 10.5.16.2
  ip -4 addr add 10.5.20.96/255.255.240.0 broadcast 10.5.31.255 dev br-ffac label br-ffac
  ip link set dev br-ffac mtu 1406
  ip -4 route add default via 10.5.16.2 dev br-ffac
bound to 10.5.20.96 -- renewal in 1367 seconds.

Das vollständig umgeschriebene dhclient-script das ich auf einen Ubuntu 12.04 angepasst habe, habe ich hier: (mehr …)

repository auf SHA512 umgestellt nach (uses weak digest algorithm (SHA1)) Warnung

Mittwoch, Mai 11th, 2016

Bei meinem repository gab es das Problem das seit Ubuntu Xenial aber auch in Debian … beim updaten der Paketliste eine Warnung erscheint:

sudo apt update
OK:1 http://repository.chr.istoph.de/ubuntu xenial InRelease
...
Alle Pakete sind aktuell.
W: http://repository.chr.istoph.de/ubuntu/dists/xenial/InRelease: Signature by key 7E14785BB0F08C60D5F3281AC0DD2E75F8254956 uses weak digest algorithm (SHA1)

Das Problem lag an den Optionen in der folgenden gpg.conf. Insbesonderen an der „personal-digest-preferences“:

cat /root/.gnupg/gpg.conf

# Prioritize stronger algorithms for new keys.
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 BZIP2 ZLIB ZIP Uncompressed
# Use a stronger digest than the default SHA1 for certifications.
cert-digest-algo SHA512
personal-digest-preferences SHA512 SHA384 SHA256

Nach dem neu erstellen mit:

reprepro -b /var/www/repos/apt/ubuntu export xenial

bekomme ich nun keine Fehlermeldung und die InRelease wird nun mit SHA512 erstellt.

screen.xterm-256color

Montag, April 11th, 2016

In einer screen Session die ich auf einem Ubuntu 16.04. gestartet habe, in der ich mich per SSH auf einen Debian Server verbunden habe, bekam ich beim aufrufen von vim oder nano folgende Fehlermeldung:

vim
E558: Kein Terminal-Eintrag in der Terminfo-Datenbank gefunden
'screen.xterm-256color' nicht bekannt. Die folgenden eingebauten Terminals stehen zur Verfügung:
builtin_amiga
builtin_beos-ansi
builtin_ansi
builtin_pcansi
builtin_win32
builtin_vt320
builtin_vt52
builtin_xterm
builtin_iris-ansi
builtin_debug
builtin_dumb
Voreinstellung 'ansi'

nano
Error opening terminal: screen.xterm-256color.

Dieser wert kommt aus der $TERM Umgebungsvariable:
echo $TERM
screen.xterm-256color

Die Lösung ist das Setzen auf den wert „xterm“:

export TERM="xterm"