# Should I switch my server to FreeBSD?



## forquare (Jul 3, 2015)

Good afternoon all,

I currently run an Ubuntu server hosted on a Linode.  The server was set up several years ago to host a few non-vital websites and facilitate some server-side programming experimentation.  Since it was setup, I’ve spent less time experimenting with server-side programming, the websites are still there, and it now runs a Minecraft world.

Linode has recently migrated from using Xen to KVM, and lists the possibility of using their services to run a number of operating systems other than Linux based ones.

With some fairly non-vital services, I’m wondering whether FreeBSD may perform similarly/better than Ubuntu.  Apache looks after the almost zero traffic websites nicely, Minecraft can be a bit finicky but isn’t all that bust these days.  Ubuntu is performing well enough, but I’m itching to get away from Linux in the wake of systemd and it’s generally unUNIXyness.

A summary of the servers “hardware”:
CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz  (3 cores)
RAM: 3GB
HDD: 72G total, 65G allocated across seven filesystems:

```
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda        9.8G  252M  9.5G   3% /
/dev/sdb        880M  165M  705M  19% /home
/dev/sdc        6.8G  5.5G  1.3G  82% /opt
/dev/sdd         20G  9.6G  8.8G  52% /backup
/dev/sde         20G   11G  8.1G  58% /srv/web
/dev/sdf        2.0G  991M  925M  52% /var
/dev/sdg        2.9G  1.8G  1.2G  61% /usr
```
More extensive details here

Currently I used ext3/4 for 'stable' filesystems (i.e. those which are unlikely to grow beyond initial setup), and btrfs for 'variable' filesystems.

My background was initially as a Solaris 10 admin, but I stopped working in IT for five or so years and lost a lot of knowledge.  I now work as a RHEL admin.  I use a Mac at home.

Two things worry me about making a switch:
1) My distant knowledge of Solaris is patchy, and FreeBSD isn’t Solaris and is even less Linux.  I.e. I’d have to do some “admin” learning to be happy with everyday administration.
2) With the little amount of RAM, I’m guessing I’d be stupid to hope for ZFS goodness, and I’m not aware of the ease of growing/shrinking UFS filesystems.

Any comments, advice, etc. would be greatly appreciated, as would any steps to learning FreeBSD (currently reading “FreeBSD Quickstart Guide for Linux Users”, but think I might like something a little more in-depth).


----------



## Oko (Jul 3, 2015)

The question is ill-posed and can be answered only by you. Based on you background my instinct tells me that you should go with RHEL. Unless this is an educational project I see no clear advantage of using FreeBSD in particularly running as KVM guest. Between I run both FreeBSD and RHEL in production. Also with that little memory and virtual hardware I would not use ZFS anyway neither on FreeBSD nor RHEL. The only usefully feature RHEL is missing is actually Jails.


----------



## drhowarddrfine (Jul 3, 2015)

forquare said:


> any steps to learning FreeBSD (currently reading “FreeBSD Quickstart Guide for Linux Users”, but think I might like something a little more in-depth).


Always use the Handbook plus these docs. There is a thread somewhere here about which books are best, currently "Absolute FreeBSD" seems to be more current.


----------



## mrjayviper (Jul 4, 2015)

thanks for the book suggestion


----------



## forquare (Jul 4, 2015)

Oko said:


> Unless this is an educational project I see no clear advantage of using FreeBSD in particularly running as KVM guest.



It would be something of an educational project, and if performance would appear to likely be comparable then it might be a goer. 



Oko said:


> Also with that little memory and virtual hardware I would not use ZFS anyway neither on FreeBSD nor RHEL. The only usefully feature RHEL is missing is actually Jails.



So ZFS is a no-go, which is a shame but not the end of the world. Jails would be useful as currently everything is running in the same environment which has bugged me (when using Solaris I used Zones quite extensively). 



drhowarddrfine said:


> Always use the Handbook plus these docs. There is a thread somewhere here about which books are best, currently "Absolute FreeBSD" seems to be more current.



Thank’s for the book recommendation, I’lol have a hunt for the thread, but that book seems to be about eight years old, so perhaps a little out of date? Or do things not tent to move that fast in the BSD world (I.e. More stable?)


----------



## NewGuy (Jul 4, 2015)

A few observations:
1. Why not set up FreeBSD in a virtual machine on your computer with similar specifications to what your VPS is running? Then you can try to duplicate the functionality of your VPS on your home machine to see how easy/hard it is to get running with FreeBSD. that will cover the educational experience and let you know if FreeBSD is the right tool for the job without compromising your existing set up.

2. You wrote that your VPS has 3GB of RAM. That's probably plenty for ZFS. I routinely run VPS instances, sometimes with hundreds of GB of storage, with 1GB of RAM or less. FreeBSD with ZFS does not require much RAM so long as you're not using RAID or deduplication. Just plain ZFS snapshots and storage requier very little memory.

