1:什么是云计算?

云计算是一种按量付费的模式!云计算的底层是通过虚拟化技术来实现的!

2:云计算的服务类型

2.1 IAAS 基础设施即服务(infrastructure as an service) 虚拟机 ecs云主机

2.2 PAAS 平台即服务(platform as an service ) php,java 容器

2.3 SAAS 软件即服务(software as an service ) 企业邮箱服务 cdn服务 rds数据库

1563155289688

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:什么是虚拟化?

虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

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虚拟化管理工具

主机名ip地址内存虚拟机
kvm0110.0.0.114G(后期调整到2G)cpu开启vt虚拟化
kvm0210.0.0.122Gcpu开启vt虚拟化

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)作用:管理虚拟机的虚拟磁盘

环境要求:

centos 7.4 7.6 7.8(不要使用7.5)

vmware 宿主机 kvm虚拟机

内存4G,cpu开启虚拟化

1563157833562

IP:10.0.0.11

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装软件包

yum install libvirt virt-install qemu-kvm -y

 

4.4:安装一台kvm虚拟机

VNC-Viewer-6.19.325

微软的远程桌面

vnc:远程的桌面管理工具 向日葵 微软的远程桌面

systemctl start libvirtd.service systemctl status libvirtd.service

10.0.0.11 宿主机

建议虚拟机内存不要低于1024M,否则安装系统特别慢!

vnc: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 (可有可无)

1563160425280

云主机都没有swap分区

1563161133486

 

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 控制台 登录

作业1:安装一台centos6的kvm虚拟机,实现console登录 安装一台centos6的kvm虚拟机,在安装的过程中.内核参数selinux=0

 

4.6:kvm虚拟机虚拟磁盘管理和快照管理

raw: 俗称裸格式,占用空间比较大,不支持快照功能,不方便传输 ,读写性能较好 总50G,用1G,传输50G 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 --noautoconsole

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磁盘工具的常用命令

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:

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 1516636570

raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中

4.7:kvm虚拟机克隆

4.7.1:完整克隆

自动挡:

手动挡:

4.7.2:链接克隆

a:生成虚拟机磁盘文件 qemu-img create -f qcow2 -b web01.qcow2 web04.qcow2

b:生成虚拟机的配置文件

c:导入虚拟机并进行启动测试

virsh define web03.xml virsh start web03

 

全自动链接克隆脚本:

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地址:

1563250956395

4.8.3 将已有虚拟机网络修改为桥接模式

a:关机状态下修改虚拟机配置文件:

例如:virsh edit centos7

b:启动虚拟机,测试虚拟机网络

如果上层没有开启dhcp,需要手动配置ip地址,IPADDR,NATMASK.GATEWAY,DNS1=180.76.76.76

1578543325216

4.9:热添加技术

热添加硬盘、网卡、内存、cpu

4.9.1 kvm热添加硬盘

临时立即生效

永久生效(需要重启)

临时剥离硬盘

virsh detach-disk web01 vdb

永久剥离硬盘

扩容: 在虚拟机里把扩容盘的挂载目录,卸载掉 在宿主机上剥离硬盘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:两边的环境(桥接网卡)

主机名ip内存网络软件需求虚拟化
kvm0110.0.0.112G创建br0桥接网卡kvm和nfs开启虚拟化
kvm0210.0.0.122G创建br0桥接网卡kvm和nfs开启虚拟化
nfs0110.0.0.311Gnfs

2:实现共享存储(nfs)

3:在线热迁移

5.kvm管理平台

kvm宿主机 2000台 查看每一个宿主机有多少台虚拟机? 查看每一个宿主机还剩多少资源? 查看每一台宿主机,每一个虚拟机的ip地址?

excel 资产管理 cmdb

kvm管理平台,数据库工具

信息:宿主机,总配置,剩余的总配置 虚拟机的信息,配置信息,ip地址,操作系统

带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层 自动化管理kvm宿主机,云主机定制化操作

 

 

5.1用脚本自动化部署openstack M版

部署openstack 克隆一台openstack模板机:

all-in-one环境

4G内存,开启虚拟化,挂载centos7.6的光盘

1563350783150

虚拟机开机之后,修改ip地址为10.0.0.11

上传脚本openstack-mitaka-autoinstall.sh到/root目录 上传镜像:cirros-0.3.4-x86_64-disk.img到/root目录 上传配置文件:local_settings到/root目录 上传openstack_rpm.tar.gz到/root下, tar xf openstack_rpm.tar.gz -C /opt/ mount /dev/cdrom /mnt

sh /root/openstack-mitaka-autoinstall.sh 大概10-30分钟左右 访问http://10.0.0.11/dashboard 域:default 用户名:admin 密码:ADMIN_PASS

注意: 在windows系统上修改host解析(10.0.0.11 controller)

添加node节点: 修改ip地址10.0.0.12 hostnamectl set-hostname compute1 重新登录让新主机名生效 上传openstack_rpm.tar.gz到/root下, tar xf openstack_rpm.tar.gz -C /opt/ mount /dev/cdrom /mnt

上传脚本openstack_compute_install.sh

sh openstack_compute_install.sh

openstack controller主控制节点,node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机