From af0a70ffed1528a837fb8a7f0d95ce4e9bdaad8e Mon Sep 17 00:00:00 2001 From: DoTheEvo Date: Mon, 2 Jan 2023 11:19:10 +0100 Subject: [PATCH] update --- trueNASscale/readme.md | 168 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 155 insertions(+), 13 deletions(-) diff --git a/trueNASscale/readme.md b/trueNASscale/readme.md index 961dc05..3826f33 100644 --- a/trueNASscale/readme.md +++ b/trueNASscale/readme.md @@ -11,8 +11,8 @@ Network storage operating system managed through web GUI.
* [Official site](https://www.truenas.com/truenas-scale/) * [Forums](https://www.truenas.com/community/forums/truenas-scale-discussion/) -TrueNAS SCALE is based on debian linux. ZFS file system is at the core. -Running nginx and using pythong and django for the web interface. +Based on debian linux with ZFS file system is at the core. +Running nginx and using python and django for the web interface. [ZFS for Dummies](https://blog.victormendonca.com/2020/11/03/zfs-for-dummies/) @@ -28,9 +28,9 @@ I hold strong opinion on backups > raid.
So I make zero use of zfs raid features and use it just as nice web GUI for samba and nfs sharing. -Good alterntive I could have go for is [openmediavault](https://www.openmediavault.org/), -but truenas seems a bigger player. And if I did not luck out with the HBA card, -I would be buying Fujitsu 9211-8i from ebay. +Good alterntive is [openmediavault](https://www.openmediavault.org/), +but truenas seems a bigger player. And if I would have not lucked out +with the HBA card, I would be buying Fujitsu 9211-8i from ebay. # Installation @@ -50,6 +50,7 @@ I would be buying Fujitsu 9211-8i from ebay. * SCSI Controller was left at default - vmware paravirtual * switch tab and change boot from bios to uefi * click through the Installation +* pick admin user and set password * login, shutdown * ESXi - edit VM, add other device, PCI device, @@ -57,30 +58,36 @@ I would be buying Fujitsu 9211-8i from ebay. ### Static IP address -* Network > Interfaces > uncheck DHCP > add Aliases > - fill IP/mask, on save it asks for the gateway IP -* set hostname and DNS server in Network > Global Configuration +* turn off dhcp and set static ip and mask
+ Network > Interfaces
+ uncheck DHCP; Add Aliases, IP address=10.0.19.11; mask=24
+ on save it asks for the gateway IP +* set hostname, DNS server and enable netbios discovery
+ Network > Global Configuration > Settings
+ check `NetBIOS-NS`; set hostname; set dns if it's not ### Set time * Set time zone and date format
System Settings > General > Localization > Settings
+ Timezone=Europe/Bratislava; Date Format=2 Jan 2023 If there are issues with the time... enable ssh service, ssh in to the truenas check few things * `timedatectl` * `ntpq -p` +* `sudo ntpq -c sysinfo` * `systemctl status ntp.service` * `sudo journalctl -u ntp.service` * `cat /etc/ntp.conf` -* `hwclock --systohc --utc` +* `sudo hwclock --systohc --utc` ![timedatectl](https://i.imgur.com/aIMm7WT.png) For the issue I faced, I think what did the trick was sync time through dashboard when I had notice of wrong time for like 4th time. -Then I used set the UTC time in bios using `hwclock --systohc --utc` +Then I set the UTC time in bios using `hwclock --systohc --utc` and then I started `sudo systemctl start ntp` which previously was failing, after that `ntpq -p` worked. @@ -128,24 +135,159 @@ For destruction of pools - Storage > Export/Disconnect button ### SMB share -Should be go-to way to share for most cases. +Should be go-to for most cases, as all systems(win, linux, mac, +android, ios) have mature reliable smb clients. + +To see connected users, SSH in and `sudo smbstatus -b` * Windows (SMB) Shares > Add * set path to the dataset to share * set the name under which it will be shared * set Purpose if there is a special case -* in advanced settings allow guest access if desired +* on save the service will be enabled, if its not already -This created a share, now to deal with the permissions
+Now to deal with the permissions
There are two type of permissions accessible through icons in the share view * Share ACL - set to allow everyone by default * Edit Filesystem ACL - where one actually wants to control permissions +Create smb user and allow the access to the share + +* Credentials > Local Users > Add +* set user name, for example: smb_usr
+ note the default UID for very first account added manually being `3000` +* set password +* switch to Shares > Edit Filesystem ACL (shield icon) +* in Edit ACL > Add Item > smb_usr +* set desired permissions + +Trying to access the IP of truenas instance with the now set credentials +should allow full access to the share. + +Worth noting that it's the UID number that identifies users, +not the username. + +#### SMB share for everyone + +One might think that just allowing group `everyone@` access is enough. +But when someone connects to a share, there must be a username used. +For this a guest account needs to be enabled, +which under the hood is named `nobody` + +* in Shares > Windows (SMB) Shares > edit the share +* Advanced Options > Allow Guest Access + +#### Mounting network share at boot + +Using systemd. And the instructions from [arch wiki.](https://wiki.archlinux.org/title/samba#As_systemd_unit) + +`/etc/systemd/system/mnt-bigdisk.mount` +```ini +[Unit] +Description=12TB truenas mount + +[Mount] +What=//10.0.19.11/Dataset-01 +Where=/mnt/bigdisk +Options=rw,username=ja,password=qq,file_mode=0644,dir_mode=0755,uid=1000 +Type=cifs +TimeoutSec=10 + +[Install] +WantedBy=multi-user.target +``` + +`/etc/systemd/system/mnt-bigdisk.automount` +```ini +[Unit] +Description=12TB truenas mount + +[Automount] +Where=/mnt/bigdisk + +[Install] +WantedBy=multi-user.target +``` ### NFS share +Linux to linux file sharing. Simple. + +Before creation of nfs share, a linux permission group should be planned to use.
+Lets say that a group named `nfs` with gid `1100` + +on linux client machine + + - `sudo groupadd -g 1100 nfs` - create the group + - `sudo gpasswd -a bastard nfs` - add the user in to the group + - log out, log in, check with `id` + +Now on truenas the new group is created and set for the dataset +and NFSv4 share is set. + +* create nfs group with guid 1100
+ Credentials > Local Groups > Add > GID = 1100; Name = nfs +* create new Dataset
+ Datasets > Add Dataset > Name it; keep defaults +* set `nfs` group for this dataset root + Datasets > Permissions (scroll down, bottom right) > Edit
+ Group = nfs; check `Apply Group`; check `Apply permissions recursively`
+ Save +* switch NFS to version 4
+ Shares > UNIX (NFS) Shares > three dots > Config Service
+ check `Enable NFSv4`; check `NFSv3 ownership model for NFSv4`
+ Save +* Set nfs share
+ Shares > UNIX (NFS) Shares > Add
+ pick path to the dataset
+ Save + + +Test mounting on client machine, in my case arch linux machine, +[here](https://wiki.archlinux.org/title/NFS#Client) is wiki on nfs + +* check you see the share `showmount -e 10.0.19.11` +* mount the share `sudo mount 10.0.19.11:/mnt/Pool-02/sun/ ~/temp` +* should work can check version using `nfsstat -m` or `rpcinfo -p 10.0.19.11` + +#### Mounting network share at boot + +Using systemd. And the instructions from [arch wiki.](https://wiki.archlinux.org/title/NFS#As_systemd_unit) + +`/etc/systemd/system/mnt-truenas.mount` +```ini +[Unit] +Description=Truenas 6TB in stripe + +[Mount] +What=10.0.19.11:/mnt/Pool-02/sun +Where=/mnt/truenas +Options=vers=4 +Type=nfs +TimeoutSec=10 + +[Install] +WantedBy=multi-user.target +``` + +`/etc/systemd/system/mnt-truenas.automount` +```ini +[Unit] +Description=Truenas 6TB in stripe + +[Automount] +Where=/mnt/truenas + +[Install] +WantedBy=multi-user.target +``` + +handy commands + +* `lsof ~/temp` - find what uses files when trying to unmount + ### iSCSI share ### Data protection settings