1:什么是云计算?
云计算是一种按量付费的模式!云计算的底层是通过虚拟化技术来实现的!
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
国企,银行
4:云计算的基础KVM虚拟化
宿主机:内存4G+ 纯净的系统CentOS-7
4.1:什么是虚拟化?
虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。
4.2 :虚拟化软件的差别
虚拟化软件: qemu 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好! xen(半) 性能特别好,需要使用专门修改
之后的内核,兼容性差! redhat 5.5 xen kvm KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要
使用专门的内核 centos6 kvm 性能较好,兼容较好
4.3 安装kvm虚拟化管理工具
KVM:Kernel-based Virtual Machine
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
vmware 宿主机 kvm虚拟机
内存4G,cpu开启虚拟化
IP:10.0.0.11
echo '192.168.12.201 mirrors.aliyun.com' >>/etc/hosts
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虚拟机
分发软件TightVNC或者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
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
云主机都没有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虚拟机开机启动
console 控制台 登录 kvm运行业务程序 autostart
开机启动autostart,前提:systemctl enable libvirtd; 取消开机启动autostart --disable
centos7的kvm虚拟机: grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot
作业1:实现centos6的kvm虚拟机,console命令行登录? 安装一台centos6的kvm虚拟机,在安装的过程中需要
swap 200m,selinux禁用,取消swap
console命令行登录
作业2:centos6实现没有swap分区,启动进系统
4.6:kvm虚拟机虚拟磁盘格式转换和快照管理
raw: 裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输 总50G 占用50G qcow2: cow(copy
on write)占用空间小,支持快照,性能比raw差一点,方便传输 总50G 占用2G
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
/data/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 convert [-f fmt] [-O output_fmt]
filename output_filename -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:完整克隆
自动挡:
virt-clone --auto-clone -o web01 -n web02 (完整克隆)
手动挡:
cp centos2-clone.qcow2 web02.qcow2
virsh dumpxml web01 >web02.xml
vim web02.xml
#修改虚拟机的名字
#删除虚拟机uuid
#删除mac地址
#修改磁盘路径
virsh define web02.xml
virsh start web02
4.7.2:链接克隆
a:生成虚拟机磁盘文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2
b:生成虚拟机的配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
web03
#删除虚拟机uuid
8e505e25-5175-46ab-a9f6-feaa096daaa4
#删除mac地址
#修改磁盘路径
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 "
链接克隆:
qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk
/opt/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
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
b:启动虚拟机,测试虚拟机网络
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更新扩容盘超级块信息
作业1:扩容kvm虚拟机的根分区
作业2:误删centos7虚拟机系统文件rm -fr /lib64/libc.so.6,如何恢复?
4.9.2 kvm虚拟机在线热添加网卡
virsh attach-interface web04 --type bridge --source br0 --model virtio 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
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
4.10:virt-manager和kvm虚拟机热迁移(共享的网络文件系统)
冷迁移kvm虚拟机:配置文件,磁盘文件
热迁移kvm虚拟机:配置文件,nfs共享
1): yum groupinstall "GNOME Desktop" -y yum install openssh-askpass -y
yum install tigervnc-server -y
vncpasswd vncserver :1 vncserver -kill :1
2):kvm虚拟机热迁移 1:两边的环境(桥接网卡) 2:实现共享存储(nfs) 3:虚拟机桥接网络 4:在线热迁移
5: ESXI虚拟化系统
5.1 安装ESXI
5.1.1创建虚拟机
一路回车,直到
按F11
5.2启动ESXI
5.3 安装ESXI客户端
一路下一步就行
安装完成
5.4使用客户端连接EXSI服务端
连接成功界面
5.5了解ESXI的常用配置
开启ssh功能
5.6安装一台ESXI虚拟机
5.7 将kvm虚拟机迁移到esxi上
qemu-img convert -f qcow2 oldimage.qcow2 -O vmdk newimage.vmdk
#可能不需要
vmkfstools -i oldimage.vmdk newimage.vmdk -d thin
5.8 将ESXI虚拟机迁移到kvm上
将虚拟机导出ova文件
virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2
kvm宿主机 2000台 查看每一个宿主机有多少台虚拟机? 查看每一个宿主机还剩多少资源? 查看每一台宿主机,每一个
虚拟机的ip地址?
excel 资产管理
kvm管理平台,数据库工具
信息:宿主机,总配置,剩余的总配置 虚拟机的信息,配置信息,ip地址,操作系统
带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层 自动化管理kvm宿主机,云主机定制化操作
服务器, 20核心 1T内存 96T
资源浪费,linux环境特别乱,,kvm虚拟机
6.使用脚本自动化部署openstack M版
部署openstack 克隆一台openstack模板机:
all-in-one
4G内存,开启虚拟化,挂载centos7.6的光盘
1.虚拟机开机之后,修改ip地址为10.0.0.11
2.上传脚本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/
3.sh /root/openstack-mitaka-autoinstall.sh 大概10-30分钟左右 访问4.http://10.0.0.11/dashboard 域:default 用户
名:admin 密码:ADMIN_PASS
注意: 在windows系统上修改host解析(10.0.0.11 controller)
5.添加node节点: 修改ip地址 hostnamectl set-hostname compute1 重新登录让新主机名生效 cd /opt/ rsync -avz
10.0.0.11:/opt/repo .
6.上传脚本 openstack_node_autoinstall.sh
7.sh openstack_node_autoinstall.sh
8.openstack controller主控制节点,
node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机
node节点, kvm宿主机