文章目录

  • 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虚拟化的安装和应用相关推荐

  1. h3c虚拟化服务器配置,H3C CAS 虚拟化平台安装部署

    H3C CAS 虚拟化平台安装部署 H3C CAS采用基于KVM技术的虚拟化解决方案,基于OpenStack架构的虚拟化管理解决方案. CAS软件包扩了CVK,CVM,CIC,SSV.CAS使用的是B ...

  2. 虚拟化技术KVM的搭建

    2019独角兽企业重金招聘Python工程师标准>>> KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.K ...

  3. Linux桌面虚拟化技术KVM

    内容: • 虚拟化产品对比介绍 • 安装 KVM • 实戓 1:配置 KVM 网络桥接功能 • 实戓 2:使用 KVM 安装虚拟机 虚拟化产品对比介绍 vmware KVM rhel6_x64 xen ...

  4. linux 桌面显示 kvm,Linux的桌面虚拟化技术KVM(五)——virsh常用命令

    (1).virsh常用命令 virsh list 查看已打开虚拟机列表 virsh list --all 查看所有虚拟机列表 virsh version 查看 virsh 版本号 virsh star ...

  5. Linux 桌面虚拟化技术 KVM

    KVM:是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度 ...

  6. 桌面虚拟化技术 KVM

    Linux 桌面虚拟化技术 KVM KVM: 是指基于Linux 内核的虚拟机(Kernel-based Virtual Machine).是第一个整合到 Linux 内核的虚拟化技术.在 KVM 模 ...

  7. 虚拟化KVM技术详解

    KVM 介绍(1):简介及安装 http://www.cnblogs.com/sammyliu/p/4543110.html 学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 ...

  8. Linux桌面虚拟化技术-KVM

    一. KVM概述 KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机. KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的 ...

  9. Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机

    (1).虚拟化产品对比介绍 虚拟化技术有以下三种:仿真虚拟化,这是一种对系统硬件没有要求,但性能最低的虚拟化技术:半虚拟化,这是一种直接使用物理硬件,性能高,但需要修改内核的虚拟化技术:全虚拟化,这是 ...

最新文章

  1. Ecplise中tomcat上运行HTML文件自动加载
  2. PHP根据IP获取当前所在地地址
  3. java文件名要和什么一致,Java的类名与文件名必须一致
  4. Ruby Fiber指南(三)过滤器
  5. 查找字符位置_EXCEL函数公式大全之利用FIND函数MID函数提取字符串中间指定文本...
  6. 学习——JavaWeb05:JSP入门
  7. vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析
  8. 线程控制、如何给面试官描述线程不安全的情况?模拟黄牛抢票展现不安全的情况及解决方式、互斥锁加锁解锁
  9. 抖音店播 就是我们说的商家自播品牌自播
  10. Poj(1274),二分图匹配
  11. 啊哈 算法 啊哈磊 扫描版pdf
  12. dell笔记本重装win10系统超详细的教程(适用所有windows系统的一套流程)
  13. F5安全专栏 | 什么是零信任架构(ZTA)?
  14. SCH自动标注器件号
  15. HTML函数多个条件并列,excel if函数如何多个条件并列
  16. 本以为大厂无望,结果陆续收到京东/滴滴/爱奇艺offer的我迷茫了
  17. python爬取裁判文书并分析_裁判文书网爬虫攻克
  18. Java的图书商城项目如何添加商品到购物车
  19. Android ble开发详解
  20. 【java笔记】java中的常用容器

热门文章

  1. 网站都变成灰色,几行代码搞定!
  2. vijos P1009 清帝之惑之康熙
  3. LeetCode的朴素无华且枯燥
  4. 【ALB 】ALB文档阅读
  5. 仿照admin的stark自定义组件的功能实现
  6. 接口联调务必按照文档走
  7. 病毒,木马,蠕虫的区别
  8. 中国新起之秀男模李磊 HOLD住欧美杂志时尚大片
  9. 什么时候报空指针异常?
  10. 加班文化还是做不完加班