napp-it cs for [m]any ZFS server or servergroups and Windows Storage Spaces
Client-Server edition
Napp-it cs has two parts
1. The frontend management web-gui as client to manage a server or servergroup
The frontend runs on Windows (Windows 10, Windows 11 or Windows server 2019 or newer).
Software frontend requirement: Webserver with Perl, currently Xampp portable.
Installation: Not required, just download the ready to run software and start.
2. The backend server application cs_server
This is a Perl application that can runs on nearly any OS or NAS appliance.
Server tested on BSD (Free-BSD 14), Linux (Proxmox), OSX, Solaris/Illumos/SmartOS and Windows.
2. cs_connect (optional)
This module is only needed when you want to use your company/university https server (communication, keyserver)
Setup 1 2 3
1. Download Open-ZFS 2.2.3 for Windows
(Only needed if you want to manage a Windows ZFS filer)
https://github.com/openzfsonwindows/openzfs/releases
These are release candidates not final stables,
Check from time to time and use newest build!
For newer releases of Open-ZFS for Windows: Just install and reboot
Remember: Open ZFS on Windows is a beta under development.
Data on ZFS should be as save as on other Open-ZFS platforms and compatible
even when Windows crashes or BSOD happen.
ZFS pools are currently not auto imported after reboot.
Either use zpool import poolname or set a planned task with an import on bootup
and/or an autostart of napp-it cs
If zfs and zpool are not found in a terminal, add path to zfs files manually
$env:path +='C:\Program Files\OpenZFS On Windows'
2. Download xampp.zip minimal with the napp-it cs web-gui app included
or download a regular Xampp and add the napp-it folder.
Basic setup
- download https://www.napp-it.de/doc/downloads/xampp.zip and uncompress on Windows to c:\xampp
- Start web-GUI (mouse right click as admin on) /xampp/web-gui-it/data/start_as_admin.bat
to manage the Windows machine via browser: https://localhost
This iincludes a minimal Xampp version with only Apache + Perl that is needed for napp-it cs.
If you additionaly want Filezilla, Mercury, mySQL or Tomcat, download a full Xampp portable,
https://www.apachefriends.org/
3. Add other ZFS server as member ex Free-BSD or Linux/Proxmox
-Enable SSH on your ZFS server
-Upload "C:\xampp\web-gui\data\cs_server" to /var/web-gui (WinSCP as root)
-Start cs_server: perl /path_to_appfolder/start_server_as_admin.pl (Putty as root)
Add the ZFS server as member in menu ZFS servergroup with an auth string
Add the same auth string to /var/web-gui/cfg/server.auth
Server auth (like all keys in
napp-it cs) must be hex values 0-9a-f as they can be generated safely
from an easy to remember short pw.
- add Open-ZFS on Windows
Special options
If you already have Xampp (full)
Download newest napp-it nightly
uncompress folder web-gui to /xampp/web-gui
If you only need the server part
Download newest napp-it cs preview
uncompress folder cs_server and copy to any location of your BSD, Illumos, Linux, OSX, Windows or Solaris ZFS server
(prefered system folder location is /var/web-gui/data) Open a root terminal and start via "perl path to cs_folder/start_server_as_admin.pl"
newest infos:
https://www.napp-it.org/doc/downloads/napp-it cs.pdf
Update napp-it cs client/server on Windows to newest release, download
https://napp-it.org/doc/downloads/napp-it nightly.zip
unzip folder napp-it
- stop client software (Apache)
- delete c.\xampp\web-gui\data and replace data folder with newer version, start /xampp/web-gui/data/start_zfs-gui_as_admin.bat
Update napp-it cs server only on BSD/Linux/Unix, run:
wget -O - www.napp-it.org/nappitcs | perl
or download
https://napp-it.org/doc/downloads/cs server.zip
- unzip folder cs_server
- stop server software
- copy over cs_server folder with newer version
Open a root terminal and restart via "perl path to cs_folder/start_server_as_admin.pl"
or download Xampp directly and add the napp-it folder to /xampp
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/8.2.12/xampp-windows-x64-8.2.12-0-VS16-installer.exe
If you want to use a different folder than c:/xampp
You must execute "setup_xampp.bat".
The paths in the configuration files will be adjusted with this step.
read: https://www.apachefriends.org/faq windows.html
About Xampp
I decided to use Xampp portable as it offers a
whole webserver suite with Apache, FileZilla ftp, MercuryMail, MariaDB,
Perl, PHP, phpMyAdmin and sendmail. You can minimize size by deleting
functions beside Apache and Perl.the Solaris kernelbased SMB server
comes close. Combined with ZFS you have a dream team.
Main advantages of napp-it cs on Xampp.
It is a mobile „Copy and Run“ tool, no installation required
On Windows, simply download and start. Setup, Update or downgrade is a simple copy action.
Under development: Manage any ZFS server on any platform. Replicate between any.
Apache 2.4.58
Perl 5.32
the following parts of Xampp are not needed for a napp-it cs setup.
They are deleted in the minimal Xampp download.
MariaDB 5.4.32
PHP 8.2.12, 8.1.25 or 8.0.30
phpMyAdmin 5.2.1
Filezilla
Tomcat
Mercury
How much RAM do I need for napp-it cs
RAM for a ZFS filer has no relation to pool or storage size!
Calculate 2 GB for a 64bit OS, add 1-2 GB for a Solaris based filer and 3-4 GB for a BSD/Linux based filer for minimal read/write caching or ZFS can be really slow. RAM above depends on web-gui, numer of users or files, data volatility or wanted storage performance. Add more RAM for diskbased pools than SSD pools for a good performance.
With napp-it cs I suggest 8 GB as minimum for the Windows machine where the frontend web-gui is running, 16GB if you additionally use ZFS on Windows on that machine.
For the ZFS filers that you want to manage with napp-it cs there is no additional RAM requirement for the server app what means that napp-it cs can manage a Solaris/Illumos based ZFS filer with 2-3 GB RAM and a BSD/Linux/OSX/Windows filer with 4-6 GB RAM what allows to manage even a small ARM filerboard remotely with a web-gui (you only need ZFS and Perl on it)
Current state of napp-it cs:First beta basic Disk, Pool, vdev ,snap and job management
with newest Open-ZFS 2.2.3 features like draid or raid-z expansion.
Is it free?Yes, for private noncommercial homeuse.
Those who use it for work need a Pro version to pay for development
see https://www.napp-it.org/extensions/quotation en.html
Discuss:
https://forums.servethehome.com/index.php?forums/solaris-nexenta-openindiana-and-napp-it.26/
https://github.com/openzfsonwindows/openzfs/discussions
check issue tracker
https://github.com/openzfsonwindows/openzfs/issues?q=is%3Aissue+is%3Aopen+BSOD
https://forums.servethehome.com/index.php?threads/napp-it-for-zfs-on-windows.42971/ or
https://www.reddit.com/r/zfs/comments/19dpz70/zfs on windows first release candidate/
SMB performance aspects
https://www.borncity.com/blog/2023/01/30/microsofts-tcp-murks-in-windows-10-und-11-optimierung-ist-mglich
https://www.borncity.com/blog/2023/02/14/windows-10-11-grottige-netzwerktransfer-leistung-hohe-windows-11-cpu-last-teil-1/
https://www.borncity.com/blog/2023/02/14/windows-11-netzwerktransfer-leistung-und-cpu-last-optimieren-teil-2/
SMB direct with RDMA to ZFS, first impressions
https://www.hardwareluxx.de/community/threads/microsoft-hyper-v-stammtisch.1114189/page-22#post-30262245
First impressions with SMB direct (RDMA) and 100G nics under Server 2019 free
(in German, use Chrome to translate on the fly)
https://github.com/MicrosoftDocs/windowsserverdocs/blob/main/WindowsServerDocs/administration/performance-tuning/role/file-server/smb-file-server.md
extend napp-it with private menues
If you want to manage Xampp or other services via private napp-it menues (update/downgrade safe):
- create a private menu folder 1nn_xx in /xampp/[napp-it]/_my/menues for example 102_my_first_menue
- place a file action.pl with your menu actions within, see other examples under _my/menues
Typical structure of a napp-it menu script.
1. collect all relevant infos into a Perl hash ex %current
you can display hash state via &print_hash(%current);
like i do in menu ZFS Filesystems > data zfs
2. interact with user to manage settings
3. execute commands via &exe("powershell command"); with admin permissions.
To debug a script, use &mess($x), &print_var($x); &print_array(@x) or &print_hash(%x);
To edit Perl scripts, use the DZsoft Perl editor (now free)
http://www.dzsoft.com/register.htm?app=dzperl
changelog
Jan. 22: Menu ZFS filesystem with smb share enable/ disable
Jan 23 Menu filesystems with option to configure drivelatter
Jan 26 Sharing in menu ZFS filesystem basically ok
Jan 26b: Skip Windows System disk as available for ZFS
Jan 26d: Menu Pools and Filesystem basically ok, not all functions tested,
you can hide disks in Settings foe Windows only use
Jan 28a/28b improvements in menu Pools and Filesystems
Menu Disks, Pools, Filesystems and Snaps basically ok
Feb 03 Property like atime, nbmand or readonly: ok
(require unmount/ remount cycle)
Feb 10 Special and dedup vdevs stat in menu Pools
napp-it is now portable regarding path and web-gui name, you can keep versions
like /xampp/napp-it and /xampp/napp-it2. Start wanted version with /xampp/napp-it(n)/data/start_web-gui_as_admin,bat
Feb 12b first beta
jobs now working (scrub, snap and other)
new menu System with kstat and registry infos
Support for draid and raid-z expansion
Feb 15a
Some pool level properties can be currently changed via CLI only
Despite some tunings, napp-it gui is slower on Windows than Solaris
Feb 20
Napp-it can manage a group of ZFS server, currently Windows
but there are plans to manage BSB, Linux and OSX ZFS servers as well.
Feb 25
OmniOS ok with many filesystems or snaps
Disk detection basically working on OmniOS/Solaris
Feb 26:
napp-it cs runs with OmniOS, LInux and Windows as members
Mar 20
Jobs like Scrub or Snap can be started remotely from the Windows client
Large data transfers (up to 5M) like ZFS property or Snap lists
Server: Just copy to any location and run
Mar. 25
Start work on remote jobs like snap scrub, replicate
Mar.29
Remote/Remote replication
not completely ready but basically working
Apr 02
Replikation on remote hosts
- ok local/local
- ok on some combinations remote/remote, fails on others
Apr 05
- Replication between members ok (beside Windows)
newest infos:
https://www.napp-it.org/doc/downloads/napp-it on windows.pdf