brctl show
brctl delif ena eth1; 格式:brctl delif 桥接名 接口
ifconfig ena down;
brctl delbr ena;
检查cpu虚拟化支持
grep -E vmx /proc/cpuinfo
依赖包功能介绍:
qemu-kvm #该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。
#-- KVM模块 作为整个虚拟化环境的核心,工作在系统空间,负责CPU和内存的调度。
#-- QEMU作为模拟器 工作在用户空间,负责虚拟机I/O模拟。 qemu-img #主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。 libvirt #提供Hypervisor和虚拟机管理的API。 libvirt-client #KVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。 libvirt-daemon #libvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。 libvirt-daemon-driver-xxx #从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。 bridge-utils #网桥管理工具包,负责桥接网络的创建、配置和管理等工作。 virt-install #创建和克隆虚拟机的命令行工具包。 virt-manager #图形界面的KVM管理工具。
安装kvm:
vi /etc/yum.repos.d/CentOS-aliyun.repo [aliyun] name=CentOS-$releasever-aliyun baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
vim /etc/resolv.conf #配置dns nameserver 114.114.114.114 yum -y install qemu-kvm libvirt virt-install bridge-utils #安装相关rpm包 systemctl enable libvirtd #启动libvirtd服务 systemctl start libvirtd
5、配置bridge网络
[root@vfeelit network-scripts]# cat ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPV6INIT=no ONBOOT=yes IPADDR=192.168.1.66 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DELAY=0 [root@vfeelit network-scripts]# cat ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet BRIDGE=br0 BOOTPROTO=none IPV6INIT=no ONBOOT=yes
附加说明:这里配置成桥接方式,实际上本机的数据包发送是通过br0发送的,br0的TYPE是Bridge,其它的信息跟配置一个物理网卡一样,本机的eth0通过桥接到br0(通过BRIDGE指定)进行通信,它根本不需要配置IP信息,实际上数据发送还是通过本机的物理网卡
重启网络
service network restart
查看桥接网络
[root@vfeelit ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.0021cc6b6f2c no eth0 virbr0 8000.525400ac7ebe yes virbr0-nic
6、创建虚拟机
virt-install --name=centos1 --ram=4096 --vcpus=2 --cdrom=/mnt/centos/CentOS-7-x86_64-Minimal-1511.iso --os-type=linux --network bridge=br0 --disk path=/home/centos/centos1.img,size=20 --vnc --vnclisten=0.0.0.0 --vncport=5920
查看img文件
[root@vfeelit]# qemu-img info centos.img image: centos.img file format: raw virtual size: 10G (10737418240 bytes) disk size: 1.4G
7、
virsh list #显示正在运行的虚拟机 virsh list --all #显示所有虚拟机 virsh start vm6 #启动名字为vm6的虚拟机 virsh shutdown vm6 #关闭名字为vm6的虚拟机 virsh destroy vm6 #强制关闭名字为vm6的虚拟机 virsh undefine vm6 #移除名字为vm6的虚拟机 virsh autostart vm6 #设置vm6虚拟机开机启动
8、重命名虚拟机
导出虚拟机的配置文件 virsh dumpxml vm5 > /etc/libvirt/qemu/reg.xml 编辑配置文件更改名字 vi /etc/libvirt/qemu/reg.xml ==> <name>reg</name> 移除原有虚拟机 virsh undefine vm5 加载新的虚拟机 virsh define reg.xml
9、虚拟机创建快照
virsh shutdown vm5 && qemu-img convert -f raw -O qcow2 vm5.img vm5qcow2.img #转换磁盘镜像文件格式为qcow2 virsh snapshot-create-as vm5 ok #创建快照 virsh snapshot-list vm5 #查看快照 virsh snapshot-revert vm5 ok #恢复快照 virsh snapshot-delete vm5 ok #删除快照 virsh help snapshot #获取帮助
验证内核模块
# lsmod |grep kvm kvm kvm_intel
以上输出说明内核模块加载成功,其中:
kvm作为核心模块,协同QEMU实现整个虚拟化环境的正常运行。
kvm_intel作为平台(Intel)独立模块,激活KVM环境的CPU硬件虚拟化支持。
开启路由转发功能:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf
支持vnc
vi /etc/libvirt/qemu.conf vnc_listen = "0.0.0.0"
创建虚拟机时,加上--vnc --vnclisten=0.0.0.0 --vncport=5920
virsh-install --name=centos6.5 --ram=4096 --vcpus=2 --cdrom=/mnt/centos/CentOS-6.5-x86_64-bin-DVD1.iso --os-type=linux --network bridge=br0 --disk path=/home/centos/centos6.5.img,size=20 --vnc --vnclisten=0.0.0.0 --vncport=5920