TrueNAS: Difference between revisions

From Bitpost wiki
No edit summary
No edit summary
Line 1: Line 1:
== Overview ==
== Overview ==


== Pools ==
=== Pools ===


FreeNAS provides storage via Pools.  A pool is a bunch of raw drives gathered and managed as a set.  My pools are one of these:
FreeNAS provides storage via Pools.  A pool is a bunch of raw drives gathered and managed as a set.  My pools are one of these:
Line 26: Line 26:
* raidz3: three drives for parity, three can be lost; slowest
* raidz3: three drives for parity, three can be lost; slowest


== Datasets ==
=== Datasets ===


Every pool should have one dataset.  This is where we set the permissions, important for SAMBA access.
Every pool should have one dataset.  This is where we set the permissions, important for SAMBA access.
Line 43: Line 43:
   Flags Inherit
   Flags Inherit


== Windows SMB Shares ==
=== Windows SMB Shares ===


Share each dataset as a Samba share under:
Share each dataset as a Samba share under:
Line 52: Line 52:
Use the same ACL as for the dataset.
Use the same ACL as for the dataset.


=== Installed to HIVE VM on melange proxmox ===
==== Set up pools ====
I didn't want to lose storage on the shitty pile of drives I started with, so I set up three drives as standalone striped pools, and 2 sets of pairs as striped pools.  That means no loss of storage and no safety AT ALL except that striping will tell me AFTER they've started going bad, bahahaha.  I need to spend $3k on 10 ssd NAS drives to get to a better place.  Not now.
==== Set up datastores ====
It seems I had to set up datastores under my pool root datastores, just so I could add ACL settings to give complete control to the m Samba user.  I used the root name with a -ds suffix.  I set sharing to SMB.  I set the ACL to @owner m:m.  Make sure to keep the ACL set to Basic, it's easy to screw up and once you do, files on the system will have screwed up permissions and you might have to fix and apply permissions recursively.


==== Set up user ====
==== Set up user ====
I set up m user (1000) and m group (1000)
I set up m user (1000) and m group (1000)


==== Set up shares ====
 
I set up shares for each of the ACL datastores.
== Configuration ==


WARNING I had to set these  Auxillary parameters in the SMB config so that symlinks would be followed.
WARNING I had to set these  Auxillary parameters in the SMB config so that symlinks would be followed.
Line 89: Line 81:
  System > Email > from email > abettersoftwaretrader@gmail.com, smtp.gmail.com 465 Implicit SSL, SMTP auth: (email/API password)
  System > Email > from email > abettersoftwaretrader@gmail.com, smtp.gmail.com 465 Implicit SSL, SMTP auth: (email/API password)


=== Troubleshooting ===
== Troubleshooting ==


SOME of my shares were throwing '''Permission Denied''' errors on mv.  Solutions:
SOME of my shares were throwing '''Permission Denied''' errors on mv.  Solutions:
* I applied permissions again, recursively, then restarted the SMB service on hive and the problem went away.
* I applied permissions again, recursively, then restarted the SMB service on hive and the problem went away.
* You can also always go to the melange hive console, request a shell, and things always seem to work from there (but you're in FreeBSD world and don't have any beauty scripts like mh-move-torrent!)
* You can also always go to the melange hive console, request a shell, and things always seem to work from there (but you're in FreeBSD world and don't have any beauty scripts like mh-move-torrent!)
=== Later plans ===
Get a bunch (7 or 10?)_of similar ssds and set up a robust raid2z NFS pool.  Gonna cost a couple thousand, look for a NAS drive deal. 
Right now, the price is high, everything good is at least $100/1TB, and I need a good 40TB to get 30TB of robust storage.

Revision as of 14:26, 2 April 2022

Overview

Pools

FreeNAS provides storage via Pools. A pool is a bunch of raw drives gathered and managed as a set. My pools are one of these:

Pool type Description
single drive no FreeNAS advantage other than health checks
raid1 pair mirrored drives give normal write speeds, fast reads, single-fail redundancy, costs half of storage potential
raid0 pair striped drives gives fast writes, normal reads, no redundancy, no storage cost
raid of multiple drives raidz: optimization of read/write speed, redundancy, storage potential

The three levels of raidz are:

  • raidz: one drive is consumed just for parity (no data storage, ie you only get (n-1) storage total), and one drive can be lost without losing any data; fastest
  • raidz2: two drives for parity, two can be lost
  • raidz3: three drives for parity, three can be lost; slowest

Datasets

Every pool should have one dataset. This is where we set the permissions, important for SAMBA access.

Dataset settings:

name #pool#-ds
share type SMB
user m
group m
ACL
 who everyone@
 type Allow
 Perm type Basic
 Perm Full control
 Flags type Basic
 Flags Inherit

Windows SMB Shares

Share each dataset as a Samba share under:

Sharing > Windows Shares (SMB)

Use the pool name for the share name.

Use the same ACL as for the dataset.


Set up user

I set up m user (1000) and m group (1000)


Configuration

WARNING I had to set these Auxillary parameters in the SMB config so that symlinks would be followed.

  • Services > SMB > Actions > configuration > Auxillary Parameters:
unix extensions = no
follow symlinks = yes
wide links = yes
  • Stop and restart SMB service

Seems good for now! I can access them from elsewhere with this /etc/fstab goo:

# MDM FreeNAS has arrived
//hive/sassy /spiceflow/sassy cifs credentials=/root/samba_credentials,uid=1000,gid=1000,file_mode=0774,dir_mode=0775,auto   0 0
//hive/mack /spiceflow/mack cifs credentials=/root/samba_credentials,uid=1000,gid=1000,file_mode=0774,dir_mode=0775,auto   0 0
//hive/sans /spiceflow/sans cifs credentials=/root/samba_credentials,uid=1000,gid=1000,file_mode=0774,dir_mode=0775,auto   0 0
//hive/splat /spiceflow/splat cifs credentials=/root/samba_credentials,uid=1000,gid=1000,file_mode=0774,dir_mode=0775,auto   0 0
//hive/reservoir /spiceflow/reservoir cifs credentials=/root/samba_credentials,uid=1000,gid=1000,file_mode=0774,dir_mode=0775,auto   0 0

Set up alert emails

Go to one of your google accounts to get an App password. It has to be an account that has 2fa turned on, bleh, so don't use moodboom@gmail.com. I went with abettersoftwaretrader@gmail.com.

Accounts > Users > root > edit password > abettersoftwaretrader@gmail.com
System > Email > from email > abettersoftwaretrader@gmail.com, smtp.gmail.com 465 Implicit SSL, SMTP auth: (email/API password)

Troubleshooting

SOME of my shares were throwing Permission Denied errors on mv. Solutions:

  • I applied permissions again, recursively, then restarted the SMB service on hive and the problem went away.
  • You can also always go to the melange hive console, request a shell, and things always seem to work from there (but you're in FreeBSD world and don't have any beauty scripts like mh-move-torrent!)