本篇博客为个人KVM虚拟化精简笔记
KVM:基于内核的虚拟机(英语:Kernel-based Virtual Machine,缩写为 KVM),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor,其功能类似于window中软件vmware。
实验:在centos7上虚拟出centos7虚拟主机(KVM虚拟主机内存建议不低于4G)
安装KVM虚拟化软件
安装依赖包:yum install -y libvirt* virt-* qemm-kvm*
(libvirt 虚拟机管理 virt 虚拟机安装克隆 qemm-kvm 管理虚拟机磁盘)
启动服务:systemctl start libvirtd
设置开启自启动:virsh is-enable libvirtd
配置第一台kvm虚拟机:
[root@kvm ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/clsn.raw,format=raw,size=10 --cdrom /data/CentOS-7-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0,port=5900 --noautoconsole
参数(说明)
--virt-type 要使用的管理程序名称(kvm)
--os-type 系统类型
--os-variant 在客户机上安装的操作系统
--name 客户机实例名称
--memory 配置客户机虚拟内存大小
--vcpus 配置客户机虚拟cpu数量
--disk 指定存储的各种选项
--cdrom 光驱安装介质
--network 配置客户机的网络接口
--graphics 配置客户机显示设置
KVM虚拟主机基本操作
例:创建一台KVM虚拟机:centos7
KVM配置文件位置:ls /etc/libvirt/qemu/centos7.xml
修改KVM虚拟机配置文件 :virsh edit centos7
备份虚拟机(关机):virsh dumpxml centos7.xml
查看创建的虚拟机:virsh list --all
删除创建的虚拟机:virsh undefine centos7
导入虚拟机:virsh define centos7.xml
修改虚拟机名称:virsh domrename centos7 clsn7
虚拟机挂起:virsh suspend clsn7
挂起后恢复:virsh resume clsn7
设置虚拟机开机自启:virsh autostart clsn7
取消开机自启:virsh autostart --disable clsn7
-----配置虚拟机console口登陆-----
在创建的KVM虚拟机内操作(仅限centos7系统)
[root@xuni ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@xuni ~]# reboot
重启后,物理机连接虚拟机
[root@kvm~ ]# virsh console clsn7
-----KVM虚拟机磁盘管理-----
[root@kvm ~]# mkdir /data/ && cd /data 创建一块qcow2的虚拟硬盘 [root@kvm ~]# qemu-img create -f qcow2 clsn.qcow2 2G 查看当前虚拟机硬盘信息 [root@kvm ~]# qemu-img info /data/clsn.raw raw转qcow2格式 [root@kvm ~]# qemu-img convert -f raw -O qcow2 clsn.raw clsn.qcow2
[root@kvm data]# virsh edit clsn7 修改前:修改后:
删除原磁盘文件
[root@kvm data]# \rm clsn.raw
KVM虚拟机添加硬盘
进入硬盘存放目录
创建一块新的硬盘
[root@kvm data]# qemu-img create -f qcow2 clsn7-add01.qcow2 5G
为虚拟机添加硬盘
[root@kvm data]# virsh attach-disk clsn7 /data/clsn7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
分离硬盘
[root@kvm data]# virsh detach-disk clsn7 vdb
KVM虚拟机快照管理
生成快照:virsh snapshot-create clsn7
查看主机快照列表:virsh snapshot-list clsn7
查看快照信息:virsh snapshot-info clsn7 --snapshotname 1516607756
还原快照:virsh snapshot-revert clsn7 --snapshotname 1516607756
删除快照:virsh snapshot-delete clsn7 --snapshotname 1516607756
快照配置文件位置:/var/lib/libvirt/qemu/snapshot
kvm虚拟机克隆:virt-clone --auto-clone -o clsn7
KVM虚拟机网络管理
编辑文件/etc/sysconfig/network-script/eth0 br0配置文件 # 查看 eth0 配置文件 [root@kvm ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BRIDGE="br0" # 查看 br0 配置文件 [root@kvm ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE="br0" ONBOOT="yes" TYPE="Bridge" BOOTPROTO="none" IPADDR="10.0.0.240" NETMASK="255.255.255.0" GATEWAY="10.0.0.254" IPV6INIT="yes" IPV6_AUTOCONF="yes" DHCPV6C="no" STP="on" DELAY="0" #查看宿主机网桥 [root@kvm ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c294d551b yes eth0 virbr0 8000.5254006aaa40 yes virbr0-nic ==修改虚拟机== [root@kvm ~]# virsh edit clsn7 修改前:修改后: #虚拟主机内操作 [root@clsn7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.110 NETMASK=255.255.255.0 GATEWAY=10.0.0.254 DNS1=223.5.5.5
========================
KVM虚拟机冷迁移
#在第二台主机上安装KVM组件 [root@kvm02 ~]# yum install libvirt* virt-* qemm-kvm* -y #配置桥接网络 [root@kvm02 ~]# virsh iface-bridge eth0 br0 mkdir -p /data/ #在第一台主机将虚拟机关机,导出配置文件 [root@kvm ~]#virsh dumpxml clsn7 > clsn7.xml #将虚拟机导出的文件和磁盘传输到kvm02上 [root@kvm ~]#scp -rp clsn7.xml clsn.qcow2 10.0.0.201:/data #导出配置文件 [root@kvm02 ~]# virsh define clsn7.xml [root@kvm02 ~]# virsh start clsn7.xml