A Ovest Di Paperino

Welcome to the dark side.

Il manuale del perfetto ZFS Home Server

Dopo tante tribolazioni sono venuto a capo di quella che è la soluzione più congeniale alle mie piccole grandi esigenze di storage e “servizi online ad uso famigliare”. La soluzione ideale prevedeva WHS2011 e un OS ZFS-friendly girare a braccetto su un hypervisore, ma i vari esperimenti sono falliti.

XEN non riusciva a configurare correttamente le schede di rete, che acchiappavano un indirizzo IP ad intermittenza e senza la possibilità di pingare da e verso l’ipervisore.

Hyper-V ha un modello di driver paravirtualizzato, ovvero i sistemi operativi guest per funzionare hanno bisogno di driver speciali, inesistenti per BSD/Solaris (che pulo, eh?).

VMWare ESXI non supporta le schede network per desktop, ci sono guide che spiegano come creare dei dischi di installazione ad-hoc ma i vari tentativi si sono rivelati infruttuosi.

Demoralizzato da queste hypervisioni moderne ero pronto a buttare il progetto alle ortiche quando mi è venuta in mente (o mi è stata suggerita?) la possibilità di installare uno di quei prodotti antecedenti gli hypervisori, come Virtual Server 2005 R2 o VMWare server 2.x, entrambi gratuiti.

Il primo, causa vetusta cessazione di attività, è praticamente bloccato dal poter essere installato su Windows Server 2008 R2 e derivati, quali appunto WHS2011. Ho dovuto circumnavigare non poco e i risultati mi son sembrati poco stabili. Il secondo invece ha un’interfaccia WEB piuttosto antipatica e la schermata di login HTTPS non può essere disattivata generando altrettanto antipatici errori di certificato non valido in tutti i browser; tra l’altro l’unico browser supportato è IE, ma poco male. La scelta mi è parsa obbligata.

L’ostacolo successivo è stato il supporto dei dischi RAW, a quanto pare “disabilitato” nella versione 2.x di VMWare server, ma con l’aiuto di VMWare Workstation è stato possibile creare i file VMDK appositi da aggiungere a manina nel file VMX finale (vedasi).

Poi è stata la volta di scegliere l’OS per la sezione NAS. Ho provato i quattro OS indicati nel post precedente, avrei voluto evitare a tutti i costi di sbattermi con una CLI per me ostica, ma alla prova dei fatti EON è perfetto. Leggero (alla fine mi pare occupi non più di 400MB) e incredibilmente stabile.

Ennesimo ostacolo il throughput con velocità da dial-up. Incredibile a dirsi il problema scompare se si installano i driver virtuali di rete contenuti in Virtual Server 2005 R2. Ho chiesto ad un collega di estrarre il necessario e costruire un MSI striminzito che faccia solo quello, mi ha promesso che mi avrebbe aiutato. Speriamo bene.works on my machine, starburst

Finalmente poi è stata la volta di configurare a manina la parte più alta dello stack NAS, ovvero gli utenti, le share, l’accesso anonimo, ecc. Il wiki dedicato EON è abbastanza completo ma molto dispersivo e decisamente impegnativo per i dislessici. Ho creato una serie di “ricette a riga di comando” per fare tutto quello che può servire. In un futuro remoto potrei persino sbizzarrirmi con qualche bash script per automatizzare le procedure più noiose. Come al solito la garanzia è indicata a destra e valida per la ISO CIFS-64 bit di eon storage.

Install/setup
Boot da CD usando la voce no ACPI
install.sh
(reboot)
setup
chmod 777 /mnt/eon0/boot/grub/menu.lst
vi /mnt/eon0/boot/grub/menu.lst
(aggiungere -B pci-eb=true dopo la dicitura unix)
updimg.sh /mnt/eon0/boot/x86.eon
(reboot)

Aggiungere gruppi ed utenti
groupadd -g 601 readers
useradd -u 501 -g groupid -s /bin/false username
passwd username

Creare un pool di drive RAID-Z
zpool create poolname raidz disk1 disk2 disk3

Creare un folder e condividerlo
zfs create -o casesensitivity=mixed -o sharesmb=on PoolName/FolderName
zfs set sharesmb=name=ShareName PoolName/FolderName
zfs set aclinherit=passthrough-x PoolName/FolderName
chown -r username:groupname /PoolName/FolderName
chmod A+owner@:full_set:fd:allow,everyone@:read_set/execute:fd:allow
/PoolName/FolderName

Attivare la possibilità di accesso anonimo
sharemgr create mysharegroup
idmap add winname:Guest unixuser:nobody4

Attivare l’accesso anonimo ad una share
sharemgr set -P smb -p sharesmb=guestok=true shareName mysharegroup
zfs set sharesmb=guestok=true,name=shareName
PoolName/FolderName

Disabilitare la rete (per debugging)
ifconfig e1000g0 unplumb

Abilitare la rete
ifconfig e1000g0 plumb
ifconfig e1000g0 dhcp

Disabilitare l’output degli errori SMB sulla console (fastidiosi!)
vi /etc/syslog.conf     (sostituire /dev/sysmsg con /var/adm/messages, in tutto due sostituzioni)

Linkografia essenziale:

Acer easyStore H340: Using EON to Fool It Into Being Less of a Piece of Trash
Home Fileserver: ZFS File Systems
EON ZFS Storage
Solaris ZFS Administration Guide
ZFS Cheatsheet
Oracle Solaris 10 Docs
Solaris Service Management Facility Quickstart Guide
OpenSolaris New User FAQ
How Solaris Disk Device Names Work
How ZFS works
CHMOD for Solaris

-quack