3. When you get stuck on something, I definitely recommend the Handbook. It's easy to search and will probably guide you through the tricky bits.


----------



## forquare (Jul 4, 2015)

Thanks for the input, NewGuy. 

1. Already have a VM installed and stepping through some of the setup. 
2. Really great to hear. I’m not planning to use RAID or despoliation.
3. The Handbook is legendary and I’lol be making as much use of it as possible. I am a little dismayed a hard copy is quite so expensive in the UK (last I checked) as I don’t read quite so well for extended periods on a screen, and I’m the mind of person that could sit down and just plow through the Handbook or similar manual.


----------



## drhowarddrfine (Jul 4, 2015)

forquare said:


> that book seems to be about eight years old, so perhaps a little out of date? Or do things not tent to move that fast in the BSD world (I.e. More stable?)


It's showing its age, yes, but most of it is very usable and, if nothing else, gets you on solid ground for the basics to intermediate level at the least. I don't recall but wouldn't be surprised if it didn't cover ZFS, for example. More importantly, it gives you an indication of what you need to know.  You can ask here,  the mailing lists, check the Handbook, or look at the man pages to see if anything has changed or fallen out of favor.

You're right. FreeBSD doesn't change for the sake of change and, even if you learn the old way of doing things, the new way won't be far different or un-learnable. And if things break, you're more than likely able to revert to the previous state without issue and learn from that.


----------



## Oko (Jul 4, 2015)

forquare said:


> It would be something of an educational project, and if performance would appear to likely be comparable then it might be a goer.
> So ZFS is a no-go, which is a shame but not the end of the world. Jails would be useful as currently everything is running in the same environment which has bugged me (when using Solaris I used Zones quite extensively).
> Thank’s for the book recommendation, I’lol have a hunt for the thread, but that book seems to be about eight years old, so perhaps a little out of date? Or do things not tent to move that fast in the BSD world (I.e. More stable?)


FreeBSD Handbook is constantly being updated although not as often as OpenBSD FAQ which is the golden standard. Great peace of documentation. I would suggest also Michael Lucas AbosoluteFreeBSD which shows its age and is ready for the third edition. I would also recommend Micaael Lucas new FreeBSD mastery series:


Storage essentials
ZFS
although I feel little bit cheated in the second book as he left out ZFS replication topic completely and postponed it for the second volume about ZFS.

It is shame that you will not be using FreeBSD on the real hardware and benefit from ZFS. It could improve your RHEL skills as well. I personally don't like to run ZFS on RHEL but many of my colleges swear by it. Note that ZFS is add on kernel module on RHEL and that the version is lagging behind FreeBSD which means that ZFS storage pools created by FreeBSD will not be importable into RHEL. However you can import ZFS pool crated on RHEL into FreeBSD. That is really nice feature of ZFS.

I would also recommend going with TrueOS if you have the amd64 hardware which supports ZFS instead of vanilla FreeBSD. The major claims to fame of TrueOS/PCBSD comparing to vanilla FreeBSD are:

Installer (ZFS on the root)
boot environments/snapshots (beadm) (stolen from Solaris. You can role into older kernel.)

update manager
Life Preserver (management tool for ZFS snapshots and replication)
the Warden (Jail management)
Obviously if you need UFS or run FreeBSD on ARM or MIPS you will use vanilla FreeBSD.  I am not familiar with the job market in UK but the job market for BSD guys in U.S. is minuscule. Non the less decent UNIX shops will appreciate familiarity with BSD(s).

Few final remarks. Coming from RHEL background you will find BSD documentation in par if not better than RHEL and helpful knowledgeable community. BSD(s) family of OS are definitely simpler and more strait forward.  Finally going with FreeBSD you will be shocked how updated are ports/packages even coming from RHEL 7.1 or Ubunty 14.04 view point.


----------



## forquare (Jul 4, 2015)

Thanks for the information Oko.
I work for a mobile telecoms company who have some strict build standard to their (predominantly virtualised) RHEL estate, ZFS wouldn't even be considered.

TrueOS sounds interesting, it sounds convincing enough to spin up a VM.


----------



## protocelt (Jul 4, 2015)

Oko said:


> I would also recommend going with TrueOS instead of vanilla FreeBSD. The major claims to fame of TrueOS/PCBSD comparing to FreeBSD are:
> 
> Installer (ZFS on the root)
> boot environments/snapshots (beadm) (stolen from Solaris. You can role into older kernel.)
> ...


Just wanted to point out a couple of small details. FreeBSD also has beadm(1) in ports. I make heavy use of it for testing software as well as updating. Also, if I recall correctly, The Warden jail management utility in PCBSD/TrueOS is being replaced by iocage soon.


