Direkt zum Hauptinhalt

Zamba Fileserver

Trojanersicherer Fileserver mit und ohne Active Directory Integration auf Proxmox VE Systemen mit ZFS


Proxmox bietet seit Version 3.4 eine ausgezeichnete Unterstützung für das ZFS Dateisystem / Filestorage an.


Installationen die mittels Hostbusadaptern oder lokalen SATA Controllern, wie auch USB Raids durchgeführt wurden sind in der Lage Dateisystem und Raid in einem Kernel zu betreiben.


Mittels der Software zfs-auto-snapshot generiert das System alle 15 Minuten einen Snapshot, also einen eingefrorenen Zustand des Dateisystems.


Die Snapshots greifen für alle Datasets (Dateisystem) und ZVOLs (virtuelle Disks).


Zu beachten ist hier nur dass das System niemals über 80% Auslastung kommt, da ZFS dann anfängt bis ca. 95% immer härter zu drosseln, was einen Überlauf verhindern soll.


Das Snapshotten und die Zerstörung von Snapshots


ZFS bietet die Möglichkeit mittels Verzeichnisstruktur auf diese Snapshots zuzugreifen, sprich dort auf ältere Dateien zuzugreifen.


Voraussetzung Nr.1 – Proxmox VE System V6/7 mit installiertem zfs-auto-snapshot


~# apt install zfs-auto-snapshot


Danach finden sich Cronjobs unter


/etc/cron.d/zfs-auto-snapshot (viertelstündig mal vier als Standard)

/etc/cron.hourly/zfs-auto-snapshot (stündlich mal 24 als Standard)

/etc/cron.daily/zfs-auto-snapshot (täglich mal dreissig als Standard)

/etc/cron.weekly/zfs-auto-snapshot (wöchentlich mal acht als Standard)

/etc/cron.monthly/zfs-auto-snapshot (monatlich mal zwölf als Standard)


Damit wir unter den 80% bleiben empfehlen wir erst mal


/etc/cron.monthly/zfs-auto-snapshot


auf zwölf Monate zu reduzieren.


Besonders komfortabel geht das mit unserem Postinstallskript


https://github.com/bashclub/proxmox-zfs-postinstall


Die Prüfung auf die Dateibelegung geht wie folgt:


NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT

rpool 1.73T 501G 1.24T - - 44% 28% 1.00x ONLINE -


Dieses System ist mit 28% im grünen Bereich


Als komfortable Erweiterung für ZFS per Webgui könnte man auch noch Cockpit mit ZFS installieren


wget https://raw.githubusercontent.com/bashclub/proxmox-zfs-postinstall/main/install-cockpit-zfs-manager

bash install-cockpit-zfs-manager


diesen erreicht man danach unter https://IPVOMPVE:9090


Bitte daran denken dass Cockpit nichts vom PVE weiß und anders herum.

Vor einem Rollback auf einen alten Stand einfach VM/LXC ausschalten.


Nun zum Fileserver


Die LXC-Toolbox ist das Schweizer Taschenmesser von sysops.tv.

Darüber wird einmalig eine best Practice Installation verschiedener Dienste ausgeführt.

Diese Systeme werden danach manuell durch den Admin weiter gepflegt.


https://github.com/bashclub/zamba-lxc-toolbox


So installieren Sie den besten Fileserver mit ZFS in wenigen Minuten


apt update

apt -y install git


Wir klonen das Repository nach /root


git clone https://github.com/bashclub/zamba-lxc-toolbox

cd zamba-lxc-toolbox


Die Konfigurationsvorlage wird kopiert, so kann man später die Standardwerte sehen.


cp conf/zamba.conf.example conf/zamba.conf


Wir passen die Konfigurationsdatei an


nano conf/zamba.conf


Dort werden folgende Informationen benötigt um einen AD-Member-Server zu installieren, also falls abweichend bitte anpassen


LXC_TEMPLATE_STORAGE="local" #ist der Dateispeicher für die Linuxvorlage


LXC_ROOTFS_SIZE="32"# Größe des Linuxcontainer Betriebssystems, kann jederzeit angepasst werden, da nur Limit


