Info Napp-it cs web-gui for (m)any ZFS server or servergroups

gea

Senior member
Aug 3, 2014
211
12
81
About

Napp-it is a webbased management tool for a ZFS server since the early days of ZFS on Sun Solaris or OpenSolaris. Now ZFS is available on BSD, Illumos (Solaris fork), OSX and Windows where the first release candidate is available now. This gives a unique combination. The original Windows SMB server is not only quite the fastest one, it is also the most Windows compatible one especially regarding ACL permissions where only the Solaris kernelbased SMB server comes close. Combined with ZFS you have a dream team.

Main advantages of napp-it cs (Client-Server edition):
It is a mobile „Copy and Run“ application, no installation required
On Windows, simply download and start. Setup, Update or downgrade is a simple copy action.
It is intended that you can manage any ZFS server on any platform or replicate between any.

Requirements:
Napp-it cs needs a simple webserver with Perl and cgi capability. I decided to use Xampp portable as it offers a whole webserver suite with Apache. You can minimize size by deleting service folders beside Apache and Perl.

Current state:
First beta with basic Disk, Pool, vdev and snap management.


Setup

1. Download Open-ZFS for Windows

2. Download Frontend web-gui Xampp.zip with napp-it (portable app, no installation required, just copy and run)
uncompress to c:\xampp

3. Download Backend Server cs_server.zip
uncompress and copy to any location of your BSD, Illumos, Linux, OSX, Solaris or Windows server

4. Open a Browser on Windows with adress http://localhost
or from a remote client with the ip adress of Windows.

more


Not convinced?
Uninstall Open-ZFS and delete c:\xampp

Discuss napp-it cs for ZFS on Windows:

Discuss Open-ZFS on Windows


Current state of napp-it cs for ZFS on Windows:


I'll keep this initial thread up to date
 
Last edited:
  • Like
Reactions: Shmee

Shmee

Memory & Storage, Graphics Cards Mod Elite Member
Super Moderator
Sep 13, 2008
7,423
2,461
146
This is neat, I didn't know ZFS could be ran on Windows. Which versions are supported?
 

gea

Senior member
Aug 3, 2014
211
12
81
A Windows SMB filer with ZFS, why and when?

There was a discussion about this and the answer was:
Windows SMB direct with RDMA can be a powerful option with high performance needs ex for (multiuser) 4k+ video editing and large (Petabyte) storage that is more secure, feature rich and faster than ntfs/ReFS (but be aware, current Open-ZFS 2.2 for Windows is release candidate/beta)

When it comes to performance over security:

(in German, use Chrome to translate on the fly)

SMB Performance tuning
 
Last edited:

gea

Senior member
Aug 3, 2014
211
12
81
If you can read German (or translate via Chrome):

First impressions with SMB direct (RDMA) and 100G nics under Server 2019 free
 

gea

Senior member
Aug 3, 2014
211
12
81
Napp-it is now portable regarding path and name of napp-it folder. This will allow a online update/downgrade in future similar to the Solaris version. You can now keep versions like /xampp/napp-it and /xampp/napp-it2. Start the version with /xampp/napp-it[n]/data/start_web-gui_as_admin.bat, A Job background task will allow to start tasks without any modifications in Windows (under development, not ready). Menu Pools shows now state of dedup and special vdevs.

special.PNG
 

gea

Senior member
Aug 3, 2014
211
12
81
newest beta
jobs now working (scrub, snap and other)
new menu System with kstat and registry infos

Pool > Expand Raid-Z (raid-z expansion)
Pool > Create: draid

todo
other jobs
performance ex phys blocksize of ZFS under Windows (512B -> 4K)

To update to newest, download (and replace old napp-it folder)
https://napp-it.org/doc/downloads/napp-it_nightly.zip
 
Last edited:

gea

Senior member
Aug 3, 2014
211
12
81
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)
DzSoft's Order Page

 

gea

Senior member
Aug 3, 2014
211
12
81
groups.png


Napp-it for ZFS on Windows now supports groups to manage several Windows ZFS servers. This will be extended later to non-Windows servers like OmniOS or Linux but BSD, OSX or SmartOS are also planned options

You can also play with it for first steps with *BSD, Linux, Illumos, OSX or Solaris ZFS server.
Please report insights.

