Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Feb 2024 22:37:34 +0100
From:      Jo Durchholz <jo@durchholz.org>
To:        "freebsd-virtualization@FreeBSD.org" <freebsd-virtualization@freebsd.org>
Subject:   Re: Best way to have a FreeBSD VM for automated testing?
Message-ID:  <4073dc47-528e-493b-a28e-a21aff733225@durchholz.org>
In-Reply-To: <CA%2B1FSijjCLn8sxrjMxT_1j2qW3mk4pjvqMBSytCBBpi0tixNkQ@mail.gmail.com>
References:  <163e57a9-0b61-414c-a8f7-109f5ac90f69@durchholz.org> <CA%2B1FSijjCLn8sxrjMxT_1j2qW3mk4pjvqMBSytCBBpi0tixNkQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 23.02.24 19:41, Mario Marietto wrote:
> To speed up the booting of a bhyve VM I'm using this method :
> 
> nohup /usr/sbin/bhyve -S -c sockets=2,cores=2,threads=2 -m 8G -w -H -A \
> -s 0,hostbridge \
> -s 
> 1,virtio-blk,/mnt/zroot2/zroot2/bhyve/img/Linux/Ubuntu2310.img,bootindex=1 \
> -s 11,hda,play=/dev/dsp,rec=/dev/dsp \
> -s 13,virtio-net,tap19 \
> -s 14,virtio-9p,sharename=/ \
> -s 30,xhci,tablet \
> -s 31,lpc \
> -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CODE.fd \
> vm0:19</dev/null >/dev/null 2>&1 &
> if test -f nohup.out; then rm -r nohup.out
> fi

Hmmm... my knee-jerk reaction was that bhyve runs on FreeBSD and I want 
to use a Linux host, but to my surprise, yeah you can run byhve on Linux.

However, it's an additional layer, which means more potential failure 
modes, and it requires extra configuration on the system level which 
means it's another small entry barrier for new contributors.

So... no bhyve for me.
(Note that this does not mean that there's no merit in the approach! 
Just that it does not fit my project's priorities.)

Do you know how to translate all these bhyve options to a KVM or Vagrant 
incantation? I know too little about either to be confident in what I'd 
produce.
Maybe a short explanation of each parameter would help? Why is it there, 
what problem does it solve, that kind of information, just to get me 
started so I can focus on those options that are actually relevant to 
the applicance I'm trying to set up.

> I've installed a ssh server within the vm and I connect to it from 
> FreeBSD using ssh -Y user@IP ; it's faster. But the project is not 
> completed. I want to install VirGL to have the graphic acceleration 
> without using the real GPU of the host inside the VM.

Heh. Yet another rabbit hole. Good luck with that!
I have to say I'm lucky that my project is just a web server so I don't 
need that.

Anyway: Thanks for the info! Knowing what you're doing tells everybody a 
lot about what's routine and what isn't, and that's valuable.

Regards,
Jo

> On Fri, Feb 23, 2024 at 8:17 PM Jo Durchholz <jo@durchholz.org 
> <mailto:jo@durchholz.org>> wrote:
> 
>     Hi all,
> 
>     I'm in repeatable build land, working in Linux and developing a FreeBSD
>     appliance.
> 
>     For tests, I need to run a FreeBSD VM, put some Python code and test
>     data into it, run the script, and get the test results back.
> 
>     Repeatability means: Everything done with the VM needs to be scriptable
>     (using a GUI for exploring is okay but things have to translate).
>     Which in turn means that every setup step for a FreeBSD image comes
>     with
>     a pretty high coding and maintenance cost.
> 
>     So my question is:
>     What's the FreeBSD image that has the least number of steps to get the
>     base system up and running? I suppose it's the VM-IMAGES section,
>     but is
>     this correct?
> 
>     Follow-up question:
>     The startup time needs to be as fast as possible. Sub-second would be
>     great ("don't disrupt the developer's thought stream").
>     I see the boot process from a vanilla VM-IMAGES image takes multiple
>     seconds; can this be sped up to just a few seconds, or do I need to run
>     the setup and create a VM snapshot at which the VM starts for each
>     test run?
> 
>     Regards,
>     Jo
> 
> 
> 
> -- 
> Mario.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4073dc47-528e-493b-a28e-a21aff733225>