Latest interface: 0.3.1
Latest system: 010

1 posts

Posted on 7 December 2015 @ 09:26

Some time ago I decided to build my own NAS and I would like to use ZFSGuru.
I have bought the following hardware:
mobo: Supermicro X10SDV-8C-TLN4F
memory: 32GB DDR4 ECC RDIMM Samsung M386A4G40DM0-CPB
OS disk: Crucial MX200 M.2 80mm 500GB
Storage: 6x WD Green 6TB

I will be making use of RAIDZ2.
The system will be used as storage, media center, PLEX and VM of various opetaring systems.
My question is what would be the best way to configure this system, how to partition the ssd, etc.

I would like to keep the HDDs system independent, meaning If something happens to the rest of the system I can just unplug them and put it in a different system and keep working. Would I need to keep a configuration file for this or is it just a matter of pointing it to the disks in their order?

Since I will be running some VMs would it be better to run PLEX in a VM or install the service available from ZFSGuru?

What about the VMs themselves? should they be on the HDDs or the SSD.

And also I would appreciate any other suggestions I havent mentioned that could be useful to me.

Thank you.

1199 posts

Posted on 7 December 2015 @ 20:25
How to partition your SSD
Since you have a Crucial MX200 SSD that supports DWA - Dynamic Write Acceleration - you can use this SSD as SLC SSD instead of MLC SSD, provided you use no more than half the space. So you can use your 500GB SSD as a 250GB SSD. You can do this simply by partitioning a new SSD so only a limited portion of the visible storage space will be used. If you have used the SSD for other tasks in the past, you need to perform a secure erase procedure or do a TRIM erase. The latter can be done by ZFSguru.

If you are going to use L2ARC caching, you should also reserve space for overprovisioning, to combat performance degradation and increase lifespan. 20-40% OP is recommended.

So, the best partition scheme might be:

1) Bootstrap partition (automatically created by ZFSguru) 1MiB
2) SWAP partition: 4GiB to maximum of RAM size
3) sLOG partition for sLOG (dedicated ZIL) of your HDD pool: 4GiB
4) L2ARC partition for your HDD pool: 60GiB
5) System partition for ZFSguru and your VM images: 120GiB

If you follow this scheme, you can always increase the size of the system partition that stores your VM images, etc.

Bootstrap partition
Automatically created when you format your disk with ZFSguru. Should be on all disks. Takes only 1MiB of space.

SWAP partition
This is a new and undocumented ZFSguru feature. You can crease a SWAP partition by creating the partition as 'freebsd-swap' and with a label like SWAP-1. The label MUST begin with 'SWAP-' so including the dash. If you do this, then on every boot the swap partition will be automatically configured. The nice thing is that it will also be encrypted automatically for optimum security. One warning though: once configured, you cannot remove the SWAP partition without detaching the encrypted SWAP partition first as SWAP device. This remains undocumented, but consists of a swapoff /dev/gpt/SWAP-1.eli command followed by geli detach /dev/gpt/SWAP-1.eli command.

sLOG partition
This will accelerate sync writes on your HDD pool. Once you have your HDD pool, you can add the sLOG partition on the Pools->Log devices page. Only use sLOG on protected SSDs, the Crucial M500/M550/MX100/MX200 are protected, as are the Intel 320, Intel S3500/S3700 SSDs. Almost all consumer-grade SSDs are unprotected and should not be used as sLOG - it would be equivalent to having no ZIL at all which is dangerous. Without sLOG device you will still have a ZIL because it will be stored on the HDD pool instead. By using sLOG, you disable the ZIL on the harddrives instead.

L2ARC partition
The L2ARC cache feature basically extends your RAM cache by having a larger cache on the SSD. Beware though: only non-contiguous I/O is cached. So large files that are read from begin to end are NOT cached on the SSD. But caching metadata is very effective, as is storing VM images on the HDD pool. Beware that all L2ARC cache resets upon reboot, so this feature would be useful only if you leave the server running for extended periods of time.

Partition for system pool
By having a separate ZFS pool on the SSD you can use it to install/boot ZFSguru and store installed services on the SSD. 20GB will probably more than enough for this task. But if you want to store VM images on the same pool you can make it bigger. VM images can also be stored on the HDD pool and accelerated by L2ARC cache, but the best performance is achieved directly on SSD.

Keeping the HDDs system independent
This is also achieved in default configuration. Configure your disks as GPT formatted disks like ZFSguru wants you to do. Your pool will be cross-platform compatible. Some older platforms do not properly support GPT though (Solaris) but most platforms do.

You do not need a configuration file since it is stored on the disks themselves by ZFS. Also your disks can be in any order. You do not need to keep the same order. You can put HDD1 on SATA port 5 and HDD2 on SATA port 2 and so on. Linux has some restrictions: it requires you to import the pool again if you do this. ZFSguru has no such restriction.

Having Plex on ZFSguru or inside VM
Service addons in ZFSguru may not be mature enough to always work. Try if it works, otherwise use them inside a Virtual Machine (VM).

Let me know if you have more questions!
Good luck! :)
Last Page

Valid XHTML 1.1