https://blog.csdn.net/chengyinwu/article/details/103281476 有待整理
kvm集群管理 ovirt 、 proxmox
一、简单介绍
KVM(Kernel-based Virtual Machine)是内核级虚拟化技术
1、kvm和qemu
kvm硬件虚拟化(CPU和内存) ,qemu软件虚拟化 。二者相辅相成,QEMU通过KVM达到了硬件虚拟化的速度,而KVM则通过QEMU来模拟设备。对于KVM来说,其匹配的用户空间工具并不仅仅只有QEMU,还有其他的,比如RedHat开发的libvirt、virsh、virt-manager等,QEMU并不是KVM的唯一选择
2、kvm和docker
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案,但它本质上是进程隔离(namespace)和资源限制(cgroups),严格来说不算是虚拟化技术。
作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。
二、KVM 安装配置
1、环境准备
关闭Selinux & 防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 设置Yum源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum makecache 查看是否支持虚拟化 cat /proc/cpuinfo | grep -E 'vmx|svm' 查看KVM 驱动是否加载 lsmod | grep kvm 如果没有加载kvm驱动,利用命令加载驱动 modprobe -a kvm modprobe -a kvm_intel
2、安装kvm及相关组件
安装所需工具包qemu-kvm
librvirt
virt-manager
在安装之前我们最好更新一下软件包 yum update -y 安装qemu-kvm yum install -y qemu-kvm 安装libvirt yum install -y libvirt [root@abcdocker.com ~]# systemctl restart libvirtd [root@abcdocker.com ~]# systemctl enable libvirtd #libvirt 用来管理kvm 安装virt-manager工具 yum install -y virt-manager 解决字符集问题(CRT会出现) yum install dejavu-lgc-sans-fonts
或者一条通配符
# yum install *qemu* *virt* librbd1-devel -y
三、KVM 配置桥接网卡
IP地址 说明 备注 10.4.82.220 本机IP 10.4.82.200 网关地址 10.4.82.116 虚拟机IP
1.编辑宿主机网卡
[root@YZSJHL82-220 ~]# vim /etc/sysconfig/network-scripts/ifcfg-em1 DEVICE=em1 ONBOOT=yes HWADDR=B4:99:BA:B1:24:57 TYPE=Ethernet BOOTPROTO=static #IPADDR=10.4.82.220 #NETMASK=255.255.255.0 #GATEWAY=10.4.82.200 BRIDGE=br0 ## 注释网络配置,添加BRIDGE=br0
2.添加bro虚拟网卡
[root@YZSJHL82-220 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 BOOTPROTO=none ONBOOT=yes TYPE=Bridge IPADDR=10.4.82.220 NETMASK=255.255.255.0 GATEWAY=10.4.82.200 ##添加网络配置,TPYE设置为Bridge
3. 重启网卡
[root@YZSJHL82-220 ~]# systemctl restart network
如果重启网卡有报错,内容如下
Linux : Bridge support not available: brctl not found
请安装br网卡依赖包
yum install bridge-utils -y
4.查看IP地址
此时ens33物理网卡应该没有IP,IP应该都在br0网卡上
5、配置虚拟机ip
[root@abcdocker ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR=52:54:00:ED:7A:16 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes PEERDNS=yes NAME=eth0 UUID=1c1d3828-0adb-4d1a-ada5-80eda0646952 ONBOOT=yes IPADDR=10.4.82.113 NETMASK=255.255.255.0 GATEWAY=10.4.82.200
#若需要,可以加上DNS
四、制作快照
1、图形界面方式较简单 2、命令行方式(磁盘格式为qcow2才支持快照) 虚拟机创建快照: # virsh snapshot-create-as vm8 vm8.snap1(vm8为虚拟机) # virsh snapshot-create centos7.0 (不如上面的方便) 已生成域快照 1583311966 [root@zjz ~]# virsh snapshot-list centos7.0 查看当前快照 名称 生成时间 状态 ------------------------------------------------------------ centos7.sanp1 2020-03-03 16:13:43 +0800 shutoff centos7.snap2 2020-03-03 16:26:07 +0800 shutoff [root@zjz ~]# qemu-img info /var/lib/libvirt/images/centos7.0.qcow2 (查看虚拟机信息) image: /var/lib/libvirt/images/centos7.0.qcow2 file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 11G cluster_size: 65536 Snapshot list: ID TAG VM SIZE DATE VM CLOCK 1 centos7.sanp1 0 2020-03-03 16:13:44 00:00:00.000 2 centos7.snap2 0 2020-03-03 16:26:07 00:00:00.000 3 1583311966 364M 2020-03-04 16:52:46 00:39:42.734 Format specific information: compat: 1.1 lazy refcounts: true
关闭虚拟机,恢复到第一个快照 # virsh shutdown vm8 # virsh snapshot-revert vm8 vm8.snap1 [root@localhost qemu]# virsh snapshot-delete test01 1560191837 #删除快照
五、kvm常用指令和文件夹
# virt-manage 调用图形管理界面 查看kvm支持的os版本: # man virt-install # osinfo-query os | grep centos [root@localhost ~]# virsh -h #查看命令帮助 [root@localhost ~]# ls /etc/libvirt/qemu #查看KVM的配置文件存放目录 networks test01.xml (test01.xml是虚拟机系统实例的配置文件) [root@localhost ~]# virsh list --all #查看虚拟机状态 Id 名称 状态 ---------------------------------------------------- 2 test01 running [root@localhost ~]# virsh shutdown test01 #关闭虚拟机 [root@localhost ~]# virsh start test01 #开启虚拟机 [root@localhost ~]# virsh destroy test01 #强制关机 [root@localhost ~]# virsh create /etc/libvirt/qemu/test01.xml #通过配置文件启动虚拟机 [root@localhost ~]# virsh suspend test01 #挂起虚拟机 [root@localhost ~]# virsh resume test01 #从挂起状态恢复运行虚拟机 [root@localhost ~]# virsh autostart test01 #设置虚拟机伴随宿主机自动启动 #虚拟机的删除与添加: [root@localhost ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml #导出虚拟机配置 #删除虚拟机: [root@localhost ~]# virsh shutdown test01 [root@localhost ~]# virsh undefine test01 [root@localhost ~]# virsh list --all #查看虚拟机是否被删除 Id 名称 状态 ---------------------------------------------------- #通过备份的配置文件重新定义虚拟机: [root@localhost ~]# cd /etc/libvirt/qemu/ [root@localhost qemu]# mv test02.xml test01.xml [root@localhost qemu]# virsh define test01.xml #修改虚拟机配置(内存大小等)信息: [root@localhost qemu]# vim /etc/libvirt/qemu/test01.xml [root@localhost qemu]# virt-df -h test01 #在宿主机上查看虚拟机磁盘信息 克隆虚拟机: [root@localhost qemu]# virt-clone -o test01 -n test02 -f /kvm/store/test02.qcow2 #将test01克隆为test02 [root@localhost qemu]# virsh list --all #查看现有虚拟机 Id 名称 状态 ---------------------------------------------------- - test01 关闭 - test02 关闭
转化格式 qemu-img convert -c -O qcow2 test.raw test.qcow2
改变镜像文件大小(raw和qcow2都可以支持resize) qemu-img resize test.raw +1GB
六、 使用iso制作qcow2镜像
https://www.cnblogs.com/elvi/p/8001298.htm 制作windos镜像
首选创建虚拟磁盘
#qemu-img create -f qcow2 CentOS-6.3-x86_64.qcow2 10G
其次从iso启动镜像
#virt-install --name centos-7.4 --ram 1024 --cdrom=CentOS-7.4-x86_64-bin-DVD1.iso --disk CentOS-7.4-x86_64.qcow2,format=qcow2 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --check all=off
报错
开始安装...... ERROR Cannot access storage file '/root/CentOS-7.4-x86_64.qcow2' (as uid:107, gid:107): 权限不够 域安装失败,您可以运行下列命令重启您的域: 'virsh start virsh --connect qemu:///system start centos-7.4'
解决:
sed -i 's/#vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/g' /etc/libvirt/qemu.conf sed -i 's/#group = "root"/group = "root"/g' /etc/libvirt/qemu.conf sed -i 's/#user = "root"/user = "root"/g' /etc/libvirt/qemu.conf service libvirtd restart
#virt-install --name Windows2008_x64 --ram 2048 --cdrom=win2008_x64fre_server_eval_zh-cn-GRMSXEVAL_CN_DVD.iso --disk Windows2008_x64.qcow2,format=qcow2 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=windows --os-variant=win2k8 --check all=off
查看vnc端口
#virsh vncdisplay centos-6.3
使用vnc去连接安装系统
最后关闭系统后就可以使用QCOW2的镜像了