kvm技术:kvm虚拟化的安装和应用
文章目录
- 1:什么是云计算
- 2:云计算的服务类型
- 3:为什么要用云计算
- 4:云计算的基础KVM虚拟化
- 4.1:什么是虚拟化?
- 4.2 :linux虚拟化软件的差别
- 4.3 安装kvm虚拟化管理工具
- 4.4:安装一台kvm虚拟机
- 4.5:kvm虚拟机的virsh日常管理和配置
- 4.6:kvm虚拟机虚拟磁盘管理和快照管理
- 4.6.1磁盘工具的常用命令
- 4.6.2快照管理
- 4.7:kvm虚拟机克隆
- 4.7.1:完整克隆
- 4.7.2:链接克隆
- 4.8:kvm虚拟机的桥接网络
- 4.8.1:创建桥接网卡
- 4.8.2 新虚拟机使用桥接模式
- 4.8.3 将已有虚拟机网络修改为桥接模式
- 4.9:热添加技术
- 4.9.1 kvm热添加硬盘
- 4.9.2 kvm虚拟机在线热添加网卡
- 4.9.3 kvm虚拟机在线热添加内存
- 4.9.4 kvm虚拟机在线热添加cpu
- 4.10:kvm虚拟机热迁移(共享的网络文件系统)
- 5.kvm管理平台
1:什么是云计算
云计算: 主要提供运行环境
物理机
虚拟机
云主机
docker容器
云计算是一种按量付费的模式!云计算的底层是通过虚拟化技术来实现的!
业务
机房运维:
物理机: 服务器品牌dell r720/r730 ,惠普,联想,华为…
存储: 2 raid 1 系统,剩下raid0 raid5 raid 10
网络: ccna 交换机
系统运维:
宿主机操作系统: centos redhat Ubuntu debian
虚拟化: qemu xen kvm vmware virtual box
虚拟机操作系统:
集群服务: 负载均衡 高可用 web服务 存储 redis 数据库 消息队列…
qemu,xen,kvm 都支持raw和qcow2
qemu-img
raw: 原始数据
copy on write:写时复制 50g
raw: 俗称裸格式,占用空间比较大,不支持快照功能,不方便传输 ,读写性能较好 总50G,用1G,传输50G
直接挂载到宿主机
mount -o loop,offset=1048576 /opt/web01.raw /srv
qcow2: 是qcow(copy on write)的升级版,占用空间小,支持快照,性能比raw差一点,方便传输 总50G,用1G,传输1G
2:云计算的服务类型
2.1 IAAS 基础设施即服务 虚拟机 ecs openstack
2.2 PAAS 平台即服务 php,java docker容器
2.3 SAAS 软件即服务 企业邮箱服务 cdn服务 rds数据库 开发+运维
3:为什么要用云计算
小公司:10台 20w+ idc 5w + 100M 10W, 10台云主机,前期投入小,扩展灵活,风险小
大公司:闲置服务器计算资源,虚拟机,出租(超卖)
64G 服务器 64台1G 320台1G 64台 大公司自己的业务 264台 租出去
国企,银行
公有云: 谁都可以租
私有云: 只有公司内部使用
混合云: 有自己的私有云 + 租的公有云
4:云计算的基础KVM虚拟化
宿主机:内存4G+ 纯净的系统CentOS-7(关闭selinux,firewalld和NetworkManager)
4.1:什么是虚拟化?
虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。
KVM:Kernel-based Virtual Machine
4.2 :linux虚拟化软件的差别
linux虚拟化软件:
qemu 软件纯模拟全虚拟化软件,特别慢!兼容性好!
xen(半) 性能特别好,需要使用专门修改之后的内核,兼容性差! redhat 5.5 xen kvm
KVM(linux) 全虚拟机,它有硬件支持cpu,内置在linux内核模块,而且不需要使用专门的内核 centos6 kvm
性能较好,兼容较好
vmware workstations: 图形界面
virtual box: 图形界面 Oracle
4.3 安装kvm虚拟化管理工具
启动一个虚拟机,启动qemu进程,监听5900
启动一个虚拟机,启动qemu进程,监听5901
启动一个虚拟机,启动qemu进程,监听5902
给虚拟机设置密码的工具
虚拟机需要安装并启动qga
yum install qemu-guest-agent -y
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent宿主机
virsh set-user-password
virsh set-user-password --user root --password 123 web01
主机名 | ip地址 | 内存 | 虚拟机 |
---|---|---|---|
kvm01 | 10.0.0.11 | 4G(后期调整到2G) | cpu开启vt虚拟化 |
kvm02 | 10.0.0.12 | 2G | cpu开启vt虚拟化 |
安装
ip-10.0.0.11::
1.修改yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.yum安装
yum install libvirt virt-install qemu-kvm -y
3.启动并开机自启
systemctl start libvirtd.service
systemctl status libvirtd.service
virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具
qemu-kvm qemu-img (qcow2,raw)作用:管理虚拟机的虚拟磁盘环境要求:centos 7.4 7.6 7.8(不要使用7.5)vmware 宿主机 kvm虚拟机内存4G,cpu开启虚拟化
4.4:安装一台kvm虚拟机
10.0.0.11 宿主机
建议虚拟机内存不要低于1024M,否则安装系统特别慢!
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsolevnc:10.0.0.11:5900--virt-type kvm 虚拟化的类型(qemu)
--os-type=linux 系统类型
--os-variant rhel7 系统版本
--name centos7 虚拟机的名字 (必须唯一)
--memory 1024 虚拟机的内存
--vcpus 1 虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=10(必须唯一)
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso
--network network=default 使用默认NAT的网络
--graphics vnc,listen=0.0.0.0
--noautoconsole (可有可无)
云主机都没有swap分区
4.5:kvm虚拟机的virsh日常管理和配置
列表list(–all)
开机start
关机shutdown(虚拟机有系统)
拔电源关机destroy
重启reboot(虚拟机有系统)
导出配置dumpxml 例子:virsh dumpxml centos7 >centos7-off.xml
删除undefine 推荐:先destroy,在undefine
导入配置define
修改配置edit(自带语法检查)
重命名domrename (低版本不支持)
挂起suspend
恢复resume
查询vnc端口号vncdisplay
kvm虚拟机开机启动
kvm运行业务程序
开机启动autostart,前提:systemctl enable libvirtd;
取消开机启动autostart --disable
console 控制台 登录
centos7的kvm虚拟机:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot 重启kvm虚拟机
4.6:kvm虚拟机虚拟磁盘管理和快照管理
qemu,xen,kvm 都支持raw和qcow2
qemu-img
raw: 原始数据
copy on write:写时复制 50g
raw: 俗称裸格式,占用空间比较大,不支持快照功能,不方便传输 ,读写性能较好 总50G,用1G,传输50G
直接挂载到宿主机
mount -o loop,offset=1048576 /opt/web01.raw /srv
qcow2: 是qcow(copy on write)的升级版,占用空间小,支持快照,性能比raw差一点,方便传输 总50G,用1G,传输1G
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsolevirt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
你了解哪些虚拟化的技术?cpu: x86 arm power mips amd64/ - 2021-01-21 09:21
i386/ - 2021-01-21 09:25arm 32 64
arm64/ - 2021-01-21 09:21
armhf/ - 2021-01-21 09:21power 32 64
ppc64el/ - 2021-01-21 09:25
s390x/ - 2021-01-21 09:25windows: x86
win10: x86 armlinux技术
kvm
qemu
xenlinux/mac os/windows
vmware workstations
virtual box克隆:
kvm虚拟机: 磁盘文件 配置文件在企业中,kvm虚拟机不能使用nat模式,而是要使用桥接模式
桥接模式,支持更大规模的集群
4.6.1磁盘工具的常用命令
qemu-img info,create,resize,convert
查看虚拟磁盘信息
qemu-img info test.qcow2
创建一块qcow2格式的虚拟硬盘:
qemu-img create -f qcow2 test.qcow2 2G
调整磁盘磁盘容量
qemu-img resize test.qcow2 +20G
raw转qcow2:qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2
-c 压缩
virsh edit web01:
<disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/data/centos2.qcow2'/><target dev='vda' bus='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
virsh destroy web01
virsh start web01
4.6.2快照管理
创建快照virsh snapshot-create-as centos7 --name install_ok
查看快照virsh snapshot-list centos7还原快照virsh snapshot-revert centos7 --snapshotname 1516574134
删除快照virsh snapshot-delete centos7 --snapshotname 1516636570raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中
4.7:kvm虚拟机克隆
4.7.1:完整克隆
自动挡:
virt-clone --auto-clone -o web01 -n web02 (完整克隆)
手动挡:
qemu-img convert -f qcow2 -O qcow2 -c web01.qcow2 web03.qcow2
virsh dumpxml web01 >web02.xml
vim web02.xml
#修改虚拟机的名字
#删除虚拟机uuid
#删除mac地址mac add
#修改磁盘路径disk
virsh define web02.xml
virsh start web02
4.7.2:链接克隆
a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b web03.qcow2 web04.qcow2
b:生成虚拟机的配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
<name>web03</name>
#删除虚拟机uuid
<uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid>
#删除mac地址
<mac address='52:54:00:4e:5b:89'/>
#修改磁盘路径
<source file='/opt/web03.qcow2'/>
c:导入虚拟机并进行启动测试
virsh define web03.xml
virsh start web03
全自动链接克隆脚本:
[root@kvm01 scripts]# cat link_clone.sh
#!/bin/bash
old_vm=$1
new_vm=$2
#a:生成虚拟机磁盘文件
old_disk=`virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'`
disk_tmp=`dirname $old_disk`
qemu-img create -f qcow2 -b $old_disk ${disk_tmp}/${new_vm}.qcow2
#b:生成虚拟机的配置文件
virsh dumpxml $old_vm >/tmp/${new_vm}.xml
#修改虚拟机的名字
sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml
#删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/${new_vm}.xml
#删除mac地址
sed -i '/<mac address/d' /tmp/${new_vm}.xml
#修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1${disk_tmp}/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml
#c:导入虚拟机并进行启动测试
virsh define /tmp/${new_vm}.xml
virsh start ${new_vm}
4.8:kvm虚拟机的桥接网络
默认的虚拟机网络是NAT模式,网段192.168.122.0/24
4.8.1:创建桥接网卡
创建桥接网卡命令
virsh iface-bridge eth0 br0
取消桥接网卡命令
virsh iface-unbridge br0
4.8.2 新虚拟机使用桥接模式
默认NAT模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
问题1:
如果虚拟机获取不到ip地址:
4.8.3 将已有虚拟机网络修改为桥接模式
a:关机状态下修改虚拟机配置文件:
例如:virsh edit centos7
<interface type='bridge'><source bridge='br0'/>
b:启动虚拟机,测试虚拟机网络
如果上层没有开启dhcp,需要手动配置ip地址,IPADDR,NATMASK.GATEWAY,DNS1=180.76.76.76
4.9:热添加技术
热添加硬盘、网卡、内存、cpu
4.9.1 kvm热添加硬盘
临时立即生效
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2永久生效(需要重启)
virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config临时剥离硬盘
virsh detach-disk web01 vdb永久剥离硬盘
virsh detach-disk web01 vdb --config
扩容:
在虚拟机里把扩容盘的挂载目录,卸载掉
在宿主机上剥离硬盘virsh detach-disk web01 vdb
在宿主机上调整容量qemu-img resize
在宿主机上再次附加硬盘virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2
在虚拟机里再次挂载扩容盘
在虚拟机里用xfs_growfs更新扩容盘超级块信息
4.9.2 kvm虚拟机在线热添加网卡
virsh attach-interface web04 --type bridge --source br0 --model virtio
virsh attach-interface web04 --type bridge --source br0 --model virtio --config
virsh detach-interface web04 --type bridge --mac 52:54:00:35:d3:71
4.9.3 kvm虚拟机在线热添加内存
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
临时热添加内存
virsh setmem web04 1024M
永久增大内存
virsh setmem web04 1024M --config
调整虚拟机内存最大值
virsh setmaxmem web04 4G #默认永久
4.9.4 kvm虚拟机在线热添加cpu
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
热添加cpu核数
virsh setvcpus web04 4
永久添加cpu核数
virsh setvcpus web04 4 --config
调整虚拟机cpu的最大值
virsh setvcpus web01 --maximum 4 --config
4.10:kvm虚拟机热迁移(共享的网络文件系统)
冷迁移kvm虚拟机:配置文件,磁盘文件
热迁移kvm虚拟机:配置文件,nfs共享
kvm虚拟机热迁移
1:两边的环境(桥接网卡)
2.:实现共享存储(nfs)
yum install nfs-utils rpcbind -y
vim /etc/exports
/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
systemctl start rpcbind nfs
#kvm01和kvm02
mount -t nfs 10.0.0.31:/data /data
3:在线热迁移
#临时迁移
virsh migrate --live --verbose web04 qemu+ssh://10.0.0.11/system --unsafe
#永久迁移
virsh migrate --live --verbose web03 qemu+ssh://10.0.0.100/system --unsafe --persistent --undefinesource
5.kvm管理平台
kvm宿主机 2000台
查看每一个宿主机有多少台虚拟机?
查看每一个宿主机还剩多少资源?
查看每一台宿主机,每一个虚拟机的ip地址?
excel 资产管理 cmdb
kvm管理平台,数据库工具
信息:宿主机,总配置,剩余的总配置
虚拟机的信息,配置信息,ip地址,操作系统
带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层
自动化管理kvm宿主机,云主机定制化操作
kvm技术:kvm虚拟化的安装和应用相关推荐
- h3c虚拟化服务器配置,H3C CAS 虚拟化平台安装部署
H3C CAS 虚拟化平台安装部署 H3C CAS采用基于KVM技术的虚拟化解决方案,基于OpenStack架构的虚拟化管理解决方案. CAS软件包扩了CVK,CVM,CIC,SSV.CAS使用的是B ...
- 虚拟化技术KVM的搭建
2019独角兽企业重金招聘Python工程师标准>>> KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.K ...
- Linux桌面虚拟化技术KVM
内容: • 虚拟化产品对比介绍 • 安装 KVM • 实戓 1:配置 KVM 网络桥接功能 • 实戓 2:使用 KVM 安装虚拟机 虚拟化产品对比介绍 vmware KVM rhel6_x64 xen ...
- linux 桌面显示 kvm,Linux的桌面虚拟化技术KVM(五)——virsh常用命令
(1).virsh常用命令 virsh list 查看已打开虚拟机列表 virsh list --all 查看所有虚拟机列表 virsh version 查看 virsh 版本号 virsh star ...
- Linux 桌面虚拟化技术 KVM
KVM:是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度 ...
- 桌面虚拟化技术 KVM
Linux 桌面虚拟化技术 KVM KVM: 是指基于Linux 内核的虚拟机(Kernel-based Virtual Machine).是第一个整合到 Linux 内核的虚拟化技术.在 KVM 模 ...
- 虚拟化KVM技术详解
KVM 介绍(1):简介及安装 http://www.cnblogs.com/sammyliu/p/4543110.html 学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 ...
- Linux桌面虚拟化技术-KVM
一. KVM概述 KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机. KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的 ...
- Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机
(1).虚拟化产品对比介绍 虚拟化技术有以下三种:仿真虚拟化,这是一种对系统硬件没有要求,但性能最低的虚拟化技术:半虚拟化,这是一种直接使用物理硬件,性能高,但需要修改内核的虚拟化技术:全虚拟化,这是 ...
最新文章
- Ecplise中tomcat上运行HTML文件自动加载
- PHP根据IP获取当前所在地地址
- java文件名要和什么一致,Java的类名与文件名必须一致
- Ruby Fiber指南(三)过滤器
- 查找字符位置_EXCEL函数公式大全之利用FIND函数MID函数提取字符串中间指定文本...
- 学习——JavaWeb05:JSP入门
- vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析
- 线程控制、如何给面试官描述线程不安全的情况?模拟黄牛抢票展现不安全的情况及解决方式、互斥锁加锁解锁
- 抖音店播 就是我们说的商家自播品牌自播
- Poj(1274),二分图匹配
- 啊哈 算法 啊哈磊 扫描版pdf
- dell笔记本重装win10系统超详细的教程(适用所有windows系统的一套流程)
- F5安全专栏 | 什么是零信任架构(ZTA)?
- SCH自动标注器件号
- HTML函数多个条件并列,excel if函数如何多个条件并列
- 本以为大厂无望,结果陆续收到京东/滴滴/爱奇艺offer的我迷茫了
- python爬取裁判文书并分析_裁判文书网爬虫攻克
- Java的图书商城项目如何添加商品到购物车
- Android ble开发详解
- 【java笔记】java中的常用容器