----------



## Oko (Jul 4, 2015)

protocelt said:


> Just wanted to point out a couple of small details. FreeBSD also has beadm(1) in ports. I make heavy use of it for testing software as well as updating. Also, if I recall correctly, The Warden jail management utility in PCBSD/TrueOS is being replaced by iocage soon.


FreeBSD also have sysutils/pcbsd-utils port which contains Warden and Life Preserver. I was not aware of iocage. I will have to check out. I have heard good things about CBSD. Between I edited my post as I forgot that my recommendation to him was not to use ZFS since he will be running things in the KVM on pretty anemic hardware. For the record ZFS runs in on FreeBSD installed as KVM guests. There are also alternative tools for managing ZFS which might work better than Life Preserver. I hit few bugs recently with Life Preserver. Great article by Michael Lucas of various ZFS tools

http://blather.michaelwlucas.com/archives/2128


----------



## Oko (Jul 4, 2015)

forquare said:


> TrueOS sounds interesting, it sounds convincing enough to spin up a VM.


I edited my post. TrueOS is amd64/ZFS only OS. Means you must use amd64 architecture and you have to use ZFS file system including for root. It might not work for your case due to anemic spec of the machine even though ZFS is usable on KVM guest.


----------



## Beastie7 (Jul 4, 2015)

Oko said:


> FreeBSD also have sysutils/pcbsd-utils port which contains Warden and Life Preserver. I was not aware of iocage. I will have to check out. I have heard good things about CBSD. Between I edited my post as I forgot that my recommendation to him was not to use ZFS since he will be running things in the KVM on pretty anemic hardware. For the record ZFS runs in on FreeBSD installed as KVM guests. There are also alternative tools for managing ZFS which might work better than Life Preserver. I hit few bugs recently with Life Preserver. Great article by Michael Lucas of various ZFS tools
> 
> http://blather.michaelwlucas.com/archives/2128




Here you go. 

https://iocage.readthedocs.org/en/latest/index.html

Seems fully featured, with VIMAGE support, resource control and everything.

Here's the fork for bhyve, called iohyve. The goal is match feature parity with iocage.

https://github.com/pr1ntf/iohyve

The only thing I don't like about these tools is that it's ZFS only, but since it's all in sh adding support shouldn't be hard.

I would like for this stuff to be in the handbook also.


----------



## scottro (Jul 4, 2015)

FreeBSD-10.x also has root ZFS installs.  (Did I miss that in an earlier post?  I don't see it, so will add this just in case.)


----------



## Oko (Jul 4, 2015)

scottro said:


> FreeBSD-10.x also has root ZFS installs.  (Did I miss that in an earlier post?  I don't see it, so will add this just in case.)


Does it have root on Z-mirror? Last time installed vanilla FreeBSD was on an older server with hardware RAID card for which I had to use UFS. That was almost a year ago. So far had no reason to baby sit that sever much


----------



## Oko (Jul 4, 2015)

protocelt said:


> Also, if I recall correctly, The Warden jail management utility in PCBSD/TrueOS is being replaced by iocage soon.


Could you point me out to any info regarding the replacement of Warden with iocage. I know that Kris was working very hard to make Warden network aware and create Django Interface for it so that can be used as a web service.


----------



## Beastie7 (Jul 4, 2015)

He made a post on the pcbsd dev list a little while ago and announced it at this years BSDCan.


----------



## protocelt (Jul 4, 2015)

Oko said:


> Does it have root on Z-mirror? Last time installed vanilla FreeBSD was on an older server with hardware RAID card for which I had to use UFS. That was almost a year ago. So far had no reason to baby sit that sever much


Yes, vanilla FreeBSD supports mirrored vdevs as well as striped mirrored vdevs.

I think we're kind of hijacking OP's thread however as he's already mentioned ZFS is unfortunately not an option for him.


----------



## forquare (Jul 4, 2015)

protocelt said:


> I think we're kind of hijacking OP's thread however as he's already mentioned ZFS is unfortunately not an option for him.



Oh don’t mind me, it’s great to hear people talk about it. I had a hard time getting people to talk about it after my mid-uni internship at Sun.


----------



## forquare (Jul 5, 2015)

Oko said:


> I edited my post. TrueOS is amd64/ZFS only OS. Means you must use amd64 architecture and you have to use ZFS file system including for root. It might not work for your case due to anemic spec of the machine even though ZFS is usable on KVM guest.



I’ve got TrueOS running in a VM and it currently seems to be running well (with “hardware” mimicking that of my Linode).  I’ve yet to do too much with it.  Part of the migration will be de-GNUing a 4K shell script, which will be, erm, fun…(I’m interested in making it more portable in any case)

Thanks all for the input.  I’m going to get my hands dirty, and do a bit of reading


----------

