[Übersicht] napp-it cs, Web-GUI für fast jeden ZFS Server oder Servergruppen

Small update of the remote_cs_server software as replication from any to any server requires more work

This howto requires server software up from Mar 16. 2024
########################################################

Client /server web-gui for (m)any ZFS Server

is a client server configuration with a frontend web-gui (currently Windows web application on Apache) and a
server backend that can run on nearly any ZFS server or appliance (BSD, Linux, Illumos, OSX, Solaris or Windows)

This folder "remote_cs_server" contains the server backend with the startup script "start_server_as_admin.pl" and "cs_backend.pl" with the server part and server.auth with the authorisation key.

cs_backend.pl is a background task that runs with admin permissions to process and return data ex for zfs and zpool commands

client.pl
this script is an example to request data from the server if you want to add your own addition or menu

Client/server setup should work on any server or appliance with Perl installed and access to a root console
based on *BSD, *Linux (Debian/Proxmox), OSX, Solaris/Illumos and Windows 10/11/Server

Server Setup
Upload folder remote_cs_server to any location of a ZFS server
(ex /pool/filesystem or desktop or a system folder like /var/web-gui)
via wget, SMB, WinSCP or any other method

Optionally
edit cs_backend.pl (WinSCP, midnight commander or other editor) and
adjust allowed_ip (restrict clients), timeout (client timeout), max_connections (concurrent number of clients)

Start server backend from console as root or admin
perl /path_to_this_folder/start_server_as_admin.pl or with a Windows ZFS server
/xampp/perl/bin/perl.exe /path_to_this_folder/start_server_as_admin.pl

If you use a Putty remote console to start the server:
When Putty disconnects the server stopps, use only for tests.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Im gestrigen ZFS on Windows 2.2.3 gab es ein Problem mit der CPUID Erkennung das den Rechner während der Installation abstürzen lassen konnte.

Es gibt eine aktualisierte Version das dieses Problem behebt.
 
Das Portieren einer lokalen ZFS web-gui in eine OS und plattformunabhängige Client Server Lösung bringt jeden Tag neue Herausforderungen. Am Anfang ist mir der Server bei einem 40k snap list oder ZFS get all ausgestiegen, jetzt sollten auch MB große Listings gehen. Auch die Gui Peformance finde ich langsam richtig gut. Das jedes OS eine andere Softwareumgebung mit anderen installierten Modulen hat, habe ich langsam im Griff indem ich alles beilege was benötigt wird.

Aktueller Stand (20.3.)
Client Software/ Web Frontend unter Windows: Copy and Run
Server Backend Software für BSD, Linux, OSX, Solaris/Illumos und Windows: Copy and Run (beliebiger Ort wie /var/web-gui, Desktop oder tank/data)
Kann große Datenmengen (zfs list, zfs get all) verarbeiten
Jobs wie autosnap und Scrub laufen remote, Replikation von any to any wird noch Arbeit machen.
GUI Performance empfinde ich super, insbesondere da alle Dsten bei jedem Menüaufruf mieingelesen werden Eine Datenbank für ZFS will ich vermeiden da man dann nichts mehr auf der Console machen sollte. (So wie bei FreeNAS)
 
Klingt super! ich selbst hab allerdings wohl erst einen echten Anwendungsbereich, wenn ich irgendwann wirklich zfs auf Windows-Clients einsetze. Bis dahin besteht meine zfs-Landschaft aus genau zwei Rechnern, von denen nur einer mehr als ein paar Tage im Jahr läuft (der andere macht Backup so ca. 1x im Quartal). Das ging mit Deiner bisherigen Struktur auch schon prima.
 
Sun hatte soviele geniale Sachen in Solaris eingebaut die ich in meiner normalen Version auch für den Solarisfork Illumos nutze. Die werden in diesem Umfang nie in einem OS unabhängigen napp--it cs landen. Die Funktionen in cs wie ganz allgemein einfaches ZFS Management mit überaus detailliertem Behalte Regeln für Snaps aus Replikationen oder Autosnap Jobs, Snap oder SMB Share Management, appliance maps (Ansicht eines Jbod mit Plattenbelegung zum Audrucken) sollten auch unter Illumos/Solaris die meisten Anwengsfälle abdecken. Vielleicht sogar ganz angenehm im Vergleich zu der Fülle der Funktionen in der normalen Version oder anderen GUIs

