napp-it cs - ZFS web-gui for any OpenZFS like Proxmox and Windows AiO systems

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

gea

Well-Known Member
Dec 31, 2010
3,567
1,402
113
DE
napp-it cs is a port of napp-it se, the web-gui for Solaris based systems, available since around 15 years
It is a portable ZFS web-gui (copy and run) for Free-BSD, Illumos, Linux, OSX and Windows (incl Storage Spaces there)

Main platforms are Linux with a focus on Proxmox as it includes ZFS per default and is the superiour Linux All in One system (VM and Storageserver)
and Windows with additional Storage Spaces, Hyper-V, best of all ACL support and SMB Direct if you need SMB with 3-10 Gbyte/s and lowest CPU load/latency

example:
Setup on Proxmox: https://napp-it.org/doc/downloads/proxmox-aio.pdf
Setup on Windows: https://napp-it.org/doc/downloads/windows-aio.pdf


a screenshot with the extended zpool status on Proxmox
with support for disks, partitions, raidZ expansion, direct io, fast dedup,...

1753259746183.png
 
Last edited:

gea

Well-Known Member
Dec 31, 2010
3,567
1,402
113
DE
Under current Proxmox, you can run the Proxmox GUI within a frame in napp-it cs to manage both all together.
(for a full screen VM console start the Proxmox gui in a new tab)

1754815396666.png
 

gea

Well-Known Member
Dec 31, 2010
3,567
1,402
113
DE
The efficiency problem
Proxmox with storage VM vs Proxmox as barebone NAS

Proxmox is the perfect Debian based All in One Server (VM + Storageserver) with ZFS out of the box . For the VM part it is best to place VMs on a local ZFS pool for best of all data security and performance due direct access, RAM caching or ssd/hd hybrid pools. This means that you should count around 4GB RAM for Proxmox plus the RAM you want for VM read/write caching ex another 8-32 GB. Ontop these 12-36 GB you need the RAM for your VMs.

If you want to use the Proxmox server additionally as a general use NAS or to store or backup VMs you can add a ZFS storage VM with the common options Illumos based (minimalistic OmniOS, 4-8GB min with best of all ACL options in the Linux/Unix world), Linux based (mainstream, 8-16GB RAM min) or Windows (fastest with SMB Direct and Windows Server, superiour ACL and auditing options, 8-16 GB RAM min). You can extend the RAM of a storage VM to increase RAM caching. In the end this means you want Proxmox with a lot of RAM + a storage VM with a lot of RAM to additionally serve data over NFS or SMB. If you want to use the pools on the storage VM for other Proxmox VMs, you must use internal NFS or SMB sharing to access these pools from Proxmox. This adds cpu load, network latency and bandwith restrictions what makes the VMs slower.

The alternative is to avoid the extra storage VM with full OS virtualisation and the extra steps like hardware passthrough. Just add SAMBA (or ksmbd) and ACL support to Proxmox to have an always on SMB NAS without additional ressource demands. Not only more resource efficient but also faster as NAS filer (you can use the whole available RAM for Proxmox) and as storage location for VMs.

With napp-it cs and the web-gui on another server for zentralized management of a servergroup, the RAM need for a full featured ZFS web-gui on Proxmox is around 50KB. If the Apache Web-gui frontend runs on Proxmox, expect around 2GB RAM need.
 

gea

Well-Known Member
Dec 31, 2010
3,567
1,402
113
DE
Proxmox VM Settings Backup

Coming from ESXi, I am used to a VM being a folder that contains the virtual disks and the .vmx configuration file. For a backup, it's enough to back up or version that folder (e.g., with ZFS snapshots) to be able to restore (import) the VM from it.

When you create a separate ZFS pool in Proxmox and put VMs on it, you can back up or version the virtual disks with a ZFS snap or replication. However, you can't restore them as easily because Proxmox stores the corresponding configuration files in /etc/pve. It would be great if a ZFS snapshot or a ZFS replication could include the VM config files. One manual method would be to copy the /etc/pve folder to the ZFS file system before taking a snap, so the current VM configuration is included in the respective snapshot.

In napp-it cs, I integrated this as a snap option, which allows you to include /etc/pve in every snap under /ZFS filesystem/_include/etc_pve. A manual recovery then simply means restoring the ZFS pool with the zvols along with /etc/pve. If the pool has a different name, you can just edit the VM config files.

1755771640297.png
 

gea

Well-Known Member
Dec 31, 2010
3,567
1,402
113
DE
Proxmox as All in One (Hypervisor + barebone SMB NAS)

On Windows or Illumos/Solaris you can simply assign fine granular ntfs SMB permissions to regular users.
On Linux/ Proxmox you need Linux + SMB (ksmbd or SAMBA) user accounts, each with a different account and password management.
Permission wise you use Posix ACL as defaults on Linux.

Howto :
When you do not want SMB shares with anonymous access (what is easy to setup), you must

Set ZFS properties aclmode and aclinherit to passthrough, acltype to Posix and xattr to sa

Then create a user and assign the user to the group @staff (to use group @staff for permissions)
Then create a Posix ACL rule that allows @staff r/w access to tank/data in menu Filesystem > ACL


Share a ZFS filesystem with a SMB share config setting like (ZFS Filesystem tank/data)
(with napp-it, you can set settings when enabling a share like tank/data in menu Filesystems)

valid users = @staff
read only = no


with some basic settings in the [global] area of the config file that you can set manually example via WinSCP
(/etc/samba/smb.conf or /etc/ksmbd/ksmbd.conf)

You can then connect as user via SMB

avoid:
- sharing of regular folders (share ZFS filesystems, do not share ZFS root filesystem)
- nested ZFS filesystems below a shared ZFS filesystem



1758791710282.png
 
Last edited: