1:什么是云计算?
云计算是一种按量付费的模式!云计算的底层是通过虚拟化技术来实现的!
KVM + openstack私有云
docker+k8s(管理平台)
2:云计算的服务类型
2.1 IAAS
基础设施即服务(infrastructure as an service) 虚拟机 ecs云主机
底层服务部署好,直接买esc 部署好数据就ok
2.2 PAAS
平台即服务(platform as an service ) php,java 容器
运行环境已经布置好,需要什么服务提供什么服务平台
2.3 SAAS
软件即服务(software as an service ) 企业邮箱服务 cdn服务 rds数据库
直接使用,付钱使用
3:为什么要用云计算
小公司:
10台 20w+ idc 5w/年 + 100M带宽 10W, 10台云主机,前期投入小,扩展灵活,风险小
大公司:
闲置服务器计算资源,虚拟机,出租(超卖)
64G 服务器 64台1G 320台1G 64台 大公司自己的业务 264台 租出去
国企,银行 ----- 了解
公有云: 谁都可以租 (模式 KVM管理平台+收费系统)
私有云: 只有公司内部使用
混合云: 有自己的私有云 + 租的公有云
4:云计算的基础KVM虚拟化
环境
宿主机:内存4G+ 纯净的系统CentOS-7(关闭selinux,firewalld和NetworkManager)
4.1:什么是虚拟化?
虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。
会造成一定程度的性能损耗,但能充分的利用资源
4.2 :linux虚拟化软件的差别
linux虚拟化软件:
qemu: 软件纯模拟全虚拟化软件,性能差!兼容性好,原生内核 可以跨cpu
xen(半) :性能特别好,需要使用定制的开源内核(劫持指令),兼容性差!
KVM (kernel-base vm --linux基于内核的虚拟机): 性能较好,兼容较好 。它有硬件支持cpu(开启主板虚拟化)原生内核
vmware workstations: 图形界面 --linux版 体验差
virtual box: 图形界面 Oracle -- 体验一般
4.3 安装kvm虚拟化管理工具 --控制内核
主机名 ip地址 内存 虚拟机
kvm01 10.0.0.11 4G(后期调整到2G) cpu开启vt虚拟化
kvm02 10.0.0.12 2G cpu开启vt虚拟化
环境要求:
centos 7.4 7.6 7.8(不要使用7.5) VNC客户端
vmware 宿主机 kvm虚拟机
内存4G,cpu开启虚拟化
更新base源 curl -o /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
1.修改虚拟化配置
lsmod|grep kvm 查看虚拟化内核参数 --确认是否开启虚拟化
2.下载虚拟机管理程序机器软件
yum install libvirt virt-install qemu-kvm -y
KVM:Kernel-based Virtual Machine
libvirt 作用:虚拟机的管理软件 开关机重启
libvirt 种类: kvm,xen,qemu,lxc....
virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具 主要为了装虚拟机
qemu-kvm qemu-img (qcow2,raw)作用:解决 img依赖 管理虚拟机的虚拟磁盘
4.4:安装一台kvm虚拟机
VNC-Viewer-6.19.325
微软的远程桌面
vnc:远程的桌面管理工具 向日葵 微软的远程桌面
systemctl start libvirtd.service systemctl status libvirtd.service
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 --noautoconsole
参数说明:
--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 (可有可无)
成功会出现 5900端口 netstat -lntup
vnc:10.0.0.11:5900 --使用5900端口用vnc连接
注意:--vnc连接会断开 ,使用virsh命令启动虚拟机会重新建立连接
4.5:kvm虚拟机的virsh日常管理和配置
虚拟机的简单构成
磁盘文件 在/opt(安装目录下)下
配置文件在/etc/libvirt/qemu/centos7.xml -- 可以升级硬件配置
常用命令 -开关重启
列表list(--all 全部) virsh list --显示运行状态的虚拟机
virsh start centos7 启动命令
shutdown 关闭命令(虚拟机有系统)
拔电源关机、强制关机destroy(无系统)
重启reboot(虚拟机有系统)
导出虚拟机配置dumpxml
virsh dumpxml centos7 >vm_centos7-off.xml
删除虚拟机undefine
推荐:先destroy,在undefine
virsh undefine centos7
导入配置define
virsh define /opt/vm_centos7.xml
其他命令 修改、重命名 、挂起恢复、查询端口号
修改配置edit(自带语法检查) 虚拟关机再开,才生效
重命名domrename (低版本不支持)
virsh domrename 原名 改后名
挂起suspend 恢复resume -- 时间会暂停(chronyd服务重启时间会同步)
查询vnc端口号vncdisplay
virsh vncdisplay 虚拟机名
查看真实占用内存
du -smh *
free -m
kvm虚拟机开机启动
kvm运行业务程序 开机启动autostart /etc/libvirt/qemu文件查看开机自启虚拟机,
前提:systemctl enable libvirtd;
取消开机启动autostart --disable
console 控制台 登录命令
1.进入centos7的kvm虚拟机:
2.执行下面命令
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot
virsh console centos7
ctrl +] -- 宿主机和虚拟机之间进行切换
4.6:kvm虚拟机虚拟磁盘管理和快照管理
raw与pcow2区别
磁盘格式 占用空间 传输性能 快照 读写方式
raw 比较大 不方便,总50G,用1G传50G 不支持 连续读写,读写性能较好
qcow2 小 方便,总50G,用1G传1G 支持 随机读写,性能差一点
raw磁盘初始安装命令
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 --noautoconsole
qcow2磁盘初始安装命令
virt-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
4.6.1 磁盘工具的常用命令
查、创建、增量、raw转qcow2过程(四步)
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
-- 先关虚拟机 再改配置文件
# virsh shutdown centos7
# virsh edit centos7
导入配置
virsh destroy web01
启动生效
virsh start web01
4.6.2快照管理
创建快照
virsh snapshot-create-as centos7 --name install_ok
查看快照
virshsnapshot-listcentos7
还原快照
virshsnapshot-revertcentos7--snapshotname 1516574134
删除快照
virshsnapshot-deletecentos7--snapshotname 1516636570
4.7:kvm虚拟机克隆
4.7.1:完整克隆
自动挡:
virt-clone --auto-clone -o centos7 -n web01(完整克隆)
virt-clone --auto-clone -o centos7 -n web01 --file /opt/web01.qcow2 --磁盘放的位置 ,不含快照‘
virt-clone --auto-clone -o centos7 -n web02 --auto-clone
手动挡:
#手动完整克隆
#1磁盘文件的克隆
qemu-img convert -f qcow2 -O qcow2 -c web01.qcow2 web03.qcow2
#2修改配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
#删除虚拟机uuid
#删除mac地址mac add
#修改磁盘路径disk
#3导入数据并重启生效
virsh define web03.xml
virsh start web03
4.7.2 链接克隆
a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b web03.qcow2 web04.qcow2
b:生成虚拟机的配置文件
virsh dumpxml web01 >web04.xml
vim web04.xml
#修改虚拟机的名字
#删除虚拟机uuid
#删除mac地址
#修改磁盘路径
c:导入虚拟机并进行启动测试
virsh define web04.xml
virsh start web04
全自动链接克隆脚本:
[root@kvm01 scripts]# cat vi link_clone.sh
i#!/bin/bash
old_vm=$1
new_vm=$2
#a:生成虚拟机磁盘文件
old_disk=virsh dumpxml $old_vm|grep "