LXC_ROOTFS_STORAGE="local-zfs" #Standard Speicherort von PVE mit ZFS rpool/data


LXC_SHAREFS_SIZE="100" #Größe des Fileserverbereichs, kann jederzeit angepasst werden, da nur Limit


LXC_SHAREFS_STORAGE="local-zfs" #Speicherort für Fileserverbereich


LXC_MEM="1024" #RAM für Fileserver, hier ggf. mal auf 2048 oder 4096 bei größeren Systemen. Im Betrieb selten mehr als 100MB benötigt, jedoch als Cache kann es knapp werden


LXC_HOSTNAME="${service}" #ggf. nach dem = eigenen Namen für PVE vergeben, empfohlen wäre hier der hostname im netz, also zmb oder fs oder wunschname


LXC_DOMAIN="zmb.rocks" #Der Domänensuffix für PVE, hier empfohlen Windows DNS domain, also z. B. sysops.local


LXC_IP="192.168.100.200/24" #feste freie IP im LAN


LXC_GW="192.168.100.254" #Router im Netz, bitte ausgehend 80,443 und 123 erlauben


LXC_DNS="192.168.100.254" #Hier „muss“ ein Domaincontroller rein, damit die Windows Domäne aufgelöst werden kann.


LXC_BRIDGE="vmbr0"# die virtuelle Brücke ins LAN


LXC_PWD='Start!123'# Passwort für den Container Linux Seite zur Wartung


############### Zamba-Server-Section ###############

Bereich für den Fileserverdienst, die anderen Bereiche nicht ausfüllen.


ZMB_REALM="ZMB.ROCKS"#Windows DNS Name (Großbuchstaben sind Pflicht!).


ZMB_DOMAIN="ZMB" #Windows Netbios Name (Großbuchstaben sind Pflicht!).


ZMB_ADMIN_USER="administrator"#User für die Aufnahme in Domäne. Falls Fehler bei Installation Groß- und Kleinschreibung des Users beachten.


ZMB_ADMIN_PASS='Start!123' #Passwort des ZMB_ADMIN_USER in der Active Directory


###


Speichern Sie die Datei


Installation des Systems, mehrfach möglich!


bash install.sh


Das System legt einen LXC in der GUI sichtbar an, startet ihn und installiert die Software.

Am Ende sehen Sie als Erfolgskontrolle alle User und Gruppen.

Falls Fehler beim User angemahnt werden die Groß- und Kleinschreibung des ZMB_ADMIN prüfen.


Löschen einer Fehlgeschlagenen Installationen


pct stop LXCNUMMER

pct destroy LXCNUMMER


Kontrolle Funktion


pct enter LXCNUMMER

wbinfo -u && wbinfo -g


Ausgabe aller User und Gruppen


Reparatur gestörte Domänenmitgliedschaft


host sysops.local # sollte auf Domaincontroller verweisen


kinit -V administrator #gefolgt von Passworteingabe

net ads join -U administrator createcomputer=Computers #gefolgt von Passworteingabe



## Ab hier verhält sich der Zamba Fileserver wie ein Windows Server

#! Über den Explorer können Sie nun auf alle Snapshots als Vorgängerversion wiederherstellen zugreifen!!!


## So setzen Sie Berechtigungen


a) Wie gewohnt über Explorer

b) Deutlich schneller via Kommandos im LXC


Löschen alle erweiterten Rechte


setfacl -Rb /tank/share


Zugriff setzen für einen Anwender plus Unterordner


setfacl -Rm u:administrator:rwx /tank/share/administrator # Rechte

setfacl -Rdm u:administrator:rwx /tank/share/administrator # Standard für neue Ordner und Dateien, wichtig!!!


Zugriff setzen für eine Gruppe plus Unterordner


setfacl -Rm g:verwaltung:rwx /tank/share/verwaltung

setfacl -Rdm g:verwaltung:rwx /tank/share/verwaltung


Weitere Videos:


https://www.youtube.com/watch?v=HP3zaRnNGLE

https://www.youtube.com/watch?v=yFN9Ykr7s5I&t=732s #englisch, more recent


Kurse zum Thema

https://cloudistboese.de #ZFS für Firmen