Project-FiFo cloud orchestration adds FreeBSD support
blog.project-fifo.netThis is a huge boon for both SmartOS and FreeBSD. Furthering collaboration between the two. This is such a great piece of work that is such a great fit on FreeBSD. The community will love this and appreciate all the hard work dumped into this. It even has the Linuxulator (Linux binary compatibility) working for FreeBSD jails! Woo!!
Absolutely fantastic work by the fifo folks! Just stellar! The future is bright.
FreeBSD and Illumos have always seemed to be good friends rather than competitors in the operating system landscape. Not only do you rarely hear something bad said about the other from the communities, but there is a healthy level of respect and cross-pollination going on.
...
It is refreshing to see such cooperation in an otherwise extremely competitive field. This fantastic attitude inspires us.
We are truly lucky and blessed to have the people in the FreeBSD community as friends.
It is a great time to be a part of both communities and have such advanced techologies at our collective disposal.
The future is bright indeed. There are no two platforms I’d rather be on than SmartOS and FreeBSD. Thank you dear friends for everything you’ve done.
Agreed, the FreeBSD community has been incredibly welcoming despite differences in approach of some which is super refreshing compared to the "just do it that way we've always done it like that" you encounter in other places.
Hey I'm Heinz, if you have any questions feel free to ask.
The documentation has been saying that the zones in 0.9.2 will no longer work in 0.9.3. Can I assume that 0.9.3 is now "stable"?
Besides the fact that I have "thin" root zone in SmartOS and the fact that there are still a lot more images available for SmartOS, what things are there which would make you choose one over the other?
EDIT: vmadm allows kvm zones, does freebsd vmadm support bhyve as well? or is that not really possible?
EDIT2: thank you for your work
0.9.3 Jails support has no foreseeable changes going forward as far as upgradability. 0.9.2 was Alpha support for BSD to see if there was any interest, once it was determined that there was interest we started looking at what it would take to have a stable implementation. One of the things we had to do was make a version of vmadm for FreeBSD which took a different approach than iocage (what we used in 0.9.2).
We are from a SmartOS background so of course we are biased to SmartOS, but there are software packages that work better on BSD, and it does have some interesting potential with wider hardware support.
Freebsd vmadm has jails, and lx jail support right now. We are looking at adding bhyve. It should not be a large task as we took a jail in a jail approach in order to have vnet support but still lock down in inner jail. This made adding lx jails a minimal task, and I expect bhyve to be no different.
Thanks for the compliments! We love FiFo and hope you do too!
How are the FreeBSD lx jails? Do they leverage Joyent's work, or can't (because CDDL vs BSD)...
Please don't quote me on this. I think it's not a License question but they're taking a different approach. Linux binary compatibility has been around for a while now, at least longer than modern LX zones (I don't know about old Solaris lx zones).
There are some more subtle differences like the for BSD Linux emulation is a global setting and 'lx jails' are just jails w/ a Linux userland while branded zones are special kind of zones.
I think FreeBSD’s capability to run Linux binaries predates even lx branded zones in Solaris 10.
It does, I was a bit confused at first as well. It should be noted when project fifo says "lx jails" it does not mean LX branded zones from SmartOS. It means FreeBSD's native Linuxulator. Which has been in FreeBSD for.. many many years. It's a similar take on LX zones, but FreeBSD native. It does the same thing. Runs native Linux binaries.
Asking because last time I looked the FBSD stuff wasn't "really there". This would seem to still be the situation: "a true (albeit limited) ABI implementation is provided."
As soon as you see “syscall translation”, those are the magic words and they mean that the support is pretty complete. Sure there might be edge cases but if glibc can make a Linux syscall and get good data back, that’s it.
Great job Heinz and team!
Thanks mate :)
I noticed you used LeoFS for a storage layer. I've been following LeoFS for a while. Can you describe your experience with it and why you chose it, or any impression or thoughts about it.
Overall quite good, the system is very stable and the performance is good (probably not the fastest but decent).
The only thing to criticise (to a degree) would be that if the manual isn't followed precisely during the installation you can end up with a busted setup.
For why the choice. It's a solid distributed system, the concepts it uses the same principles as FiFo (masterless setup for high availability). Being written in Erlang means it works flawlessly on SmartOS and FreeBSD plus if you already use erlang gives the advantage to be able to look at the code if needed.
The LeoFS team is very quick to respond, works extremely diligent and takes their work serious (which is a big plus).
Even on the test system which gets brutally shut down (aka plugs pulled) about once or twice a week the installation works flawlessly even after a few month of this torment.
Of cause as always YMMV ;)
As a huge fan of erlang/elixir I'm glad to read this.
Thanks for answering.
Also, great work! I've always been impressed by Project-Fifo and DalmatinerDB
Thanks for embracing FreeBSD. I too am a fan of Erlang, OTP, Elixir and virtual infrastructure. I hope to be using your stack in the coming months and hopefully can contribute back to your projects in some way.
I love how the already excellent software environment around SmartOS just keeps on evolving and expanding daily.
And Heinz, congratulations on sticking with illumos / SmartOS and taking a stand for what you believe in; I loved your talk from a few years ago.
Thank you, friend! You have no idea how much some encouraging words can mean :)