Pages

Tuesday, 30 October 2012

让 kvm上的 FreeBSD VPS使用virtio内核模块

现在 kvm 的 vps 都支持使用 virtio 来优化 vps的磁盘IO 和 网络IO 的性能(估计是类似半虚拟化的东东),之前在kvm上一直使用的是debian,能在安装的时候自动识别加载 virtio 驱动安装 。但 FreeBSD 上不行,在安装时识别不了硬盘和网卡,搜了一google,最新的8和9版本的 FreeBSD 上已经有 virtio 的内核模块了。
1. 首先在KVM安装好一个FreeBSD(VPS面板硬件先不要选择virtio)
2.登录到FreeBSD VPS上,下载 FreeBSD 的源码
     #cp /usr/share/examples/cvsup/standard-supfile /root
               编辑  /root/standard-supfile
               找到 default host ,修改为
                 *default host=cvsup.FreeBSD.org
               然后
                #csup /root/standard-supfile
              等待完成,这样就把FreeBSD的源码下载到/usr/src下面了
3. 更新下vps上的 ports
portsnap fetch update
     如果是第一次更新,用
portsnap fetch extract
     然后
  #cd /usr/ports/emulators/virtio-kmod
  #make install clean
4.在安装 virtio-kmod 成功后,他会让你提示让你修改一些配置文件,如下。
     
    首先我们修改下  /boot/loader.conf   ,如果没有存在,就创建下,然后填入下面的内容
 virtio_load="YES"
 virtio_pci_load="YES"
 virtio_blk_load="YES"
 if_vtnet_load="YES"
 virtio_balloon_load="YES"
  接着修改 /etc/fstab 的配置,他里面的ada开头的修改为 vtbd
   # sed -i.bak -Ee 's|/dev/ada?|/dev/vtbd|' /etc/fstab
   最后修改下 /etc/rc.conf 里面关于网络的配置,增加一句  ifconfig_vtnet0_name="em0"
   #echo 'ifconfig_vtnet0_name="em0"' >> /etc/rc.conf
5.最后是先关闭FreeBSD VPS ,然后到你的KVM VPS 的管理面板修改网卡和硬盘为 virtio,

之后启动FreeBSD VPS,搞定。