FreeNAS fileWhat is FreeNAS ? In a few words Embedded OS specialized for NAS (Network Attached...

27
Presenting FreeNAS Olivier COCHARD-LABBE ([email protected]) Presentation available at: http://www.freenas.org/bsdcan/ Special thanks to my employer for sponsoring my travel: Silicomp AQL

Transcript of FreeNAS fileWhat is FreeNAS ? In a few words Embedded OS specialized for NAS (Network Attached...

Presenting FreeNAS

● Olivier COCHARD-LABBE ([email protected])

● Presentation available at:http://www.freenas.org/bsdcan/● Special thanks to my employerfor sponsoring my travel:

Silicomp AQL

Plan

● What is FreeNAS ?● History● Problems encountered● Support chain● Example of use● Geom RAID 5● Roadmap● Conclusion

What is FreeNAS ?In a few words● Embedded OS specialized for NAS (Network

Attached Storage) services. ● Based on m0n0wall, upgraded to FreeBSD 6.2

with the firewall features replaced with NAS features.

What is FreeNASFeatures from m0n0wall

● Uses the m0n0wall Web GUI● Single XML configuration file● Save/backup configuration file● OS Upgradable from WebGUI

Appliance oriented

What is FreeNAS ?Features supported

● Software RAID:● RAID 0 with gstripe/gvinum● RAID 1 with gmirrror/gvinum● RAID 5 with experimental graid5 and gvinum● Advanced RAID: 1+0, 0+1, 5+1, etc... (geom power!)

● JBOD with gconcat● Geom GPT used● Disk encryption with geli (patched for script uses)● iSCSI target (using file) and initiator● Zeroconf with mDNSResponder

What is FreeNAS ?Features supported

● Protocols:− CIFS with Samba− FTP with Pure-FTPd− RSYNC: server, client and local (disk to disk)− SSH (HPN patched)− Unison− AFP with NetaTalk− UPnP using uShare (ported under FreeBSD with

Volker Theile)● User authentication (but not permission!), and

MS-AD integration

What is FreeNAS ?Minimum hardware requirement

● 96 MB of RAM (with a swap file) ● A FreeBSD supported NIC card ● 64MB hard drive/usb stick/compact flash● PATA/SATA/SCSI/USB/Firewire/iSCSI hard

drives

● Or Virtualise it, using Qemu or VMware, etc.

What is FreeNAS ?Community● Started in October 2005● Two regular developers:

● Olivier Cochard-Labbé and Volker Theile● Two Document/FAQ authors and user support:

● Bob Jaggard and Dan Merschi● One webmaster:

● Youri Trioreau● Many translators:

● French, German, Italian, Spanish, Chinese, Russian, Japanese, Romanian, Dutch,…

● Mailing lists, forum, subversion on Sourceforge

What is FreeNAS ?Awards and Donators

● Awards− VMware Ultimate Virtual Appliance Challenge:

Consumer prize− Sourceforge: Project of the month, January 2007

● Donators− AMD donated a dual Opteron server− FreeBSD (Wilko Bulte) donated a Geode-based

appliance− Orange Business Services (my employer) contributed

my travel expenses for BSDCan2007

HistoryWhy a FreeNAS Server ?

● I needed storage (who doesn’t?)● I was looking to transform one of my PCs into a

NAS server and my requirements were:− Boot from USB key permitting all 4 PATA drives to be

used for data storage− Small footprint (64MB maximum) − Supporting software RAID 5

● I couldn’t find one…..so I built one!

HistoryWhy with FreeBSD ?

● Because I'm a FreeBSD guru ? No ...I never use FreeBSD before starting FreeNAS

● Because I think that FreeBSD is the best OS ? No...I don't know what is the best OS

● Because FreeBSD have the best filesystem (UFS + Soft updates) that is well suited for a NAS ? I discovered the UFS file system in the same time as

FreeBSD... And I am still unsure what exactly Soft updates are :-)

Why Then?

● Because I found two of Manuel Kasper's guides, for building an embedded FreeBSD, simple enough for be following by a “never used FreeBSD before” as me.

− Initially, I took just 2 days for the base build!!● m0n0wall Developers' Handbook

http://doc.m0n0.ch/dev/● miniBSD - reducing FreeBSD

https://neon1.net/misc/minibsd.html

● No simple circular log− Got patched clog from pfSense

● No script friendly tools (compared to NetBSD for example)

Problems encounteredFreeBSD as an embedded OS

Problems encounteredFreeBSD used as a NAS

● About 90% of FreeNAS users have MS Windows:− FreeBSD’s Poor Samba performance is a real problem

because users like to benchmark...and FreeNAS has no chance against a Linux based NAS, but its better than some hardware NAS appliances

− Samba corrupts files writing to FAT32 drive (bug kern/39043 existing since june 2002)

● No stable software RAID 5 support. − Many issues with gvinum. − FreeNAS now supports use of experimental graid5

(created by Arne Wörner) that appears more stable

Problems encounteredFreeNAS base

● Doesn't use nanobsd: − I discovered nanobsd when I read some BSDcan 2006 presentations

researching for this presentation :-)

● Start from “old” but simple m0n0wall in the place of “new” but complex pfSense

− That was already based on FreeBSD 6 and permit to add packages.

● As a FreeBSD newbie:− The configurations files created by FreeNAS are not optimized.

● I'm not an Operating system admin: − I must discover and learning each feature before to add them.

● For resume, I re-invend the wheel.. − but, as a beginner, I build a square wheel!

Problems encounteredManaging an open source Project● Time consuming...

− Big impact on my private life:− Receiving lot's of user support request regarding project.

● Project Time management− How to share what free time I have between answering

emails, improving communication, support, bug fix, new features, etc?

● How to answer the question…“I want to contribute, what can I do ?”

● It's difficult to impose a task on someone.● User support: Can't reproduce all users problems!

● Think about the Support Chain− Before to look for other developers, found volunter for user

support!● End User documentation and FAQs

− These help run interference for the developers – permits the devs to concentrate more on the code than the ‘nut behind the wheel’

● Multiple Users/multiple hardware combinations− A two-edged sword, forces more Feature Requests on the

Project, but permits more combinations to be tested.● Development/Communication Tools

− Sourceforge Toolkit – Forums, notification via Mailing Lists, SVN, etc. One less thing for a dev to have to think about.

Support Chain

Example of useStep 1: Installing FreeNAS

acd0

ad0

9

1

Example of useStep 2: Configuring IP address

n192.168.1.10

24

2

Example of useStep 3: Access to the Web GUI

4. Adding disk

5. Formatting

6. Mounting

7. Services

Example of useStep 4: Adding disk

1. Click on +

2. Choosing disk

3. Click on “Add”

Example of useStep 5: Formatting

1. Choose previously added disk

2. Click on Format

Example of useStep 5: Mounting

1. Click on +

2. Choosing previously formatted disk

3. Click on Add

Example of useStep 6: Enabling the services

Geom RAID 5

● Permit to increase the array size by replacing each disk one by one without service interruption (excluding growfs impact)

● Faster read requests : RAID0 striping effect● Slower write requests than RAID0● Graceful degradation: Quite tolerant against single

disk failure

Roadmap

● 0.69: Coming up● 0.7: user permissions, quotas. All disk

management will be reviewed (simpler to configure)

● 0.8: monitoring (SNMP, email alert, etc...)● 0.9: Bug fixes and stabilizing● 1.0: The release!

ConclusionContributors needed!!

● FreeBSD guru/administrator− Tuning and security advices− Configuration file check

● PHP Coder− Code review− Bug fix

● User support− There are still lot's of user question on the forum that

need a response