Difference between revisions of "FreeBSD Guest Notes"

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.
 

Latest revision as of 20: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