Encrypted ZFS Dataset – Unlock @boot

Ich habe bei mir gerade unter Ubuntu 19.10 auf die native ZFS Verschlüsselung umgestellt und dabei nur mein Data-Pool mittels Passphrase verschlüsselt, nicht jedoch den System Pool.

Beim System Pool sollte wohl direkt beim Booten eine Passphrase-Abfrage zu kommen, bei meinem Data allerdings nicht. Nach dem Boot sind die Datasets zwar da, aber nicht lesbar weil noch nicht entsperrt.

Nach einigem Basteln hat sich diese systemd service file bei mir als funktional erwiesen:

cat /etc/systemd/system/zfs-load-key.service

[Unit]
Description=Import key for ZFS pool
Documentation=man:zfs(8)
DefaultDependencies=no
After=systemd-udev-settle.service
After=zfs-import.target
After=systemd-remount-fs.service
Before=zfs-mount.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c 'systemd-ask-password "Encrypted ZFS password" --no-tty | zfs load-key -a'

[Install]
WantedBy=zfs.target

Setzt allerdings aktuel voraus, das alle Datasets den selben Passphrase haben und checkt auch nicht ob valide und ggfs Retry notwendig ist 😉

Quelle:
https://wiki.archlinux.org/index.php/ZFS#Unlock_at_boot_time

Firmware Update D2x00 /MSAx0

Ich habe aktuell von einem auf zwei HP D2700 Disk Shelfs erweitert um mehr mit Ceph zu spielen.

Das neue hatte eine aktuellere Firmware als das alte, also hab ich mal geschaut, was da ganz aktuell ist und wie ich die dann drauf bekommen (Kein HP Server, kein Smartarray Controller vorhanden).

Wichtig hierbei: Einen HBA benutzen, kein Raid Controller!

Hier der Weg, der sowohl bei MSA60/MSA70 als auch D2600/D2700 sowie den HP SAS Expandern funktioniert (Letztlich ist im Shelf ja auch ein Expander):

Benötigte Tools:
– sg3-utils
– lsscsi

Aktuellen Stand und Pfad auslesen:
lsscsi -g
--> [33:0:25:0] enclosu HP D2700 SAS AJ941A 0149 - /dev/sg30

Die scexe/rpm von HP mit dem Firmware Update entpacken, die cpio (cpio -idv < ../datei.cpio) Datei dann ebenfalls.

Aufspielen der Firmware:
sg_write_buffer --mode=dmc_offs_defer --bpw=4096 --in=CAMSPR0150_6G_app_4MB_ai.pmc /dev/sg30
sg_write_buffer --mode=activate_mc /dev/sg30

Nach einem Reboot wurden mir dann die aktuellen Firmware-Stände angezeigt.

Ich übernehme keine Garantie, das es bei jedem so klappt, Benutzung der Anleitung auf eigene Gefahr!

Bosch PSR – Qualmt und Stinkt

Ich hatte vor einiger Zeit das Problem, das meine Bosch PSR 14,4 LI II „ausgestiegen“ ist. Sobald sie läuft qualmt und stinkt es schlimm und sie bringt keine Power mehr.

Hab schon gedacht – na super, Motor hin – und nach einem Ersatz geschaut, da bin ich über ein paar Beiträge zu dem Thema gestolpert.

Ende vom Lied:

Demontieren und mit Bremsenreiniger (KFZ Zubehör) den Motorblock ordentlich durchschwämmen. Habe den Vorgang einige male wiederholt bis nix mehr dreckiges raus gekommen ist, dabei auch ab und an mal etwas drehen, verschiedene Öffnungen verwenden und den Winkel variieren.

Danach in Ruhe trocknen und dann ein paar Minuten laufen lassen. Es stinkt dann anfangs noch, also besser draußen… Nach kurzer Zeit hat sich dann der Geruch und Qualm bei mir gelegt.

Meine läuft jetzt wieder wie am ersten Tag 🙂

Exchange 201x – ACE doesn’t exist

Ich hatte gerade ein sehr unschönes Szenario:

Exchange 2016, steht in Ressource-Domain und die Mailboxen werden auf LinkedMailbox zur Userdomain umgestellt. Die Skripte hierfür mit set-user (nicht offiziell unterstützt) sind etwas buggy und die Umgebung historisch gewachsen, weswegen einige Mailboxen wohl nicht mehr ganz saubere Berechtigungen haben.

Versuchte man dann auf einer Mailbox die FullAccess Berechtigung, die in get-mailboxpermission mit RESDOMAIN\User angezeigt wird, zu entfernen kam es zu einem „ACE doesn’t exist“ und der User wurde fälschlich in die Userdomain aufgelöst:

[PS] C:\Windows\system32>Remove-MailboxPermission -Identity "sharedmailbox" -User RESDOMAIN\user -AccessRights FullAccess

WARNING: Can't remove the access control entry on the object "CN=sharedmailbox,OU=ou,DC=dc,DC=local" for account "USERDOMAIN\user" because the ACE doesn't exist on the object.

Auch wenn ich die SID der RESDOMAIN genommen hab, kam es nicht zu einem erfolgreichen entfernen. Hier wurde der User zwar in die richtige Domäne aufgelöst, der Fehler blieb allerdings der selbe.

In dem MS Foren gibt es Tipps von -deny:$true bis zur Installation der Exchange 2003 Management Tools, aber in meinem Fall hat geholfen:

Get-MailboxPermission -Identity "sharedmailbox" -user user | Remove-MailboxPermission

Vielleicht klappt es bei noch jemanden, der das Problem auch hat.

Sicherung von LXD Containern

Leider ist in den 2.xx Versionen von LXD noch keine direkte Backup-Funktion eingebaut.

Der Workaround geht über:

  • Snapshot der VM erstellen
  • Snapshot in Image wandeln
  • Image exportieren

Für diese Schritte hab ich mir mal ein Skript zusammen gebaut, das ich nicht vorenthalten will:

#!/bin/bash
datum=$(date +%Y-%m-%d)
backupdir=/mnt/data/backup/lxd
#vmliste=$(lxc list | awk '$4 == "STARTED" {print $2}')
vmliste=$(lxc list --format csv -c n)

echo "Starte Backup auf $(hostname -f)"
echo " "
date
echo " "
echo "Sicherungsliste:"
echo $vmliste
echo " "
for vm in $vmliste
do
 echo "Sichere VM: " $vm
 lxc snapshot $vm backup && echo "Snapshot erfolgreich"
 lxc publish $vm'/backup' --alias $vm'-backup' --compression none && echo "Publish erfolgreich"
 [ -d $backupdir/$datum ] || mkdir $backupdir/$datum
 lxc image export $vm-backup $backupdir/$datum/$vm.tar && echo "Export erfolgreich"
 lxc image delete $vm-backup && echo "Image Cleanup erfolgreich"
 lxc delete $vm/backup && echo "Snapshot Cleanup erfolgreich"
 [ -e /var/lib/lxd/containers/$vm/backup.yaml ] && cp /var/lib/lxd/containers/$vm/backup.yaml $backupdir/$datum/$vm.yaml && echo "Config kopiert"
 echo " "
done

date
echo " "
echo "Sicherungen abgeschlossen."

Die Formatierung und Ausgaben zielen herbei auf meine cron-Mail-Formatierung ab 😉

Am Anfang ist noch ein „Switch“, ggfs nur die laufenden VMs zu sichern.

Ich habe die gzip-Komprimierung aus Performancegründen abgeschaltet, andernfalls dauert der Publish sehr lange. Das Image ist dann zwar größer, aber auch bedeutend schneller fertig (bei meinem etwas schwachen Server…).