一、首先正确安装CentOS后,内核文件配置
1、升级内核,使其支持vfio,实际上就是安装kernel-3.10.0.tar.gz内核,修改grub.cfg文件,修改slse 里面的set default="0",即默认使用最新的内核启动方式,然后在linuxefi /vmlinuz-3.10.0 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=zh_CN.UTF-8 后面添加iommu=pt intel_iommu=on,重启reboot。
2、安装fhnvfi软件包,里面包含了qemu、ovs、dpdk。创建/home/fhnfvi_all目录,然后将fhnfvi_localyum.tar.gz解压到该目录,注释掉yum源配置,确保安装的是本地软件包mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak,执行该命令可能会提示没有这个目录,创建即可,运行解压后生成的fhnfvi_instead.sh文件,安装完成后,该脚本和目录会自动删除
3、修改libvirt的权限: vi /etc/libvirt/qemu.conf将user = “root”和group = “root”这两项前面的“#”注释去掉然后重启服务:service libvirtd restart,这一步很重要,之前修改过,但是后面莫名其妙被重置了,所以在修改后,建议多检查下,如果被重置回去,导致的结果就是后面配置网桥的时候,有一个网桥会设置失败,提示缺少接口。
4、关闭selinux:vi /etc/selinux/config 将SELINUX=enforcing 改为SELINUX=disabled 然后重启主机
二、关于大页网桥的配置
1、之前在/home/fhnfvi_all目录下解压fhnfvi_localyum.tar.gz,生成一个startPublicBridge.sh分配大页的文件,执行该脚本会制动调用其余两个starthugepage.sh分配大页内存,startvfio.sh配置网卡,将网卡分配到dpdk的服务上,而不是在内核,这里的分配大页,若后面客户机出现内存不足,在这里修改starthugepage.sh即可,将前面设置的内存值改大点就行了。
再次还需要提出一个需要注意的东西,在startPublicBridge.sh脚本中,对网络参数做了比较全面的配置,其中有一个是对dpdkvhostuser的配置,要注意自己起客户机的个数需要同这里配置的个数对应上,如果起了5个客户机,但是这里只做了4个配置,那么在第五台客户机启动时,这里不会报错,但是他会抢占第一台客户机资源启动,所以在同一时刻只会有4台客户机在running。
随后是比较重要的两条命令:这两条时对网桥做一个配置,要让主机起的客户机连网,这里采用的是桥接,在下面的命令中,是申请启用了两个接口int2public、public2int。这里如果提示未找到命令,则应该是interface 接口填错了,区分大小写,正确输入Interface,具体根据自己实际配置情况来看,我这里是Interface(大写的I),之前填写的interface (小写的i),所以会报错。
然后可能会出现ovs-vsctl: no row "patch-int2public type=patch" in table Interface的问题,这里的错误原因是上述一中的3配置问题,回去检查下。
ovs-vsctl add-port br-public patch-public2int -- set Interface patch-public2int type=patch options:peer=patch-int2public
ovs-vsctl add-port br-int patch-int2public -- set Interface patch-int2public type=patch options:peer=patch-public2int
2、执行完starthugepage.sh后,最好dpdk-devbind –s检查下是否网卡从kernel已经交给DPDK接管了,如果没有,在执行下startvfio.sh,里面需要对自己配置client时所用到的网卡做对应的添加。
三、对于client客户机xml文件的修改
1、配置host的线程核,通过mumactl -H查询,不要用“0”,这个设备内部自己要用
2、镜像名称和路径要核对好,绝对路径
3、client的管理mac地址不要冲突,此外,如果遇到配置完客户机后用crt登陆出现卡顿的情况,更改这里的mac地址,可能与主机内部的冲突了,如果客户机之间冲突的话,client是起不来的。
4、客户机配置网卡时,需要同主机当时配置网卡对应,即这里使用的网卡需要配置到DPDK接管,在内核里面是没办法起用到客户机的。
5、telnet端口和vnc端口客户机不冲突即可。