Download (unzip and replace /xampp/[nappit]/[data] ([names] can be modified)
https://napp-it.org/doc/downloads/napp-it_nightly.zip

unzip folder [napp-it]
- stop Apache and background services (cmd windows)
- replace c.\xampp\[napp-it] with newer version.

newest infos:
https://www.napp-it.org/doc/downloads/napp-it on windows.pdf


update 21.2.
Socketserver
I have added code to detect client OS (BSD,Linux,OSX)
napp-it now displays os:hostname as header ex W10:hostname and not only hostname

Tests on OmniOS,. I have included Perl modules not preinstalled on OmniOS
On OmniOS the socketserver often stops after requests, need time to investigate
 

gea

Senior member
Aug 3, 2014
211
12
81
It really excites me when I sit in front of a Windows desktop and manage my OmniOS ZFS servers with same performance like on a local napp-it GUI or via Putty. A simple select and napp-it switches to another ZFS server.

Works like a charm beside large files. A zfs get all produces around 1 MB data and this seems too much for the socketserver in sync mode or even filetransfer mode with tmp files. Will need to check async socket connections. ZFS GUI remote control with zfs/zpool functions or cli commands via napp-it cmd form works on OmniOS and propably on BSD/Linux/OSX. Disk detection must be next per OS family.

New name for napp-it for ZFS on Windows is napp-it cs (client/server edition) as it should be able to manage (m)any ZFS servers.
 

gea

Senior member
Aug 3, 2014
211
12
81
napp-it cs can now manage OmniOS, Linux and Windows ZFS servers

I have tested with Proxmox but any Linux ZFS server or appliance should basicall work
You only need Perl and ssh root access.

triple.PNG

Infos: napp-it // webbased ZFS NAS/SAN appliance for OmniOS, OpenIndiana and Solaris , ZFS Server for Windows
Proxmox: napp-it // webbased ZFS NAS/SAN appliance for OmniOS, OpenIndiana and Solaris : Linux

current nightly and Xampp2 are up to date

There remains a lot of work,
the basic problems are solved.
 

gea

Senior member
Aug 3, 2014
211
12
81
There is a new Open-ZFS 2.2 rc.13 for Windows

Jorgen Lundman: " I threw in some code that looks up ashift to use instead of 512. If you can, check out OpenZFSOnWindows-debug-2.2.99-13-gfddfb6aeb5.exe. I did the most obvious places, but there are quite a few ways to query that.

*** Please update, the trim bug might be corrupting pools! ***

Now trim is disabled by default, to check it works (on test pools right?) change
HLM/System/ControlSet001/Services/OpenZFS
windows_enable_trim to 1. "

Care: ashift is not a pool but a vdev property. Different ashift in a pool is bad but can happen if you add vdevs without forcing ashift manually.

 

gea

Senior member
Aug 3, 2014
211
12
81
Open-ZFS for BSD, Linux and OSX (rc) is now at 2.2.3 with improvements around trim and many bugfixes,
https://github.com/openzfs/zfs/releases/tag/zfs-2.2.3

Open-ZFS for Windows is 2.2.2 but as far as I know Jorgen Lundman
2.2.3 on Windows (rc) will be out soon

OpenZFS on Illumos is seperate as it has its own repository with integration
of Open-ZFS improvements after an additional review
 

gea

Senior member
Aug 3, 2014
211
12
81
Besterino is best..

Tests with Window SMB direct rdma/ vhdx/iscsi vs local performance:
SMB performance 11GB/s read and 5GB/s write on 100G nic, quite the same as local performanc with lowest CPU load.

This makes Windows superiour for any high performance workload (ex 4k+ video editing)
with ntfs, ReFS or ZFS on Windows

(use Chrome to translate on the fly)
 

gea

Senior member
Aug 3, 2014
211
12
81
New release of ZFS on Windows-2.2.3rc1, it is fairly close to upstream OpenZFS-2.2.3
  • Redone CPUID probe, please verify it is correct
  • Tunable: "zfs_bclone_wait_dirty" set to wait instead of error from clonefile.
  • DDT work (memory reduction, speedup)
  • zfs list: add '-t fs' and '-t vol' options
  • Add slow disk diagnosis to ZED
  • Add 'zpool status -e' flag to see unhealthy vdevs
  • BRT: Fix FICLONE/FICLONERANGE shortened copy
  • (zpool: Add slot power control, print power status) not on macOS
  • spa: make read/write queues configurable
  • Allow block cloning across encrypted datasets
  • Add libfetch for https://
 

gea

Senior member
Aug 3, 2014
211
12
81
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.
 

gea

Senior member
Aug 3, 2014
211
12
81
In ZFS on Windows 2.2.3 from yesterday there was a problem with CPUID detection that could crash Windows during setup

There is a new version that fix this.
 

gea

Senior member
Aug 3, 2014
211
12
81
I have uploaded a new nightly of the client/server ZFS GUI napp-it cs (Mar. 20)

- Allows large zfs list or get all (up to several MB)
- Client/ Frontend web-ui app (Windows): Copy and Run
- Server/ Backend software (BSD, Linux, OSX/ Solaris/Illumos, Windows): Copy and Run from any location like /var/web-gui, desktop or ZFS pool
- Jobs like snap or scrub run remote, replication any source /any destination memberserver is next.
- Gui performance: I would say very good especially as there is no local ZFS database to allow CLI modifications

see napp-it // webbased ZFS NAS/SAN appliance for OmniOS, OpenIndiana and Solaris , ZFS Server for Windows
 

gea

Senior member
Aug 3, 2014
211
12
81
There are new release candidates of Open-ZFS 2.2.3 for OSX and Windows


btw
the more people are testing Open-ZFS 2.2.3 on OSX or Windows and report problems,
the faster remaining installer, driver or integration problems get fixed.
ZFS 2.2.3 on OSX or Windows is quite identical to Upstream Open-ZFS 2.2.3 so data security
should be already as good or bad as ZFS on Linux

 
Last edited:

gea

Senior member
Aug 3, 2014
211
12
81
TrueNAS as a servergroup member

- 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
 

gea

Senior member
Aug 3, 2014
211
12
81
napp-it cs beta, current state (apr.05)

Server groups with remote web-management: (BSD, Illumos, Linux, OSX, Windows): ok
ZFS (pool,filesystem,snap management): ok on all platforms
Jobs (snap, scrub, replication from any source to any destination): ok beside Windows as source or destination
(Windows as source works with nmap/netcat on Windows)