-
Notifications
You must be signed in to change notification settings - Fork 332
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
2023q3 report for the openstack on freebsd project
- Loading branch information
Showing
1 changed file
with
35 additions
and
0 deletions.
There are no files selected for viewing
35 changes: 35 additions & 0 deletions
35
website/content/en/status/report-2023-07-2023-09/openstack-on-freebsd.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
=== OpenStack on FreeBSD | ||
|
||
Links: + | ||
link:https://www.openstack.org/[OpenStack] URL: link:https://www.openstack.org/[] + | ||
link:https://github.com/openstack-on-freebsd[OpenStack on FreeBSD] URL: link:https://github.com/openstack-on-freebsd[] | ||
|
||
Contact: Chih-Hsin Chang <starbops@hey.com> + | ||
Contact: Li-Wen Hsu <lwhsu@FreeBSD.org> | ||
|
||
OpenStack, an open-source cloud operating system, has been a valuable resource for deploying various resource types on cloud platforms. | ||
However, the challenge has been running OpenStack's control plane on FreeBSD hosts. | ||
Our project's mission is to enable FreeBSD to function seamlessly as an OpenStack host. | ||
|
||
Throughout this quarter, we focused on the last bit of the entire proof of concept (POC), the VM console integration. | ||
The goal is to let users get serial consoles via the OpenStack client to access the VM instances running on the FreeBSD-based OpenStack cluster. | ||
This is also important because right now we do not have a port for the managed DHCP service in Neutron. | ||
Users need to manually configure the correct IP addresses for the VM instances to have network connectivity. | ||
However, man:bhyve[8] does not natively expose serial consoles, so we need to instead export the man:nmdm[4] device over the network. | ||
This is done by a custom proxy called link:https://github.com/openstack-on-freebsd/socat-manager/blob/main/server.py[`socat-manager`], and yes, we leverage man:socat[1] to listen on specific ports allocated by OpenStack `nova-compute` to be integrated into their workflow. | ||
With the aid of another critical part, the link:https://github.com/openstack-on-freebsd/socat-manager/tree/main/hooks[custom Libvirt hook for bhyve], we can connect the two endpoints and make the consoles accessible to the users. | ||
During development of the hook script, we found that the hook interface provided by Libvirt specifically for bhyve was link:https://gitlab.com/libvirt/libvirt/-/issues/528[not well implemented]. | ||
Fortunately, the Libvirt developer link:https://gitlab.com/libvirt/libvirt/-/commit/ad8c4d9d6d09d51a9530ed84fcd2220713aab928[fixed the issue] promptly, and we plan to refine our hook script when the fix is released in the future. | ||
|
||
We also addressed the nested bhyve issue (running bhyve VMs on top of Linux KVM) in our development environment mentioned in https://www.freebsd.org/status/report-2023-04-2023-06/#_openstack_on_freebsd[the last quarterly report]. | ||
It is caused by the APIC emulation of the two VT-x features: `VID` and `PostIntr`. | ||
Our host's CPUs have these two features so we need to disable them at the L1 guest, which acts as a bhyve host, in `/boot/loader.conf` to make L2 guests not hanging. | ||
It is crucial for us to be able to work on the project in a fully virtualized environment due to the lack of physical resources. | ||
This could be equally important for people interested in the project, lowering the bar for them to try out or validate the entire POC on their environment without too demanding setup requirements. | ||
Looking ahead to Q4, our focus is wrapping up the POC with revised documentation and porting to FreeBSD 14.0-RELEASE. | ||
Dependencies that lack the corresponding FreeBSD packages will be ported one by one. | ||
We also aim to rebase our work with OpenStack link:https://releases.openstack.org/antelope/index.html[2023.1 Antelope]. | ||
We invite those interested to explore our documentation and contribute to this project's success. | ||
Sponsor: The FreeBSD Foundation |