Mein erstes Ziel sind natürlich ZFS Plattforman für die es bisher keine vernünftige ZFS GUI gibt wie diverse BSD und Linux Optionen oder OSX und Windows oder Installationen mit mehreren/vielen ZFS Servern oder NAS appliances die man einfach zentral managen möchte. Wer unterschiedliche Plattforman nutzt oder testet freut sich sicher über ein einheitliches Look and Feel. Prinzipiell ist neben ZFS auch ganz allgemein zentrale Server Steuerung und Überwachung mit weiteren Menüs denkbar.

Daher natürlich die Nutzer, die eigene Management Funktionen planen. Ein privater Menüpunkt in napp-it cs ist lediglich ein Ordner mit eine action.pl Perldatei darin für die Interaktion mit dem Nutzer. Ein Remote Abruf von Informationen eines angewählten Servers wie ein Dateilisting übers Netz bedeutet lediglich z.B. ein $t=&exe("ls -a");

Das geht jetzt auch bei einem großen Server mit $t=&exe("zfs get all"); bei denen auch mehrere MB übertragen.
 
Da kommt man ja gar nicht hinterher... bin gerade noch dabei die Hardware neu zu sortieren, erst dann geht's wieder weiter mit Software-Testen...
 
Da sich in Open-ZFS erst mit 2.2.4+ wieder was ändert, betrifft das nur Treiber und Installer Stabilität.
ZFS on OSX und ZFS on Windows sind ansonst nahezu identisch zu Open-ZFS 2.2.3

Jorgen Lundman
Announcing the release of zfs-2.2.3, it is fairly close to upstream OpenZFS-2.2.3

ps
Je mehr Leute ZFS on OSX und ZFS on Windows testen und Probleme berichten,
desto schneller werden letzte Installer und Integrationsprobleme auf verschiedenen OS Versionen oder Hardware gelöst.
Auf ZFS Ebene selber sollte man bereits mit der Sicherheit oder Unsicherheit von ZoL rechnen können.


Auf jeden Fall sind die Issues überschaubar wenig.
Teils sind es auch Windows Probleme, wie mein Issue mit Replikation.
Da stellte sich heraus dass man mit der Powershell kein zfs send | zfs receive machen kann (geht mit cmd).
 
Joah, CMD und Powershell sind definitiv zwei verschiedene Paar Schuhe.

Ich hoffe ja mal, dass irgendwann eine Integration dahingehend kommt, dass ein Pool im Bootvorgang eingebunden werden kann (quasi wie nativ NTFS, ReFS). Aktuell stehen die Volumes für manche Einsatzzwecke zu spät zur Verfügung.
 
Automount aller Pools kommt sicher noch.
Im Moment sollte ein geplanter task via taskschd.msc zum Systemstart eigentlich funktionieren:
zpool import -f poolname
 
Ich gewöhne mich gerade daran, meine USB Sticks und externen USB Platten mit ZFS zu nutzen.
Die werden im Gegensatz zu *FAT* nicht automatisch gemounted, ist aber kein Problem da ich die Pools darauf immer usb nenne.

Nach dem Einstecken brauchts dann nur ein "zpool import -f usb" und ich kann die auf BSD, Linux, OSX, Solaris/Illumos und Windows öffnen.
Damit bin ich endlich weg von *FAT* wo man insbesondere auf unsicheren Datenträgern wie USB Sticks wegen der fehlenden Prüfsummen nie sicher sein konnte ob die Daten noch ok sind.

zpool export vor dem Abstecken nicht vergessen.
 
Zuletzt bearbeitet:
Und du hast auch ohne Verschlüsselung einen de-facto Zugriffsschutz bei Verlust. :d

Wenn einer den Stick findet dürfte wohl kaum einer mal ZFS testweise ausprobieren. ;)

Nur zum Datenaustausch mit anderen taugt das dann weniger…
 
Erfordert halt Absprache.
In erster Linie ist das aber für Eigennutzung oder Backup.

ps
Schon lange her, dass ich einen USB Stick zum Datenaustausch erhalten habe. Heute bekomme ich stattdessen einen Cloud/Gdrive Link.
 
Um einen TrueNAS Server in die Servergruppe aufzunehmen:

- Enable SSH, allow root (sharing options) or SMB
- Copy napp-it cs_server to a filesystem dataset ex tank/data (/mnt/tank/data)
- open a root shell and enter:
perl /mnt/tank/data/cs_server/start_server_as_admin.pl
Add Truenas to your servergroup (ZFS Servergroup -> add)

