KVM是所有云平台的底座,云下面是虚拟化云台,虚拟化只提供基础架构,云可以提供服务,云是大杂烩。
OpenStack 开源云操作系统
KVM 开源虚拟化
Linux + KVM + OpenStack
大部分云厂商都是基于OpenStack 做二次开发
VRM理解成物理服务器是个管理角色,VRM来管理CNA,真正的虚拟机是运行在CNA的,在VRM控制虚拟机(打开、关闭虚拟机)。
VRM: Virtual Resource Management 虚拟资源管理,并提供web界面。
CNA: Compute Node Agent 计算节点代理,提供计算和网络能力。
CNA默认已经部署好kvm虚拟化的软件,CNA是一个定制的iso,只为虚拟化而生。CNA=迷你版欧拉系统EulerOS+kvm
所有虚拟机运行在CNA上,VRM做资源管理的,VRM提供web界面来管理和监控CNA,
VRM当做虚拟机部署在CNA中,VRM要主备部署,要两个CNA,把两个VRM装在两个CNA中。
云本身没有资源,云平台整合所有计算机资源,云是资源整合者,整合底层的所有计算机资源(cpu、内存等)
IaaS(Infrastructure as a Service),基础设施即服务(出租计算机资源)
PaaS(Platform as a Service),平台即服务,(出租云环境开发平台,出租开发平台有测试环境直接写代码测试上线(docker))
SaaS(Software as a Service)软件即服务,在云上提供系统服务,通过浏览器访问。(用户在云上租应用服务(电商镜像、医疗镜像))
容器时代(类似集装箱)Docker + K8S
容器是轻量级的,容器比虚拟化更轻量,容器不需要操作系统只用跑应用就行
云原生(所有应用都在云里)和微服务时代(一个个微服务模块拼接的)
服务器远程管理,通过远程管理口(远程管理卡)
IBM,叫RSA2远程访问控制
HP,叫iLO远程访问控制
DELL,叫DRAC远程访问控制
Huawei,叫iBMC远程访问控制
所有厂商底层都是走IPMI协议,IPMI协议是Intel开发并开源的协议,服务器上有个远程管理口(远程管理卡)跟网卡口一样的。
远程管理口有内置芯片,芯片内置mini-OS(迷你操作系统),不像普通网卡用来传数据的。通电不开机也算是被激活了,这个迷你操作系统默认有出厂IP地址、用户名、密码。可百度华为BMC默认出厂的信息,浏览器输入ip访问mini-OS(迷你操作系统)
所有厂商走的都是IPMI协议,发出的指令都是ipmitool 指令。
这里的KVM连接工具不是虚拟化的KVM,用KVM去连远程管理卡,(KVM工具可百度下载),现在大部分都支持H5的web页面形式。
华为文档阅读器,打开以.hdx结尾的文件(华为相关产品文件,华为产品手册很详细)。
虚拟化是所有云的基础,云的底层是虚拟化(也可以是物理裸机),云的底座是KVM。
FusionCompute 华为企业级虚拟化,基于开源KVM做二次开发。
VRM有两种部署方式:
1、物理机部署,VRM是物理机 性能好
2、虚拟化部署(如果管理的CNA超过50台,则使用物理机部署,否则建议使用虚拟化部署)
CNA必须物理机部署,因为未来要在CNA中安装虚拟机(如果CNA是虚拟机,虚拟机里跑虚拟机性能差)
VRM管理的CNA小于50台,建议使用虚拟化部署。
VRM如果是虚拟化部署,则先安装两台CNA(物理机部署),然后使用华为部署工具部署VRM。
解读:先安装两台CNA物理机部署,将两台VRM虚拟化部署跑在CNA中(用华为部署工具部署VRM,把VRM部署到CNA中),如果VRM是物理机部署则不需要这个工具。
ios是物理机部署,zip压缩包模板是虚拟化部署,把VRM的zip压缩包模板导入CNA中成为虚拟机运行。
CNA必须物理机部署,只有FusionCompute_CNA-8.2.0-X86_64.iso
VRM的FusionCompute_VRM-8.2.0-X86_64.iso是物理机部署,VRM的FusionCompute_VRM-8.2.0-X86_64.zip是虚拟化部署。
X86架构:复杂型指令集,ARM架构:精简型指令集(手机都是ARM架构)华为服务器是基于ARM架构的。
安装CNA,装CNA最好做RAID1可容错,只需要两块硬盘组成RAID1
操作系统对数据读写性能要求不高,服务器出厂默认两块硬盘,两块硬盘做RAID1再装操作系统,所有数据是放后端存储的,数据通常不放在服务器本身。
出厂服务器默认没做RAID,怎么在服务器做RAID?然后把系统装在RAID上。
为什么要做RAID磁盘阵列,单盘性能不好,单盘没有容错性,根据不同商业目标既要保证性能又要能容错。两块硬盘,RAID0能提升性能但不容错,RAID1不保证性能但能容错。
留意重启过程中提示,按什么快捷键进入RAID配置界面。
硬盘插在RAID卡上的,按ctrl+r能进来RAID卡的BIOS界面(主板有主板的BIOS界面),进入RAID卡的BIOS界面是RAID卡提供的功能,有很多RAID卡不同的RAID卡按的快捷键不同,具体什么快捷键看启动时的提示,在主板上有个RAID卡,硬盘都是插在RAID卡上的,所有服务器的硬件都是支持热插拔的(带电操作)
一个RAID卡能创建多个不同RAID级别只要有硬盘够,但不是所有RAID卡支持所有RAID级别。
3块硬盘的话,剩余一块硬盘可给RAID1加个热备盘,RAID1有个盘坏了正常情况是把坏的盘拿出来换个好的盘进去,即便这里有3块硬盘多了一块硬盘也不会自动顶上去的,但设置热备盘后就会兼顾RAID1,只要RAID1有个盘坏了就会自动顶上去。没有设置热备盘不会自动顶上去的,会读取卡槽位,把坏的盘拿出来,再在同一个卡槽位插一块硬盘上去,才会重新组建RAID1,热备盘是个千年备胎,RAID1有个盘坏了它就顶上去,但把坏的盘拔出来插上新的硬盘,热备盘再回去继续当热备盘。
RAID卡是否支持直通模式(看RAID卡有无JBOD选项,有的话说明支持直通模式)
直通模式,就是这个硬盘能直接被读取到,否则要经过RAID卡才能被读取的。
因为所有的硬盘都是接到RAID卡上的,OS读到的是虚拟磁盘,如果RAID卡支持直通模式,则OS可以直接读到裸硬盘,如果不支持,则必须创建RAID,这样磁盘才可以被OS读取到。
RAID卡不支持直通模式,第三块如果一定要被读到,则必须给这一块盘创建RAID0(单盘创建RAID0就变成虚拟磁盘了,才可以被OS读取到)单盘创建RAID0从性能上讲没有意义。
linux引导程序叫GRUB2
如何破解grub密码,# vim /etc/grub2.cfg 把root密码这三行注释掉,后面重启时按e输入rd.break破解密码时就不会让你输入grub密码进行校验。
登录进来后输入# hostconfig可修改网络信息
ssh远程不能改网络信息,只能管理口连接BMC控制台(kvm连接工具连接的)改网络信息。
虚拟机模拟安装CNA实际用不了,CNA必须物理机部署,CNA不支持虚拟化嵌套,只是体验CNA安装过程。
把仅主机模式的网卡VMnet1(NAT模式是VMnet8)设置成和物理机同一个网段就能相互ping通。
选第三个不带VLAN,CNA模拟虚拟机部署这里就不设置网关
默认情况下CNA底层系统(EulerOS欧拉操作系统)不能ssh连root登录,只能普通用户ssh登录再su切换root,
# id gandalf 无该用户信息,默认没有创建gandalf用户
# cnaInit 这里I是大写的i,输入这个命令后默认创建gandalf用户,然后你给gandalf设置密码
# ssh [email protected]
$ su – 切换到root用户
CNA01:~ # TMOUT=0
正常情况是TMOUT=60,60秒超时,超时了会退出让重新登入,
TMOUT=0是timeout=0的缩写,永不超时(临时生效的,防止超时)
CNA安装完成后,可以在windows上通过ssh 连接工具来访问CNA
(1)EulerOS欧拉系统默认不允许使用root用户远程连接
(2)先使用普通用户登录CNA,然后再切换到root
(3)执行# cnaInit命令,初始化用户,系统会自动创建gandalf用户
# unzip FusionCompute-LinuxInstaller-8.2.0-X86_64.zip
# cd /home/GalaX8800/FusionCompute-LinuxInstaller-8.2.0-X86_64/bin
# sh webInstaller.sh install 安装
# sh webInstaller.sh uninstall 卸载
安装工具安装在linux,win提供浏览器web访问这个安装工具就行。
重点: 安装工具,VRM,CNA版本必须一致,否则安装失败。
VIP: Virtual IP,虚拟IP也叫浮动IP
GRUB : Linux引导程序,给VRM的Linux机器设置root密码 gandalf密码 GRUB密码
指定VRM安装在哪台CNA中,这里的主机指CNA。
VRM主备部署: 两台CNA主机时间误差不得超过5分钟,否则会报错。
建议VRM部署在CNA的本地硬盘(VRM不会迁移),虚拟机一般不安装在本地磁盘而是安装在共享磁盘,其他业务虚拟机比如windows2016, CentOS建议部署在共享存储中,方便未来迁移。
格式化可以是RAID1之外的硬盘(前提是RAID卡可以识别到的硬盘),格式化的是RAID1安装完系统后剩余空间。
2.配置时间
VRM主备部署: 两台CNA主机时间误差不得超过5分钟,否则会报错。
# date 查看CNA当前系统时间 # date --help |more 求帮助
# date [MMDDhhmm[CC]YY][.ss] 月日小时分钟年份.秒 CC年份前两位YY年份后两位
# date 022712202024.30 将时间改成20240227号12:20:30
# hwclock -w 将修改的时间写入硬件中永久生效,不执行这条命令重启后刚设置的时间会失效
在环境中配置NTP服务器
3. 什么是集群
如果使用fusioncompute web工具安装VRM,系统会自动创建一个管理集群ManagementCluster,并且将CNA加入到该集群中。
由两台或者两台以上的主机,为了一个共同的商业目标,根据商业目标不同,集群分为以下三类
(1) HA 高可用集群
(2) 负载均衡集群 LBC Load Balance Cluster
(3)HPC 高性能集群
所有的机器一起计算,能提高算力。
4. 在FusionCompute中安装虚拟机,创建第一台windows虚拟机。
(1)硬盘和网卡选择virtIO类型(待会装WIN到一半会提示找不到硬盘,原因是没有virtIO类型的驱动) linux默认自带virtIO驱动,硬件都要装驱动,装完后也网卡缺少virtIO驱动。
磁盘和网卡设置virtIO类型,装virtIO驱动就是标记机器是虚拟机,通过虚拟交换机交换数据,虚拟交换机在内存中很快的,装virtIO驱动是提高性能的。如果不设置这个驱动,系统不认为它是虚拟机,以为它是物理机,所有数据流按物理机流量来走。
(2)安装tools(linux和win装完后要安装tools)tools是虚拟机的驱动程序,装完WIN没有网卡驱动是因为没有安装tools,很多高级特性依赖tools。装完tools(tools自带网卡驱动)后就有网卡驱动能配置以太网了。
装WIN过程中没识别到硬盘,系统盘都驱动不了,用了虚拟软驱解决的(vhd驱动放在软驱里),为什么不把网卡驱动放虚拟软驱里?虚拟软驱才1.44MB怎么可能放那么多驱动呢,先把系统装好后面再装其它驱动更方便。
安装并启动Tools后,用户无需做任何操作,Tools即可提供以下功能:
为虚拟机提供高性能的磁盘I/O和网络I/O功能
为虚拟机提供虚拟硬件监控功能
获取虚拟机指定网卡IP信息
获取虚拟机内部各CPU利用率、内存利用率
获取虚拟机内各个磁盘/分区的空间使用信息
为虚拟机提供高级功能
在线调整虚拟机的CPU规格
创建虚拟机快照
(Intel)虚拟机蓝屏检测
虚拟机与主机时钟同步
虚拟机网卡的高级功能,如QoS(服务质量控制,做流量管控)
自动升级虚拟机的驱动程序,如Tools驱动
5.在Linux系统中安装tools
为什么装完linux有网卡还有ip呢,因为linux默认自带virtIO驱动,但没有自带安装tools
在虚拟机上挂载tools,进入Linux操作系统,挂载tools光盘
# mount /dev/cdrom /media
/dev/cdrom是/dev/sr0的软链接,如果没有自动挂载光驱到挂载点 就手工挂载光驱/dev/cdrom到/media
# mkdir /data
# cd /media 进入光驱挂载点里面有vmtools压缩包,光盘挂载点是只读的不能在光盘中直接解压
# tar -jxvf vmtools-3.0.0.019.tar.bz2 -C /data 解压到/data目录
# cd /data/vmtools
# sh install 执行脚本
# reboot 重启生效
virsh是EulerOS欧拉系统才有的命令
# virsh list --all 查看所有虚拟机运行情况
# virsh start bastion 开启某台虚拟机
# lsmod |grep kvm 显示已载入系统的模块
linux虚机不能ping通win虚机,win虚机能ping通linux虚机,说明win防火墙没有关。
6.创建集群
多个集群是独立的,不会彼此帮助的。为什么创建多个集群,为了隔离业务,一个集群就是一个故障域,一个集群故障了也不会影响另一个集群。
先创建集群再往集群里添加主机,按照集群的设置来管理主机。
(1)内存复用:
开启:所有虚拟机分配的内存会超出宿主机内存,可以提高虚拟机开机密度(开多台虚拟机)
宿主机内存256G,将来在这上面开启的虚拟机加起来的内存可超过宿主机内存256G,复用就是多台主机共享内存。(默认内存复用率150%)
缺点: 影响性能
默认关闭: 提高虚拟机的性能(别人用就开启,自己用就关了)
虚拟机NUMA结构自动调整:开启意味着虚拟机在运行时给这个虚拟机分了4个cpu8g内存,尽可能在一个Node里面分配,而尽量不用跨Node去分配,这样cpu跟内存间访问速度是最快的。
NUMA(Non Uniform Memory Access)非一致性内存访问,把CPU、内存来分区管理。
vcpus=cpu个数*每个cpu多少核数*线程数
比如:2颗物理cpu,每颗20核,每核2线程,一共是80vcpus
CNA宿主机故障处理策略:
虚拟机需要运行在CNA上,CNA就是虚拟机的宿主机,
一旦cna故障了,运行在其上面的虚拟机会自动ha到集群的其它cna上,ha会短暂停业务。
DRS:分布式资源调度
DPM:分布式电源管理,添加CNA主机时,需要添加BMC信息(华为服务器远程管理口),才能实现该功能。
10台CNA,100个VMS(VMS虚拟机)
9:00-18:00 业务繁忙,22:00-8:00 空闲
VRM检测到整个集群资源利用率低于20%,则触发DPM
关闭一部分CNA主机,但是所有的业务不能中止,在关闭CNA之前,将待关闭CNA主机上的虚拟机迁移到其他CNA中。
保守:能不关机尽量不关机
激进:能不开机尽量不开机,只要5台机器扛得住就不开6台
ipmi协议,标准协议,下发一个开机指令就行,把集群的第6台机器打开。
热迁移:迁移过程不会关机。