KVM安装搭建
一 安装KVM
环境:Centos7.3
首先检查自己服务器或者虚拟机CPU是否支持
egrep '(vmx|svm)' /proc/cpuinfo
安装阿里云镜像站
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装KVM
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer -y
详解:
校验
lsmod | grep kvm
kvm_intel 170181 6 kvm 554609 1 kvm_intel irqbypass 13503 5 kvm
开启KVM 并设置开机自动启动
systemctl start libvirtd
systemctl enable libvirtd
查看运行状态
systemctl status libvirtd
● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since 四 2018-03-01 15:12:08 CST; 15min ago Docs: man:libvirtd(8) http://libvirt.org Main PID: 3237 (libvirtd) CGroup: /system.slice/libvirtd.service ├─1808 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.co... ├─1812 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.co... └─3237 /usr/sbin/libvirtd
配置网卡设置(这里使用的是桥接)
现将自己的网卡配置 备份一份,以防万一出错
cd /etc/sysconfig/network-scripts/
cp ifcfg-em1 ifcfg-em1.bak
修改网卡配置(有好几种方案,不一定非要这样,)
DEVICE=em1 TYPE=Ethernet ONBOOT=yes BRIDGE=br0
创建一个新的文件 ifcfg-br0
DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.70.125 NETMASK=255.255.255.0 GATEWAY=192.168.70.1
重新启动网卡
systemctl restart network
查看网桥
brctl show bridge name bridge id STP enabled interfaces br0 8000.782bcb1992cf no em1 vnet0 vnet1 virbr0 8000.525400c55958 yes virbr0-nic
安装就基本结束了!!!!
测试搭建一台虚拟机*(安装一台Centos6.5)
创建ISO镜像路径
mkdir -p /iso
将Centos6.5镜像上传到服务器上(如果没有 安装一下,yum install -y lrzsz)
rz -y
创建KVM虚拟机目录
mkdir -p /kvm/test/
创建虚拟机
virt-install -n linux-web01 -r 2048 --disk /kvm/test/web01.img,format=qcow2,size=20 --network bridge=br0 --os-type=linux --os-variant=rhel6 --cdrom /iso/CentOS-6-x86_64-DVD-1511.iso --vnc --vncport=5910 --vnclisten=0.0.0.0
- -name:虚拟机的名字
- -ram:内存大小MB
- -vcpus:CPU个数
- -cdrom:ISO镜像位置
- -os-variant:OS类型,例如rhel 6,solaris
- -network:网络,友情链接:创建通过Virt Manager创建桥接网络
- -graphics:Guest显示设置
- -disk path:磁盘位置
打开防火墙
打开防火墙上的5910端口 firewall-cmd --zone=public --add-port=5910/tcp --permanent firewall-cmd --reload
下载一个VNC
直接连接,安装完成。这里我就跳过了,安装好后,启动虚拟机就可以了
virsh start test
virsh list --all
Id 名称 状态
----------------------------------------------------
2 web01 running
3 web02 running
4 test running
- test01 关闭
(二)克隆(test 是刚才创建的)
virsh list --all Id 名称 状态 ---------------------------------------------------- 2 web01 running 3 web02 running 4 test running - test01 关闭
先把tset关闭掉(如果这里没有关闭掉,是有因为电源模块的问题,)
virsh shutdown test
创建虚拟机目录
mkdir -p /kvm/linux-mysql-01
克隆
virt-clone -o test -n mysql01 -f /kvm/linux-mysql-01/mysql01.img
WARNING 设置图形设备端口为自动端口,以避免相互冲突。
正在分配 'mysql01.img' | 10 GB 00:00:02
成功克隆 'mysql01'。
详解
--original:指定被克隆的虚拟机
--name:克隆后目标虚拟机的名称
--file:指定克隆后目标虚拟机的存储路径
virsh list --all Id 名称 状态 ---------------------------------------------------- 2 web01 running 3 web02 running - mysql01 关闭 - test 关闭 - test01 关闭
修改VNC的端口
virsh edit mysql01
找到VNC
<graphics type='vnc' port='5912' autoport='no' listen='0.0.0.0'>
启动mysql01
virsh start mysql01
可以使用VNC直接连接了(如果连接不上,查看一下端口是否更改过来了,VNC上的端口号是否一致)
virsh dumpxml mysql01
看一下VNC的端口 在使用VNC加上端口就可以
删除
(三)快照及恢复快照
KVM自带的快照需要qcow2磁盘文件才支持快照
关闭虚拟机
virsh shutdown test
查看虚拟机磁盘信息
qemu-img info /kvm/test/test.img
image: /kvm/test/test.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 2.0G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true
(如果不是qcow2的,需要转换一下,修改一下配置文件)
qemu-img convert -f raw -O qcow2 /kvm/test/test.img /kvm/test/test.qcow2
vim /etc/libvirt/qemu/test.xml
<driver name='qemu' type='qcow2'/>
创建快照并起别名
virsh snapshot-create-as test test01
查看快照
virsh snapshot-list test 名称 生成时间 状态 ------------------------------------------------------------ 1519957601 2018-03-02 10:26:41 +0800 shutoff test01 2018-03-02 10:28:19 +0800 shutoff
创建快照的位置
ls /var/lib/libvirt/qemu/snapshot/
开启虚拟机test,测试,在test里随便创建几个文件
virsh start test
mkdir test
cd test/
touch {1..20}.test
ls
10.test 13.test 16.test 19.test 2.test 5.test 8.test
11.test 14.test 17.test 1.test 3.test 6.test 9.test
12.test 15.test 18.test 20.test 4.test 7.test
恢复快照
先停止虚拟机
virsh shutdown test
查看test快照,恢复到10:28:19 也就是名称test01
virsh snapshot-list test 名称 生成时间 状态 ------------------------------------------------------------ 1519957601 2018-03-02 10:26:41 +0800 shutoff test01 2018-03-02 10:28:19 +0800 shutoff
恢复快照
virsh snapshot-revert test test01
启动虚拟机就恢复了
如果没有创建别名,名称是数字1519957601
virsh snapshot-revert test 1519957601
查看创建点
virsh snapshot-current test
<name>test01</name>
<state>shutoff</state>
<parent>
<name>1519957601</name>
</parent>
<creationTime>1519957699</creationTime>
<memory snapshot='no'/>
删除快照
virsh snapshot-delete test 1519957601
KVM虚拟机重命名
重命名
1. 查看 virsh list
Id Name State
----------------------------------------------------
9 VM01 running
2. 关闭虚拟机
virsh shutdown VM01;
无法关闭请查看虚拟机无法关机
3. 导出xml文件
cd /etc/libvirt/qemu
virsh dumpxml VM01 > Test.xml
4.编辑Test.xml
name>VM01---->name>Test
最后连img文件的名字也一同修改了;
小方案 shutdown关闭不了虚拟机,是因为acpi服务,反以导致不能关闭虚拟机,需要安装acpi。
yum install acpi -y
开启服务
/etc/init.d/acpi start