truenas.png

Anyone with a Qnap ZFS Box?
Can you verify a similar setup
 
Zuletzt bearbeitet:
napp-it cs beta, aktueller Stand (apr.05)

Server groups mit remote web-management: (BSD, Illumos, Linux, OSX, Windows): ok
ZFS (pool,filesystem,snap management): ok auf allen Platformen
Jobs (snap, scrub, replication mit netcat von any source to any destination): ok außer Windows als source oder destination
(Windows als source geht mit nmap/netcat on Windows, nicht mit netcat Windows 1.1.2)
 
Hallo,

Ich nutzte Napp It schon ewig ohne Probleme und bin super zufrieden. (Vielen Dank @gea)

ich habe ein kleines Problem mit meiner installation unter Openindiana.
Nach der Aktualisierung des Betriebssystems bekomme ich im Header immer folgende Fehlermeldung.
Napp-It funktioninert allerdings noch ohne Probleme.
1712480951098.png
 
Das "Problem" mit OpenIndiana ist, dass es keine Stable oder long term Stable gibt wie bei OmniOS. Jedes OpenIndiana Update übernimmt sofort neueste Neuheiten In Ilumos. Ist daher oft etwas unberechenbar. Bei OmniOS gibt es neue Sachen nur in neuen Stables und ansonst nur Bug/ Security Fixes.

Welche napp-it Version ist denn installiert.
 
Danke für die schnelle Antwort.

Aktuell läuft: 21.06a14
 
Bitte wenigstens auf 22.03 (ist auch free) updaten.
Läuft bei mir mit OI Hipster/illumos-8becd264f0
 
Hat funktioniert.
Vielen Dank.

Irgendwie hab ich es übersehen dass es eine neue Version gibt.
 
Die habe ich freigeschaltet da es keinen Sinn macht die 21.06 free weiter zu pflegen.
22.03 ist jetzt auch die Default für Erstinstallationen und die letzte Version die ausschließlich auf mini_http baut.

In neueren napp-it Versionen ist Apache für https integriert. Ein Update darauf kann man mit einem kostensen Eval Key machen.
 

Wie viel RAM benötige ich für napp-it cs?

RAM für einen ZFS-Filer hat keinen Bezug zur Pool- oder Speichergröße (außer bei aktiviertem dedup!)

Man sollte 1-2 GB für ein 64-Bit-Betriebssystem haben, dazu 1–2 GB für einen Solaris-basierten Filer und 3–4 GB für einen BSD/Linux-basierten Filer für minimales Lese-/Schreib-Caching, sonst kann ZFS sehr langsam sein. Der zusätzliche RAM hängt von der Web-GUI, der Anzahl der Benutzer oder Dateien, der Datenvolatilität oder der gewünschten Speicherleistung ab. Festplattenbasierte Pools brauchen mehr RAM als SSD-Pools, um eine gute Leistung zu erzielen.

Bei napp-it cs empfehle ich 8 GB für den Windows-Rechner, auf dem die Frontend-Web-GUI läuft, 16 GB, wenn man zusätzlich ZFS unter Windows auf diesem Rechner nutzen möchte.

Für die ZFS-Filer, die man mit napp-it cs verwalten möchte, gibt es praktisch keine zusätzlichen RAM-Anforderungen für die Server-App, was bedeutet, dass napp-it cs einen Solaris/Illumos-basierten ZFS-Filer ab 2 GB RAM und Linux/OSX/Windows-Filer ab 4 GB RAM verwalten kann, was die Fernverwaltung sogar eines kleinen ARM-Rechners mit einer Web-GUI ermöglicht (man benötigt nur ZFS und Perl darauf, keine Installation erfrderlich, copy and run).

edit
napp-it cs kann einen Raspberry 4 managen, Odroid mit M.2/Sata oder ähnliche Passiv-Boards ab 4GB RAM ziemlich sicher auch (hab keine zum Testen)
 
Zuletzt bearbeitet:
Disk Maps
noch nicht komplett portiert, aber sicher bereits Hilfreich

map.png


Howto

- Member - Server anwählen
- Menü Disk > Map > Add Map anlegen z.B. 24 x 2,5" vertikal bordeaux (SuperMicro)
- Platten den Slots zuweisen
- Map ausdrucken (manchmal ist es besser dazu einen Screenshot zu machen mit Windows Snipping Tool)
und auf den Server legen damit man bei Problemen die Platte schneller findet.
 
