This document provides an introduction and overview of FreeNAS 8.3.1. It outlines the core features of FreeNAS including the ability to create storage volumes using UFS or the ZFS filesystem. It describes how ZFS provides data integrity and flexibility through features like RAIDZ, snapshots, and clones. The document also covers installing and configuring plugins to extend FreeNAS functionality, and an overview of the new GELI full disk encryption support. Additional resources for FreeNAS support are provided at the end.
Introduction to FreeNAS development by John HixsoniXsystems
At SCALE 12x, John Hixson, Senior Software Developer at iXsystems, gave a his talk, "Introduction to FreeNAS development". FreeNAS has been around for several years now but development on it has been by very few people. Even with corporate sponsorshipt and a team of full time developers, outside interest has been minimal. Not a week goes by when a bug report or feature request is not filed. Documentation on how to develop on FreeNAS simply does not exist. Currently, the only way to come up to speed on FreeNAS development is to obtain the source code, read through it, modify it and verify it works. The goal of this paper is to create a simple FreeNAS application to demonstrate some of the common methods used when dealing with FreeNAS development, as well as showcase some of the API.
Introduction to FreeNAS development by John HixsoniXsystems
At SCALE 12x, John Hixson, Senior Software Developer at iXsystems, gave a his talk, "Introduction to FreeNAS development". FreeNAS has been around for several years now but development on it has been by very few people. Even with corporate sponsorshipt and a team of full time developers, outside interest has been minimal. Not a week goes by when a bug report or feature request is not filed. Documentation on how to develop on FreeNAS simply does not exist. Currently, the only way to come up to speed on FreeNAS development is to obtain the source code, read through it, modify it and verify it works. The goal of this paper is to create a simple FreeNAS application to demonstrate some of the common methods used when dealing with FreeNAS development, as well as showcase some of the API.
In computing, ZFS is a combined file system and logical volume manager designed by Sun Microsystems, a subsidiary of Oracle Corporation. The features of ZFS include support for high storage capacities, integration of the concepts of file system and volume management, snapshots and copy-on-write clones, continuous integrity checking and automatic repair, RAID-Z and native NFSv4 ACLs. Unlike traditional file systems, which reside on single devices and thus require a volume manager to use more than one device, ZFS file systems are built on top of virtual storage pools called zpools. A zpool is constructed of virtual devices (vdevs), which are themselves constructed of block devices: files, hard drive partitions, or entire drives, with the last being the recommended usage.[7] Thus, a vdev can be viewed as a group of hard drives. This means a zpool consists of one or more groups of drives.
In addition, pools can have hot spares to compensate for failing disks. In addition, ZFS supports both read and write caching, for which special devices can be used. Solid State Devices can be used for the L2ARC, or Level 2 ARC, speeding up read operations, while NVRAM buffered SLC memory can be boosted with supercapacitors to implement a fast, non-volatile write cache, improving synchronous writes. Finally, when mirroring, block devices can be grouped according to physical chassis, so that the filesystem can continue in the face of the failure of an entire chassis. Storage pool composition is not limited to similar devices but can consist of ad-hoc, heterogeneous collections of devices, which ZFS seamlessly pools together, subsequently doling out space to diverse file systems as needed. Arbitrary storage device types can be added to existing pools to expand their size at any time. The storage capacity of all vdevs is available to all of the file system instances in the zpool. A quota can be set to limit the amount of space a file system instance can occupy, and a reservation can be set to guarantee that space will be available to a file system instance.
This document describes how XenServer provides and keeps track of the storage supplied to its guests. The first section
is a reminder of how Linux looks at storage and the second section builds on that to explain XenServer storage. Basic
knowledge of Linux is required, as some standard tools are used.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Posscon2013
1. Introduction to
FreeNAS 8.3.1
Dru Lavigne
Documentation Lead, iXsystems
POSSCON, March 27, 2013
2. Class Outline
USB key contains the 32- and 64-bit ISOs of
FreeNAS 8.3.1, a PDF version of the 8.3.1 Users
Guide, and a PDF of this presentation.
If you would like to follow along by installing
FreeNAS into a virtual machine, create several
virtual disks. Instructions for doing so in Virtualbox
can be found on pp 21-28 of the PDF. If your CPU
does not support “long mode”, use the 32-bit ISO.
4. FreeNAS Overview
Open source NAS (network attached storage)
based on an embedded version of FreeBSD
(nanoBSD) and released under 2-clause BSD
license
Enterprise-grade appliance (TrueNAS) is also
available in 2U/4U form factors with professional
support
5. FreeNAS Overview
8.x is a rewrite of the original monolithic design to
a modular design (.7x EOL'd in 2011)
8.0 was released May, 2011 with a focus on NAS
“core” functionality
8.2.0 introduced the Plugins Jail architecture
(released on July 20, 2012) for extending core
8.3.1 added GELI encryption for ZFS pools
(released March 20, 2013)
6. Core Features
Create UFS or ZFS volumes (ZFS recommended)
Import existing UFS/ZFS RAID/z volumes
Import existing UFS, DOS, NTFS, EXT2/3
volumes
Create shares using Appletalk, NFS, and SMB
protocols
Configure access through FTP/SFTP, SSH, and
iSCSI
7. Core Features
Integration with OpenLDAP, Active Directory
Automated, secure replication via rsync/ssh
Automated ZFS snapshots and scrubs
Front-ends to cron, sysctls, loader.conf
Reporting graphs, scheduled S.M.A.R.T. tests,
automated alerts, UPS
8. Core Features
Link aggregation, failover, and VLAN support
DDNS, SNMP, and TFTP support
Control panel to stop/start and view the status of
services
Users Guide available in wiki, HTML, PDF, epub,
and Kindle formats
9. Core Features
Supports OSX Time Machine and Windows
Shadow Copies
OS is installed on USB stick/CF and is separate
from data on storage disks
Upgrades keep a backup of the old OS, allowing
for rollback
Administrative GUI accessed through a web
browser; 8.2 adds a web shell for command line
operations
10. ZFS Overview
128-bit filesystem with a maximum pool/file size of
16 exabytes
Unlike traditional Unix filesystems, you are not
limited to the partition size and mount point
defined at filesystem creation time
Instead, disks are fed to a “pool” and the size of
that pool can increase as disk capacity increases
11. ZFS Overview
The pool can be logically subdivided, with each
segment having access to the remaining capacity
of the pool
Offers great flexibility!
Pre-planning for hardware and designing for a
particular environment's storage needs is needed
for optimization and to get the full benefits of ZFS
12. Pool
Root (parent) volume which can be sub-divided
into datasets or zvols as needed
Typically only one, but multiple pools are allowed
Typically, feed all disks to the pool
The number of disks added at a time is known as
a “vdev”
To optimize performance, number of disks is
limited and additional vdevs are striped
13. RAIDZ
RAIDZ* levels designed to overcome hardware
RAID limitations such as the write-hole and
corrupt data written over time before the controller
notices
Designed for commodity disks so no RAID
controller is needed
Can also be used with a RAID controller, but it
should be put in JBOD mode
14. RAIDZ1
Avoids the RAID5 write-hole by using COW (copy
on write)
Parity blocks are distributed across all disks
Up to one disk can fail without losing pool
Pool can be lost if second disk fails before restripe
completes
Optimized for vdev of 3, 5, or 9 disks
15. RAIDZ2
Double-parity solution similar to RAID6
Parity blocks are distributed across all disks
Up to two disks can fail without losing pool, with
no restrictions on which disks can fail
Optimized for vdev of 4, 6, or 10 disks
16. RAIDZ3
Triple-parity solution
Parity blocks are distributed across all disks
Up to three disks can fail without losing pool, with
no restrictions on which disks can fail
Optimized for vdev of 5, 7, or 11 disks
17. ZIL
ZFS Intent Log
Effectively a filesystem journal that manages
writes
A dedicated SSD or drive can increase write
performance, especially for synchronous NFS
Use ZFSv28 for dedicated ZIL or else lost device
will lose pool
18. ARC
ARC refers to read cache in RAM; if RAM is very
small, read speed is reduced to disk speed
Expect a miss for random reads and a hit for
cached reads
Takes time for ARC to populate; if high misses
continue for cached reads, the system needs to
be tuned
Freenas adds ARC stats to top(1) and includes
arc_summary.py and arcstat.py tools for ARC
monitoring
19. L2ARC
Optional, secondary ARC which can be installed
on SSD or disk
L2ARC is populated over time with “hot” reads
Recommended for deduplication and to increase
read performance
20. Datasets
Pool can be divided into datasets
Similar to a folder in that it supports permissions
Similar to a filesystem in that you can set
properties such as quotas and compression
A well thought out design can optimize storage for
the type of data being stored
21. Zvols
Pool can also be divided into zvols
Essentially, a virtual, raw block device
Ideal for iSCSI device extents
Supports quotas and compression
22. Snapshots
Provide read-only, point-in-time image of the
specified pool, dataset, or zvol
Snapshots can be recursive (atomic inclusion of
all child datasets)
Initial size is 0 bytes as COW, snapshot increases
in size as changes are written to disk
Can be replicated to another system
Can be used to provide Windows shadow copies
23. Clones
Provide read-write copies of read-only snapshots
Initial size of clone is 0 bytes
Clones can be mounted and used to access data
from that point in time (e.g. earlier revision of a
file)
24. Scrubs
ZFS was designed to be self-healing
ZFS creates and verifies checksums as data is
written to disk
A scrub verifies the checksum in each disk block,
correcting data as necessary
I/O intensive so should be scheduled
appropriately
Reading the scrub results can provide an early
indication of possible disk failure
25. Deduplication
Used to free blocks containing identical data
(updates reference pointers)
Can improve performance on datasets containing
duplicate data (e.g. virtual images)
Dedup tables should fit into L2ARC; systems with
limited RAM or no L2ARC might freeze hard
26. RAM
RAM is used to hold read cache, write cache,
checksum calculations, dedup tables, parity
calculations, etc.
Add as much RAM as possible; general rule of
thumb is:
1 GB of RAM for every 1TB of storage in pool
5 GB RAM/L2ARC per TB of storage to be
deduplicated (use a dataset)
27. Misc
zpool split command can be used to “clone” a
mirror to one disk and to use that disk to recreate
that pool on a different system
autoexpand property allows pool to grow by
replacing one disk at a time with a larger disk
Resilvering is the process of resyncing a RAIDZ.
This takes time, depending upon the size of disk
being replaced. It is a bad thing to lose the
maximum number of disks in a RAIDZ before the
resilver completes.
28. Configuration Workflow
1. Set the administrative username and password
2. Create volumes/datasets
3. Create users/groups or integrate with LDAP/AD
4. Configure share
5. Start applicable service(s)
6. Test and save the configuration
30. 2. Create Volume
Several choices:
1. Import existing UFS RAID or ZFS pool
2. Import existing disk or partition(s) formatted
with UFS, FAT, NTFS, or EXT2/3
3. Format a UFS or ZFS volume
Once a ZFS volume (pool) is created, it can be
divided into datasets (with own options) or zvols
(to use as a “raw” disk for iSCSI)
37. 4. Configure Share
AFP: for Mac OS X
CIFS: for Windows, also supports any other OS
NFS: faster than CIFS, supports any OS
SSH: CLI and GUI clients available for any OS
FTP: CLI and GUI clients available for any OS
iSCSI target: for access to “raw” disks
38. Configure Share
When configuring:
Recommended to only have one type of share to
prevent filesystem/client conflicts
Users needing access to that share must have
permission to the volume being shared, or the
share access must be set to anon/guest
Permissions can be set on a per volume or per
dataset basis
40. 6. Test and Save Configuration
From a client, confirm that access is permitted to
allowed users
Can enable console logging at bottom of browser
to troubleshoot a service that won't start
Can use web shell to read logs when
troubleshooting
42. Plugins Architecture
Provides the administrator the flexibility to install
additional software from the FreeNAS GUI to
meet the requirements of the NAS
Comprised of three components:
- FreeBSD Jail
- PBI (Push Button Installer) files
- Plugins
43. What is a Jail?
A FreeBSD feature for providing light-weight,
operating system-level virtualization
A jail has its own hostname, IP address, users,
and is separated from the host operating system
FreeNAS implementation includes vimage which
gives the jail its own networking stack and IP
broadcasting
44. What is a PBI/Plugin?
PBI format originally created by the PC-BSD
project (a desktop version of FreeBSD)
Provides a graphical installation wrapper for
software ported to FreeBSD
FreeNAS implementation extends this
functionality by incorporating the application's
configuration file into the FreeNAS graphical
administrative interface—the result is known as a
Plugin
45. Installing the Plugins Jail
Before any plugins can be installed, the Plugins
Jail must be installed and started
Recommended that Plugins Jail is installed into its
own ZFS dataset and that a second dataset is
used to store the installed software
The Plugins Jail and supported Plugins can be
downloaded from plugins folder for architecture
http://sourceforge.net/projects/freenas/files/
FreeNAS-8.3.1/
48. Installing a Plugin
Once the Plugins Jail is installed and the Plugins
service started, you can install FreeNAS PBIs
(Plugins)
As each Plugin is installed, an icon will be added
to the FreeNAS menu (used to configure the
application) and its service will be added to the
Plugins tab of the Control Services menu so it can
be started
51. Installing Non-PBI Software
If a PBI is not available, you can still install
FreeBSD packages or compile ports within the
Plugins Jail
Software installed this way will not be integrated
into the administrative interface but can be
configured and started from the command line
Use FreshPorts.org to search for software that
has been ported to FreeBSD
52. Installing Packages
A FreeBSD package is a pre-compiled binary that
includes the dependencies required by the
application
Installed using the pkg_add -r command:
FreshPorts.org will tell you the exact command to
use
pkg_info -Lx will tell you what gets installed
Typically, conf files are in /usr/local/etc/ and
startup scripts are in /usr/local/etc/rc.d/
53. Compiling Ports
Packages are recommended unless a package is
not available or you need to change a compile
option as compiling takes time and system
resources
FreshPorts.org will list the available compile
options
Use the make install command to compile
Once compiled and installed, the software can be
configured like any other package
54. Available PBIs
FreeNAS PBIs are still new (only available since
July 2012)
3 official PBIs: Firefly, MiniDLNA, Transmission
List of PBI requests:
http://doc.freenas.org/index.php/PBI_Requests
List of user-created PBIs:
http://forums.freenas.org/showthread.php?8470-
INDEX-Available-Plugins
55. Encryption
GELI full disk encryption for new ZFS volumes
(not ZFSv30 encryption which is closed source)
Full disk encryption, not per-filesystem encryption
Targeted at users who store sensitive data and
want the ability to safely dispose of disks
(independent of the encryption key) without wiping
them first
Encryption key is per ZFS pool
56. Encryption
Encryption key is protected by both a passphrase
and a recovery key
CPU that supports AES-NI is recommended,
especially if more than one disk in pool
Data in the ARC cache and the contents of RAM
are unencrypted
Swap is always encrypted, even on unencrypted
volumes
57. Encryption
Key management tools added to encrypted
volume's screen in GUI
Used to change the passphrase, download a copy
of the key, create a new key (which destroys the
old key), create and download a copy of the
recovery key, and change the recovery key
If the passphrase is forgotten, the recovery key
can be used (needed when importing a pool)
60. Resources
Links to Users Guide:
http://doc.freenas.org
IRC:
#freenas on Freenode
Links to mailing lists and instructional videos:
http://doc.freenas.org/index.php/
FreeNAS_Support_Resources
61. Questions
Contact:
dru@freebsd.org
URL to Slides:
http://slideshare.net/dlavigne/posscon2013