FreeBSD Guest Notes: Difference between revisions

From Proxmox VE
Jump to navigation Jump to search
(26 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:HOWTO]]
[[Category:HOWTO]]
Tweaks and tips for better performance with FreeBSD on KVM.
Setting up a FreeBSD Guest on PVE.
:'''Note:''' This has been tested with FreeBSD 10.3 RELEASE (and patch levels). Some steps have been removed as they have been deprecated in newer FreeBSD versions.


:'''Note:''' This has only been tested with FreeBSD 9.0-RELEASE (and patch levels).
==Create VM==
==Create VM==
* Download the FreeBSD 9.0-amd64 DVD ISO (from [http://www.freebsd.org/where.html here]) and transfer it to your VM server.
* Download the FreeBSD 10.3-RELEASE-amd64 DVD ISO (from [http://www.freebsd.org/where.html here]) and transfer it to your VM server.
* Create a new VM:
* Create a new VM:
** CPU: dual-socket or dual-core
** CPU: dual-socket and/or dual-core
** RAM: 2GB (minimum)
** RAM: 2GB (minimum)
** Network: Intel e1000 (bridged)
** Network: Virtio
** Create a 32GB primary disk (scsi, qcow2)
** Disk: 32GB (or higher), virtio, qcow2
** Add FreeBSD 9.0-amd64 DVD ISO as an optical drive (scsi).
** Add FreeBSD 10.3-RELEASE-amd64 DVD ISO as an optical drive.


==Install FreeBSD==
==Install FreeBSD==
* Power on the VM.
* Power on the VM.
* It should boot to the FreeBSD 9.0-amd64 DVD ISO.
* It should boot to the FreeBSD 10.3-RELEASE-amd64 DVD ISO.
* System Components: Add "src".
* System Components: Disable optional (games, etc).
* Disks: Guided, use entire disk.
* Disks: Auto (ZFS) Guided Root-on-ZFS, stripe virtual device, choose vtbd0 VirtIO Block Device.
* Network: Use ipv4 only (unless you also use ipv6).
* Network: Choose vtnet0 VirtIO Networking Adapter. Use ipv4 only (unless you also use ipv6).
* Services: Add ntpd.
* Services: Add ntpd.
* This should leave you with FreeBSD 9 installed on the 32GB primary drive.
* This should leave you with FreeBSD 10.3-RELEASE installed on the primary drive.
* Shut down the VM after installation.
* Shut down the VM after installation.
* Remove the ISO from the VM's optical drive (set to empty).
* Remove the ISO from the VM's optical drive (set to empty).
* Verify the VM's boot order is set to the primary hard disk first.
* Verify the VM's boot order is set to the primary hard disk first.
==First Boot==
==First Boot==
* Power on the VM and log in.
* Power on the VM and log in.
Line 35: Line 36:
</pre>
</pre>
* Reboot
* Reboot
==Enable Virtio==
* Install virtio-kmod:
<pre>
cd /usr/ports/emulators/virtio-kmod && make clean install
</pre>
* When prompted on each required package, accept defaults and OK.
* Copy the virtio modules into <code>/boot/kernel</code> directory:
<pre>
cp -Rp /usr/local/modules/* /boot/kernel/
kldxref /boot/kernel
</pre>
* Add the following to <code>/boot/loader.conf</code>:
<pre>
virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"
virtio_balloon_load="YES"
</pre>
* Enable virtio for disk by changing your <code>/etc/fstab</code> entries to use the '''vtbd''' prefix. Example:
<pre>
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/vtbd0p2    /              ufs    rw      1      1
/dev/vtbd0p3    none            swap    sw      0      0
</pre>
* Enable virtio for network by changing the <code>ifconfig_em0="DHCP"</code> line in <code>/etc/rc.conf</code> to:
<pre>
ifconfig_vtnet0="DHCP"
</pre>
* Shutdown the VM
<pre>
shutdown -p now
</pre>
* Change VM's network and disk hardware to use virtio.
* Power on the VM.
* Verify that virtio is loading:
<pre>
kldstat
Id Refs Address            Size    Name
1  12 0xffffffff80200000 11cdab0  kernel
2    5 0xffffffff813ce000 4ca0    virtio.ko
3    1 0xffffffff813d3000 5880    virtio_pci.ko
4    1 0xffffffff813d9000 5010    virtio_blk.ko
5    1 0xffffffff813df000 aeb0    if_vtnet.ko
6    1 0xffffffff813ea000 3210    virtio_balloon.ko
</pre>
==External Links==
* [http://viktorpetersson.com/2012/01/16/how-to-upgrade-freebsd-8-2-to-freebsd-9-0-with-virtio/ How to upgrade FreeBSD 8.2 to FreeBSD 9.0 with Virtio] - contains useful information on setting up virtio on freebsd 9.
* [http://www.freshports.org/emulators/virtio-kmod FreshPorts virtio-kmod] page.

Revision as of 19:43, 27 April 2016

Setting up a FreeBSD Guest on PVE.

Note: This has been tested with FreeBSD 10.3 RELEASE (and patch levels). Some steps have been removed as they have been deprecated in newer FreeBSD versions.

Create VM

  • Download the FreeBSD 10.3-RELEASE-amd64 DVD ISO (from here) and transfer it to your VM server.
  • Create a new VM:
    • CPU: dual-socket and/or dual-core
    • RAM: 2GB (minimum)
    • Network: Virtio
    • Disk: 32GB (or higher), virtio, qcow2
    • Add FreeBSD 10.3-RELEASE-amd64 DVD ISO as an optical drive.

Install FreeBSD

  • Power on the VM.
  • It should boot to the FreeBSD 10.3-RELEASE-amd64 DVD ISO.
  • System Components: Disable optional (games, etc).
  • Disks: Auto (ZFS) Guided Root-on-ZFS, stripe virtual device, choose vtbd0 VirtIO Block Device.
  • Network: Choose vtnet0 VirtIO Networking Adapter. Use ipv4 only (unless you also use ipv6).
  • Services: Add ntpd.
  • This should leave you with FreeBSD 10.3-RELEASE installed on the primary drive.
  • Shut down the VM after installation.
  • Remove the ISO from the VM's optical drive (set to empty).
  • Verify the VM's boot order is set to the primary hard disk first.

First Boot

  • Power on the VM and log in.
  • Set the time:
ntpdate -s pool.ntp.org
  • Update the system:
freebsd-update fetch
freebsd-update install
  • Reboot