Raspberry 4 läßt sich out of the box mit napp-it cs managen.

# uname -a raspberry4~192.168.2.89
Linux phoscon 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux

ps aux
pi 30136 0.0 0.2 16540 10104 pts/0 S 15:23 0:00 perl /tmp/cs_server/server.pl
pi 30138 0.0 0.1 11192 4880 pts/0 S 15:23 0:00 perl /tmp/cs_server/monitor.pl

Die Resourcenbelegung ist der beiden Prozesse von napp-it cs auf dem pi ist vernachlässibar
Nicht gerade der perfekte ultrakompakt ZFS Server mit usb aber die Wahrscheinlichkeit ist hoch dass auch andere Miniboards wie Odroid M1 laufen, der hat M.2/ Sata
 
Zuletzt bearbeitet:
Ich kämpfe gerade mit Free-BSD 14 und anonyme Shares die ich in napp-it cs aktivieren möchte. In Proxmox get das bereits prima, in Windows auch, nur nicht in Free-BSD. Nutzt jemand Free-BSD 14 mit Samba 4.19 und hat das hinbekommen?

Update:
Tut jetzt, mit folgendem Setting (map to guest = bad user hat gefehlt.)

[global]
unix charset = UTF-8
workgroup = WORKGROUP
server string = FreeBSD
guest account = nobody
create mask = 0775
directory mask = 0755
browsable = yes
map to guest = bad user

# zfs:tank/data
[data]
path = /tank/data
guest ok = yes
read only = no
# :zfs



smb.png
 
Zuletzt bearbeitet:
Woran lags?
 
Anfängerfehler (ich habe schon lange kein SAMBA mehr genutzt)

Im [global] hat folgendes gefehlt:
map to guest = bad user

Unter Linux wird eine ellenlange smb.conf angelegt. Da steht das irgendwo mittendrin.
Unter Free-BSD muss man die smb4.conf selbst anlegen, da habe ich das übersehen.

ps
Was "Setup Einfachheit" angeht, ist der Solaris/Illumos SMB Server um Welten einfacher zu konfgurieren als SAMBA.
Der tut einfach mit NFS4 ACL und nutzt dazu Windows SID direkt statt das Gewürge mit Mappings von Unix UID/GID auf Windows SID.
 
Server part von napp-it cs (für beliebige ZFS server) kann man jetzt online herunterladen (console as root)
wget -O - www.napp-it.org/nappitcs | perl

Das kopiert den Ordner cs_server nach /opt/web-gui (default location)
Man kann dann server.auth editieren (identisch zum Memberfile in der web-gui)

Dann Server starten
perl /path_to_cs_server/start_server_as_admin.pl
oder wget downoad nochmal starten. Ab dem zweiten Aufruf wird die Server App automatisch (neu) gestartet.

Das web-gui frontend: (www.napp-it.org/doc/downloads/xampp.zip):
Uncompress xampp.zip unter Windows nach c:\xampp. Starten der web-gui mit
mouse right click auf c:\xampp\web-gui\start_zfs_gui_as_admin.bat (runas admin)
 
Zuletzt bearbeitet:
Nach längeren Diskussionen in der Smartos-Discuss Liste in der mir abgeraten wurde, SMB in der globalen Zone zu unterstützen habe ich jetzt doch SMB so umgesetzt. Damit wäre ein ZFS Server möglich, der nach dem Starten komplett im RAM läuft und bei dem alle Systemfiles auf dem Datenpool liegen. Ein Update ist dann einfach ein neues Bootdevice oder Stick. Für benannte User wäre aber ein AD Server für die Nutzerverwaltung nötig oder größere Anpassungen bzw save/restore der Userfiles on demand. Ein Storageserver in einer VM wäre auch denkbar, mir reicht aber aktuell anonymer Zugriff um Daten hin und her zu kopieren. Das geht auch mit Free-BSD 14 oder Proxmox so out of the box.

Aktuell:
Verbessertes Caching zur Performancesteigerung, erfordert Update der Clients und Server
Ein neuer Ordner cs_server.cfg mit der Datei server.auth. Damit wird das durch Updates nicht überschrieben.

Ich denke dass man cs langsam auch mit Free-BSD 14 oder Proxmox testen kann.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh