Pre-script: So I basically realized I gave my whole situation below, so if you have time please read and give suggestions on the whole thing, but primarily the questions/concerns I still have at this point are as follows:
I’m new to FreeBSD. I've used Linux at home and school for 10 years, and been a Solaris SysAdmin professionally for the past 3 years.
I decided recently to build my own home NAS. From my work with Solaris 10, I’ve grown fond of ZFS. I realize that many of its capabilities exist in some form with other LVMs and/or filesystems, but I can’t seem to find one that’s as easy or as free.
FreeBSD was not the first OS I looked at. Ideally I'd just get some new Sun/Oracle hardware and run Solaris 11 on it, but that option is expensive. I looked at Linux. Btrfs doesn’t seem to be ready for production yet. I can do ZFS via FUSE, but since that's the main point of this box, that seems silly. I looked at the LLNL kernel port of ZFS, but aside from the obvious CDDL/GPL licensing issues, it does not yet have a production version with a working ZPL (ZFS POSIX Layer). I looked at the OpenSolaris forks (especially OpenIndiana) but from messing with it for a bit, it doesn't seem ready for primetime.
So after that I looked at FreeBSD. I am aware of the FreeNAS fork, but it doesn’t seem like I’d gain much from that other than a WebGUI, and I don’t need that. I’ve heard many good about FreeBSD in general, and it seems like out of all the free/open ZFS implementations out there, it seems to have the best. Also I like the idea of the ports system, and have used Gentoo's Portage, which I'm told is somehow derived from ports.
I’ve installed FreeBSD 9 RC 3 in a Virtual Box environment to play around with it, and have been reading up alot on FreeBSD documentation. I have not 100% decided on FreeBSD yet, and there is some hardware I still need to buy, but I just wanted to run through my general plan to see if anyone more experienced with FreeBSD could answer still unanswered questions, provide tips, or perhaps most importantly, point out any “gotchas,†that me an inexperienced FreeBSD user wouldn't be able to see and avoid. Since this ideally will be a NAS with a lot of data on it, I want to get this right the first time so I don’t have to reinstall the OS or redo the storage or something like that.
- Are there differences or gotchas between Solaris ZFS implementation and FreeBSD’s ZFS implementation?
- Anything noteworthy (especially if it’s something I mention I plan on using below) in FreeBSD 9 that is not in 8.2?
- Ability to read ext2/3/4, FAT, NTFS?
- What’s BluRay burning like on a SATA drive?
- Any issues with a CF card for a rootdisk? What’s the best way to mirror? What’s the minimum size?
I’m new to FreeBSD. I've used Linux at home and school for 10 years, and been a Solaris SysAdmin professionally for the past 3 years.
I decided recently to build my own home NAS. From my work with Solaris 10, I’ve grown fond of ZFS. I realize that many of its capabilities exist in some form with other LVMs and/or filesystems, but I can’t seem to find one that’s as easy or as free.
FreeBSD was not the first OS I looked at. Ideally I'd just get some new Sun/Oracle hardware and run Solaris 11 on it, but that option is expensive. I looked at Linux. Btrfs doesn’t seem to be ready for production yet. I can do ZFS via FUSE, but since that's the main point of this box, that seems silly. I looked at the LLNL kernel port of ZFS, but aside from the obvious CDDL/GPL licensing issues, it does not yet have a production version with a working ZPL (ZFS POSIX Layer). I looked at the OpenSolaris forks (especially OpenIndiana) but from messing with it for a bit, it doesn't seem ready for primetime.
So after that I looked at FreeBSD. I am aware of the FreeNAS fork, but it doesn’t seem like I’d gain much from that other than a WebGUI, and I don’t need that. I’ve heard many good about FreeBSD in general, and it seems like out of all the free/open ZFS implementations out there, it seems to have the best. Also I like the idea of the ports system, and have used Gentoo's Portage, which I'm told is somehow derived from ports.
I’ve installed FreeBSD 9 RC 3 in a Virtual Box environment to play around with it, and have been reading up alot on FreeBSD documentation. I have not 100% decided on FreeBSD yet, and there is some hardware I still need to buy, but I just wanted to run through my general plan to see if anyone more experienced with FreeBSD could answer still unanswered questions, provide tips, or perhaps most importantly, point out any “gotchas,†that me an inexperienced FreeBSD user wouldn't be able to see and avoid. Since this ideally will be a NAS with a lot of data on it, I want to get this right the first time so I don’t have to reinstall the OS or redo the storage or something like that.
- I’m using existing old AMD Athlon64 based hardware, single core, motherboard is probably MSI KT4V. I’m procuring enough DDR RAM to max it out at about 3 GB. Going to throw in an old PCI graphics card just for install/maintenance purposes. I had issues with getting Linux to play nice with the on-board NIC. If I have the same issue with FreeBSD, I have some PCI NICs, and I might jump to 1 Gbps anyway.
- For the OS root/boot disk (and probably a mirror too), I think I’m going to go with an IDE-CF adapter; that way I’m not filling up a HD bay and I’m can be sure the BIOS can boot off it. (vs a PCI SATA card) I don’t see any reason for these to be ZFS, but they can be. UFS or FFS is fine with me. If I decide to mirror them though I guess I need VVM and/or GEOM? (I’m still reading up on thse...) Also, any recommendations on the minimum size of the CF cards? While I do want the OS separate from storage, I’m OK with throwing in a ZVOL for swap on the main storage array.
- Despite the fact that I am playing around with a 9 RC, I’d like to use the latest available production release (8.2) for the NAS. I’m hoping that none of the features I plan to use (see below) are new in 9...if not I can consider 9 or hold off until 9.0 is released.
- For the storage array, I’m proably doing a stripe of sets of two mirrored drives, of sizes 2-3 TB. They’ll be attached to two SATA controllers on two PCI cards. (I’ll consult the FreeBSD HCL before buying). These will all be one ZFS zpool. Is there any point to partitioning them at all (fdisk? gpt?) or doing any kind of LVM? (VVM? GEOM?) As I mentioned above, aside from NAS storage, I may put some swap on the pool if necessary, and perhaps install additional apps there if the CF cards are too small and ports can be setup to install there.
- The NAS data will be organized on various ZFS datasets on the one zpool, with appropriate settings set. I am assuming all of the Solaris options for zpool and zfs are supported in FreeBSD? (aside from of course some of the new v33 features introduced in Solaris 11) Any gotchas for things that don’t work as in Solaris?
- Initially, this unit will primaril only be a NAS, sharing via SMB/CIFS and NFS. My understanding is that while ZFS can be set to export via NFS automatically, the CIFS capability hasn’t yet been set up on FreeBSD, but this isn’t an issue for me because I know my way around Samba. (I’m assuming that Samba on FreeBSD has all the features of Samba on Linux)
- One thing I’d like to do is put in a BluRay burner as a way of doing offsite backups using “zfs send.†For me, cd/dvd burning on Linux and Solaris can sometimes be a pain (less so on Linux now than it was a number of years ago). I have never done any work with BluRays, but apparently cdrtools now supports that. Is this known to work well in FreeBSD?
- Another thing maybe this will be used for in the future is as an iSCSI target. It seems that while targets cannot be setup in ZFS, I can make a ZVOL and setup a target daemon from ports. Also, in the more distant future, I may like to perhaps reach additional storage on another array directly via iSCSI, but it seems that FreeBSD has built in iSCSI initiator functionality so that is good.
- Assuming this works well, I would like to migrate some of the “always-on†stuff from what is now a distinct Linux box onto this new FreeBSD box, to save power consumption. This would include an apache daemon, a bittorrent client, and that sort of thing. Everything I would want seems to be available as ports. Any reason why these can’t all be installed onto their own dataset on the zpool with the NAS data? (as opposed to the CF card with the base OS)
- One of my goals in doing this NAS is to try to centralize data that I now have scattered over a bunch of different filesystem types, while keeping redundancy and promoting backups. I don’t need to be able to write to any of these, but can I read from ext2, ext3, ext4, FAT16, FAT32, NTFS, and reiserfs? Any compatibility issues with reading Solaris-created UFS or ZFS? Can FreeBSD understand partition tables/slices from all the other major OSs?
- I think I’d like to generally keep up with the latest FreeBSD Production Release. Ideally either via an upgrade path, or even by swapping out CF “rootdisk†cards for clean installs. Do ports usually have to be reinstalled after an upgrade? Maybe zfs for rootdisk isn’t a bad idea if I can snapshot prior to upgrade.