-------------------------------------------------------------------------
###KVM SNAT配置进程
-------------------------------------------------------------------------
#增长一个br0网桥(不跟任何网卡绑定)
brctl addbr br0
#激活网桥
ifconfig br0 up
#给br0配置IP地址
ifconfig br0 10.0.0.1/24
#1.应用virsh创立两台虚拟机vm01和vm02,这两台虚拟机网卡都接到br0上
#2.ip地址分离为10.0.0.11、10.0.0.12(注意:两台虚拟机的mac不能雷同)
#3.将这两台虚拟机的网关设置为10.0.0.1即br0的ip地址
#测试用vm1 ping 10.0.0.1可以ping通,用vm2 ping 10.0.0.1也能够ping通
#但是vm1 ping 不通vm2
#须要在宿主机中开启ipv4转发功效。编纂/etc/sysctl.conf修正内容为net.ipv4.ip_forward=1,然后履行sysctl -p使修正立即生效。
#开启后vm1和vm2便可ping通
#在nat表上添加SNAT转发功效即来自10.0.0.0/24的数据包且从eth0出去,将其源地址转换成192.168.50.150
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to-source 192.168.50.150
#要实现SNAT功效,必需让filter表的FORWARD链许可转发
iptables -t filter -I FORWARD -p all -s 10.0.0.0/24 -j ACCEPT
iptables -t filter -I FORWARD -p all -d 10.0.0.0/24 -j ACCEPT
或将filter表FORWARD最后一条谢绝的链删除
iptables -D FORWARD 1
-------------------------------------------------------------------------
-------------------------------------------------------------------------
###KVM DNAT配置进程,将宿主机的8022端口映照到客户机vm1的22端口
-------------------------------------------------------------------------
#重新启动iptables,恢复iptables配置
service iptables restart
#设置宿主机iptables许可tcp8022端口通过
iptables -I INPUT -p tcp --dport 8022 -j ACCEPT
#设置nat表的PREROUTING链,将拜访192.168.50.150 tcp 8022端口的数据转发到10.0.0.11的22号端口
iptables -t nat -A PREROUTING -d 192.168.50.150 -p tcp -m tcp --dport 8022 -j DNAT --to-destination 10.0.0.11:22
#要实现SNAT功效,必需让filter表的FORWARD链许可转发
iptables -t filter -I FORWARD -p all -s 10.0.0.0/24 -j ACCEPT
iptables -t filter -I FORWARD -p all -d 10.0.0.0/24 -j ACCEPT
或将filter表FORWARD最后一条谢绝的链删除
iptables -D FORWARD 1
-------------------------------------------------------------------------
-------------------------------------------------------------------------
###KVM DNAT配置进程,将宿主机的一个单独ip(如192.168.50.150)映照到客户机
#ip为10.0.0.11的vm1虚拟机上,即IP一对一映照
-------------------------------------------------------------------------
#重新启动iptables,恢复iptables配置
service iptables restart
#设置nat表的PREROUTING链,将拜访192.168.50.150的转发到10.0.0.11
iptables -t nat -A PREROUTING -d 192.168.50.150 -j DNAT --to-destination 10.0.0.11
#设置nat表的POSTROUTING链,将来自10.0.0.11的数据包的源地址转换成192.168.50.150
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.11 -j SNAT --to-source 192.168.50.150
#要实现SNAT功效,必需让filter表的FORWARD链许可转发
iptables -t filter -I FORWARD -p all -s 10.0.0.0/24 -j ACCEPT
iptables -t filter -I FORWARD -p all -d 10.0.0.0/24 -j ACCEPT
或将filter表FORWARD最后一条谢绝的链删除
iptables -D FORWARD 1
-------------------------------------------------------------------------
-------------------------------------------------------------------------
###KVM 扁平的网络模式(flat)配置进程,行将虚拟机分配一个内网ip一个外网ip
-------------------------------------------------------------------------
#在宿主机上配置两个网卡eth0和eth1,eth0作为外网eth1作为内网
#如果是应用的是vmware workstation虚拟出的宿主机,eth0选用NAT网络eth1选用host-only网络
#将eth0不设置IP,eth1设置ip为192.168.80.150
#创立两个网桥br0和br1,将br1与eth0衔接到一起
#应用virsh的iface-bridge命令非常便利,创立br1的同时再与eth0衔接
iface-bridge eth0 br1
#注意:上面的命令有可能失败,由于如果安装了图形桌面的CentOS,NetworkManager接收网络,
#须要将NetworkManager停掉,并重新启动network服务来接收网络服务
chkconfig NetworkManager off
service NetworkManager stop
service network restart
#应用virsh创立虚拟机,在其配置文件中有两个网卡,注意mac地址要唯一
<interface type="bridge">
<mac address="06:64:12:00:00:54"/>
<!--当前主机网桥的名称-->
<source bridge="br0" />
<model type="virtio"/>
</interface>
<interface type="bridge">
<mac address="06:64:12:00:00:55"/>
<!--当前主机网桥的名称-->
<source bridge="br1" />
<model type="virtio"/>
</interface>
#在客户机中设置eth0的ip为192.168.50.200/24,网关为192.168.50.2
#在客户机中设置eth1的ip为10.0.0.11/24,不设置网关
-------------------------------------------------------------------------
virsh
两种模式:交流模式、非交互模式
suspend
resume
dumpxml
KVM平台以存储池的情势对存储进行统一管理,所谓存储池可以懂得为本地目录、通过远端磁盘阵列(iSCSI、NFS)分配过来磁盘或目录,固然也支撑各类散布式文件体系。
存储池(Storage pools)是放置虚拟机的存储地位,可以是本地的,也能够是网络存储,具体的虚拟机实例放置在卷(Volume)上。
KVM创立的存储池可以懂得为一种映照关系,行将某一块挂接至宿主机器上的存储空间构成可被KVM应用的逻辑存储池,以便利虚拟主机的管理。
定义一个存储池
pool-define-as images-pool dir - - - - /cloud/images/pool
查看已定义的存储池
pool-list --all
树立基于文件夹的存储池
pool-build images-pool
启用存储池
pool-start images-pool
设置存储池主动运行
pool-autostart images-pool
查看存储池信息
pool-info images-pool
已xml格局显示存储池信息
pool-dumpxml images-pool
通过XML创立一个存储池
先创立一个test-pool.xml
<pool type="dir">
<name>test-pool</name>
<source>
</source>
<target>
<path>/cloud/imgs</path>
<permissions>
<mode>0755</mode>
<owner>0</owner>
<group>0</group>
</permissions>
</target>
</pool>
pool-define test-pool.xml
pool-build test-pool
pool-start test-pool
pool-dumpxml test-pool
创立卷
vol-create-as images-pool billstudy-centos.img 8G --format qcow2
查看存储池里面的卷信息
vol-list images-pool
查看某个卷的信息
vol-info billstudy-centos.img images-pool
更详细卷的信息
vol-dumpxml billstudy-centos.img images-pool
关于KVM的快照,如果没有快照的话,虚拟机也就失去了很大的作用。
创立快照
snapshot-create-as --domain vm03 --name 2015-02-19 --description "mv03 snap"
查看快照
snapshot-list vm03
查看快照配置
snapshot-current vm03
回复快照地位
snapshot-revert vm03 2015-02-19
删除快照
snapshot-delete vm03 2015-02-19
获得赞助
help snapshot
QEMU monitor是QEMU与用户交互的一种掌握台,一般用于为QEMU摹拟器供给较为庞杂的功效,
QEMU monitor的切换
"Ctrl + Alt + 2" --> QEMU monitor状况
"Ctrl + Alt + 1" --> 客户机尺度显示窗口
查看赞助信息
help/? [cmd]
help savevm 或 ? savevm
显示体系命令状况:info
查看QEMU的版本信息
info versions
查看当前QEMU是不是有KVM的支撑
info kvm
info name
info status
查看客户机各个vCPU的信息
info cpus
查看块装备信息,如硬盘、软盘、光驱等
info block
查看客户机的网络配置信息
info network
显示当前体系中已保留的客户机快照信息
info snapshots
查看当前客户机的迁移状况
info migrate
显示当前客户机的VNC状况
info vnc
查看QEMU monitor中命令履行的历史
info history
创立快照
savevm snap20150406
恢复快照
loadvm snap20150406
删除快照
delvm snap20150406
-------------------------------------------------------------------------
###虚拟灵活态迁移
-------------------------------------------------------------------------
安装NFS并应用NFS网络存储
动态迁移:将客户机从源宿主机 -> 目标宿主机
注意:都要挂载NFS
1.在源宿主机上挂载NFS
2.在源宿主机上启动虚拟机
3.在目标宿主机上挂载NFS
4.在目标宿主机上启动虚拟机
5.关闭目标宿主机的防火墙或开启相应端口
/usr/libexec/qemu-kvm -m 4096 -smp 1 -incoming tcp:0:8888 /mnt/storage/centos.qcow2 -vnc :1 &
-incoming 这个参数使qemu-kvm进程进入到迁移监听模式
tcp:0:8888 这个参数表现在8888端口上树立一个TCP Socket衔接用于吸收来自源宿主灵活态迁移的内容,"0"表现许可来自任何主机的衔接
5.在源宿主机上切换到QEMU monitor,然后履行迁移命令
migrate tcp:192.168.50.160:8888
6.查看迁移成果
应用virsh进行热迁移
migrate centos-nfs --live qemu+ssh://192.168.50.160/system --unsafe
#涌现毛病1
error: internal error Attempt to migrate guest to the same host 564d46b4-6d6b-2a13-3f81-bb970716d517
sed -i "/#host_uuid/ahost_uuid = \"`uuidgen`\"" /etc/libvirt/libvirtd.conf
#涌现毛病2
error: Unable to resolve address "kvm02.billstudy.com" service "49152": No address associated with hostname
vi /etc/hosts
192.168.50.150 kvm01.billstudy.com
192.168.50.160 kvm02.billstudy.com--------------------------------------------------