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 64 台大公司自己的业务 264 台租出去
国企, 银行
4: 云计算的基础 KVM 虚拟化
主机: 内存 4G + 纯净的系统 CentOS-7
4.1: 什么是虚拟化?
虚拟化, 通过模拟计算机的硬件, 来实现在同一台计算机上同时运行多个不同的操作系统的技术.
4.2: 虚拟化软件的差异
Linux 虚拟化软件: qemu 软件纯模拟全虚拟化软件, 特别慢! AIX, 兼容性好!
xen(半)性能特别好, 需要使用专门修改之后的内核, 兼容性差!
RedHat 5.5 xen kvm KVM(Linux)全虚拟机, 它有硬件支持 CPU, 基于内核, 而且不需要使用专门的内核 centos6 kvm 性能更好, 兼容更好
vmware 工作站: 图形界面
虚拟框: 图形界面 Oracle
4.3 安装 kvm 虚拟化管理工具
KVM: 基于内核的虚拟机
yum install libvirt virt-install qemu-kvm -y
KVM: 基于内核的虚拟机
libvirt 作用: 虚拟机的管理软件 libvirt:kvm,xen,qemu,lxc ....
virt-virt-install virt-clone 作用: 虚拟机的安装工具和克隆工具 qemu-kvm qemu-img(qcow2,raw)作用: 管理虚拟机的虚拟磁盘
注意: 如果使用内网源仓库
- echo "192.168.37.200 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
环境要求:
CentOS 7.4 7.6
vmware 宿主机 kvm 虚拟机
内存 4G,CPU 打开虚拟化
4.4: 安装一台 kvm 虚拟机
分发软件 TightVNC 或者 VNC-Viewer-6.19.325 宿主机
微软的远程桌面
vnc: 远程的桌面管理工具 向日葵 微软的远程桌面
systemctl start libvirtd.service systemctl status libvirtd.service
宿主机: 物理服务器 10.0.0.100
建议虚拟机内存不要低于 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
netstat -lntup 查看 5900 端口是否启动
vnc:10.0.0.100:5900
注意: 云主机都没有 swap 分区
4.5:kvm 虚拟机的 virsh 日常管理和配置
命令 1
- virst list #查看正在运行的虚拟机
- virst list --all #查看创建的所有虚拟机
- virsh start centos7 #启动虚拟机 #CentOS 是虚拟机的名称
- virsh shutdown(虚拟机有系统) #关机
- virsh destroy #拔电源关机
- virsh reboot(虚拟机有系统) #重启
virsh undefine(删除之前一定关机) 删除虚拟机 注意: 如果装一半想要删除虚拟机需要删除磁盘文件
- virsh dumpxml centos7>vm_Centos7.xml #导出 / 备份配置文件
- virsh define vm_Centos7.xml #导入配置文件
问题: 因为没有关机删除虚拟机导致删除了配置文件进程还在这时候系统认为虚拟机存在这时候你关虚拟机少一台虚拟机
解决方法:
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 -- boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
-- boot hd : 启动硬盘 这时候会在 / etc/libvirt/qemu / 生成一个 xml 的配置文件
命令 2
virsh domrename web01(关机之后命名) #重命名
修改磁盘名字: mv centos7.raw web01.raw
virsh edit web01 编辑配置文件 (语法检查功能)
<source file='/opt/web01.raw'/>
修改为 web01
- virsh suspend web01 #挂起指定的虚拟机
- virsh resume web01 #恢复挂起的虚拟机
注意: 挂起的虚拟机可能会时间不同步
- yum install ntpdate -y
- ntpdate ntp6.aliyun.com
- virsh vncdisplay web01 #查看 vnc 端口号
第一种设置开机自启方法
- virsh autostart --disable web01 #取消开机自启
- Virsh autostart web01 #设置指定虚拟机开机自启
第二种设置开启自启方法(软连接)
- ln -s /etc/libvirt/qemu/web01.xml /etc/libvirt/qemu/autostart/
- rm -fr /etc/libvirt/qemu/autostart/ #取消开机自启(删除软连接)
console 控制台登录
centos7 的 kvm 虚拟机:
- grubby --update-kernel=ALL --args="console=ttyS0,115200n8"(修改内核参数)
- reboot
配置完之后:
virsh console web01
注意: 需要退出按 ctrl +]
问题: 如果将宿主机挂起会导致 kvm 管理的虚拟机上不了网
解决方法: 因为将虚拟机挂起会导致内核转发参数消失
开启内核转发参数:
- sysctl -a|grep upv4|grep ip_forward
- sysctl.NET.ipv4.ip_forward=1
4.6:kvm 虚拟机虚拟磁盘格式转换和快照管理
1.raw: 裸格式, 占用空间比较大, 不支持快照功能, 不方便传输 , 读写性能较好 总 50G 占用 50G, 传输 50G
2.qcow2: qcow(copy on write)占用空间小, 支持快照, 性能比 raw 差一点, 方便传输 总 50G 占用 2G, 传输 2G
qemu-img: 管理磁盘格式
- qemu-img info /opt/web01.raw #查看指定虚拟磁盘信息
- qemu-img create /opt/baozexu.raw 10G #创建一块容量为 10G 的 raw 格式的虚拟硬盘
-f 指定磁盘格式
- qemu-img create -f qcow2 /opt/bao.qcow2 #创建一块的 qcow2 格式的虚拟硬盘
- qemu-img resize /opt/baozexu.raw 20G #扩容 baozeu.raw 硬盘为 20G
- qemu-img convert -f raw -O qcow2 /opt/baozexu.raw /opt/baozexu.qcow2 #将 baozexu.raw 格式 转换为 baozexu.qcow2 格式
注意: 如果将格式转换后将配置文件也一并一起修改
- virsh edit web01
- ...
- <driver name='qemu' type='qcow2'/>
- <source file='/opt/web01.qcow2'/>
- ...
- virsh dumpxml web01|grep qcow2 #打印修改的配置文件
- <driver name='qemu' type='qcow2'/>
- <source file='/opt/web01.qcow2'/>
4.6.2 快照管理
- virsh snapshot-create web01 #创建快照(以默认的时间戳命名)
- virsh snapshot-list web01 #查看快照
- virsh snapshot-delete web01 --snapshotname 1574860043 #删除快照
- virsh snapshot-create-as web01 --name install_nginx #创建快照并命名为 install--nginx
- virsh snapshot-revert web01 --snapshotname install_nginx #还原快照
注意: raw 不支持做快照, qcow2 支持快照, 并且快照就保存在 qcow2 的磁盘文件
中
- # 修改虚拟机的名字
- # 删除虚拟机 uuid
- # 删除 Mac 地址
- # 修改磁盘路径
- # 修改虚拟机的名字
- <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'/>
来源: https://www.cnblogs.com/baozexu/p/11966331.html