Kvm
1. 什么是云计算 ?
云计算就是一种按量付费的模式,它的底层主要使用虚拟化技术实现的。
#1. 水龙头的观点论
#2. 荤段子的观点论
#3. 共享单车观点论
#4. 一日三餐观点论
云计算的特点:
#1. 大规模,分布式
#2. 虚拟化
IDC 云厂商为每个客户提供了一个IDC机房
#3. 高可用性和扩展性
7*24小时运行,动态伸缩
#4. 按需服务,经济实惠
用户可以根据自己的要求进行购买服务。 资源利用率。
#5. 安全
网络安全是每个人或者每个企业都需要考虑到的问题。 有专业的安全团队提供网络安全服务。
云里雾里 拨开云雾
一个问题:如何想让计算机变强 ?
使用更多的机器, 就是不同计算机之间如何协同工作
小项目: 项目管理
并行计算。
负载均衡
热备冗余 高可用 单点故障
虚拟化
Elastic Compute Service 云服务器
云计算( Cloud Computing ):
分布式计算:
效用计算:
网络存储:
虚拟化:
负载均衡:
热备冗余:
由传统计算机技术发展融合而成的产物。
网格计算
最基础的的条件:
1. 计算资源的虚拟化,按计算你能来购买才是真正的云计算。
2. 云计算的弹性伸缩能力,一定是想用多少就是多少,不用的时候就释放掉。
2. 为什么要用云计算 ?
上线一款游戏: 招个运维,部署一个架构,10台物理服务器, 租个IDC机房的机柜托管,企业级的带宽。
小公司: 灵活扩展,节约成本
大公司: 云计算厂商,多余的就出租,内存压缩技术
物理服务器: 64G内存 2CPU 24个核心
1核1G的内存 虚拟64台主机
3. 云计算的服务类型
1. IAAS infrastructure as a service 基础设施即服务 云厂商都是这种服务类型
虚拟机 虚拟网络 云存储 虚拟化 Kvm管理平台 OpenStack
如果你采用了IAAS服务,那么意味着你就不用自己买服务器了,随便在哪一家购买虚拟机,但是你自己需要安装服务器软件。
2. PAAS Platform as a service 平台即服务 heroku salesfocre CRM CloudFoundry是一个提供夸平台、多语言应用框架的开源PaaS
数据库服务 web应用 容器服务 docker容器 k8s kubernetes
如果你使用了PAAS服务,那么就意味着你既不需要购买服务器,也不需要自己安装服务器软件,只需要自己开发网站程序。
3. SAAS Software as a service 软件即服务 Gmail paypal 纳斯达克 QQ 微信
各类网盘,gitlab github 第三方 企业邮箱服务 rds cdn Oss NAS 运维+开发
购买某些在线论坛或者在线其他服务,这就意味着你不用自己开发应用程序,只需要使用就可以了。升级,维护,增加服务器都不用负责,
4. 云计算的部署模式
三种:
私有云 Private cloud
自建 内部网络 只能自己或者本公司内部访问
自主可控 数据私密性好
金融 医疗 政务 信息
公有云 Public Cloud
云厂商 外部网络 所有人都可以访问,安全方面不一样
规模化 运维可靠 弹性强
游戏 视频网站 教育
混合云 Hybrid Cloud
两个或者两个以上的云 私有云 + 社区云 + 公有云
弹性、灵活 架构复杂
金融 医疗
社群云 社区云 Community Cloud
由多个公司共同开发的平台
https://yq.aliyun.com/
5. 虚拟化介绍
1、什么是虚拟化
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率
虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。
简单理解: 是指通过虚拟化的一种技术将一台实体计算机虚拟为多台逻辑计算机,在一台计算机上面同时运行多个逻辑计算机。每个逻辑计算机可以运行不同的操作系统。
提高计算机的工作效率。
把所有的资源进行整合,提高资源的利用率
按需分配
2、为什么要使用虚拟化?
提高计算机资源的利用率和程序运行环境的安全隔离 还可以有效的防止资源的浪费。
优势:
1. 降低运营成本
服务器虚拟化降低了IT基础设施的运营成本,令系统管理员摆脱了繁重的物理服务器、OS、中间件及兼容性的管理工作,减少人工干预频率,使管理更加强大、便捷。
2. 提高应用兼容性
服务器虚拟化提供的封装性和隔离性使大量应用独立运行于各种环境中,管理人员不需频繁根据底层环境调整应用,只需构建一个应用版本并将其发布到虚拟化后的不同类型平台上即可。
3. 加速应用部署
采用服务器虚拟化技术只需输入激活配置参数、拷贝虚拟机、启动虚拟机、激活虚拟机即可完成部署,大大缩短了部署时间,免除人工干预,降低了部署成本.
4. 提高服务可用性
用户可以方便地备份虚拟机,在进行虚拟机动态迁移后,可以方便的恢复备份,或者在其他物理机上运行备份,大大提高了服务的可用性。
5. 提升资源的利用率
通过服务器虚拟化的整合,提高了CPU、内存、存储、网络等设备的利用率,同时保证原有服务的可用性,使其安全性及性能不受影响。
6. 动态资源分配
在服务器虚拟化技术中,数据中心从传统的单一服务器变成了统一的资源池,用户可以即时地调整虚拟机资源,同时数据中心管理程序和数据中心管理员可以灵活根据虚拟机内部资源使用情况灵活分配调整给虚拟机的资源。
7. 降低能源消耗
通过减少运行的物理服务器数量,减少CPU以外各单元的耗电量,达到节能减排的目的。
3、虚拟化的应用场景
场景1:多版本操作系统共存,小公司经常会出现的一种比较尴尬的问题,只有一台服务器,非要同时运行windows和Linux,只有虚拟化才能完美解决.
场景2:机房迁移,没有虚拟化之前,迁移非常痛苦,物理机搬迁中途损伤,新机房很难复原旧环境,物理机老化可能再也开不了机,这些都是问题,有了虚拟化之后,搬迁变得简单,只需拷贝虚拟机的文件即可
场景3:相同业务部署,在没有虚拟化之前,部署业务,每次都是从安装系统开始,一步一步安装软件,效率非常低!有了虚拟化,只需克隆模板机即可
场景4:软件发布体验,有的软件安装特别繁琐,导致很多普通用户都无法安装成功,为了让这部分用户能体验到软件的功能,可以制作一个虚拟机模板,让用户直接使用体验,例如zabbix就有现成的虚拟机模板
4、虚拟化的软件介绍
Xen
是一个开放源代码虚拟机监视器,由XenProject开发。它打算在单个计算机上运行多达128个有完全功能的操作系统。在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
软件纯模拟全虚拟化软件,特别慢!
QEMU
QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的模拟处理器的自由软件。它与Bochs(Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。),PearPC(实现PC机上安装Mac OS)近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由KVM(早期为kqemu加速器,现在kqemu已被KVM取代)这个开源的加速器,QEMU能模拟至接近真实电脑的速度。QEMU有两种主要运作模式:
User mode模拟模式,亦即是用户模式。
QEMU能引导那些为不同中央处理器编译的Linux程序。而Wine(运行 Windows 应用的兼容层。)及Dosemu(DOS模拟器)是其主要目标。
System mode模拟模式,亦即是系统模式。
QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上模拟数部不同虚拟电脑。
性能特别好,但是需要使用专门修改之后的内核。
VMware ESCI
商业软件 部署特别快 贵 好用
VirtualBox
开源的虚拟机软件
Kvm 虚拟化管理平台 使用范围很广
1.KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
2.是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
3.它包含一个为处理器提供底层虚拟化,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
4.KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
5.KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。
6.在主流的Linux内核,如2.6.20以上的内核均已包含了KVM核心。
Kvm的优点:KVM是一种年轻的虚拟化技术,在出生的时候就吸收了其他虚拟化技术的优点,而且架构简单,没有历史兼容性的包袱,性能表现优异,使用越来越广!
6. 安装部署Kvm
#虚拟机需要开启内核虚拟化
内存 == 4G 磁盘 == 100G
[root@kvm01 ~]# yum install -y libvirt virt-install qemu-kvm
libvirt #虚拟机管理, kvm xen lxc等软件
virt-install #虚拟机的安装和克隆
qemu-kvm #管理虚拟机的磁盘
#启动
[root@kvm01 ~]# systemctl start libvirtd.service
[root@kvm01 ~]# systemctl enable libvirtd.service
#下载 VNC 本地电脑压缩数据包目录里面找
#安装虚拟机的参数
参数 参数说明
--virt-type #要使用的管理程序名称 (kvm, qemu, xen, ...)
--os-type #系统类型 linux unix windows
--os-variant #客户机上安装的操作系统,如:'fedora18'、'rhel7'、'winxp' 等。
-n/--name #客户机实例名称
--memory #配置客户机虚拟内存大小
--vcpus #配置客户机虚拟 CPU数量。
--disk #指定存储的各种选项。 raw #不支持做快照,性能好。qcow2 #支持快照。
-cdrom #镜像位置
-w/--network #配置客户机网络接口。
--graphics #配置客户机显示设置。
--noautoconsole #不要自动尝试连接到客户端控制台
--autostart #主机启动时自动启动域。
--noreboot #安装完成后不重新启动客户机。
#安装一台Centos-7的操作系统
[root@kvm01 /opt]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name=centos7_web01 --memory 1024 --vcpus 1 --disk /opt/centos7_web01.raw,format=raw,size=10 --cdrom=/opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
Starting install...
Allocating 'centos7_web01.raw' | 10 GB 00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
[root@kvm01 /opt]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 11071/qemu-kvm
#显示所有的主机
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
#启动一台主机
[root@kvm01 /opt]# virsh start centos7_web01
Domain centos7_web01 started
#只显示已经运行的主机
[root@kvm01 /opt]# virsh list
Id Name State
----------------------------------------------------
2 centos7_web01 running
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
2 centos7_web01 running
#每启动一台主机,就启动对应的一个端口
[root@kvm01 /opt]# netstat -lntp | grep 59
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 11619/qemu-kvm
#根据内网IP地址进行ssh连接
[root@kvm01 /opt]# ssh root@192.168.122.91
The authenticity of host '192.168.122.91 (192.168.122.91)' can't be established.
ECDSA key fingerprint is SHA256:rmgopVnnY7KphZG8llZSoViZu9vN2A8NtM9Qce7DLuw.
ECDSA key fingerprint is MD5:d5:1d:1b:87:7e:4c:f6:cc:3f:fb:be:2c:13:89:78:f3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.122.91' (ECDSA) to the list of known hosts.
root@192.168.122.91's password:
Last login: Fri Apr 3 16:16:02 2020
#关机
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
#强制关机 === 拔掉电源
[root@kvm01 /opt]# virsh destroy centos7_web01
Domain centos7_web01 destroyed
#显示主机的信息
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: 4
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: running
CPU(s): 1
CPU time: 22.2s
Max memory: 1048576 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
#查看主机对应的端口 :0 === 5900
[root@kvm01 /opt]# virsh vncdisplay centos7_web01
:0
#修改内存的大小 只能调小
[root@kvm01 /opt]# virsh setmem centos7_web01 524288
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: 4
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: running
CPU(s): 1
CPU time: 25.6s
Max memory: 1048576 KiB
Used memory: 524288 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
#调大内存
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
#修改主机的配置文件
[root@kvm01 /opt]# virsh edit centos7_web01
Domain centos7_web01 XML configuration edited.
<memory unit='KiB'>2097152</memory> #内存的总大小
<currentMemory unit='KiB'>1048576</currentMemory> #当前可以使用的内存的大小
<vcpu placement='static'>2</vcpu> #cpu的核心
[root@kvm01 /opt]# systemctl restart libvirtd.service
[root@kvm01 /opt]# virsh start centos7_web01
Domain centos7_web01 started
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: 5
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: running
CPU(s): 2
CPU time: 28.9s
Max memory: 2097152 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
#命令行修改最大内存
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh setmaxmem centos7_web01 1048576
[root@kvm01 /opt]# virsh dominfo centos7_web01
Id: -
Name: centos7_web01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: shut off
CPU(s): 2
Max memory: 1048576 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: none
Security DOI: 0
#查看CPU的信息
[root@kvm01 /opt]# virsh vcpuinfo centos7_web01
VCPU: 0
CPU: 2
State: running
CPU time: 17.2s
CPU Affinity: yyyyyyyy
VCPU: 1
CPU: 2
State: running
CPU time: 8.4s
CPU Affinity: yyyyyyyy
7. Kvm基础管理操作
#客户机的镜像文件 磁盘
[root@kvm01 /opt]# ll -h
total 5.7G
-rw------- 1 qemu qemu 10G 2020-04-07 09:39 centos7_web01.raw
#客户机的主配置文件
[root@kvm01 /opt]# ll /etc/libvirt/qemu/
total 8
-rw------- 1 root root 4193 2020-04-03 16:37 centos7_web01.xml
[root@kvm01 /opt]# virsh edit centos7_web01
Domain centos7_web01 XML configuration not changed.
语法校验 方便操作
#开机状态下导出主机的配置信息
[root@kvm01 /opt]# virsh dumpxml centos7_web01 > centos7_web01_bak.xml
[root@kvm01 /opt]# ll
total 5876740
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
#关机状态下导出的配置
[root@kvm01 /opt]# virsh dumpxml centos7_web01 > centos7_web01_bak_shutdown.xml
[root@kvm01 /opt]# ll
total 5876744
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
#进行破坏操作
[root@kvm01 /opt]# rm -f /etc/libvirt/qemu/centos7_web01.xml
[root@kvm01 /opt]# systemctl restart libvirtd
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
#恢复
[root@kvm01 /opt]# ll
total 5876744
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
-rw------- 1 root root 10737418240 2020-04-07 10:13 centos7_web01.raw
-rw-r--r-- 1 qemu qemu 4588568576 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
[root@kvm01 /opt]# virsh define centos7_web01_bak.xml
Domain centos7_web01 defined from centos7_web01_bak.xml
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7_web01 shut off
[root@kvm01 /opt]# virsh start centos7_web01
Domain centos7_web01 started
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7_web01 running
[root@kvm01 /opt]# ll /etc/libvirt/qemu/
total 8
-rw------- 1 root root 4531 2020-04-07 10:15 centos7_web01.xml
drwx------ 3 root root 42 2020-04-03 14:45 networks
#重命名
[root@kvm01 /opt]# virsh shutdown centos7_web01
Domain centos7_web01 is being shutdown
[root@kvm01 /opt]# virsh domrename centos7_web01 Centos7_db01
Domain successfully renamed
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- Centos7_db01 shut off
[root@kvm01 /opt]# ll /etc/libvirt/qemu
qemu/ qemu.conf qemu-lockd.conf
[root@kvm01 /opt]# ll /etc/libvirt/qemu/
total 8
-rw------- 1 root root 4529 2020-04-07 10:26 Centos7_db01.xml
drwx------ 3 root root 42 2020-04-03 14:45 networks
[root@kvm01 /opt]# ll
total 5876744
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
-rw------- 1 root root 10737418240 2020-04-07 10:26 centos7_web01.raw
-rw-r--r-- 1 qemu qemu 4588568576 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
[root@kvm01 /opt]# virsh edit Centos7_db01
<source file='/opt/Centos7_db01.raw'/>
[root@kvm01 /opt]# systemctl restart libvirtd.service
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- Centos7_db01 shut off
[root@kvm01 /opt]# ll
total 5876744
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
-rw------- 1 root root 10737418240 2020-04-07 10:26 centos7_web01.raw
-rw-r--r-- 1 qemu qemu 4588568576 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
[root@kvm01 /opt]# mv centos7_web01.raw Centos7_db01.raw
[root@kvm01 /opt]# virsh start Centos7_db01
Domain Centos7_db01 started
[root@kvm01 /opt]# virsh list
Id Name State
----------------------------------------------------
1 Centos7_db01 running
[root@kvm01 /opt]# ll
total 5876744
-rw------- 1 qemu qemu 10737418240 2020-04-07 10:30 Centos7_db01.raw
-rw-r--r-- 1 root root 3963 2020-04-07 10:09 centos7_web01_bak_shutdown.xml
-rw-r--r-- 1 root root 5261 2020-04-07 10:07 centos7_web01_bak.xml
-rw-r--r-- 1 qemu qemu 4588568576 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
#挂起和恢复
[root@kvm01 /opt]# virsh suspend Centos7_db01
Domain Centos7_db01 suspended
[root@kvm01 /opt]# virsh resume Centos7_db01
Domain Centos7_db01 resumed
8. 安装centos6客户机
必须要有swap分区,主机启动不起来
virt-install --virt-type kvm --os-type=linux --os-variant rhel6 --name=centos6_web01 --memory 1024 --vcpus 1 --disk /opt/centos6_web01.raw,format=raw,size=10 --cdrom=/opt/CentOS-6.7-x86_64-bin-DVD1.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
#centos6进行consle登录
#添加ttyS0的许可,允许root登录
[root@centos6-web01 ~]# echo "ttyS0" >> /etc/securetty
#2. 添加终端
[root@centos6-web01 ~]# vi /boot/grub/grub.conf
kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=22f504a0-3488-48b0-931d-dde0cc7a17a1 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0
#3.让其显示登录界面
[root@centos6-web01 ~]# echo 'S0:12345:respawn:/sbin/agetty ttyS0 115200' >>/etc/inittab
[root@centos6-web01 ~]# reboot
[root@kvm01 /opt]# virsh console centos6_web01
Connected to domain centos6_web01
Escape character is ^]
[root@centos6-web01 ~]#
[root@centos6-web01 ~]#
[root@centos6-web01 ~]#
[root@centos6-web01 ~]#
[root@centos6-web01 ~]#
[root@centos6-web01 ~]#
[root@centos6-web01 ~]#
[root@centos6-web01 ~]#
9. 虚拟机的console登录
[root@kvm01 /opt]# virsh console Centos7_db01
Connected to domain Centos7_db01
Escape character is ^]
[root@kvm01 /opt]#
#centos7系统进行console登录
[root@kvm01 /opt]# ssh root@192.168.122.91
root@192.168.122.91's password:
Last login: Tue Apr 7 10:31:55 2020
#客户机里面进行执行
[root@web01 ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@web01 ~]# reboot
Connection to 192.168.122.91 closed by remote host.
Connection to 192.168.122.91 closed.
[root@kvm01 /opt]# virsh console Centos7_db01
Connected to domain Centos7_db01
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login: root
Password:
Last login: Tue Apr 7 11:05:40 from gateway
[root@web01 ~]#
按Ctrl键加] 退出
10. 客户机开机自启动
前提
libvirtd服务是开机自启动的
[root@kvm01 ~]# systemctl enable libvirtd
Autostart: disable
[root@kvm01 ~]# virsh autostart Centos7_db01
Domain Centos7_db01 marked as autostarted
[root@kvm01 ~]# virsh dominfo Centos7_db01
Id: -
Name: Centos7_db01
UUID: 158ca26b-eebd-41f3-8dc0-5752bd98d151
OS Type: hvm
State: shut off
CPU(s): 2
Max memory: 1048576 KiB
Used memory: 1048576 KiB
Persistent: yes
Autostart: enable
Managed save: no
Security model: none
Security DOI: 0
#实质就是创建一个软连接
[root@kvm01 ~]# ll /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 34 2020-04-07 14:35 Centos7_db01.xml -> /etc/libvirt/qemu/Centos7_db01.xml
#关闭开机自启动
[root@kvm01 ~]# virsh autostart --disable Centos7_db01
Domain Centos7_db01 unmarked as autostarted
[root@kvm01 ~]# ll /etc/libvirt/qemu/autostart/
total 0
11. Kvm磁盘管理
#1.虚拟机的磁盘格式转换
https://blog.csdn.net/zhengmx100/article/details/53887162
#创建一块qcow2的虚拟硬盘
[root@kvm01 ~]# qemu-img create -f qcow2 test.qcow2 2G
Formatting 'test.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 lazy_refcounts=off
[root@kvm01 ~]# ll
total 204
-rw-------. 1 root root 1558 2019-05-08 18:33 anaconda-ks.cfg
-rw-r--r-- 1 root root 513 2019-12-07 11:36 hostname_ip.sh
-rw-r--r-- 1 root root 197120 2020-04-07 14:46 test.qcow2
[root@kvm01 ~]# ll -h
total 204K
-rw-------. 1 root root 1.6K 2019-05-08 18:33 anaconda-ks.cfg
-rw-r--r-- 1 root root 513 2019-12-07 11:36 hostname_ip.sh
-rw-r--r-- 1 root root 193K 2020-04-07 14:46 test.qcow2
[root@kvm01 ~]# qemu-img info test.qcow2
image: test.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
#将raw格式转换为qcow2格式
[root@kvm01 /opt]# qemu-img convert -f raw -O qcow2 Centos7_db01.raw Centos7_db01.qcow2
[root@kvm01 /opt]# ll -h
total 13G
-rw-r--r-- 1 qemu qemu 3.7G 2019-10-25 11:54 CentOS-6.7-x86_64-bin-DVD1.iso
-rw------- 1 qemu qemu 10G 2020-04-07 14:32 centos6_web01.raw
-rw-r--r-- 1 root root 1.4G 2020-04-07 14:53 Centos7_db01.qcow2
-rw------- 1 qemu qemu 10G 2020-04-07 14:53 Centos7_db01.raw
-rw-r--r-- 1 qemu qemu 4.3G 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
#修改配置文件
[root@kvm01 /opt]# virsh edit Centos7_db01
<driver name='qemu' type='qcow2'/>
<source file='/opt/Centos7_db01.qcow2'/>
[root@kvm01 /opt]# virsh shutdown Centos7_db01
Domain Centos7_db01 is being shutdown
[root@kvm01 /opt]#
[root@kvm01 /opt]#
[root@kvm01 /opt]# virsh start Centos7_db01
Domain Centos7_db01 started
[root@kvm01 /opt]#
[root@kvm01 /opt]#
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
2 Centos7_db01 running
- centos6_web01 shut off
[root@kvm01 /opt]# virsh console Centos7_db01
Connected to domain Centos7_db01
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login:
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login: root
Password:
Last login: Tue Apr 7 12:38:02 on ttyS0
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]# ll
total 4
-rw-------. 1 root root 1346 Apr 3 15:57 anaconda-ks.cfg
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 8.5G 1001M 7.6G 12% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 509M 120M 389M 24% /boot
tmpfs 100M 0 100M 0% /run/user/0
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
12. Kvm快照管理
raw格式不支持快照
#创建快照
#开机状态下
[root@kvm01 /opt]# virsh snapshot-create Centos7_db01
Domain snapshot 1586243623 created
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586243623 2020-04-07 15:13:43 +0800 running
[root@kvm01 /opt]# date +%s
1586243661
[root@kvm01 /opt]# virsh snapshot-info Centos7_db01 --snapshotname 1586243623
Name: 1586243623
Domain: Centos7_db01
Current: yes
State: running
Location: internal
Parent: -
Children: 0
Descendants: 0
Metadata: yes
#关机
[root@kvm01 /opt]# virsh shutdown Centos7_db01
Domain Centos7_db01 is being shutdown
[root@kvm01 /opt]# virsh snapshot-create Centos7_db01
Domain snapshot 1586243807 created
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586243623 2020-04-07 15:13:43 +0800 running
1586243807 2020-04-07 15:16:47 +0800 shutoff
[root@kvm01 /opt]# virsh snapshot-info Centos7_db01 --snapshotname 1586243807
Name: 1586243807
Domain: Centos7_db01
Current: yes
State: shutoff
Location: internal
Parent: 1586243623
Children: 0
Descendants: 0
Metadata: yes
#登录进行破坏
#恢复快照
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586243623 2020-04-07 15:13:43 +0800 running
1586243807 2020-04-07 15:16:47 +0800 shutoff
[root@kvm01 /opt]# virsh snapshot-revert Centos7_db01 1586243623
#快照的位置
[root@kvm01 /opt]# ll /var/lib/libvirt/qemu/snapshot/
total 0
drwxr-xr-x 2 root root 50 2020-04-07 15:20 Centos7_db01
[root@kvm01 /opt]# ll /var/lib/libvirt/qemu/snapshot/Centos7_db01/
total 16
-rw------- 1 root root 5063 2020-04-07 15:20 1586243623.xml
-rw------- 1 root root 5085 2020-04-07 15:20 1586243807.xml
#删除快照
[root@kvm01 /opt]# virsh snapshot-delete Centos7_db01 1586243623
Domain snapshot 1586243623 deleted
[root@kvm01 /opt]# virsh snapshot-delete Centos7_db01 1586243807
Domain snapshot 1586243807 deleted
[root@kvm01 /opt]# virsh snapshot-list Centos7_db01
Name Creation Time State
------------------------------------------------------------
1586244456 2020-04-07 15:27:36 +0800 running
1586244501 2020-04-07 15:28:21 +0800 shutoff
[root@kvm01 /opt]# ll /var/lib/libvirt/qemu/snapshot/Centos7_db01/
total 16
-rw------- 1 root root 5063 2020-04-07 15:29 1586244456.xml
-rw------- 1 root root 5085 2020-04-07 15:28 1586244501.xml
13. Kvm热添加硬盘
[root@kvm01 /opt]# qemu-img create -f qcow2 /opt/Centos7_db01_add01.qcow2 10G
Formatting '/opt/Centos7_db01_add01.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
[root@kvm01 /opt]# qemu-img info Centos7_db01_add01.qcow2
image: Centos7_db01_add01.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
#给centos7主机添加硬盘
[root@kvm01 /opt]# virsh attach-disk Centos7_db01 /opt/Centos7_db01_add01.qcow2 vdb --live --cache=none --subdriver=qcow2
Disk attached successfully
vdb #第二块虚拟磁盘
--live #在线热添加
--cache=none #开启宿主机对客户机的镜像的读取缓存 off 关闭
--subdriver #驱动类型
#客户机进行查看
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
vdb 253:16 0 10G 0 disk
#移除硬盘
[root@kvm01 /opt]# virsh detach-disk Centos7_db01 vdb
Disk detached successfully
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
[root@web01 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2436757c.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]# ll /dev/vdb*
brw-rw---- 1 root disk 253, 16 Apr 7 16:05 /dev/vdb
brw-rw---- 1 root disk 253, 17 Apr 7 16:05 /dev/vdb1
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
vdb 253:16 0 10G 0 disk
└─vdb1 253:17 0 10G 0 part
[root@web01 ~]# mkfs.xfs /dev/vdb
vdb vdb1
[root@web01 ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1 isize=512 agcount=4, agsize=655296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@web01 ~]# mkdir /data
[root@web01 ~]# mount /dev/vdb1 /data
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 8.5G 1.3G 7.3G 15% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 509M 120M 389M 24% /boot
tmpfs 100M 0 100M 0% /run/user/0
/dev/vdb1 10G 33M 10G 1% /data
#移除已经在使用的硬盘
[root@web01 ~]# rm -f /data/test.log
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]# umount /dev/vdb1
[root@web01 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Selected partition 1
Partition 1 is deleted
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x2436757c
Device Boot Start End Blocks Id System
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@web01 ~]#
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
vdb 253:16 0 10G 0 disk
[root@kvm01 /opt]# virsh detach-disk Centos7_db01 vdb
Disk detached successfully
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 10G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
#根分区扩容
#无法为已经存在快照的硬盘进行扩容
[root@kvm01 /opt]# qemu-img resize /opt/Centos7_db01.qcow2 +10G
qemu-img: Can't resize an image which has snapshots
qemu-img: This image does not support resize
#扩容磁盘大小
[root@kvm01 /opt]# qemu-img resize /opt/Centos7_db01.qcow2 +10G
Image resized.
[root@kvm01 /opt]# qemu-img info Centos7_db01.qcow2
image: Centos7_db01.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 1.5G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
[root@kvm01 /opt]# systemctl restart libvirtd
[root@kvm01 /opt]#
[root@kvm01 /opt]#
[root@kvm01 /opt]# virsh shutdown Centos7_db01
Domain Centos7_db01 is being shutdown
[root@kvm01 /opt]# virsh start Centos7_db01
Domain Centos7_db01 started
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 8.5G 0 part /
[root@web01 ~]# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/vda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c8686
Device Boot Start End Blocks Id System
/dev/vda1 2048 1050623 524288 83 Linux
/dev/vda2 1050624 3147775 1048576 83 Linux
/dev/vda3 3147776 20971519 8911872 83 Linux
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 is deleted
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (3147776-62914559, default 3147776):
Using default value 3147776
Last sector, +sectors or +size{K,M,G} (3147776-62914559, default 62914559):
Using default value 62914559
Partition 3 of type Linux and of size 28.5 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@web01 ~]# reboot
[root@web01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 512M 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 28.5G 0 part /
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 8.5G 1.3G 7.3G 15% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 509M 120M 389M 24% /boot
tmpfs 100M 0 100M 0% /run/user/0
[root@web01 ~]# xfs_growfs /dev/vda3 #重新格式化,不删除里面的数据
meta-data=/dev/vda3 isize=512 agcount=4, agsize=556992 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2227968, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2227968 to 7470848
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 29G 1.3G 28G 5% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 509M 120M 389M 24% /boot
tmpfs 100M 0 100M 0% /run/user/0
[root@web01 ~]#
14. Kvm的克隆
#完整克隆
#宿主机必须在关机状态下才能进行克隆
-o ORIGINAL_GUEST, --original ORIGINAL_GUEST
Name of the original guest; The status must be shut
off or paused.
--auto-clone Auto generate clone name and storage paths from the
original guest configuration.
-n NEW_NAME, --name NEW_NAME
Name for the new guest
[root@kvm01 /opt]# virt-clone --auto-clone -o web01 -n web02
Allocating 'web02.qcow2' | 30 GB 00:00:06
Clone 'web02' created successfully.
[root@kvm01 /opt]# ll web02.qcow2
-rw------- 1 root root 1568538624 2020-04-08 09:51 web02.qcow2
[root@kvm01 /opt]# ll /etc/libvirt/qemu/web02.xml
-rw------- 1 root root 4511 2020-04-08 09:51 /etc/libvirt/qemu/web02.xml
[root@kvm01 /opt]# ll web02.qcow2
-rw------- 1 root root 1568538624 2020-04-08 09:51 web02.qcow2
[root@kvm01 /opt]# ll /etc/libvirt/qemu/web02.xml
-rw------- 1 root root 4511 2020-04-08 09:51 /etc/libvirt/qemu/web02.xml
[root@kvm01 /opt]# virsh start web02
Domain web02 started
[root@kvm01 /opt]# virsh console web02
Connected to domain web02
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login: root
Password:
Last login: Wed Apr 8 08:44:35 on ttyS0
[root@web01 ~]#
#使用拷贝的一种方式进行完整克隆
#1. 拷贝磁盘镜像文件
[root@kvm01 /opt]# cp -a web01.qcow2 web03.qcow2
[root@kvm01 /opt]# ll -h web03.qcow2
-rw-r--r-- 1 root root 2.7G 2020-04-08 09:04 web03.qcow2
#2.导出源客户机的配置信息
[root@kvm01 /opt]# virsh dumpxml web01 > web03.xml
[root@kvm01 /opt]# ll web03.xml
-rw-r--r-- 1 root root 4289 2020-04-08 10:08 web03.xml
#3. 修改配置信息
[root@kvm01 /opt]# vim web03.xml
<name>web03</name>
删除UUID一行
<source file='/opt/web03.qcow2'/>
删除mac地址
#4.导入配置信息
[root@kvm01 /opt]# virsh define web03.xml
Domain web03 defined from web03.xml
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
8 web02 running
- web01 shut off
- web03 shut off
#5. 检查登录测试
[root@kvm01 /opt]# ll /etc/libvirt/qemu/web03.xml
-rw------- 1 root root 4511 2020-04-08 10:12 /etc/libvirt/qemu/web03.xml
[root@kvm01 /opt]# virsh start web03
Domain web03 started
[root@kvm01 /opt]# virsh console web03
[root@web01 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:23:13:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.112/24 brd 192.168.122.255 scope global noprefixroute dynamic eth0
valid_lft 3593sec preferred_lft 3593sec
inet6 fe80::b588:2d5b:90f5:9830/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::cf48:f450:d25a:7c02/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#链接克隆
#手动进行链接克隆
#1. 创建一个基于链接克隆的虚拟磁盘文件
[root@kvm01 /opt]# qemu-img create -f qcow2 -b web01.qcow2 db01.qcow2
Formatting 'db01.qcow2', fmt=qcow2 size=32212254720 backing_file='web01.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[root@kvm01 /opt]# ll
total 10993740
-rw-r--r-- 1 root root 1060175872 2020-04-07 16:08 Centos7_db01_add01.qcow2
-rw-r--r-- 1 qemu qemu 4588568576 2020-04-03 15:03 CentOS-7-x86_64-DVD-1810.iso
-rw-r--r-- 1 root root 197120 2020-04-08 10:38 db01.qcow2
-rw-r--r-- 1 root root 2816475648 2020-04-08 09:04 web01.qcow2
-rw------- 1 qemu qemu 1568538624 2020-04-08 10:25 web02.qcow2
-rw-r--r-- 1 qemu qemu 2816475648 2020-04-08 10:32 web03.qcow2
-rw-r--r-- 1 root root 4196 2020-04-08 10:11 web03.xml
[root@kvm01 /opt]# ll -h db01.qcow2
-rw-r--r-- 1 root root 193K 2020-04-08 10:38 db01.qcow2
#2.导出源客户机的配置信息
[root@kvm01 /opt]# rm -f web03.xml
[root@kvm01 /opt]# virsh dumpxml web01 > db01.xml
#3.修改配置信息
[root@kvm01 /opt]# vim db01.xml
<name>db01</name>
删除UUID一行
<source file='/opt/db01.qcow2'/>
删除mac地址
#4.导入配置
[root@kvm01 /opt]# virsh define db01.xml
Domain db01 defined from db01.xml
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
8 web02 running
9 web03 running
- db01 shut off
- web01 shut off
[root@kvm01 /opt]# ll /etc/libvirt/qemu/db01.xml
-rw------- 1 root root 4508 2020-04-08 10:40 /etc/libvirt/qemu/db01.xml
#5.登录测试
[root@kvm01 /opt]# virsh start db01
Domain db01 started
[root@kvm01 /opt]# virsh console db01
Connected to domain db01
Escape character is ^]
#自动化进行克隆
[root@kvm01 /opt]# cat link_clone.sh
#!/bin/bash
#1.定义变量
Old_name=$1
New_name=$2
#2.关闭源客户机
virsh shutdown $Old_name &>/dev/null && sleep 3
#3.导出源客户机的配置信息
virsh dumpxml $Old_name > /opt/${New_name}.xml
#4.创建一个基于源客户机磁盘的磁盘文件
qemu-img create -f qcow2 -b /opt/${Old_name}.qcow2 /opt/${New_name}.qcow2 &>/dev/null
#5.修改配置信息
sed -i "s#$Old_name#$New_name#g" /opt/${New_name}.xml
sed -ri '/uuid|mac address/d' /opt/${New_name}.xml
#6.导入配置信息
virsh define /opt/${New_name}.xml &>/dev/null
#7.启动测试
virsh start $New_name &>/dev/null
#8.console登录测试
virsh console $New_name
[root@kvm01 /opt]# sh link_clone.sh web01 lb01
Connected to domain lb01
Escape character is ^]
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
web01 login: root
Password:
Last login: Wed Apr 8 08:44:35 on ttyS0
[root@web01 ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:48:31:fe brd ff:ff:ff:ff:ff:ff
inet 192.168.122.73/24 brd 192.168.122.255 scope global noprefixroute dynamic eth0
valid_lft 3587sec preferred_lft 3587sec
inet6 fe80::cf48:f450:d25a:7c02/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::b588:2d5b:90f5:9830/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::9692:5c60:2f96:647/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
15. Kvm虚拟机的桥接网络
NAT 模式上网原理
[root@kvm01 /opt]# sysctl -a |grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
桥接模式
#创建一个桥接网络
[root@kvm01 /opt]# virsh iface-bridge eth0 br0
Created bridge br0 with attached device eth0
Bridge interface br0 started
[root@kvm01 /opt]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE="br0"
[root@kvm01 /opt]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="10.0.0.11"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.254"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
[root@kvm01 /opt]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a68661 yes eth0
virbr0 8000.525400347f33 yes virbr0-nic
vnet1
[root@kvm01 /opt]#
#修改虚拟机的配置信息
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- db01 shut off
- lb01 shut off
- web01 shut off
- web02 shut off
- web03 shut off
[root@kvm01 /opt]# virsh edit web03
<interface type='bridge'>
<source bridge='br0'/>
[root@kvm01 /opt]# virsh start web03
Domain web03 started
[root@kvm01 /opt]# virsh console web03
[root@web01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="none"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.0.101"
PREFIX="24"
GATEWAY="10.0.0.254"
DNS1="223.5.5.5"
[root@web01 ~]# systemctl restart network
[root@web01 ~]# systemctl stop NetworkManager
[root@web01 ~]# systemctl disable NetworkManager
[root@web01 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:23:13:f9 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.101/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe23:13f9/64 scope link tentative
valid_lft forever preferred_lft forever
[root@web01 ~]# ping baidu.com
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=30.5 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=128 time=32.9 ms
--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 30.533/31.743/32.953/1.210 ms
[root@web01 ~]#
#本地进行连接测试
[C:\~]$ ssh root@10.0.0.101
Connecting to 10.0.0.101:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last failed login: Wed Apr 8 15:46:21 CST 2020 from 10.0.0.1 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Wed Apr 8 15:41:30 2020
[root@web01 ~]#
[root@web01 ~]#
[root@web01 ~]#
NAT
桥接模式

16. 虚拟机冷迁移
#冷迁移的步骤
准备另一台主机的环境
[root@kvm02 ~]# yum install libvirt virt-install qemu-kvm -y
[root@kvm02 ~]# systemctl start libvirtd.service
[root@kvm02 ~]# systemctl enable libvirtd.service
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
关闭的客户机
[root@kvm01 /opt]# virsh shutdown web03
Domain web03 is being shutdown
[root@kvm01 /opt]# virsh list --all
Id Name State
----------------------------------------------------
- db01 shut off
- lb01 shut off
- web01 shut off
- web02 shut off
- web03 shut off
导出配置信息
[root@kvm01 /opt]# virsh dumpxml web03 > web03.xml
[root@kvm01 /opt]# ll web03.xml
-rw-r--r-- 1 root root 4283 2020-04-09 09:19 web03.xml
将磁盘格式转换为qcow2
qemu-img convert -f raw -O qcow2 old_disk new_disk
[root@kvm01 /opt]# ll web03.qcow2
-rw-r--r-- 1 root root 2816475648 2020-04-09 09:17 web03.qcow2
将磁盘文件和配置信息传送到另一台主机
[root@kvm01 /opt]# scp -rp /opt/web03.* root@172.16.1.12:/opt
修改配置信息
[root@kvm02 ~]# vim /opt/web03.xml
<driver name='qemu' type='qcow2'/>
导入配置
[root@kv
[root@kvm02 ~]# virsh define /opt/web03.xml
Domain web03 defined from /opt/web03.xml
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web03 shut off
m02 ~]# systemctl restart libvirtd.service
[root@kvm02 ~]# virsh define /opt/web03.xml
Domain web03 defined from /opt/web03.xml
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web03 shut off
启动并连接测试
[root@kvm02 ~]# virsh start web03
Domain web03 started
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 web03 running
[C:\~]$ ssh root@10.0.0.101
Connecting to 10.0.0.101:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last failed login: Thu Apr 9 09:28:50 CST 2020 from 10.0.0.1 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Thu Apr 9 09:28:33 2020
[root@web01 ~]#
17. 虚拟机的热迁移
磁盘文件 : 共享存储
热迁移的流程:
在运行的过程中,发送Kvm01主机的配置文件及运行在内存中的数据到Kvm02
#1.所有服务器安装nfs
[root@nfs ~]# yum install -y nfs-utils
#2.nfs服务端进行配置
[root@nfs ~]# vim /etc/exports
[root@nfs ~]# cat /etc/exports
/opt 10.0.0.0/24(rw,sync,no_root_squash,no_all_squash)
#3.启动nfs服务
[root@nfs ~]# systemctl restart rpcbind
[root@nfs ~]# systemctl restart nfs
#4.检查两台客户端是否可以进行挂载
[root@kvm01 /opt]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/opt 10.0.0.0/24
[root@kvm01 ~]# mkdir /kvm_disk
[root@kvm01 ~]# mount -t nfs 10.0.0.31:/opt /kvm_disk
[root@kvm01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 2.0G 46G 5% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 12M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sdb1 100G 11G 90G 11% /opt
/dev/sda1 197M 105M 93M 54% /boot
tmpfs 394M 0 394M 0% /run/user/0
10.0.0.31:/opt 48G 1.9G 46G 4% /kvm_disk
#创建主机
[root@kvm01 ~]# cd /kvm_disk/
[root@kvm01 /kvm_disk]# ll
total 0
[root@kvm01 /kvm_disk]# cp -a /opt/web03.qcow2 ./
[root@kvm01 /kvm_disk]# virsh shutdown web03
Domain web03 is being shutdown
[root@kvm01 /kvm_disk]# ll
total 2162696
-rw-r--r-- 1 qemu qemu 2816475648 2020-04-09 10:35 web03.qcow2
[root@kvm01 /kvm_disk]# mv web03.qcow2 web04.qcow2
[root@kvm01 /kvm_disk]#
[root@kvm01 /kvm_disk]# virsh dumpxml web03 > /opt/web04.xml
<name>web04</name>
<driver name='qemu' type='qcow2'/>
<source file='/kvm_disk/web04.qcow2'/>
<driver name='qemu' type='qcow2'/>
<interface type='bridge'>
<source bridge='br0'/>
删除uuid和mac行
[root@kvm01 /kvm_disk]# virsh define /opt/web04.xml
Domain web04 defined from /opt/web04.xml
[root@kvm01 /kvm_disk]# virsh list --all
Id Name State
----------------------------------------------------
- db01 shut off
- lb01 shut off
- web01 shut off
- web02 shut off
- web03 shut off
- web04 shut off
[root@kvm01 /kvm_disk]# virsh start web04
Domain web04 started
[root@kvm01 /kvm_disk]# virsh list --all
Id Name State
----------------------------------------------------
15 web04 running
#开始进行热迁移
[root@kvm01 /kvm_disk]# virsh migrate --live --verbose web04 qemu+ssh://10.0.0.12/system --unsafe
#出现报错
[root@kvm01 /kvm_disk]# ll
total 2162572
-rw-r--r-- 1 qemu qemu 2816475648 2020-04-09 10:42 web04.qcow2
[root@kvm01 /kvm_disk]# virsh migrate --live --verbose web04 qemu+ssh://10.0.0.12/system --unsafe
The authenticity of host '10.0.0.12 (10.0.0.12)' can't be established.
ECDSA key fingerprint is SHA256:K8NapPzlTxhCMXC/bRFTtI9mdwr63FH4Wu7psrXXqBs.
ECDSA key fingerprint is MD5:73:9f:67:f1:5d:39:10:3d:b2:be:f7:c1:66:aa:00:6e.
Are you sure you want to continue connecting (yes/no)? yes
root@10.0.0.12's password:
error: Unable to resolve address 'kvm02' service '49152': Name or service not known
[root@kvm01 /kvm_disk]#
#进行hosts文件解析
[root@kvm02 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.11 kvm01
10.0.0.12 kvm02
[root@kvm01 /kvm_disk]# virsh migrate --live --verbose web04 qemu+ssh://10.0.0.12/system --unsafe
root@10.0.0.12's password:
Migration: [100 %]
#在热迁移的过程中,丢失了一个数据包
[root@kvm02 ~]# ll /run/libvirt/qemu/web04.xml
-rw------- 1 root root 9833 2020-04-09 10:47 /run/libvirt/qemu/web04.xml
[root@kvm02 ~]# virsh dumpxml web04 > /etc/libvirt/qemu/web04.xml
[root@kvm02 ~]# virsh define /etc/libvirt/qemu/web04.xml
Domain web04 defined from /etc/libvirt/qemu/web04.xml
[root@kvm02 ~]# virsh start web04
Domain web04 started
[root@kvm02 ~]# virsh list --all
Id Name State
----------------------------------------------------
4 web04 running
18. virt-manager管理管理虚拟机
#1.安装图形界面
[root@kvm01 ~]# yum groupinstall -y "GNOME Desktop"
#2.安装vnc的服务端
[root@kvm01 ~]# yum install -y tigervnc-server
#3.给vnc设置个密码
[root@kvm01 ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
#4.开启vnc
[root@kvm01 ~]# vncserver :1
xauth: file /root/.Xauthority does not exist
New 'kvm01:1 (root)' desktop is kvm01:1
Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/kvm01:1.log
[root@kvm01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 16460/Xvnc
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 16460/Xvnc
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 9430/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 9043/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 9319/master
tcp6 0 0 :::5901 :::* LISTEN 16460/Xvnc
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::6001 :::* LISTEN 16460/Xvnc
tcp6 0 0 :::22 :::* LISTEN 9043/sshd
tcp6 0 0 ::1:25 :::* LISTEN 9319/master
#安装管理工具
[root@kvm01 ~]# yum install -y virt-manager
#安装ssh插件
[root@kvm01 ~]# yum install -y openssh-askpass
19. Kvm之WebVirtMgr背景
Kvm宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为Kvm虚拟化的web管理工具,图形化的WEB,让人能更方便的查看Kvm宿主机的情况和操作。
WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个Kvm管理平台,提供对宿主机和虚机的统一管理,它有别于Kvm自带的图形管理工具(virtual machine manager),让Kvm管理变得更为可视化,对中小型Kvm应用场景带来了更多方便。
WebVirtMgr采用几乎纯Python开发,其前端是基于Python的Django,后端是基于Libvirt的Python接口,将日常Kvm的管理操作变的更加的可视化。
特点:
操作简单,便于易用
通过libvirt的API接口进行管理
提供对虚拟机的生命周期管理
支持的功能:
宿主机支持的功能:
CPU的利用率
内存的利用率
网络资源管理
存储资源管理
虚拟机的镜像管理
虚拟机的克隆
虚拟机的快照
虚拟机的日志管理
虚拟机的迁移
虚拟机支持的功能:
CPU
内存
状态管理
快照
VNC连接
安装虚拟机
20. 安装部署WebVirtMgr
官网:https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr
#1.下载epel源
[root@kvm02 ~]# yum install epel-release
#安装依赖
[root@kvm02 ~]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx gcc python-devel
#更新pip的版本
[root@kvm02 ~]# pip install --upgrade pip
#安装numpy
[root@kvm02 ~]# pip install numpy
#pip安装加速的命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
#安装部署Python环境
[root@kvm02 ~]# cd /usr/local/src/
[root@kvm02 /usr/local/src/webvirtmgr]# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
#检查sqlite3
[root@kvm02 /usr/local/src/webvirtmgr]# python
Python 2.7.5 (default, Aug 7 2019, 00:51:29)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> exit()
#初始化账户
[root@kvm02 /usr/local/src/webvirtmgr]# ./manage.py syncdb
WARNING:root:No local_settings file found.
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table servers_compute
Creating table instance_instance
Creating table create_flavor
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes #是否创建超级管理用户
Username (leave blank to use 'root'): admin #创建admin
Email address: admin@qq.com #邮箱
Password: #设置密码
Password (again): #确认密码
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 6 object(s) from 1 fixture(s)
#生成的配置文件信息
[root@kvm02 /usr/local/src/webvirtmgr]# ./manage.py collectstatic
WARNING:root:No local_settings file found.
You have requested to collect static files at the destination
location as specified in your settings.
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
Copying '/usr/local/src/webvirtmgr/webvirtmgr/static/css/bootstrap-multiselect.css'
Copying '/usr/local/src/webvirtmgr/webvirtmgr/static/css/bootstrap.min.css'
#创建超级管理员用户
[root@kvm02 /usr/local/src/webvirtmgr]# ./manage.py createsuperuser
WARNING:root:No local_settings file found.
Username (leave blank to use 'root'): qls
Email address: qls@qq.com
Password:
Password (again):
Superuser created successfully.
#生成密钥对
[root@kvm02 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:1apKP2Kzyu3anJyb3Ume5cyNYp0g2WuJgicX4MecPc4 root@kvm02
The key's randomart image is:
+---[RSA 2048]----+
| |
| . |
| . . |
| . . . |
| . + oSo. |
| . * =.o |
| o.+.+.=.. |
| .o*BBE+*Boo |
| +O&*o+=.= . |
+----[SHA256]-----+
[root@kvm02 ~]# ssh-copy-id 10.0.0.12
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.0.0.12's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '10.0.0.12'"
and check to make sure that only the key(s) you wanted were added.
#设置加密连接
[root@kvm02 ~]# ssh 10.0.0.12 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:6080
21. 配置Nginx
[root@kvm02 ~]# mkdir /var/www
[root@kvm02 ~]# cd /usr/local/src/webvirtmgr
[root@kvm02 /usr/local/src/webvirtmgr]# cd ..
[root@kvm02 /usr/local/src]# mv webvirtmgr/ /var/www
[root@kvm02 ~]# cat /etc/nginx/conf.d/webvirtmgr.conf
server {
listen 80 default_server;
server_name $hostname;
#access_log /var/log/nginx/webvirtmgr_access_log;
location /static/ {
root /var/www/webvirtmgr/webvirtmgr; # or /srv instead of /var
expires max;
}
location ~ .*\.(js|css)$ {
proxy_pass http://127.0.0.1:8000;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
client_max_body_size 1024M; # Set higher depending on your needs
}
}
#将此文件的server全部注释
[root@kvm02 ~]# vim /etc/nginx/nginx.conf
[root@kvm02 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@kvm02 ~]# systemctl start nginx.service
[root@kvm02 ~]# systemctl enable nginx.service
22. 配置部署超级管理
[root@kvm02 ~]# chown -R nginx:nginx /var/www/webvirtmgr
[root@kvm02 ~]# cat /etc/supervisord.d/webvirtmgr.ini
[program:webvirtmgr]
command=/usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
logfile=/var/log/supervisor/webvirtmgr.log
log_stderr=true
user=nginx
[program:webvirtmgr-console]
command=/usr/bin/python /var/www/webvirtmgr/console/webvirtmgr-console
directory=/var/www/webvirtmgr
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/webvirtmgr-console.log
redirect_stderr=true
user=nginx
[root@kvm02 ~]# systemctl start supervisord
[root@kvm02 ~]# systemctl enable supervisord
23. 更新
[root@kvm02 ~]# cd /var/www/webvirtmgr
[root@kvm02 /var/www/webvirtmgr]# git pull
Already up-to-date.
[root@kvm02 /var/www/webvirtmgr]# ./manage.py collectstatic
WARNING:root:No local_settings file found.
You have requested to collect static files at the destination
location as specified in your settings.
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
Copying '/var/www/webvirtmgr/webvirtmgr/static/css/bootstrap-multiselect.css'
Copying '/var/www/webvirtmgr/webvirtmgr/static/css/bootstrap.min.css'
Copying '/var/www/webvirtmgr/webvirtmgr/static/css/signin.css'
[root@kvm02 /var/www/webvirtmgr]# systemctl restart supervisord.service
#访问
http://x.x.x.x:8000
24.远程链接
#使用tcp进行对远程libvirtd进行连接访问的配置如下:
#1.修改文件/etc/sysconfig/libvirtd,用来启用tcp的端口
[root@kvm02 ~]# grep -Ev "^$|#" /etc/sysconfig/libvirtd
LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"
#2.修改文件/etc/libvirt/libvirtd.conf
[root@kvm02 ~]# grep -Ev "^$|#" /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "none"
#3.重启libvirtd
[root@kvm02 ~]# systemctl restart libvirtd.service
#4.查看端口16509是否启动
[root@kvm02 ~]# netstat -lntp|grep 16509
tcp 0 0 0.0.0.0:16509 0.0.0.0:* LISTEN 15344/libvirtd
#5.在source host连接dest host远程libvirtd查看信息
[root@kvm02 ~]# virsh -c qemu+tcp://10.0.0.182/system
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # #表示成功
virsh #
#6.web端进行tcp连接

25.添加多台进行管理


kvm虚拟化管理平台WebVirtMgr部署(创建实例及web详解) https://www.cnblogs.com/kevingrace/p/5739009.html