ZFS für Firmen
Inhaltsverzeichnis
- Allgemein
- Links zu den Youtube Video und Nextcloud
- Installation von ProxMox
- ZFS Themen / Konfiguration von ProxMox
- ZFS Grundlagen
- ProxMox Grundeinstellungen
- ssh Schlüssel
- ssh Passwort login abschalten
- 2 Faktor Authentifizierung
- ProxMox ZFS Befehle
- ProxMox boot Platten
- ProxMox Datenträger
- Datenträger (Datastore) local
- Datenträger (Datastore) local-zfs
- ProxMox Container (LXC)
ProxMox VM
- ProxMox - Linux’s command’s
ProxMox - GUI
- ProxMox - VM geben freigegebenen Platz an den Hypervisor zurück
TrueNAS Core - GUI
ProxMox - NFS
Fileserver
-
- Zamba-lxc-toolbox
- TrueNAS Scale
- ProxMox auf Raspberry sichern mit Thorstens Tool
ZMS für Firmen
- Allgemein
- Links zu den Youtube Video und Nextcloud
Workshop 13.02.2024 und 15.02.2024
Kostenpflichtiger Link für Videos
Die Aufzeichnungen findet ihr im Kurs, der wiederum auf ein Textdokument in der Nextcloud verweist!
Der Nextcloudlink ist immer im Kurs oben, bzw. hier
Kostenpflichtiger Link für Videos
- Installation von ProxMox
Die Installation von ProxMox erfolgt über den ISO File, dies muss z.B. auf einen USB Stick geschrieben werden, damit davon gebootet werden kann.
Man sollte nach Möglichkeit (U)EFI für die Installation auswählen, darüber werden dann die brotfähigen Platten erkannt.
Leacy boot: blauer Bildschirm
(U)EFI boot: schwarzer Bildschirm
ZFS wird ausschließlich auf echte Festplatten installiert ! (Ausnahme AHCI oder HBA Controller)
ZFS Mirror
- ashift: 12 —-> entspricht 2^12 = 4k
- Compression: on
- Checksum: on
- Copies: 1
- ARC max size: <Standard> - ProxMox Postinstaller passt den Wert später an - Empfehlung: 1 GB pro 1 TB Netto
- Disksize: <kann bei Bedarf angepasst werden> - Chriz: 128G von ca. 400G
Bei Passwort undE-Mail Adresse Tastatur Layout beachten. (Sonderzeichen wie z.B. @)
Bei Hostname gleich den richtigen Namen eintragen. Eine spätere Änderung kann durchgeführt werden, aber evtl. nicht ganz so einfach.
Neben dem Workshop wird noch ein zweiter Produktion Server mit ProxMox betankt. Der ein Backupserver werden soll.
- ZFS Themen / Konfiguration von ProxMox
Anmerkung: In der Doku wird service wie im Workshop verwendet. In Debian gibt es das neue commando systemctl.
Beispiel:
- Alt:
service nfs-kernel-server status
- Neu:
systemctl status nfs-kernel-server
Beide commandos machen im Prinzip das selbe.
- ZFS Grundlagen
- ZFS Auslastung max. 80 %
- 90 % wird es langsam
- Ab 95 % geht nichts mehr
- ZFS braucht Ressourcen
- CPU
- RAM
- ProxMox Grundeinstellungen
- ssh Schlüssel
Aufbau der ersten ssh Verbindung zum ProxMox Server als User root kommt die Abfrage des ssh Fingerprint, dieser muss mit yes beantwortet werden. D.h. das Passwort Login ist aktiv.
Auf Linux / Unix / Mac liegen die ssh Schlüssel in den versteckten Verzeichnis .ssh.
Privater Schlüssel:
id_rsa
Öffentlichen Schlüssel:
id_rda.pub
Generation des keys über:
ssh-keygen
Der public Key wird auf dem ProMox unter /root/.ssh in der Datei authorized_keys kopiert.
Vom Client kann der Key mittel
ssh-copy-id root@<ip des ProxMox>
- ssh Passwort login abschalten
Die Configuration des ssh Daemon liegt unter /etc/ssh
Mit einen Editor Nano oder vi muss die Datei sshd_config editiert werden.
Alter Wert: PermitRootLogin yes
Neuer Wert: PermitRootLogin without-password
Restart des ssh Daemon:
service ssh reload
- 2 Faktor Authentifizierung
Auf der ProxMox GUI unter User den User root auswählen und danach two factor - add TOTP (time-based one-time password) konfigurieren.
Zum Einrichten wird z.B. google Authenticator oder Microsoft, … benötigt.
- ProxMox ZFS Befehle
Es gibt zwei ZFS Commands:
zpool
zfs
Die Commands zpool und zfs nutzen das selbe Kernel Modul.
Folgende Commands sind hilfreich:
-
zpool list zfs list zpool history - alle zpool und zfs Befehl, die abgesetzt worden sind
- ——————- Sinnvoll die Liste zu vervollständigen ??!! —————————————————
- Troubleshooting NFS
-
cat /etc/exports.d/zfs.exports —> ZFS exports zfs create -o sharenfs=on rpool/nfs —> Wir machen das jetzt ohne Permission Check, so nicht nachmachen showmount -- exports —> Zeigt Exporte an
- ProxMox boot Platten
Besteht aus einen Mirror und die boot Platten besitzen 3 Partitionen, die ersten beiden sind für das Booten und die 3. ist die ZFS Partition von ProxMox.
ProxMox ZFS Partiton rpool/ROOT/pve-1 wird als / gemountet. rpool/ROOT ist einfach eine leere Verwaltungsebene.
Weiterhin wird ein rpool/data für die VM, LXC, d.h. dort liegen die Daten
Einige zfs Parameter:
-
zfs set compression=on rpool zfs set bootfs=/ rppol/ROOT/pve-1 …
Start-Partitionen werden über proxmox-boot verwaltet.
proxmox-boot-tool status
ISO Vorlagen werden jetzt unter rpool/var-lib-vz abgelegt, welches unter /var/lib/vz gemoutet, früher wurde es in root Filesystem abgelegt.
- ProxMox Datenträger
- Datenträger (Datastore) local
Der Datastore ist für: (File basiert)
- Backups
- ISO Images
- CT Templates
- Datenträger (Datastore) local-zfs
Der Datastore ist für: (Block basiert)
- VM Disks
- CT Volumes
- ProxMox Container (LXC)
In der ProxMox GUI wird ein Container angelegt (nur wichtige Felder der Config):
- ssh public key kann in ein Feld der Configuration kopiert werden
- Temples für LXC Container auswählen
- Disk Size: 12 —> Größe des Filessystems, ist nur ein Limit
Der angelegte Container liegt unter rpool/data/subvol-100-disk-0 und wird in ProxMox gemoutet /rpool/data/subvol-100-disk-0
Bei LXC Containern werden Dataset’s verwendet.
- ProxMox VM
ProxMox nutzt Linux KVM.
In der ProxMox GUI wird eine VM angelegt (nur wichtige Felder der Config):
- Machine: q35
- BIOS: OVMF (UEFI)
- EFI Storage: local-zfs
- SCSI Controller: VirtIO SCSI single (default)
- Qemu Agent: angeharkt
- Bus/Device: SCSI
- SSD emulation: angeharkt
- Discard: angeharkt
- CPU:
- Memory:
- Network Model: VirtIO
- OS type: Windows - Standard: Linux
Chriz: Empfehlung Unter Hardware Version 5.1 verwenden
Unter Hardware noch folgendes hinzufügen:
- CD/DVD: VirtIO Treiber in VM herein hängen (local Storage)—> Evtl. muss das ISO heruntergeladen werden, falls der Postinstaller noch nicht ausgeführt worden
VM in ProMox starten.
Auf dem ProxMox in der CLI nachschauen:
zfs list
Es werden zwei Partitionen für die Windows VM angezeigt. Die erste Partition ist für UEFI Boot Partition.
Die beiden Partionen der Windows VM haben keinen Mountpoint, da es sich um Block Device handelt, also zvol’s.
Bei der Windows Installation müssen die VirtIO Treiber geladen werden. VirtIO SCSI Single auswählen - heißt VIOScsi
Während der Installation hat Windows nur 3 Partitionen.
Es gibt keinen Unterschied zwischen physikalischen Platten und virtuellen Platten (vol’s). Das zvol kann auf eine physikalische Platte kopiert werden.
Die Installation wird ohne aktive Netzwerkkarte durchgeführt und für den User wird kein Passwort vergeben.
Windows wird gestoppt und wieder hochfahren und einloggen.
Danach hat Windows die Wiederherstellungspartition erzeugt. Damit gibt es 4 Partitionen, damit kann die Partition 3 nicht einfach erweitert. Dazu muss die Partition 4 vorher gelöscht werden.
- ProxMox - Linux’s command’s
-
lsblk partprobe # —> apt install parted # Zeigt die geänderten Partitionen der Installation an dmesg -wT —> zeigt neue Festplatten die zusätzlich gesteckt werden ls -althr /dev/zvol/rpool/data # —> zeigt die Platten Zurordnung zum zvol dd if=/dev/zvol/data/vm-101-disk-1 of=/dev/sdc bs=1M status=progress \ # —> kopieren des zvol’s bei ausgeschalteter VM zfs list -t snapshot # —> zeigt die ZFS snapshot’s an zfs clone rpool/data/vm_101-disk-1@frisch rpool/data/vm-101-disk-9 # —> Clone anlegen zpool import Raid10 #—> Importiert den Pool Raid10 zpool import <id> alt # —> Importiert den Pool mit der <id> (Raid10) unter dem Pool alt zpool import -f <id> alt # —> Importiert den Pool mit der <id> Raid10 unter dem Pool alt, der einen anderen System gehört zpool export alt # - wirft den Pool alt aus zpool create -n backup raidz <disk1> <disk2> <disk3> <disk4> <disk 5> <disk 6> # —> -n heißt try run, raidz bedeutet RAID5 und der Pool backup wird angelegt cfdisk /dev/disk/by-id/<ata-ST160000…> # —> zeigt Größe an zpool destroy backup # —> löscht den ZFS Pool backup sgdisk /dev/disk/by-id/<ata-…> # -R /dev/disk/by-id/ata-…> —> kopiert Festplattenpartitonen zfs set compression=on backup # —> ZFS Compression einschalten zfs get compression # —> Zeigt die Propery compression aller zfs pool an zpool add -n backup mirror <disk-n>-part2 <disk-m>-part2 # —> An den bestehenden RAID5 wird ein \ Mirror angefügt zpool iostat -v 1 # - ZFS Schreibvorgänge
RAID 5 ist schneller als RAID5 mit Mirror hinten dran. (RAID 50)
iotop # -Festplatten Auslastung
- Alternative: Ein ZFS Backup Pool mit RAID5 und einen zweiten Backup Pool mit einen ZFS Mirror.
- ProxMox - GUI
Zweite HDD mit 1 TB in den Server stecken, das erkennen kann über dmesg -Tw auf der CLI verfolgt werden.
Da die Platten nicht leer sind werden diese auf der GUI gewipped. (Partitionen gelöscht)
Unter ZFS
- Create ZFS
- Name: rpool-hdd
- Platten auswählen
- RAID Level: Mirror
- <create>
- Hinweis beachten: ZFS is not compatible with disks backed by hardware RAID controller.
zpool history zeigt:
-
zpool create -o ashift=12 pool-hdd mirror <disk1> <disk2> zfs set compression=on spool-hdd
Was die GUI nicht macht:
zfs set rpool-data/data # - Immer gleiches Ablage Konzept
Unter der GUI wir rpool-hdd angezeigt. Das will Chriz nicht sehen
TIPP:
Chriz macht es anders:
- Unter Storage wird rpool-hdd wieder gelöscht
- Unter Storage Add ZFS (Store Typ ZFS)
- ID: rpool-data
- ZFS Pool: rpool/data
- Thin provision: angeharkt
- Block Size: 16k (Bei RAID5)
- Unter Storage Add ZFS (Store Typ ZFS) - gleich für rpool-hdd/data
- ID: rpool-hdd-data
- ZFS Pool: rpool-hdd/data
- Thin provision: angeharkt
- Block Size: 16k (Bei RAID5)
CLI:
Wichtig zu wissen ist, wie groß ist die recordsize (Dataset) und volblocksize (zvol) !
zfs get recordsize rpool/data/subvol-100-disk-0
- 128k - jede Datei braucht min. 128 k
- Bei vielen kleinen Dateien muss mit einen special device gearbeitet werden (Kurs: ZFS Grundlagen)
Löschen des Clones:
zfs destroy rpool/data/vm-101-disk-9
Für zvol gibt es:
zfs get volblocksize rpool/data/vm-101-disk-1
- Value: 16k —> Seit wann ist das 16k - interessant Bemerkung von Chriz dazu, ist normalerweise auf 8k
Zur Klärung:
Auf der GUI:
- VM 100
- Add: Hard Disk
- Auf local-zfs
- Disk Size: 10
- Hardware
Auf der CLI wird folgendes angezeigt:
- zfs history
-
zfs create -s -V 10485760k rpool/data/vm-101-disk-2 zfs get volblocksize rpool/data/vm-101-disk-2 # —> immer noch 16k, neuer default bei OpenZFS ist 16k! PVE zeigt 8k an, besser 16k überschreiben !
Wurde eine VM Disk mit 8k angelegt, kann das Probleme dadurch gelöst werden, dass die Disk auf einen Pool mit 16K verschoben wird, aber dann geht die snapshot history verloren !!!
zfs get all rpool/data/vm-101-disk-3 # —> Neuer Name der Disk wegen umkopieren
ZFS macht das Partition Alignment automatisch. Cfdisk /dev/sda zeigt die erste Partition startet bei 34 ! Wird dies nicht gemacht kann das zu Performance Problemen führen.
Die neue erzeugte Platte muss in Windows erstmal sichtbar gemacht werden, bevor sie formatiert werden kann. Bei Formatieren kann dann auch z.B. 16k als Größe für die Zuordnungseinheit ausgewählt werden. Diese Wert ist dann vom Anwendungsfall abhängig.
Bei der Laufwerkszuordnung kann statt dem Laufwerksbuchstaben auch ein Verzeichnis z.B. auf Laufwerk C: ausgewählt bzw. erzeugt werden. (z.B. C:\Lexware) D.h. diese Verzeichnis liegt dann z.B. auf SSD.
Frage: Wenn ich eine Blocksize von 4k brauche. Dann muss eine ashift=9 bei zpool angegeben werden und man kommt bis auf 4k runter.
- 3.10.ProxMox - VM geben freigegebenen Platz an den Hypervisor zurück
Die Windows Systemplatte hat eine Größe von max 32 GB und belegt auf ZFS 7,27 GB.
Da die Treiber noch fehlen, werden die restlichen Treiber im Windows installiert und anschließend laden wir Daten aus dem Internet herunter. Alternative kann auch die Treiber DVD als Datenquellegenutzt werden, um diese auf downloads abzulegen. Werden die Daten auch gleich wieder gelöscht, geht die Belegung auf dem Pool auch gleich wieder runter. (Discard)
-
zfs get compression rpool/data/vm-101-disk-1 # —> zeigt die Compression zfs get compression # —> zeigt die Compression aller Pools an
Dann wieder den Platz auch wieder an den Hypervisor zurück gibt sind folgende Einstellung in Windows erforderlich:
- Eigenschaften von Laufwerk C:
- Für schlanke Speichernutzung
- Auf täglich ändern —> liebsten stündlich und das ganze für alle Laufwerke
- Optimieren
- Einstellungen ändern
- Für schlanke Speichernutzung
- Tools - Optimieren
zfs list # —> zeigt das der Platz an den Hypervisor zurückgegeben wird, kann evtl. einen kleinen Moment dauern
Linux: dort heißt es
fstrim -av
um den Platz unter Linux an den Hypervisor zurück zugeben. Dies wird über die Crontab regelmäßig ausgeführt. (crontab -l)
Crontab Eintrag:
0 0 * * * /sbin/fstrim -a
Bei Dataset besteht das Problem nicht da der Platz direkt wieder freigegeben wird.
- 3.11.ProxMox - Windows Platte vergrößern
In der ProxMox GUI:
- Windows VM
- Richtige Hard Disk auswählen
- Resize 8 - Vergrößerung um 8 GB
- Hardware
- ProxMox macht die Vergrößerung in Realtime
In der VM sehen wir die Vergrößerung um 8 GB
- Aber die Wiederherstellungspartion von Windows liegt hinter dem Windows Laufwerk
- In Windows gibt es kein löschen
Zurück auf CLI:
cfdisk /dev/zvol/rpool/data/vm-101-disk-1
- Wiederherstellungspartition löschen
- Schreiben
Wieder zurück in Windows VM
- <F5> bzw. Datenträger neueinlesen
- Die Windows Partition kann jetzt im Windows vergrößert werden —> Chriz hat sich angewöhnt dies in Windows zu machen, da Windows da manchmal zickig ist …
- 3.12.ProxMox - Postinstaller für ProxMox (Github BashClub)
Im Browser:
- GitHub.com/bashclub
- Branch dev auswählen - wir nehmen die neuere Version
- Der dev Branch ist eigentlich eine Entwicklungsbereich, im Normalfall sollte man für die Produktion den Branch main nehmen —> Chriz wollte für den Workshop die neue Version nehmen, da diese aber noch nicht veröffentlich ist nehmen wir den Branch dev
- Die beiden Zeilen für die Installation kopieren und auf der Maschine ausführen
- Postinstaller (proxmox-zfs-postinstall)
CLI:
-
wget-O ./postinstall —no-cache https://<git Adresse> bash ./postinstall
- Min
- Max
- <Accept>
- 5
- en_US.UTF-8
- <cancel>
- <HARDEN SSH SERVER>
- Monthly: 3
- Weeks: 6
- Daily: 14
- Frequent: 12 (Viertel Stunden)
- Hourly: 96
- Pve-no-subscription oder evtl. pve-enterprise besser getestet Updates
- None
- <SUPRESS WARNING>
- Sender display name
- pve
- Servername of smartest
- Port of smarthost
- 25
- Email Address
- Do you want to configure authentication against your smarthost ?
- <cancel>
- Set default block size
- <skip>
- Summary
- <Install>
- zfs_arc
- Wappiness: Percentage off free RAM to start swapping
- Set locales
- Harden ssh server
- Configure ZFS-Auto-Snapshots
- Choose ProxMox VE repository
- Ceph
- Do you want to suppress the no subscription warning in WebGUI ?
- Mail Config —> ganz neu
- Installiert Update, Tools und passt die Config’s an
zfs list -t snapshot # —> zeigt schon einige Snapshots nach der kurzen Pause
ProxMox herunterfahren
- 3.13.TrueNAS Core - Installation
TrueNAS Core basiert auf FreeBSD und ist ein Unix System und kein Linux.
Eine weitere SSD einbauen bzw. z.B. über USB anschließen
Installationsdevice für TrueNAS CoreVersion 13
Im Bootmenü werden jetzt viele Platten zum Booten angezeigt.
TrueNAS Installer auswählen und starten lassen
- Install / Upgrade
- Anmerkung Chriz: Auf der Installer Disk liegen keine Daten !!!
- Device für die Installation auswählen - hier ssd
- Warnmeldung
- Keine USB Stick’s mehr verwenden
- Installationsplatte kann keine Daten enthalten - siehe Anmerkung Chriz
- Abfrage root Passwort
- Boot via UEFI
- Alternativ: Boot via BIOS
- Nach Abschluss der Installation kommt das Installationsmenü zurück
- Reboot auswählen
- 3.14.TrueNAS Core - GUI
TrueNAS Core GUI
- Storage
- Create
- Encryption with GELI
- Nein
- Jetzt sollte er die Pools finden
- Die Pool waren in Benutzung
- Die Pool wurden nicht exportiert
- Pool werden nicht gefunden
- Check ob die Platten in der GUI gesehen werden
- Auf import wechseln
- Create
- Pools
- Storage
- Es werden alle Platten gefunden
- Disks
- Shell
- Zeigt die Pools an, aber nicht alle werden sauber angezeigt
- z.B. gibt es einen rpool der unvail ist
- Es gibt den rpool zweimal !!!
-
zpool import
- Kommentar Chriz: schwer verkackt …
- Aktivierung start automatisch
- Passwort login für root aktivieren
- Lass uns ssh einschalten …
- Ssh Dienst aktivieren
ssh root@<ip>
- Ssh beschwert sich über den geänderten Fingerabbruch, da wir ja jetzt auf ein TrueNAS Core uns einloggen wollen
- Jetzt muss die Datei /Users/Studio/.ssh/known_hosts editiert werden
- Die betroffene Zeile wird mit einen :<zeilennummer> angezeigt
- Die entsprechende Zeile muss mit einen Editor vi oder nano editiert werden
- Diese Zeilen müssen gelöscht werden
- Evtl. gibt es mehrere Einträge für die gleiche IP Adresse
Aufgrund der aufgetreten Probleme bei zpool import wurde der gesamte Bereich in das Troubleshooting verschoben
- 3.15.TrueNAS Core - zpool import Troubleshooting - zu neue Version von ProxMox ZFS
Die Anfänge über die Problematik sind im vorherigen Kapitel zu finden.
TrueNAS CLI
ssh root@<ip>
- So jetzt sind wir auf dem TrueNAS
-
zpool status
- Nur boot-pool von TrueNAS
- zpool import
- Ein rpool, der viel zu neu ist
- Chriz: Ich glaube, dass ich weiß, was soll ist
- rpool - unvail - unsuyppored feature
- Noch ein toten rpool auf SSD
- 3. rpool with symbolischen Links von Linux (disk/by-id/ata-ST2000…-part3
-
zpool import -d /dev/ # —> schaue im /dev Ordner - Profi Trick zpool import -d /dev/ <id> rpool # —> Import über die Pool ID, die unter \ dem Pool Namen angezeigt wird Pool kann nicht import werden, da es einen anderen Host gehört \ (hostid=<nummer>) zpool import -f -d /dev/ <id> rpool # # —> one or more devices is currently unavailable # Chriz: Es geht das erste Mal nicht freiwillig … zpool import -f -d /dev/ <id> rpool2 # —> mit anderen Namen funktioniert auch nicht zpool status # —> Überblick verschaffen zpool import # —> Überblick verschaffen # rpool-hdd wäre da und verfügbar zpool import rpool-hdd # —> gehört einen anderen System wie oben zpool import -f rpool-hdd # —> pool nicht importiert werden aufgrund eine unsupported version or \ feature - ProxMox hat ein zu neues ZFS # Man könnte den Pool jetzt nur read-only importiert werden zpool import -f rpool-hdd -o readonly=on ?? —> Syntax muss man noch mal genau schauen
TrueNAS GUI
- System
- Es gab ein neues Update 13.0-U6
- Update durchführen
- Update bringt einen neuen Kernel mit
- Update
TrueNAS CLI vor den Upgrade und reboot
zfs -v # —> zfs-2.1.5-1
ProxMox Produktion Chriz
zfs -v # —> zfs-2.2.2
Situation kommt durch die Workshop Situation. Durch die Neuinstallation von ProxMox haben wir dort eine neuere ZFS Version, im Normalfall hat man diese Situation so nicht.
Über eine ZFS replacation könnte man das Problem lösen.
Erklärung zur den ZFS Versionen:
- PVE 7
- ZFS 2.0.1 (Version ist geraten !!!)
- PVE 8.1
- Bist Du sagst
zpool upgrade # —> zieht die Features nach
- Bist Du sagst
- ZFS 2.2.1
- Pool ist noch auf 2.0.1
Wird eine neue ZFS Version installiert, sind die neue Features nicht aktiviert. Diese müssen über zpool upgrade installiert werden. Man sollte das neue ZFS ca. 2 Wochen ohne die Aktivierung der neuen Features am laufen haben. Den Zpool Upgrade sollte man zeitnah aber nicht sofort machen.
Solange die ZFS Features noch nicht aktiviert sind kann man immer noch mit dem alten Kernel booten, falls der Kernel buggy sein sollte. Aber nach eine Upgrade geht das aber nicht mehr.
TrueNAS CLI nach dem Upgrade
-
zfs -v # —> zfs-2.1.5.14 zpool import -d /dev -V <id> rpool2 # —> gehört noch anderen Host zpool import -d /dev -V <id> rpool2 -f # —> rpool state unvail könnte jetzt importiert werden - System ist abgehackt und bootet neu
- Boot mit TrueNAS letzter Versuch
- Erneuter Versuch schlägt auch fehl
- Wir booten wieder mit ProxMox
Wenn ich jetzt doch TrueNAS haben will wegen SAN:
- Instabilen Upgrade Pfad auswählen
- Alternative wäre es mit TrueNAS Scale versuchen, da es ja auf Linux basiert
- 3.16.ProxMox - NFS
Jetzt müsste eigentlich der ProxMox boot scheitert, da wir den rpool als rpool2 importiert hatten, aber anscheinend hat er es vorhin doch nicht geschafft den Pool auf TrueNAS Core zu importierten. Da bootet der ProxMox ganz normal.
CLI ProxMox
-
ssh root@<ip> # —> Hostkey hat sich wieder geändert, d.h. die known_hosts muss wieder \ angepasst werden zfs list # —> wir wollen die VM des Workshop PVE auf einen anderen ProMox ausführen. # LXC Container hat das falsche Format # VM geht nur mit iSCSI zu veröffentlichen apt install nfs-kernel server # —> NFS Server installieren, danach ist ProxMox ein SAN # Für NFS sollte ein eigenes Netzwerkinterface genutzt werden zfs create -o sharenfs=on rpool/nfs —> Wir machen das jetzt ohne Permission Check, \ so nicht nachmachen
- Besser mit Permissions:
zfs list -t filesystem -oname,sharenfs
- Raid5a/test rw=@192.168.200.99:172.16.5.47
-
zfs list # —> wir haben jetzt local Storage und shared Storage zfs create rpool/nfs/vm-101-disk-0 # —> Wir machen es etwas ordentlicher zfs create rpool/nfs/vm-101-disk-1 zfs create rpool/nfs/vm-101-disk-3 zfs list # —> bei NFS muss ein Volume zur Freigabe vorher in ein vmd, raw, \ qcow2, vidx, etc in ein dataset konvertiert werden showmount —exports # zeigt 4 Freigaben - durch Vererbung sind die weiteren \ Freigaben dazu gekommen chmod -R 777 /rpool/nfs —> Thema Berechtigungen ist Thema für sich
ProxMox GUI
- Storage
- ID: rpool-data-vm-101-disk-1
- Server: localhost —> z.B.
- Export: /rpool/nfs/vm-101-disk-1
- Add NFS —> Fenster ist der NFS Client
ProxMox CLI
-
zfs list cd /rpool/nfs/vm-101-disk-1 cd images
ProxMox GUI
- Windows VM wird wieder gestartet
- Hardware
- Disk Action
- Disk: scsi0
- Target Storage: rpool-data-vm-101-disk-1
- Format: Raw disk image (raw)
- Delete source: wird nicht angehart —> Abhängig von Anwendungsfall
- Move Storage
- Disk Action
- Hard Disk (scsi0)
ProxMox CLI —> Zum Verständnis zum Teil von Oben übernommen
-
Die Datei ist durch den Ablage Ort …/nfs/… schon per NFS freigegebenzfs list cd /rpool/nfs/vm-101-disk-1 cd images ————————- cd 101 ls -althr —-> zeigt Datei: vm-101-disk-0.raw
- Frage Chriz: Was kann man mit einer .raw Datei machen ?
- Antwort: Man kann sie per iSCSI später freigeben
ProxMox GUI
- Windows VM
- Hardware
- rpool-data-vm-101-disk-1:101/vm-101-disk-0.raw
- Harddisk (scsci)
- Windows VM stoppen
ProxMox GUI - zweiter PVE (nicht Workshop)
- Storage
- ID: vm-101-disk-1 —> müsste eigentlich Disk-0 heißen, wird später in der Config der VM angepasst
- Server: <IP Workshop PVE>
- Export: /rpool/nfs/vm-101-disk-0
- Add NFS
ProxMox CLI - Workshop - lass uns ein ProxMox Cluster bauen
- Um ein Cluster zu bauen, sollte er nicht von VM Definitionen und Containern wissen
-
mv /etc/pve/qemu-server/101.conf . —> Wir haben ja nur eine VM mv /etc/pve/lxc/* . —> LXC Container wird auch nach /root verschoben
- Damit der der ProxMox Workshop ohne VM und LXC Container und die Definitionen sind gesichert
- Zur Sicherheit kopiert Chriz die Data Storage auch noch mal wegen, da dort auch schon Änderungen drin sind
cp /etc/pve/storage.cfg .
ProxMox GUI - zweiter PVE (nicht Workshop)
- Cluster
- Cluster Name: sysops
- Cluster Network: <Cluster Netzwerk auswählen>
- Create Cluster
- Cluster
- Join Information: <string> —> Join Information <string> kopieren
- Cluster Join Information
ProxMox GUI - PVE Workshop
- Cluster
- Information: <lee> —> Einfügen der Join Information <string>
- Peer Adress: <zweiter PVE (nicht Workshop)>
- Password: <Passwort von zweiter PVE (nicht Workshop)>
- Cluster Network: <Netzwerk Link überprüfen>
- Cluster Join
- Jetzt bekommt der PVE ein neues Zertifikat
ProxMox CLI - Workshop
-
cd /etc/pve ls cd nodes # —> hier werden beide PVE’s des Cluster angezeigt ls cd <zweiter PVE (nicht Workshop)>/qemu-server ls # —> Definitionen der VM’s (*.conf) cp /root/101.conf 901.conf # —> 101.conf existiert schon vi 901.conf —> Anpassung der Configuration # Löschen der UEFI Disk, ISO Disks # Data Storage bleibt, passt zwar nicht zusammen aber bleibt # Unused Sachen herausnehmen qm start 901 # - VM 901 über CLI starten # Startet nicht da auf falscher Kiste (zweiter PVE (nicht Workshop) vi 901.conf # Anpassung der Disk, es wird der vordere Teil entfernt (rpool-data-)—> passiert eigentlich erst im nächsten Schritt
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM 901 starten
- VM startet nicht, da durch Cluster bauen der Storage nicht mehr vorhanden ist, dann legen wir ihn nochmal an
- Storage
- Anpassung schon im vorherigen Punkt CLI letzter Punkt beschrieben
- vm-101-disk-1 (falsch benannt - In der Doku entsprechend markiert) - Die Namen nicht sauber durchgezogen …
- VM 901 starten
- Funktioniert immer noch nicht …
- Wir schauen nach …
ProxMox CLI - zweiter PVE (nicht Workshop)
df -h # - zeigt den NFS Mount nicht - hat nicht funktioniert
ProxMox GUI - zweiter PVE (nicht Workshop)
- Data Storage werden auf der Cluster Ebene konfiguriert
- Remove —> wir machen nochmal von Vorne damit wir es schön haben
- ID: vm-101-disk-1
- Server: <IP vom PVE Workshop>
- Export: <leer> —> Warum sind die Exports weg ?
- Wir gehen auf den ProxMox Workshop per CLI
- vm-101-disk-1 —> edit
- Add NFS
ProxMox CLI - Workshop
-
showmount --exports # —> Keine Exports mehr da service nfs-kernel-server status zfs list service nfs-kernel-server restart showmount --exports # —> Exports sind wieder da - (4 Exports)
ProxMox GUI - zweiter PVE (nicht Workshop)
- Wieder in das GUI Fenster zurück gewechselt
- ID: vm-101-disk-1
- Server: <IP vom PVE Workshop>
- Export:
- Add NFS
- Nochmal raus gehen und neu machen
- Storage
- ID: vm-101-disk-1
- Server: <IP vom PVE Workshop>
- Export: <Exports sind wieder leer> —> Wer funk mir hier gerade in das Gehänge ?
- Add NFS
ProxMox CLI - Workshop
-
showmount --exports # —> wieder leer journalctl --all # —> ist mittlerweile neu service nfs-kernel-server restart # —> etwas später im Ablauf
ProxMox CLI - zweiter PVE (nicht Workshop)
-
showmount --exports # —> wieder leer NFS Server neugestartet # - siehe vorherigen Punkt, letztes commando showmount --exports # —> wieder da - Frage: Wie lange ? # Nach circa. 1 min sind die Exports wieder weg …
ProxMox CLI - Workshop
-
service nfs-kernel-server status # —> Dienst läuft zfs get sharenfs rpool/nfs # —> VALUE: on cat /etc/exports.d/zfs.exports # —> ZFS macht genau das und sie sind weg - das ist der Hammer ! service nfs-kernel-server restart cat /etc/exports.d/zfs.exports # —> Und die Exports werden angezeigt # Die Anzeigten Exports in die Zwischenlage nehmen
- Chriz: Klärt noch warum die Datei geleert wird
zfs set sharenfx=xxx # —> geht in der Regel
- Alternativ:
- Alles in die /etc/exports eintragen
- Antwort
- Workaround
- Exports aus der Zwischenablage einfügen
-
zfs inherit sharenfs rpool/nfs # —> wir nehmen das ZFS NFS Sharing wieder raus vi /etc/exports
-
service nfs-kernel-server restart
ProxMox CLI - zweiter PVE (nicht Workshop)
showmount --exports # —> zeigt die eingefügten Exports wieder an
ProxMox GUI - zweiter PVE (nicht Workshop)
- Wieder in das GUI Fenster zurück gewechselt
- ID: vm-101-disk-1
- Server: <IP vom PVE Workshop>
- Export: /rpool/nfs/vm-101-disk-1 —> lässt sich wieder auswählen
- Nodes: All —> Wir haben ein Cluster, da verhindert das eine Disk zweimal geöffnet wird
- Add NFS
- Der NFS Storage wird auf beiden Cluster Node nach einen kleinen Moment sichtbar sein
- VM 901 starten —> bootet jetzt
- Problem ein PVE hat AMD und der andere Intel —> Host Typ war ein kompatibler Typ, er stand nicht auf Host. Bei Host CPU wäre er auf die Fresse geflogen
- Anmerkung Chriz: Mit so einer Aktion habe ich mir schon einmal einen ProxMox abgeschossen !!!
- Der RAM wird im laufenden Betrieb überkopiert —> VM startet auf dem anderen ProxMox
- Problem ein PVE hat AMD und der andere Intel —> Host Typ war ein kompatibler Typ, er stand nicht auf Host. Bei Host CPU wäre er auf die Fresse geflogen
- Migrate auf PVE Workshop
- Migrate zurück auf anderen PVE
- Wird die /etc/exports angepasst, muss die Konfiguration neugeladen werden
Service nfs-kernel-server reload
- Das würde im Normalfall das ZFS sharenfs übernehmen
ProxMox CLI - zweiter PVE (nicht Workshop)
-
cat /etc/pve/storage.cfg —> Storage Configuration export /rpool/nfs/vm-101-disk-1 path /mnt/pve/vm-101-disk-1 server <ip von PVE Workshop> content images nfs: vm-101-disk-1 df -h <ip von PVE Workshop>:/rpool/nfs/vm-101-disk-1 … /mnt/pve/vm-101-disk-1
Fragen vom ersten Tag, aber nicht alle sondern nur die mit neuen commands
- Thema kleine Dateien und special Device
zdb -lbb rpool
- Zeigt die Verteilung der block size
- Auswertung von ZFS
- 3.17.ProxMox - NFS / iSCSI
Ab hier beginnt der 2. Tag - nur zur Orientierung.
Anmerkung: Zu LXC über iSCSI - LXC ist ein Dataset (Dateien) und iSCSI ist ein Block Protokoll
ProxMox CLI - Workshop
-
zfs list ls -althr /rpool/data/subvol-100-disk-0 # —> UID und GID haben bei den Dateien / Verzeichnissen hohe Nummern Im Container hat die hohe ID - dann die ID 1 und daher kannst Du es nicht direkt freigeben Daher wird der Container in ein RAW file konvertiert und als RAW File freigeben
- 3.18.TrueNAS Scale - NFS
TrueNAS Scale Installation wurde vorbereitet, das TrueNAS Scale ein neueres ZFS enthalt als TrueNAS Core.
Warum sollte man TrueNAS Core oder TrueNAS Scale den Vorzug geben ?
- Hardware Kompatibilität
- Bei Linux ist die Hardware Kompatibilität viel höher
- Bei Freeware hat schlechtere Treiber
- TrueNAS Core hat eine Unix Kernel
- TrueNAS Scale hat einen Linux Kernel
- Entscheidung für jeden selbst welcher Kernel läuft stabiler … (Unix Kernel oder Linux Kernel)
- Welche der beiden passt besser zur ZFS Version von ProxMox ?
Bei Booten sieht man im UEFI bei TrueNAS Scale (Debian) als Name im Bootmenü.
Anmerkung Chriz: Mit TrueNAS Scale hat ich noch kein iSCSI gemacht, aber mit den Grundlagen sollte es problemlos möglich sein …
Wir wollen die Daten vom ProxMox weiterverwenden. Alternative könnten die Daten mit zfs send und zfs recv repliziert werden.
Bei den ZFS Features tut sich gerade viel. Bei RAID5 soll die Möglichkeit dazu kommen die Anzahl der Platten zu erweitern.
Ein weiteres ZFS Feature kommt bald, FAST Deduplication. Deduplication braucht viel CPU und RAM das wird Stand heute nur für NAS/NFS mit einen eigenen Computer genutzt. Deduplication kann nicht wieder ausgeschaltet werden. Beispiel Fotograph hat viele Festplatten mit seinen Fotos …
ProxMox GUI - zweiter PVE (nicht Workshop)
- Der Punkt wird im Video während des nächsten Punkt erledigt - Zur Übersichtlichkeit einfach vorgezogen
- ProxMox Cluster ist kaputt - da der ProxMox PVE gerade nicht läuft !
- Jede Cluster Node hat 50% der Stimmen und damit hat ein Cluster Node nicht die Mehrheit.
- Der Ordner /etc/pve ist auf allen ProxMox Nodes eines Cluster identisch
- Das Verzeichnis /etc/pve ist im Modus read-only, da keine Mehrheit gegeben ist
- touch /etc/pve/test —> schlägt mit Permission denied fail
- Man braucht da für immer 3 Cluster Node, da 2 Nodes eine Mehrheit bilden
- Expected votes: 2
- pvecm status —> Quorum Information und Votequorum Information, …
- Dazu gibt es eine Artikel von ProxMox Cluster Manager: https://pve.proxmox.com/wiki/Cluster_Manager
- Warum ist der Cluster gerade nicht handlungsfähig ?
- Wir machen die Cluster Config wieder rückgängig
-
systemctl stop pve-cluster # —> Cluster stoppen systemctl stop corosync # —> Corosync halt die Cluster Ordner synchron pmxcfs -l # —> Umsetellung in den Local Modus rm /etc/pve/corosync.conf # —> Löschen der corosync configuration rm -r /etc/etc/corosync/* # —> Löschen der corosync configuration killall pmxcfs # —> evtl. läuft noch ein Programm systemctl start pve-cluster # —> starte das Cluster wieder # Die Ordner Struktur mit den Config bleibt noch erhalten, die könnte man noch löschen. Wird aber im Video nicht getan. cd /etc/pve ls # —> zeigt die Dateien und Ordner von ProxMox touch test # —> geht jetzt wieder rm test cd nodes ls # —> zeigt noch beide Ordner, der Ordner vom PVE Workshop pvews könnt noch komplett entfernt werden
In der ProxMox GUI verschwindet der herausgeworfene Cluster Node.
Hat man 3 PVE im Cluster und booten die Nodes unterschiedlich schnell bilden die ersten beiden eine Mehrheit. Wenn der 3. Node jetzt eine neuere Konfiguration hat, würde diese von der Mehrheit überschrieben.
ProxMox GUI - zweiter PVE (nicht Workshop)
-
cd /etc/pve cat storage.cfg # —> Zum Schluss wird die NFS configuration angezeigt # Man könnte die Datei jetzt mit suchen und ersetzen verändern
TrueNAS Scale GUI
- Storage
- Import Pool
- Ich guck erstmal …
- Es rpool und rpool-hdd angeboten
- Import Pool
- Storage Dashboard
- System Settings
- ssh
- Starten
- Start Automatically an harken
- Services
- Bei den User den public key für den User root eintragen —> Wird nach den ersten fehlgeschlagen login Versuch gemacht
- Credentials
- root
- Im Feld Autentication wird der ssh public key eingetragen
- Edit
- root
- Users
- Credentials
TrueNAS Scale CLI
ssh root@<ip TrueNAS Scale>
- Abfrage Fingerprint
- Login abgelehnt —> Permission denied (publickey)
- ssh public key kopiert, um die der TrueNAS Scale GUI einzutragen
-
ssh root@<ip TrueNAS Scale> # —> Jetzt geht auch der Login mit dem public ssh key zfs -V —> zeigt zfs-2.2.2-1 an # —> Chriz: kommt mir sehr bekannt vor zpool import # Zeigt rpool-hdd im Status Online und gehört einem anderen System —> Option -f # Zeigt rpool im Status Online und gehört einem anderen System —> Option -f
- Wir proben es jetzt über die GUI
TrueNAS Scale GUI
- Storage
- Disks
- Die Disks für rpool und rpool-hdd werden als exported angezeigt
- Storage Dashboard
- Storage
- Import Pool
- rpool
- Es rpool und rpool-hdd angeboten
- Import Pool
- Storage Dashboard
TrueNAS Scale CLI
-
zfs list # —> zeigt den rpool an # Warum könnten wir jetzt ganz böse auf die Fresse fliegen ? zfs get mount point rpool/root/pve-1 —> /mnt zpool get all —> altroot /mnt cd /mnt ls /mnt —> zeigt unseren ProxMox cat etc/network/interfaces # —> zeigt die Interface config von unserem ProxMox an cd etc ls # —> zeigt das komplette etc Verzeichnis an cd pve ls # —> leeres Verzeichnis Woher hole ich mir die alten VM Definitionen her und warum ist das Verzeichnis leer ? \ —> Wenn ich das in einen anderen System eingehängt habe … Das kommt aus einer Datenbank - schau Dir ein ProxMox an # ProxMox CLI - zweiter PVE (nicht Workshop) df -h —> hängt wegen dem nicht mehr vorhandenen NFS mount umount -l /mnt/pve # —> zeigt den kompletten Pfad an /mnt/pve/vm-101-disk-1 umount -l /mnt/pve/vm-101-disk-1 # —> „umount leacy“ damit bekommt man hängende Verbindungen \ heraus df -h —> /dev/fuse … /etc/pve df -h | grep etc—> /dev/fuse … /etc/pve Filesystem aus dem Userspace corosync # Wer hat den „Postinstaller im Einsatz“ zfs list # —> suche mal auf Deinen dataset pveconf in Pool rpool (rpool/pveconf) ls /mnt/rpool/pveconf —> Pool rpool/pveconf - ls /mnt/rpool/pveconf/etc/pve # —> zeigt das Backup von Ordner /etc/pve des ProxMox’s an # Inklusiv Historie, das hat sich Chriz schon vor Jahren ausgedacht
TrueNAS Scale GUI
- Storage
- Import Pool
- rpool-hdd
- Es rpool und rpool-hdd angeboten
- Import Pool
- Storage Dashboard
TrueNAS Scale CLI
zfs list # —> zeigt den Pool rpool-hhd an
TrueNAS Scale GUI
- System Settings
- NFS einschalten
- NFS aktivieren und automatisch starten an harken
- Edit
- Ich hab nur ein, deshalb bietet er mir nichts an
- Bind IP -Addresses: —> eigenes SAN Interface
- Services
TrueNAS Scale CLI
-
showmount --exports # —> zeigt eine leere Liste - wird nicht \ automatisch freigegeben ! zfs get sharenfs rpool/nfs # —> VALUE: off zfs set sharenfs=on rpool/nas # —> Wieder einschalten, hatten im \ ProxMox ausgeschaltet, da es dort Probleme gab Chriz: Vermute bei TrueNAS Scale haben die das System anders \ gemacht - dann geht es nicht Dann muss es einzeln freigegeben werden Operation not permitted ls -althr /mnt/rpool/nfs —> zeigt die Rechte auf die Ordner showmount --exports —> zeigt leere Datei zfs inherit sharenfs rpool/nfs —> ZFS NFS Freigabe wieder herausnehmen Da am ZFS gerade viel umgebaut wird, könnte die Freigabe wie bei ProxMox \ für das übergeordnete Dataset rpool/nfs auf dem absteigenden Ast sein Wie geht es offiziell, also gehen wir den mühseligen Weg …
TrueNAS Scale GUI
TrueNAS Scale CLI
-
cat /etc/exports —> Ist leer showmount --exports —> zeigt die exportierte Disk an
ProxMox CLI - zweiter PVE (nicht Workshop)
-
cd /etc/pve cat storage.cfg —> angeschaut
ProxMox CLI - zweiter PVE (nicht Workshop)
- Offizieller Weg
- Add NFS
- Nicht gespeichert
- ID: vm-100-disk-1
- Server: <ip Adresse von TrueNAS Scale>
- Export: /mnt/rpool/nfs/vm-101-disk-1
- Content: Disk Image, Container
- Network: <einschränken, damit keine zweit Systeme darauf zu greifen können>
- So würde es funktionieren - ich bin faul
- Add NFS
- Storage
ProxMox CLI - zweiter PVE (nicht Workshop)
-
cd /etc/pve vi storage.cfg # —> editieren von nfs: vm-101-disk-1 export /mnt/rpool/nfs-101-disk-1 server <IP Adresse von TrueNAS Scale>
ProxMox GUI - zweiter PVE (nicht Workshop)
- Wir schauen nach unserem Data Store
- vm-101-disk-1 —> wird angezeigt
- VM 901 - lief noch die ganze Zeit und NFS war weg, da ist richtig scheisse …
- Ob ich die VM jetzt abgeschossen bekomme …
ProxMox CLI - zweiter PVE (nicht Workshop)
-
df -h # —> <IP Adresse von TrueNAS Scale> … /mnt/pve/vm-101-disk-1 So sieht das NFS Ergebnis aus ps aux | grep 901 # —> Ist eine Kernel Virtualisierung, im schlimmsten Fall läuft es auf einen reboot hinaus cd /etc/pve/qemu-server # —> der Vollständigkeit halber … cp 901.conf 1901.conf # —> Neue VM angelegt … Die VM 901 ist mittlerweile auch aus —> Anmerkung Chriz rm 1901.conf # —> kopierte config wieder gelöscht, da wir die VM 901 wieder benutzen können qm start 901 # —> Und falls die Disk Kaputt ist, rollen wir sie einfach zurück
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM 901 bootet
TrueNAS Scale GUI
- Dashboard
- Netzwerk Traffic geht hoch —> das ist unser NFS Traffic
- Network anklicken
- Man kann ZFS autosnapshot auf TrueNAS Scale drauf machen und die Tools vom Bashclub verwenden
- Evtl. muss der apt manager wieder ausführbar gemacht werden, damit er wieder verwendet werden kann —> Nur so als TIPP
- Wie kann man auf TrueNAS Scale autosnapt über die GUI konfigurieren —> jeden snapshot ein eigener Task
- Add Periodic Snapshot Tasks
- Zum snapshot aufräumen braucht man ein sauberes Namensschema !
- Bei Bedarf kann hier der snapshot Zeitraum eingeschränkt werden - z.B. bestimmte snapshots nur während der Arbeitszeiten
- Dataset: rpool/nfs
- Snapshot lifetime: 96
- Naming Schema: <-daily> —> -daily an bestehendes Schema dran hängen
- Schedeule: <passende Zeitablauf auswählen>
- Add Periodic Snapshot Tasks
- Data Protection
- Die vorhanden Periodic Snapshots Tasks können nicht kopiert werden, dafür gibt es keinen Knopf - man muss alles von Hand machen …
- Im NFS Bereich gibt es noch Mapped User: root, das ist im NFS Bereich sehr beliebt
- 3.19.TrueNAS Scale - iSCSI
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM 901 stoppen
- Also handelt sich um einen .raw File
- Raw File kann iSCSI und NFS
- Schauen wir uns die Disk vm-101:101/vm-101-disk-0.raw
TrueNAS Scale GUI
- Sharing iSCSI
- Name: vm-101-disk-0
- Extent Type: File
- Es gibt Device oder File
- Path to the Extent: /mnt/rpool/nfs/vm-101-disk-1/images/101/vm-101-disk-0.raw
- Sharing Platform: Modern OS Extent block size 4k, …
- Target: create new
- Portal
- Portal: create new
- Authenfication Method: NONE
- IP -Address: —> Grundsätzlich an eine IP Adresse binden, alle ist 0.0.0.0
- Initiator: —> ist der Client - immer SAN Netz, alle ist 0.0.0.0
- Ist es kein Cluster darf hier nur ein Initiator herein !!!
- Wizard iSCSI
- Initiator: <iscsi Initiatorname von PVE> aus Zwischenablage kopieren
- Speichern und starten - Chriz: hat hier wohl <Enter> geklickt
- Und jetzt schauen wir uns an was der Wizard gemacht hat
- Target - TrueNAS Scale ist das Target
- Server läuft auf Port 3260
- Base Name: iqn.2024-02.tv.sysops.ctl —> Chriz hat das mal erklärt bekommen - alter Name: iqn.2005-10.org.freenas.ctl
- Hier kommt das SAN Net
- Alle Initiatoren können hier eingetragen werden, wenn es sich um ein Cluster handelt - gruppiert werden
- Wird normalerweise nicht genutzt
- Alle Platten hängen in einer Group, ich muss diese nicht einzeln freigeben
- Hier kommen alle Platten rein und halten am Target
- Hier wird es verknüpft, dafür gibt es die Zuweisung
- Sharing iSCSI
- Portal
- Initiator
- Authentifaction
- Targets
- Extents
- Associated Targets
ProxMox CLI - zweiter PVE (nicht Workshop)
-
cat /etc/iscsi/initiatorname.iscsi # —> InitiatorName in Zwischenablage kopieren - wird vom \ Wizard benötigt # Von allen PVE’s im Cluster
ProxMox GUI - zweiter PVE (nicht Workshop)
- Storage
- ID: truenasisci
- Portal: <IP Adresse von TrueNAS Scale>
- Target: <Target kann jetzt ausgewählt werden>
- Node: für alle Nodes des Cluster
- Cluster regel, dass es keine doppelten Zugriffe gibt
- Add iSCSI
- VM 901
- Bestehende Hard Disk (scsi0) wird heraus geworfen (Detach)
- Add Hard Disk
- LUN ID steht im TrueNAS Scale unter Associated Targets —> LUN ID: 0
- Bus/Device: SCSI 0
- Discard: an harken
- SSD emulation: an harken
- Storage: truenasiscsi —> da steht was von 0
- Disk Image: Auswahl (CH 000 ID 0 LUN 0) raw 42.95GB
- Ich hab vergessen zu sagen wo von er booten soll - Ich mach mal mit <ESC> und im
- UEFI QEMU QEMU HARDDISK
- Boot Manager
- Windows startet
- Wir arbeiten mit iSCSI
- Hardware
- VM starten
TrueNAS Scale GUI
- Storage
- Add zvol
- Zvol name: vm-101-disk-4
- Size: 16G
- Block Size: 16k —> für iSCSI
- Management Datasets
ProxMox CLI - zweiter PVE (nicht Workshop)
zfs list # —> rpool/nfs/vm-101-disk-4 … - - zvol - Ist Thick provised
TrueNAS Scale GUI
- Dataset
- Edit
- Nicht das was wir suchen
- Edit
- Kann scheinbar kein Thin provising
- Zvol spacemanaged
- Zvol details
- Shares
- Configure
- Name: vm-101-disk-4
- Extent Typ: Device
- Device: rpool/data/vm-101-disk-4
- Hier kann auch direkt ein neues Device angelegt werden
- Sharing Platform: Modern OS: …
- Target: pvedisk —> nehmen das bestehende Target
- Save - Abfrage restart iSCSI Service
- Wizard iSCSI
- Zwei Platten sichtbar
- Eine Platte als RAW File
- Die ander als Platte
- Configure
- Sharing
- Unter Extend
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM 901
- Add Hard Disk
- Bietet uns beiden iSCSI Platten an
- Wir wählen jetzt nochmal die Platte mit der LUN ID 0 aus —> falsch - doppelte HDD
- Bus/Device: SCSI 1
- Storage: truenasiscsi
- Disk Image: <kann ausgewählt werden>
- Discard: an harken
- SSD emulation: an harken
- Erstmal noch nichts passiert
- Nach Hardware geänderter Hardware suchen
- Doppelte Platte wird angezeigt, aber ist offline
- Die doppelte Platte kann nicht online genommen werden -> Windows rettet uns hier
- Doppelte Platte mit der LUN ID 1 auswählen
- Detach der doppelten Platte
- Add Hard Disk
- Hardware
- Inakzeptabel
- VM Console
- VM stoppen
- Hardware
- Wir wissen nicht, ob die Platte schaden genommen hat
TrueNAS Scale GUI
- Data Protection
- Suchen: nfs/vm-101-disk-1
- Date created seht nicht da - N/A
- Nach Namen sortiert
- Suchen: -hourly
- Harken bei Recursive vergessen
- Jetzt Harken gesetzt !
- Fehler gemacht bei Anlegen des Snapshots gemacht (Edit Periodic Snapshot Task)
- Wir rollen jetzt auf ein anders Datum zurück
- Suchen: nfs/vm-101-disk-1
- Rollback
- No Safety Check - weil es gibt neuere Snapshot
- Goto Storage
- Wir nehmen den Snapshot von 11:15 Uhr
- Suchen: nfs/vm-101-disk-1
- Snapshots
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM 901
- VM starten
ProxMox CLI - zweiter PVE (nicht Workshop)
-
lsblk # —> lass uns mal die ProxMox Seite anschauen # sdc und idd sind die iSCSI Disks lshw -class disk # Zeigt z.B. bei Description und Product iSCSI Disk an, bei Vendor: TrueNAS und \ bei logical name: /dev/sdc oder /dev/sdd
- Unter iSCSI gibt es auch ID die angezeigt werden
- Unter Configuration findet man eine guid
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM 901
- Add Hard Disk
- Bietet uns beiden iSCSI Platten an
- Wir wählen jetzt nochmal die Platte mit der LUN ID 1 aus —> richtige Disk ausgewählt
- Bus/Device: SCSI 1
- Storage: truenasiscsi
- Disk Image: <kann ausgewählt werden>
- Discard: an harken
- SSD emulation: an harken
- Nach geänderter Hardware suchen
- Findet zweiten Controller und zweite Platte
- Platte ist noch offline
- Platte online nehmen
- Filesystem NFTS auf Platte erzeugen
- Hier können auch die 16k ausgewählt werden
- Add Hard Disk
- Hardware
- VM Console
- Nächste Use Case Platte muss vergrößert werden
- 3.20.TrueNAS Scale - iSCSI LUN vergößern
ProxMox CLI - zweiter PVE (nicht Workshop)
dmesg -Tw # —> Ausgabe starten
TrueNAS Scale GUI
- Datasets
- Edit Zvol
- 40 GB —> vorher 16 GB
- vm-101-disk-4
ProxMox CLI - zweiter PVE (nicht Workshop)
- In der laufenden Ausgabe von
dmesg -Tw
- sdd wurde vergrößert 42.0GB /40.0 GiB
ProxMox GUI - zweiter PVE (nicht Workshop
- VM901
- Datenträgerverwaltung
- Datenträger zeigt noch die alte Größe von 16 GB an
- Datenträger neu einlesen
- Vermutlich liegt es am VirtIO Single - Nutzung von mehreren Kernen
- iSCSI Controller
- Umstellung auf VirtIO SCSI
- Options —> Bootplatte definieren
- Harken bei allen nicht boot Platten entfernen
- Nach dem Starten der Datenträgerverwaltung wird die neue Größe erkannt
- 16 GB genutzer Platten Bereich und 24 GB nicht zugeordnet
- Volume erweitern
- Datenträgerverwaltung
- Console
- Windows herunterfahren
- Versuchen wir es mal VirtIO (nicht Single)
- Hardware
- VM wieder starten
TrueNAS Scale GUI
- Datasets
- Edit Zvol
- 48 GB —> vorher 40 GB
- vm-101-disk-4
ProxMox CLI - zweiter PVE (nicht Workshop)
- In der laufenden Ausgabe von
dmesg -Tw
- sdd wurde vergrößert 51.2 GB /48.0 GiB
ProxMox GUI - zweiter PVE (nicht Workshop
- VM 901
- Datenträgerverwaltung
- Erkennt die Vergrößerung nicht
- Datenträger neu einlesen
- Datenträgerverwaltung
- Console
TrueNAS Core GUI
- Jetzt schauen wir uns das bei TrueNAS Core an wo es funktioniert
- Block Shares (iSCSI)
- Sieht genauso aus wie bei TrueNAS Scale
- Sharing
ProxMox GUI - ProxMox zum TrueNAS Core
- VM x
- SCSI Controller
- VirtIO SCSI —> läuft noch auf dem alten Treiber
- Hardware
ProxMox GUI - zweiter PVE (nicht Workshop
- VM 901
- Hard Disk (scsi1) wird detach
- Add Hard Disk
- Bus/Device: SCSI 1
- SCSI Controller: VirtIO Block —> Deprecated - vorher: VirtIO SCSCI
- SDD emulation: an harken
- Discard: an harken
- Hardware
- Console
- Nach geänderter Hardware suchen
- Laufwerke
- QEMU … SCSI Disk Device
- Red Hat VirtIOSCSI Disk Device
- Speichercontroller —> andere Hardware Layout —> andere Hardware Emulation unterschiedlich
- Red Hat VirtIO SCSI controller
- Red Hat VirtIO SCSI pass-through controller
- Erkennt den Datenträger 1
- 40 GB der Partition im Filesystem NTFS
- 8 GB Nicht zugeordnet
- Volume erweitern
- Vergrößerung wird durchgeführt
- Gerätemanager
- Datenträgerverwaltung
TrueNAS Scale GUI
- Datasets
- Edit Zvol
- 50 GB —> vorher 48 GB
- vm-101-disk-4
ProxMox CLI - zweiter PVE (nicht Workshop)
- In der laufenden Ausgabe von
dmesg -Tw
- sdd wurde vergrößert 53.7 GB /50.0 GiB
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM 901
- Datenträgerverwaltung
- Erkennt die Vergrößerung nicht, die Antwort bleibe ich schuldig unter TrueNAS Core funktioniert es … - muss ich nachreichen
- Datenträger neu einlesen
- Anderes Problem
- Platte wird offline genommen
- Datenträgerverwaltung
- Console
TrueNAS Scale GUI
- Datasets
- Edit zvol
- Lösung muss über Text bestätigt werden
- Delete zvol
- Edit zvol
- vm-101-disk-4
ProxMox CLI - zweiter PVE (nicht Workshop)
- In der laufenden Ausgabe von
dmesg -Tw
- sdd gibt Fehlermeldungen im Log, da ProxMox nicht mitbekommen hat, dass die Platte gelöscht wurde. Für ProMox ist die iSCSI Platte einfach verschwunden …
- Die Fehlermeldungen verschwinden erst beim nächsten Reboot von ProxMox
-
lsblk # —> zeigt die Platte sdd noch an service restart open-iscsi # —> Chriz würde es normalerweise nicht machen lsblk # —> sdd ist jetzt verschwunden
Man hätte die Platte noch aus dem Windows komplett entfernen müssen. Die VM 901 ist jetzt mit einem Ausrufezeichen in gelb versehen.
Fazit Chriz: iSCSI würde ich nur bei VMWare oder HyperV verwenden, bei ProxMox immer NFS
Nächste Thema ist Multipathing bei iSCSi. Auf der TrueNAS Seite funktioniert das. Aber das sprengt den Rahmen des Workshops.
VM |
LXC | |
Proxmox ZFS |
Liegt idealerweise als Volume (ZVOL) auf ZFS |
Dataset mit hohen Usernummer auf PVE Seite und nimmt niedrige Nummern im LXC |
Proxmox NFS |
Raw, Qcow, VMDK liegt auf SAN im Ordner |
Rawfile SAN im Ordner, Management via PVE |
Proxmox iSCSI |
Volume liegt als ZVOL oder physische HDD auf TrueNAS |
Geht nicht |
ProxmoxZFS localdir |
Raw, Qcow, VMDK liegen in einem Dataset, Datastore definiert auf Ordner des Dataset (Reboot knallt) |
Geht nicht |
- 3.21.Fileserver
- Univention Server UCS
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM x
- Fileserver was könnte dafür sprechen
- Linux - stabiler als Windows
- Web GUI —> Chriz: Ist richtig schlecht
- Neue Freigabe
- Pfad / mount Point —> Eigene Platte wäre schön - keine Auswahl oder Knopf dafür
- Viele Punkt an den man es verscheissen kann ..
- Neue Freigabe: Workshop
- Samba
- …
- Add Hard Disk
- Bus/Device: SCSI 2
- SCSI Controller: VirtIO SCSI Single
- Storage: local-zfs
- Disk Size: 44
- SDD emulation: an harken
- Discard: an harken
- UCS Server starten
- Hardware
Per ssh auf den UCS Server gehen
-
ssh root@<IP Adresse UCS Server> lsblk # —> sdc hat 44G cfdisk /dev/sdc # —> gpt, Partition anlegen - Linux Filesystem lsblk # —> Partition sdc1 wird angezeigt mkfs.ext4 /dec/sdc1 # —> Ext4 Filesystem erzeugen - ZFS auf ZFS macht man \ nicht, ProxMox hat schon ZFS mkdir /mnt/workshop # —> Mountpoint anlegen mount /dev/sdc1 /mnt/workshop # —> Platte sdc1 mounten, nicht boot fest !!! umount /mnt/workshp # —> Mount wieder wegnehmen ls /dev/disk/by-id # —> scsi-… ls /dev/disk/by-uuid # —> zeigt die UUID der Platte, den sollte man zum mounten \ in der fstab nehmen, entsprechende UUID in die Zwischenablage kopieren vi /etc/fstab # - Datei editieren UUID=<kopierte UUID einfügen> /mnt/workshop ext4 defaults=user_xattr 0 2 mount -a # —> mounted den Inhalt der fstab df -h # —> zeigt die gemoutete Platte
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM x - UCS Server
- Jetzt erst die Freigabe anlegen …
- Software prüfen ob, Active Directory Domänen Controller installiert ist
- VM y - Windows Maschine
- DNS Server muss passen —> UCS Server ist Domain Controller und damit DNS Server
- Zeit muss passen
- Domain eintragen
- reboot
- Eigenschaften
- Erweitert
- Rechte evtl. anpassen
- Vollzugriff
- Vererbung deaktivieren - vererbte behalten
- Administrator entfernen
- Jeder entfernen
- Domain Users hinzufügen
- Christian
- Erweitert
- Sicherheit
- Windows aus der aktuellen Domain herauswerfen —> Arbeitsgruppe: sysops
- Reboot
- Login mit lokalem User
- Windows in die Domain aufnehmen
- Login mit Administrator der Domain
- Auf Freigabe workshop
- Ordner anlegen —> Christians Ordner
Per ssh auf den UCS Server gehen
- Dazu gibt es auch Linux Befehl
-
getfacl /mnt/workshop/Christians\ Ordner \ # —> zeigt die User Rechte auf Linux Ebene webinfo -u # —> zeigt Domain User an setfacl -Rdmu:fossi:rx /mnt/workshop/Christians\ Ordner \ # —> d für default - dann verhält es sich wie ein Windows Server, \ aber schneller Rechte gesetzt, ja viel schneller als Explorer !!!
- Zamba-lxc-toolbox
Browser
- https://github.com/bashclub
- zamba-lxc-toolbox
- Evtl. dev Branch auswählen —> Enthält die neueste Version, die aber gerade noch nicht veröffentlich ist (neue Features)
- Anleitung
- Achtung! nicht branch dev
ProxMox CLI - zweiter PVE (nicht Workshop)
-
git clone -b dev https://github.com/bashclub/zamba-lxc-toolboox cd zamba-lxc-toolbox cp conf/zamba.conf.example conf/zamba.conf vi conf/zamba.conf LXC_ROOTFS_SIZE=„32“ —> Linux Filesystem LXC_ROOTFS_STORAGE=„local-zfs“ —> Datastore für Linux Installation LXC_SAHREFS_SIZE=„100“ —> Größe Shares Filessystem des Zamba Servers LXC_SHAREFS_STORAGE=„local-zfs“ —> kann SSD oder HDD Storage sein LXC_SHAREFS_MOUNTPOINT=„share“ —> Mountpoint für Zamba Server Shares Storage - Standard: tank LXC_MEM=8192 —> Standard 1024 LXC_HOSTNAME=„${service}“ —> hier könnte der Hostname angepasst werden LXC_DOMAIN=„sysops.tv" —> Domaine für den Zamba File Server LXC_DHCP=false —> Keine DHCP Adresse LXC_IP=„192.168.100.200/24“ —> Statische IP Adresse vergeben LXC_GW=„192.168.100.254“ —> Default Gateway für LXC Container LXC_DNS=192.168.100.254 —> DNS muss der Domain Controller sein LXC_PWD=„Start!123“ Unter Zamba-Server-Section ZMB_REALM=„SYSOPS.TV“ ZMB_DOMAIN=„SYSOPS“ ZMB_ADMIN_User=„Administrator“ —> Univention UCS Server hätte gerne einen Großen Administrator - default wäre administrator ZMB_ADMIN_PASS=„Start!123“
bash install.sh
- 29 —> zmb-member
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM Windows von vorher
- Im zmb-member/share
- Wir legen ein paar Ordner an
- Console
ProxMox CLI - zweiter PVE (nicht Workshop)
- Mal einige snapshost anlegen
-
/etc/cron.hourly/zfs-auto-snapshot /etc/cron.daily/zfs-auto-snapshot
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM Windows von vorher
- Windows Explorer
- Rechte Maustaste
- Zeigt zwei ältere Versionen an
- Vorgänger Version wiederherstellen
- Rechte Maustaste
- Share
- Trojaner simulieren
- Windows Explorer
- Console
ProxMox CLI - zweiter PVE (nicht Workshop)
-
zfs list -t snapshot | grep 126-disk # —> zeigt snapshots an zfs rollback -r rpool/data/subvol-126-disk-1@zfs-auto-snap_daily-2024-02-15-1523
- Rollback kann mehrfach gemacht werden …
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM Windows von vorher
- Windows Explorer
- Alles wieder schön
- Share
- Windows Explorer
- Console
ProxMox CLI - zweiter PVE (nicht Workshop)
-
pct list # - Listet LXC Container auf pct enter 126 # Troubleshooting wbinfo -u # zeigt user an wbinfo -g # zeigt Gruppe date ping <dns server> kinit administrator net ads join -U administrator exit zfs list cd /rpool/data/subvol-126-disk-1 ls cd share ls cd .. cd .zfs # —> versteckten Ordner von ZFS cd snapshot # —> Darunter liegen die Snapshots ls -althr # —> Zeigt die Snapshot Verzeichnisse an cd zfs-auto-snap_daily-2024-02-15-1523 # —> In das Snapshot Verzeichnis gewechselt ls cd share ls
- TrueNAS Scale
TrueNAS Scale GUI
- Datasets
- Name: nas
- nfs —> hier hatten die Autosnapshots in TrueNAS Scale konfiguriert
- Add Dataset —> Für Dateien
- Shares
- Path: /mnt/rppol/nfs/nas
- Evtl. muss der Service enable werden
- Configure ACL —> wir haben nur den User root zur Zeit
- Add SMB
- Network
- DNS Server: <ip des „Domain Controller“> —> Damit Domaine aufgelöst werden kann
- Credentials
- Configure Active Directory
- Domain Name: sysops.tv
- Domain Account Name: administrator
- Domain Account Password: <password>
- NetBIOS Name: truenasws
- Enable: an harken
- Directory Services
ProxMox GUI - zweiter PVE (nicht Workshop)
- VM Windows von vorher
- Windows Explorer
- \\truenasws\nas —> Im Explorer auswählen
- Console
Für welche Filesystem würdest Du Dich entscheiden ? (Zamba File Server - das machen alle aus dem Stammtisch)
- 3.22.ProxMox auf Raspberry sichern mit Thorstens Tool
Browser
- GitHub.com/bashclub/zsync —> Thorsten Tool ist schneller
- Installation Anleitung auf Raspberry PI ausführen
Raspberry PI - CLI
- Tool installieren
-
wget -q --no-cache -O /usr/bin/bashclub-zsync \ https://git.bashclub.org/bashclub/zsync/raw/branch/dev/bashclub-zsync/usr/bin/bashclub-zsync chmod +x /usr/bin/bashclub-zsync bashclub-zsync bashclub-zsync # —> hier ist das Tool
ProxMox CLI - zweiter PVE (nicht Workshop)
-
zfs list zfs get all rpool/data zfs set bashclub:zsync=subvols rpool/data
Raspberry PI - CLI
-
zfs rename Mirror/replica/pveloft Mirror/replica/pveloft.alt \ #—> Umbenennen von ZFS # Hat es wohl nicht gemazcht, also machen wir was neues zfs create Mirror/repl/-o com.sun:autosnapshot=false zfs create Mirror/repl/pveloft vi /etc/bashclub/zsync.conf target=Mirror/replica/pveloft source=<IP Adresse Quelle> snapshot_filter=„daily“ min_keep=3 zfs_auto_snapshot_label=dmz bashclub-zsync # —> und die erste Platte kommt …
Raspberry PI - CLI - zweiter login
-
zfs list zfs list | grep Mirror/replica/pveloft/rpool/data \ # ==> mehrfach absetzen und den Fortschritt zu sehen …
Das ist alles ….
- 3.23.Check-zfs-replication kommt auf RaspberryPI (Ziel)
Browser
- github.com/bashclub/check-zfs-replication
- Installationsanleitung kommt auf das Ziel
Raspberry PI - CLI
-
wget -O /usr/local/bin/checkzfs \ https://raw.githubusercontent.com/bashclub/check-zfs-replication/main/checkzfs.py chmod +x /usr/local/bin/checkzfs checkzfs --help checkzfs - -sourceonly | grep Mirror/replica/pveloft # —> altes Backup checkzfs --source <ip Adresse Quelle> --filter rpool/data \ --replicafiler Mirror/replica/pveloft/rpool/data --threshold 1500 2000 checkzfs --source <ip Adresse Quelle> --filter rpool/data \ --replicafiler Mirror/replica/pveloft/rpool/data --threshold 1500 2000 --columns +messages
Chriz klärt noch checkzfs im Video