High Availability Storage GlusterFS

Mit GlusterFS kann man einen Hochverfügbaren Speicher aufbauen. Für den Versuch brauchen wir drei Server mit Ubuntu 18.04 (bionic). Ubuntu ist auf Laufwerk /dev/sda1 installiert und eine Datenpartition /dev/sdb1.

Wir erstellen eine GPT Partitionstabelle.

sudo parted /dev/sdb mklabel gpt

Legen ein Primäre Patition an.

sudo parted -a opt /dev/sdb mkpart primary ext4 0% 100%

Formatieren diese mit dem Dateisystem Ext4.

sudo mkfs.ext4 /dev/sdb1

Legen zwei Verzeichnisse an.

sudo mkdir /mnt/{data,gluster}

Fügen den Mount hinzu.

echo "/dev/sdb1 /mnt/data ext4 defaults 0 0" | sudo tee -a /etc/fstab

Unsere drei Server können wir in der Hosts Datei hinterlegen.

sudoedit /etc/hosts

192.168.56.101	hostA
192.168.56.102	hostB
192.168.56.103	hostC

Weiterlesen

Ubuntu – Systemd Netzwerknamen

Seit der Umstellung auf Systemd haben sich die Namen der Netzwerk-Adapter geändert. Die Schnittstellt hatte früher den Namen „eth0“, „eth1“ und heißt jetzt zum Beispiel „enp0s5“. Der Aufbau der Namen folgt einem Standard.

Der Aufbau ist wie folgt:

Two character prefixes based on the type of interface:
en -- Ethernet
sl -- serial line IP (slip)
wl -- wlan
ww -- wwan
 
Type of names:
 
b<number>                          -- BCMA bus core number
c<bus_id>                          -- CCW bus group name
o<index>[d<dev_port>]              -- on-board device index number
s<slot>[f<function>][d<dev_port>]  -- hotplug slot index number
x<MAC>                             -- MAC address
 
p<bus>s<slot>[f<function>][d<dev_port>]  -- PCI geographical location
p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]  -- USB port number chain

Das Beispiel „enp0s5“ ist eine Ethernet Karte PCI am Bus 0 Slot 5.

Doch wie kann man diese Namen finden, wenn man eine Karte neu installiert hat?

Der Befehl ifconfig mit der Option -a zeigt all Netzwerk-Geräte an, auch wenn Sie noch nicht konfiguriert sind.

ifconfig -a
lshw -class network

Will man den Namen ändern in „eth0“ so muß mann eine UDev Regel hinzufügen. Ersetzen Sie die MAC Adresse und den Namen mit den Daten aus Ihrem System.

sudo vim /etc/udev/rules.d/10-network.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="02:00:37:6f:ff:ff", KERNEL=="enp0s5", NAME="eth0"

Ändern Sie auch die Netzwerkeinstellungen und führen Sie einen Neustart durch.

sudo vim /etc/network/interfaces

auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
gateway 10.0.0.1

Systemd – Journal beschränken

Das Journal wurde mit Systemd neu eingeführt und soll die Log-Dateien /var/log/syslog ersetzen. Die Daten werden in Form von Binärdaten gespeichert und nicht in ASCII Format.

Um den Speicherplatz zu prüfen kann man das Journal Control journalctl verwenden.

journalctl --disk-usage

Will man den Speicherplatz reduzieren, kann man den Speicherplatz angeben oder die Zeit. Alte Einträge werden dann bereinigt.

journalctl --vacuum-size=128M
journalctl --vacuum-time=4weeks

Will man den Speicherplatz dauerhaft begrenzen, so kann einen Eintrag in der Kondiguration hinzu gefügen.

sudo vim /etc/systemd/journald.conf

Storage=auto
SystemMaxUse=128M

sudo systemctl restart systemd-journald

Der Speicherort von Journal liegt im Verzeichnis /run/log/journal/[UUID]/. Die Dateien werden im Binärformat gespeichert und können nicht mit einem Editor geöffnet werden. Mit dem Befehl „strings“ ist es möglich die Daten zu lesen.

sudo apt-get install binutils
strings /run/log/journal/[UUID]/system.journal

Nach jedem Neustart wird Journal gelöscht. Will man das Journal behalten, erstellt man eine Verzeichnis.

sudo mkdir -p /var/log/journal/

Nach einem Neustart wird das Journal im Verzeichnis /var/log/journal/ gespeichert. Wenn das Verzeichnis gelöscht wird, dann wird es wieder nach jedem Neustart gelöscht.

sudo rm -r /var/log/journal/

Die Anzahl der Neustart kann man sich anzeigen lassen.

journalctl --list-boots

Ubuntu Dienst Systemd

Ubuntu hat einen Wechseln von Upstart zu SystemD durchgeführt. Für Systemd gibt es einige neue Tools für die Verwaltung der Dienste.

Um eine Übersicht über alle Dienste zu erhalten können Sie diese Option verwenden.

sudo systemctl -all

Um einen Dienst zu start oder stoppen können Sie diese Befehle verwenden.

sudo systemctl start [name.service]
sudo systemctl stop [name.service]
sudo systemctl restart [name.service]
sudo systemctl reload [name.service]
sudo systemctl status [name.service]

Eine neue Funktion von Systemd ist der Timer, mit deren Hilfe kann man Aufgaben automatisieren.

sudo vim /etc/systemd/system/backup.service

[Unit]
Description=Backup
[Service]
ExecStart=/home/user/backup.sh

Der Timer startet den Dienst immer jeden Tag um 2:15 Uhr.

sudo vim /etc/systemd/system/backup.timer

[Unit]
Description=beispiel timer
[Timer]
OnCalendar=02:15
OnUnitInactiveSec=1d

Hiermit starten Sie den Timer.

sudo service systemctl start backup.timer
sudo systemctl list-timers --all
sudo systemctl enable backup.timer
sudo systemctl disable backup.timer
sudo systemctl --failed

Alle Informationen zu Diensten erhalten Sie im Journal.

journalctl --reverse
journalctl --follow
journalctl --unit backup.timer

Mit den Analyze-Tool kann man sich den Startvorgang in einer SVG-Grafikdatei ausgeben lassen.

systemd-analyze plot > /tmp/plot.svg