@gy-ban
2017-05-14T07:26:54.000000Z
字数 2741
阅读 453
kvm
1、查看cpu是否支持虚拟化
cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l
基于 Intel 处理器的系统,运行grep vmx /proc/cpuinfo查找 CPU flags 是否包括 vmx 关键词
基于 AMD 处理器的系统,运行grep svm /proc/cpuinfo查找 CPU flags 是否包括 svm 关键词
检查BIOS,确保BIOS里开启VT选项
tips:
/proc/cpuinfo 仅从 Linux 2.6.15(Intel) 和 Linux 2.6.16(AMD) 开始显示虚拟化方面的信息。请使用 uname -r 命令查询您的内核版本。
2、安装kvm
kvm 核心软件包
yum install libvirt python-virtinst qemu-kvm virt-viewer bridge-utils virt-manager
qemu-kvm 主要的KVM程序包
libvirt C语言工具包,提供libvirt服务
python-virtinst 创建虚拟机所需要的命令行工具和程序库
bridge-utils 创建和管理桥接设备的工具
virt-manager GUI虚拟机管理工具
virt-viewer GUI连接程序,连接到已配置好的虚拟机
3、验证内核模块是否加载
lsmod | grep kvm
4、启动服务
/etc/init.d/libvirtd start
KVM 客户机网络连接有两种方式:
- 用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。
- 虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。
我们这里主要用到Bridge方式
图中的br0相当于虚拟交换机,物理网卡eth0和虚拟机网卡vnet0都通过虚拟的网线连接到br0上,这样eth0和vnet0之间可以互相交换数据
我们把br0叫做桥,其实在宿主机上也是一张虚拟的网卡,作为虚拟交换机角色,而传统交换机本身就是按mac目标地址的将数据转发到正确的网线出口上,并不会做什么事情。
配置虚拟机采用桥接模式并指定br0后,数据从虚拟机的网卡vnet0发出到br0,br0会将数据转发给另一端的eth0,源mac是虚拟机的随机MAC地址,源IP是虚拟机的IP地址,桥并没有做中间修改,数据仅仅通过eth0网卡直接发到链路上,eth0只是充当一个发送的物理介质。
当应答回来的时候,物理网卡eth0会在混杂模式捕获包并交给br0处理,如果目标mac地址等于eth0或者vnet0,则进一步处理。如果是eth0的包那么直接宿主机处理,如果是vnet0的包则转发给虚拟机处理,整个过程无需对包做出修改,因为br0仅仅是一个交换机,而eth0和vnet0是连在上面的2个网卡而已。
更加简单的去理解的话,br0是一个交换机,eth0是连在br0交换机上某个插槽的另外一台特殊交换机(它在混杂模式工作,监听的是来自物理交换机发来的各类包),而vnet0是连在br0交换机上的一台普通服务器。
根据上述描述,可以得知:
1、无论是虚拟机还是物理机,大家都在一个网段里,都指向同一个默认网关(物理路由器)。
2、虚拟机通过桥,可以向物理路由器申请dhcp,分配得到局域网IP。
3、挂在桥上的虚拟机,可以直接被局域网其他用户访问,因为eth0混杂模式+桥可以转发到虚拟机。
4、混杂模式的网卡只是一个物理介质,它监听所有的包,只留下自己关注的包(比如目的mac地址是eth0h或者vnet0的包),也可以发送任意的包,无论包的源mac地址到底是不是物理网卡自身的(vnet0的假mac地址)
可见,桥接更加适合于虚拟机对外提供服务,因为它是可以被外部访问到的,和一个正常的局域网用户没有什么区别。
建立bridge
1、可以使用brctl命令创建
brctl addbr br0 #添加bridge
brctl addif br0 eth0 #将br0和eth0绑定起来 (可能让网络断掉,最好在本机操作,不要通过网络)
brctl stp br0 on #将br0设置为启用STP协议
ifconfig eth0 0 #将eth0的IP设置为0
dhclient br0 #将br0网络配置好
2、或者使用下面的命令自动创建
virsh iface-bridge eth0 br0
这种是最简单的方式,推荐使用
3、修改网络设备脚本文件
和第二种是一样的,只是我们手动去修改配置文件而已
最后重启网络服务
虚拟机安装的时候,网络要选择用br0桥接方式
图形选择
文件方式
编辑修改虚拟机配置文件 /etc/libvirt/qemu/xxxx.xml,修改以下内容
<interface type='bridge'>
<mac address='52:54:00:da:c3:dc'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
创建虚拟磁盘
qemu-img create -f qcow2 centos-6.4.qcow2 20G
使用virt-install安装
virt-install --virt-type kvm --name=bhkvm02 --ram=4096 --vcpu=4 --network bridge=br0 -c /opt/kvm/iso/CentOS-6.6-x86_64-bin-DVD1.iso --disk path=/opt/kvm/bhkvm02/bhkvm02.qcow2,format=qcow2 --graphics vnc,listen=0.0.0.0,port=5911,keymap=en-us
参数说明:
--name指定虚拟机名称
--ram分配内存大小。
--vcpus分配CPU核心数,最大与实体机CPU核心数相同
--disk指定虚拟机镜像,size指定分配大小单位为G。
--networ网络类型,此处用的是默认,一般用的应该是bridge桥接。
--cdrom -c 指定安装镜像iso
--graphics 图形相关配置
vnc启用VNC远程管理,一般安装系统都要启用。
port指定VNC监控端口,默认端口为5900,端口不能重复。
listen指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
password设置连接密码
--keymap键盘类型,一定要选 不然你会找不着北