目次
一、传统服务器期间
二、虚拟化期间
2.1、虚拟化优势
2.2、虚拟化商业模式分类
2.3、开源虚拟化架构
2.3.1、虚拟化方式
半虚拟化
全虚拟化(过渡阶段,已镌汰)
硬件辅助虚拟化(现阶段主流)
2.3.2、XEN
2.3.3、KVM
2.3.4、KVM为何击败XEN成为虚拟化的主流?
2.4、虚拟化
2.4.1、盘算虚拟化
内存复用
UMA:同等性内存访问
NUMA:非同等性内存访问
2.4.2、存储虚拟化
SAN:存储区域网络
RAID:廉价的冗余磁盘阵列
RAID0—没有丧失,磁盘利用率:100%
RAID1—丧失50%,磁盘利用率:50%
RAID3—丧失1块,磁盘利用率:(n-1)/n
RAID5—丧失1块,磁盘利用率:(n-1)/n
RAID6—丧失两块,磁盘利用率:(n-2)/n
RAID10
RAID50
LUN:逻辑单元号
文件系统
差分盘技术
2.4.3、网络虚拟化
1、根据端口来分别zone(分区,雷同vlan)进行隔离
2、根据WWPN分别zone
3、单机虚拟化的网络连接模式
2.4、华为企业虚拟化(FusionCompute)
2.4.1、企业虚拟化架构
2.4.2、远程管理服务器
集群
三、云盘算期间
3.1、OpenStack和虚拟化的区别
3.2、OpenStack九大组件
1、horizon(地平线)
2、nova:提供openstack的盘算资源
3、glance:提供镜像服务
4、swift(对象存储)
5、cinder(块存储)
6、neutron
7、heat(编排服务)
8、ceilometer(计量服务)
9、keystone(身份认证)
四、容器期间(集装箱)
五、云原生和微服务期间
一、传统服务器期间
X86:复杂指令集
ARM:精简指令集
同一物理机摆设的业务之间无法隔离,cpu、内存、存储等资源共享;当单个业务须要重启物理机才气运行时,导致所有业务重启。
安全性:一台服务器只承载一种业务
内存是盘算机中的一种存储设备,用于临时存储和读取数据。CPU从内存中读取指令和数据,并将盘算结果写回内存。内存的巨细决定了盘算机可以同时处理惩罚的数据量,内存用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,内存的运行决定盘算机团体运行快慢。
当前,cpu处理惩罚速度约莫是内存的100倍,为了不让CPU每次都在运行相对迟钝的内存中操作,缓存就作为一个中心者出现了,通常cpu内有3级缓存,即L1、L2、L3缓存。
- cpu先从L1缓存中获取指令和数据,假如L1缓存中不存在,那就从L2缓存中获取;
- 每个cpu核心都拥有属于本身的L1缓存和L2缓存;
- 假如数据不在L2缓存中,那就从L3缓存中获取;
- L3缓存就是所有cpu核心共用的。假如数据也不在L3缓存中,那就从内存中获取了;
- 当然,假如内存中也没有那就只能从硬盘中获取了。
二、虚拟化期间
通过“硬件资源分割”实现资源利用率提升,资本大幅降低。
2.1、虚拟化优势
与传统物理机相比,虚拟化优势:
- 提高资源利用率
- 有快照功能
- 业务迁移便捷
- 克隆虚拟机快捷
2.2、虚拟化商业模式分类
单机虚拟化(如vm workstation)缺点:物理机故障,全部虚拟机就宕机
企业级虚拟化(集群虚拟化)主流技术:
- vmware vsphere(收费高)
- Hyper-v(微软)
- FusionCompute(华为基于开源KVM研发)
2.3、开源虚拟化架构
为了区分内核态和用户态,CPU专门设置四个特权品级0,1,2,3;但其时大牛们写Linux内核的时间比力任性,就直接把内核态写在了ring0,用户态写在了ring3,而ring1和ring2至今无用,假如想要重新把内核态写在ring0,用户态写在ring1,就须要重写操作系统内核。
- ring0:kernel—可以直接跟cpu内存申请硬件资源;
- ring3:application—word、虚拟机等,须要借助管理ring0:kernel申请硬件资源。
2.3.1、虚拟化方式
半虚拟化
起初,CPU不支持虚拟化,所以须要修改操作系统内核来实现虚拟化,且只能安装linux,由于windows不开源,而且半虚拟化时虚拟机知道本身是一台虚拟机(VM)。
厥后,完全虚拟化兴起,就不须要上述的方式来实现虚拟化,但是半虚拟化也有其优势,给IO设备添加半虚拟化驱动来保留半虚拟化的优势,即CPU和内存采用硬件辅助虚拟化,IO采用半虚拟化,
virtio是一种半虚拟化的设备抽象接口规范。与宿主机纯软件模拟I/O设备(完全虚拟化)相比,Virtio可以获得更好的I/O性能。
缺点是必须要求客户机安装特定的Virtio驱动使其知道运行在虚拟化环境中。
详细如下:
正常环境下,vm1和vm2在同一宿主机上且不知道本身是虚拟机,vm1和vm2互访须要通过物理交换机交换数据,假如给vm1和vm2的网卡安装半虚拟化驱动(PV driver),vm1和vm2就知道了本身的脚色是虚拟机,且在同一宿主机上,连接在同一虚拟交换机(OVS在内存中,利用宿主机cpu和内存资源)下,那么二者通信直接将vm1内存中的数据通过ovs交换至vm2的内存中,无需颠末物理交换机,效率更高。所以,vm1和vm2的IO设备(网卡或硬盘等)须要选择virtio类型(虚拟化 IO)来优化资源访问。
访问网络或者硬盘(IO)的时间,为了取得更高的性能,也须要让虚拟机内核加载特别的驱动(PV driver),也是让虚拟机内核从代码层面就重新定位本身的身份,不能像访问物理机一样访问网络或者硬盘,而是用一种特别的方式:我知道我不是物理机内核,我知道我是虚拟机,我没那么高的权限,我很可能和很多虚拟机共享物理资源,所以我要学会列队,我写硬盘其实写的是一个物理机上的文件,那我的写文件的缓存方式是不是可以变一下,我发送网络包,根本就不是发给真正的网络设备,而是给虚拟的设备(ovs),我可不可以直接在内存内里拷贝给他。一旦我知道我不是物理机内核,痛定思痛,只好重新认识本身,反而能找出很多方式来优化我的资源访问。
全虚拟化(过渡阶段,已镌汰)
完全虚拟化详细讲解https://blog.csdn.net/gui951753/article/details/81507924
通过虚拟化软件模拟CPU,内存,磁盘,网络,当VM向内核请求资源的时间,由虚拟化软件来进行的转换,向宿主机内核去申请资源,让VM以为本身是一台真的物理机,但是可以安装windows。
无需修改操作系统内核,linux和windows都可安装;
虚拟机内核通过宿主机安装的虚拟化软件向宿主机内核申请资源,但开销大。
硬件辅助虚拟化(现阶段主流)
使用完全虚拟化效率太低,Intel和AMD 在CPU内部加一个标志位,让VM知道本身是一个 VM,大部分的指令集可以直接运行在CPU之上,19条敏感指令集除外,还须要依靠于虚拟化软件来转换。
新的标志位(Intel:VT-X;AMD: AMD-V)表示当前是在虚拟机状态下,还是真正的物理机内核下,对于虚拟机内核来讲,只要将标志位设为虚拟机状态,则可以直接在CPU上实行大部分的指令,不须要虚拟化软件在中心转述,除非碰到特别敏感的指令,才须要将标志位设为物理机内核态运行。
2.3.2、XEN
支持半虚拟化、全虚拟化、硬件辅助虚拟化
外界请求访问虚拟机到达网卡后,须要在domain0(特权虚拟机)队列里列队运算发往目标虚拟,此外须要给domain0预留资源。
2.3.3、KVM
支持全虚拟化和硬件辅助虚拟化
KVM虚拟化技术的实现依靠于CPU的虚拟化扩展(如Intel VT和AMD-V)。
当宿主机启动时,KVM会加载一个轻量级的内核模块kvm.ko,该模块负责与硬件进行交互,实现虚拟机的创建、管理和调度。
KVM虚拟化技术的主要组件包罗以下几个部分:
- KVM内核模块:负责与硬件进行交互,提供虚拟机的创建、管理和调度功能。
- QEMU模拟器:用于模拟各种硬件设备,如CPU、内存、硬盘等。QEMU通过与KVM内核模块进行通信,实现对虚拟机的控制和管理。
- libvirt库:提供了一个跨平台的API,用于管理虚拟机、存储和网络等资源。libvirt库可以与KVM、Xen、VMware等多种虚拟化技术集成,实现了资源的集中管理和主动化运维。
2.3.4、KVM为何击败XEN成为虚拟化的主流?
- XEN 须要升级内核,维护一套内核,进来的数据包须要颠末domain0 来处理惩罚;
- KVM 更轻量,通过内核模块来实现,一个VM就是一个历程;
- XEN 被 citrix收购,支持cloudstack;
- KVM 被红帽收购,支持openstack;
- Openstack社区更流行,有更多的厂商支持。
2.4、虚拟化
2.4.1、盘算虚拟化
内存复用
vmems(虚拟内存):假设CNA03为128G内存,原则上CNA03上的虚拟机内存要小于128G;开启内存复用后,128G*150%(默认值)=192G vmems,由于每个虚拟机大概率内存使用率无法到100%(告警机制:当内存使用率达到85%后告警进行扩容)。
- 开启内存复用:提高虚拟机开秘密度
- 关闭内存复用:提高虚拟机性能
vcpus(虚拟cpu):插槽数*核数* 历程数=2颗物理cpu*每颗cpu20核*每核2个线程=80vcpus。
UMA:同等性内存访问
MCH是内存控制中枢,也称为北桥芯片,管理速度快的设备,如CPU、内存;
ICH是输入输出控制中枢,也称为南桥芯片,管理速度慢的设备,如硬盘、网卡;
DDR3:一种盘算机内存规格;
FSB:前端总线,CPU和内存通过FSB交互数据,前端总线频率:如1333MHz(折合成带宽:1333MHzX64bit/8=10667MB/s=10.67GB/s,即内存带宽);
当前,服务器的CPU数和内存巨细都比力高,且由于只有FSB一条大道,所以FSB的频率成为了制约瓶颈,由于CPU和内存必须通过FSB交互数据。
当应用步伐运行数据时,首先看cpu一级缓存有无数据,依次二级缓存、三级缓存,如都无数据,则从内存获调用数据至cpu运行。
NUMA:非同等性内存访问
分别CPU和内存放在差别的NUMA ZONE(01、02、03....)里,如图上左侧cpu0和内存在 zone01里,右侧cpu1和内存在zone02里;
假如zone01里的资源不敷支持某台虚拟机的需求,就会通过QPI(快速互联通道)借用其他zone里的资源满意需求,与FSB单条通道差别,QPI是丼字型道路。
宿主机创建集群时开启NUMA架构主动调整功能后,新开的虚拟机会主动感知NUMA架构,会尽可能把虚拟机放在一个numa zone里,假如资源不敷,就会通过QPI去其他numa zone里获取资源。
注:NUMA与内存复用为互斥关系!
创建集群
1.主机内存复用
(1)开启可以提高虚拟机开秘密度,默认150%
(2) 关闭提高虚拟机的性能
2.虚拟机启动策略
(1) 负载平衡:开机时,可以让虚拟机平衡的运行在集群的主机上
(2)主动分配:减少VRM的盘算压力
3.虚拟机NUM结构主动调整
(1)虚拟机运行时主动感知NUMA架构,让虚拟机只管运行在一个NUMA Node中
(2)与内存复用功能互斥,也会带来更多开销
4.开启故障与相应策略
(1) 主机故障处理惩罚策略
(2)数据存储故障处理惩罚策略
不处理惩罚:假如间歇性故障,不处理惩罚更符合;
HA:假如出现故障,HA更符合;
Windows虚拟机蓝屏处理惩罚策略:利用虚拟机tools功能来充当心跳机制,检测虚拟机的状态,一旦检测不到tools心跳,就认为虚拟机蓝屏,通过宿主机将虚拟机强制重启。
5.接入控制策略
答应故障的数目:在规划时,须要预留30%左右资源,以防止集群中有主机故障,包管所有的虚拟机都能正常运行
6.群体性故障
在2个小时内假如出现多个主机故障,只处理惩罚前2个故障的主机。
7.启用盘算资源调度
根据CPU和内存的使用环境,在集群中进行虚拟机迁移,来达到平衡的目标。
8.启用电源管理
根据集群的负载环境,假如负载低,就把所有的虚拟机迁移到一部分主机上,把剩余的主构造机,来降低功耗,当业务负载高,则主动开机,将虚拟机迁移到新开机的主机,来达到平衡。
9.开启IMC机制
就是开启Intel兼容性,使得差别批次的服务器在同一个集群中正常工作,降低高配服务器的性能
为什么要创建多个集群?
1.服务器硬件设置
2.根据部门来管理
3.根据业务 web+ mysqlmail + OA + ERP
4.根据集群规则
2.4.2、存储虚拟化
AB双控:两个控制器互为备份,每一个控制器管理一部分存储池,当主控制器出现故障时,备用控制器接受主控的工作,互为灾备、负载平衡
SAN:存储区域网络
存储区域网络(SAN:Storage Area Network):用户主机到存储的连接
ISCSI 是由IEETF开辟的网络存储标准,目标是为了用IP协议将存储设备连接在一起,通过在IP网上传送SCSI下令和数据,ISCSI推动了数据在网际之间的传递,同时也促进了数据的远距离管理。由于其出色的数据传输能力,ISCSI协议被认为是促进存储区域网(SAN)市场快速发展的关键因素之一。
- IP-SAN:IP网络连接(也叫ISCSI,将SCSI协议封装在IP网络中传输,远距离,异地灾备)
- FC-SAN:光纤网络连接(SCSI协议封装在FC的网络传输 FC-SAN,100KM 同城)
RAID:廉价的冗余磁盘阵列
为什么须要RAID?
首先,CPU、memory(内存)发展灵敏,读写性能高,但是IO设备会成为瓶颈,写入磁盘时,磁盘处理惩罚速度跟不上。
其次,盘算机最紧张的设备就是磁盘,CPU、memory(内存)坏 了可以更换,磁盘坏了可能导致数据丢失。RAID可以或许提高性能(读写)和冗余。
RAID0—没有丧失,磁盘利用率:100%
条带化磁盘阵列(一样平常两块及以上)
三个1TB物理磁盘RAID0构成一个虚拟磁盘3TB,没有容量损耗。一个500M数据写入磁盘时,假设按照64K分片,切成了N份,会将分片依次写入到三个磁盘中,读写性能得到提高。但是,安全性不足,每块磁盘故障都会导致数据丢失。
RAID1—丧失50%,磁盘利用率:50%
镜像,2*N块磁盘构成
提供冗余,性能无提升(读性能不变,写性能降低)
两个1TB物理磁盘RAID1构成一个虚拟磁盘1TB,假设存储100M数据,这100M会分别在两块盘各存储100M。
只能办理硬件故障,不能办理软件故障(即:若1盘数据被删除,2盘同步被删除),办理该问题须要做数据备份。
RAID3—丧失1块,磁盘利用率:(n-1)/n
带奇偶校验的条带化(至少三块及以上)
提供性能和冗余(重构:校验反推),只答应坏一块盘,可用空间(N-1),单独的磁盘写校验码
RAID算法:
- 复制(RAID1)
- 异或(RAID3),相同为0,相异为真1
三个1TB物理磁盘RAID3构成一个虚拟磁盘2TB(N个磁盘-1个校验盘),但是,校验盘会成为性能瓶颈。
RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)
如下图:P1为数据1、2的奇偶校验信息;P2为数据3、4的奇偶校验信息;
RAID5—丧失1块,磁盘利用率:(n-1)/n
目前用的最多的一种方式。 由于 RAID5 是一种将 存储性能、数据安全、存储资本 兼顾的一种方案。
分布式奇偶校验的条带化
只答应坏一块盘,可用空间(N-1)
RAID5模式中,不再须要用单独的磁盘写校验码了,它把校验码信息分布到各个磁盘上。
例如,统共有N块磁盘,那么会将要写入的数据分成M份,并发的写入到M块磁盘中,同时还将数据的校验码信息也写入到这M块磁盘外的磁盘中(数据与对应的校验码信息必须得分开存储在差别的磁盘上)。
RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)
一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
如下图:P1为数据1、2的奇偶校验信息;P2为数据3、4的奇偶校验信息;
RAID6—丧失两块,磁盘利用率:(n-2)/n
两个奇偶校验的条带化
最多随机损坏两块校验盘
RAID6在RAID5的底子上再次改进,引入了双重校验(奇偶校验)的概念,但是由于奇偶校验写性能比RAID5更差,但是更安全,读性能和RAID5同等。
RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有针对每个数据块的XOR校验区,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。
RAID10
至少4块盘,同时必须是2*N, 最多可以损坏N/2块
先RAID1,后RAID0。
以4块1TB硬盘为例比力常用的RAID5和RAID10
RAID5:P1校验管数据D1、D2;P2校验管数据D3、D4;
当D1的数据被修改后,须要读取D1、D2、P1的数据重新进行校验写入(写惩罚),开销较大,雷同银行交易数据库就不适用RAID5。
而RAID10修改数据不须要校验,开销较小。
RAID50
至少6块盘
可用空间4TB
RAID 卡是否支持直通模式区别
由于所有的硬盘都是接到RAID 卡上的,OS(操作系统)读到的是虚拟磁盘,假如RAID 卡支持直通模式,则 OS 可以直接读到裸硬盘,假如不支持,则必须创建RAID,才可以被 OS 读取到。
假如RAID卡不支持直通,那么单盘想被读到须要RAID0。
LUN:逻辑单元号
LUN:Logical Unit Number,假设有两个业务web和数据库须要使用共享存储内的空间,通太过别LUN1:10TB和LUN2:8TB,将空间分别映射给web和数据库,LUN1和LUN2相互独立。
RAID完的共享存储相当于一块大硬盘,而LUN就相当于分区;
LUN组与主机组映射,有了新的lun和主机直接参加组即可,无需单独映射(雷同公司跟公司之间合作,而不是个人与个人)
CNA01是在存储上随便定名的主机名称,将CNA01参加主机组,然后LUN组与主机组映射后,如何实现CNA01逻辑主机与物理主构造联呢?
FC-SAN下,物理机上的光纤卡上会有WWNN和WWPN,当主机和存储通过光纤连接好后,共享存储会识别WWPN,将CNA01与WWPN关联,即完CNA01主机和物理主机的关联。
WWNN: World Wide Node Name全球唯一节点名
WWPN: World Wide Port Name全球唯一端口名 16进制数字
注:
- 一台主机可以连接多台存储,而且还可以有多个LUN;
- 一个LUN可以映射给多台主机(共享存储前提),在线迁移虚拟机;
- 一个LUN只能映射给集群的多台主机,不要映射给非集群的多台主机,否则会导致脑裂。
文件系统
block size:块巨细/簇巨细—文件系统最小存储单元。
精简模式:
创建完,不进行初始化,没有填0,使用时,写多少数据,就填写多少个0;
会随着数据的增长而主动扩展,不会随着数据的减小而主动缩小;
优点:按需分配,不占用未使用空间;
缺点:性能差等到全部填完0后,与普通模式性能一样;
按需分配,给主机分了100G,但可能使用了30G,剩余的70G并没有被实际使用。
普通模式:
创建完磁盘后,不管是否写入数据,全部用0添补;
优点:性能好;
缺点:创建速度慢。
普通延迟置零:
创建完磁盘后,不用0添补,待第一次写入数据时,则全部用0添补;
优点:创建时不占用磁盘性能,待使用时性能好。
差分盘技术
独立-非长期
根本磁盘(母盘)里的数据(1-6)固定不变,天生一个差分盘,用户读取的是差分盘,差分盘的1-6数据通过指针指向母盘,新天生的数据7、8、9写在差分盘,关机后差分盘删掉(雷同网吧下机后)。
独立-长期
根本磁盘(母盘)里的数据(1-6)固定不变,天生一个差分盘,用户读取的是差分盘,差分盘的1-6数据通过指针指向母盘,新天生的数据7、8、9写在差分盘,关机后差分盘不删掉。
绑定某个磁盘时,选择磁盘模式分为以下三种:
- 从属(快照可以保存数据)
- 独立-长期(快照无法保存数据)
- 独立-非长期(快照无法保存数据)
注:快照不是数据备份,而是基于索引,且只照相母盘!
2.4.3、网络虚拟化
光线交换机:全光口
1、根据端口来分别zone(分区,雷同vlan)进行隔离
2、根据WWPN分别zone
CNA物理机连接光纤交换机1口,存储A控连接光纤交换机2口,在光纤交换机上可以看到CNA和存储各自光纤卡上的WWPN。
为什么须要网络虚拟化?
正常来说,假设一台物理机只有一块网卡,而一台物理机上有多个虚拟机,每台虚拟机有两块网卡,当数据包访服务器物理网卡时丢给哪台虚拟机?以及数据包如何做隔离?
3、单机虚拟化的网络连接模式
(1)桥接模式
虚拟机都桥到各自的虚拟交换机上叫桥接模式。
- 虚拟机之间互访;
- 主机与虚拟机之间互访;
- 虚拟机可以通过主机访问外网;
- 外网可以访问虚拟机。
vm1和vm2通过虚拟交换机互访(假设vm1和vm2同子网,假如差别子网须要通过物理交换机),vm1和vm3通过虚拟交换机,再到物理交换机互访(两个物理机之间互访都是先颠末虚拟交换机再到达物理交换机)。
1.每一块物理网卡就是一个上行链路(下图中虚拟交换机到物理交换机的链路)
2.每个上行链路可以创建一个虚拟交换机
vm1和vm4互访,由于不在同一子网,所以须要通过虚拟交换机—物理交换机—路由实现。
解释阐明:
安装一个VM时主动安装一块虚拟网卡/网络适配器,可添加多块虚拟网卡。
虚拟交换机:见图4.1。安装VM时就主动安装了10台虚拟交换机(VMnet0-VMnet9)。
- 虚拟网卡选择连接到VMnet0 (default Bridged)上即为采用虚拟网桥连接模式。
- 虚拟网卡选择连接到VMnet1(Host-only)上即为采用仅主机模式,且会主动安装运行虚拟DHCP服务器并连接至这台虚拟交换机。
- 虚拟网卡选择连接到VMnet8 (NAT)上即为采用NAT模式,且会主动安装运行虚拟DHCP服务器和虚拟NAT服务器,并连接至这台虚拟交换机。
主机虚拟网卡/网络适配器:见下图,相当于一块确实存在的网卡,是连接主机和虚拟交换机用的网卡。
(2)host-only模式(仅主机模式)
- 虚拟机与虚拟机之间互访;
- 主机与虚拟机之间互访;
- 但虚拟机无法访问外网;
- 外网也无法访问虚拟机。
虚拟交换机没有上行链路,所以不能同外界通信
如下图,apache的虚拟机设置两块网卡,一块桥接,一块仅主机,确保数据库安全
(3)NAT模式
- 虚拟机之间互访;
- 主机与虚拟机之间互访;
- 虚拟机可以通过主机访问外网;
- 外网无法访问虚拟机。
(4)自定义网络
Fusioncompute:4个网络平面
CNA,最佳8块网卡(8电口或6电口2光口)
一、管理网络平面(心跳、迁移、管理网络)
VRM管理CNA网络
双网卡绑定做主备,比如cna01的两个上行网卡虚拟成一个网卡
- 同一个LUN可以同时映射给多个主机,但必须是集群关系
- 同一个LUN不能同时映射给多个不是集群的主机
二、存储网络平面
CNA连接存储的网络
三、业务网络平面
与管理网络物理隔离、分流,跑生产流量
管理网络和存储网络ip设置在端口上,业务网络ip设置在虚拟机上
四、VIMS心跳网络(迁移网络)
不通过管理网络迁移,通过该网络迁移,同时管理网络故障时也可以充当心跳网络。
2.4、华为企业虚拟化(FusionCompute)
华为私有云:HCS
2.4.1、企业虚拟化架构
华为企业虚拟化(FusionCompute)架构:VRM+CNA
- VRM:Virtual Resource Management 虚拟资源管理(通过web管理界面管理CNA), 在VRM(管理界面)上操作,丢给CNA实行,别的,vrm会感知CNA的状态(50ms一个心跳,所以vrm和cna要在同一子网内),监测CNA上资源的使用环境,保持整个集群的平衡。(CNA没有web界面)
- CNA:Compute Node Agent盘算节点代理(相比于完备版linux系统3.7G,定制化linux系统文件约700M,安装在服务器上;CNA 定制化linux系统包含两部分:linux系统+KVM虚拟化,等同于PC的windows搭载VMware workstation,linux系统安装在CNA自带的硬盘中,而虚拟机安装在共享存储挂载给CNA的硬盘)
- CNA为虚拟机提供盘算资源:cpu和内存,而虚拟机安装在共享存储中,产生的数据也在存储于下方的共享存储中,所以当虚拟机1挂了之后,虚拟机2基于共享存储中的数据可以或许很快接受业务,迁移同理
如下图:当某台服务器宕机时,集群(华为基于zookeeper)内其他服务器可随时承接
注:1.Orcale数据库不能虚拟化摆设,一样平常跑在裸金属服务器上;
2.虚拟化层只提供技术架构,不提供其他云上服务
VRM摆设方式
- 物理机摆设(一个VRM占用一台物理机,资源浪费)
- 虚拟化摆设(保举;假如管理的CNA大于50台,使用物理机摆设)
CNA必为物理摆设,由于要在CNA内里安装虚拟机
VRM假如采用虚拟化摆设,则先安装两台CNA,再用华为摆设工具在CNA的两台虚拟机中摆设VRM。
一样平常是2个VRM集群冗余+N个CNA+1个共享存储
vrm做主备冗余,每个vrm都须要设置一个ip地点,为了使得用户无感知故障,所以须要给用户提供一个vip(虚拟ip或浮动ip)。
vrm主备,两个vrm之间会连接一个心跳线,当心跳线停止(脑裂征象),主备vrm都认为对方挂掉,主备端都会ping仲裁ip(一样平常设置为网关),ping通证明主备端是好的,按照投票机制,谁先ping通仲裁ip,谁就得到了仲裁ip的票,2>1,成为主设备。
一样平常环境下,VRM1和VRM2须要占用两台物理机,造成资源浪费;所以,可以把VRM1和VRM2运行在由两台差别CNA承载的虚拟机中,再管理CNA。
发起:
- 当CNA数目少于50台,发起VRM虚拟化摆设,两台VRM虚拟机,摆设在两台差别的CNA中;
- 超过50台,发起物理摆设。
2.4.2、远程管理服务器
- intel IPMI标准(开源),所有厂家服务器都基于该标准,所以云盘算可以或许管理兼容各厂家服务器
- 软件--->发指令--->远程开机/关机/重启
- 华为服务器的远程管理卡(BMC):内嵌微型操作系统,出厂时就设置了默认ip和账号密码
- 服务器通用的网卡是没有内嵌操作系统,是在服务器上安装操作系统后驱动网卡
集群
由两台或以上的主机为了一个共同的商业目标,分类如下:
1)HA(高可用)集群
前提:硬件架构相同(Intel和amd指令集差别,无法热迁移)
2)负载平衡集群
用户访问的为vip地点,而不是详细某个服务器的ip地点,访问vip时,负载平衡器有10种调度算法(比如轮询:来了访问请求后按顺序向下依次分配;最少连接数:哪个服务器的连接数少给谁;加权最少连接等),负载平衡器会对服务器定时康健检查,不康健就不分配访问请求。
3)HPC高性能集群
将盘算工作切片成n个小部分,每台服务器负责盘算一小块。
vm1和vm2通信在主机内存中交换数据,交换速率高(前提是把虚拟机的磁盘io和网卡io设置成虚拟io设备,告知虚拟机你就是一台虚拟机,否则vm1和vm2以为本身是物理机,通过物理网络通信)
vm1和vm3通信须要通过物理网络交换数据
三、云盘算期间
通过“硬件资源池化+软件全分布式+运行全主动化”,构建统一的IT Infra资源池,实现资源共享,弹性伸缩;通过云管理平台实现盘算、存储、网络资源主动化发放,全面提升运营效率;
云盘算既提供技术架构,又提供云上服务
由下向上:底层linux(开源操作系统)->中心kvm(开源虚拟化)->上层openstack(开源云操作系统)
云底座:linux+kvm+openstack,其他厂商在此底子上做二次开辟
早期的虚拟化为XEN和KVM,厥后kvm一统天下,同理早期的云操作系统为cloudstack和openstack,厥后openstack一统天下,如今的国内云绝大部分都是基于openstack做二次开辟,阿里云例外,做电商的亚马逊和阿里在双11节日的时间会出现高并发,对弹性扩容要求高,因此做云比力早,AWS在2006年搞云,阿里2008年搞云,openstack2010年才出来,所以阿里云研发云的时间还没有openstack,所以阿里是基于本身的架构研发的。
OpenStack是什么?
OpenStack是开源云操作系统,可控制整个数据中心的大型盘算,存储和网络资源池。用户可以或许通过Web界面、下令行或API接口设置资源。
3.1、OpenStack和虚拟化的区别
OpenStack的架构定位与技术范畴:
- OpenStack只是系统的控制面。
- OpenStack不包罗系统的数据面组件,如盘算、存储和网络设备等。
OpenStack不是虚拟化,OpenStack和虚拟化有着关键的区别:
- 自身不提供虚拟化技术
- 调用多种技术实现多资源池管理
- 对外提供统一管理接口
2)虚拟化
- 环境隔离,资源复用
- 降低隔离损耗,提升运行效率
- 提供高级虚拟化特性
厂家商业版本的云盘算平台在开源openstack底子上做了什么呢?
- 摆设工具
- 开辟各类驱动和接口
- 提供各种高可用,容灾等办理方案
- 提供强盛的告警,日志,监控功能
- 管理和升级工具
- 开辟更多的云服务
laaS 底子架构即服务(kvm、openstack)
PaaS 平台即服务(容器)
SaaS 软件即服务
3.2、OpenStack九大组件
1、horizon(地平线)
提供基于Web的控制界面,使云管理员和用户可以或许管理各种OpenStack资源和服务。
2、nova:提供openstack的盘算资源
提供大规模、可扩展、按需自助服务的盘算资源。
支持管理裸机,虚拟机和容器。
- nova-controller:提供各种api接口
- nova-compute:提供盘算资源(kvm、fusioncompute、xen等)
用户的请求丢到了控制节点分析需求,再丢给nova-compute分配盘算资源
注:华为云控制节点(zookeeper:集群,防止脑裂)至少三节点
3、glance:提供镜像服务
存储和接收磁盘镜像(比如虚拟机模板)
4、swift(对象存储)
雷同百度网盘
底层提供了文件系统,不须要格式化操作,直接使用存储数据
分布式存储
独立组件,不能挂载给云主机使用,其他服务(比如人工智能服务)可以调用api接口读取对象存储内的数据提供服务
5、cinder(块存储)
提供块存储服务,为虚拟机实例提供长期化存储。
调用差别存储接口驱动,将存储设备转化成块存储池,用户无需相识存储实际摆设的位
置或设备类型。
硬盘,裸设备,通过挂载到主机后进行格式化分区之后才气存储数据
通过主机存储数据
6、neutron
提供网络服务和SDN架构
SDN三种摆设方式
- type1:软SDN(用一台服务器安装软件来实现路由交换功能)
- type2:硬SDN(买一台SDN控制器设备)
- type3:融合架构
7、heat(编排服务)
资源编排,一键式按照模板摆设
8、ceilometer(计量服务)
计费功能:统计租户用了多少资源
监控和告警
9、keystone(身份认证)
四、容器期间(集装箱)
传统方式下在一台物理机里跑很多业务,业务无法隔离,不敷安全,因此有了虚拟化,通过虚拟出多个云主机,每台云主机跑各自的业务进行隔离,但是云每台主机为了跑业务都须要单独安装的操作系统,这些为了包管虚拟机正常运行的操作系统等也占用了cpu、内存、硬盘等资源(比如一台虚拟机须要2核2G资源运行,一台服务器虚拟出20台虚拟机,为了运行这20台虚拟机就斲丧了40核40G的资源),租户用服务器是为了跑业务,不是跑云主机,跑云主机的目标是为了资源隔离,假如有一种技术直接在物理机上既能隔离(namespace,定名空间)又能直接跑业务,那么就节省了更多的资源,容器应运而生,相较于云主机,容器更加轻量化。
容器在物理机上运行是基于共享宿主机操作系统,自身不须要安装操作系统,当容器开启时,只须要启用用户态环境,不须要启用内核态环境(加载内核、驱动、文件系统等),所以启动速度快,节省资源。
容器可以在物理机上跑,也可以在虚拟机(利用弹性伸缩、快速摆设、热迁移特性)里跑。
容器不受操作系统和硬件的限定,测试环境和生产环境同等
搭建私有云,云的底层控制组件运行在容器中,在云中安装虚拟机,在虚拟机中安装了容器。
虚拟机从vmware迁移到华为fusioncompute中,须要使用专门的迁移工具
容器迁移是将容器打包成压缩包解压到新环境中运行(打包的数据为用户态,无内核态,所以无太多的兼容性问题)
容器就是将软件打包成标准化单元,以用于开辟、交付和摆设:
- 容器是一种轻量级、可移植、自包含的软件打包技术,使应用步伐可以在几乎任何地方以相同的方式运行
- 开辟人员在本身的电脑上创建并测试好的容器,无需任何修改就可以或许在生产系统的虚拟机、物理服务器及公有云上运行
- 容器赋予了软件独立性,使其免受外在环境差异(例如,开辟和测试及预发布环境的差异)的影响,从而有助于减少团队间在相同底子办法上运行差别软件时的冲突
容器鼻祖:Docker,基于容器技术的轻量级虚拟化办理方案
Podman
Containerd—华为容器技术
Docker公司开辟了一款容器调度软件Docker compose,意在一统容器天下,厥后,谷歌开辟了K8s容器调度软件(不提供容器资源,只是调度,雷同openstack,底层既支持docker又支持其他厂家)。
K8s可以或许实现容器副本机制(默认三副本:底层三台物理宿主机,容器跑在三台服务器上)。
- namespace,资源隔离
- cgroup,资源限定
如下图,左侧为容器,右侧为虚拟机
五、云原生和微服务期间
云原生:从云里长出来的。
如今的软件开辟是开辟人员在本身电脑里开辟完之后迁移到云上,而云原生是从代码开辟都是在云上开始的,更适合在云上运行的应用。
微服务:庞大的服务由一块一块模块拼起来,管理维护更方便。
AWS
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |