1品高云操作系统产品方案本项目采用的云操作系统BingoCloudOS产品实现对云资源管理和云业务管理,实现异构虚拟化支持和统一的云业务管理门户。1.1功能架构图BingoCloud功能架构图如下所示,从底向上分别包括云控制器&虚拟化层、各类云服务&接口、云管控中心(运维管理功能)和自助服务界面。品高云操作系统整体包括以下模块,分别是:(1)数据中心硬件充分利用品高云操作系统内部的高性能计算资源、最大限度地避免重复建设与资源浪费,品高云操作系统需要对数据中心的服务器、存储设备、网络设备进行统一调度管理,以实现资源的优化配置、充分共享。(2)资源池系统利用品高云操作系统的虚拟化技术,将底层IT基础硬件设备进行虚拟化处理,借助品高云操作系统控制器对虚拟资源进行统一纳管,屏蔽底层各类硬件环境的复杂性,构建统一的虚拟化云资源池,为上层的业务管理系统和公共服务平台的运行、HPC高性能计算提供必须的计算、存储和网络资源。(3)自助化云服务系统在虚拟化层基础上,品高云操作系统对虚拟资源进行能力封装,提供了多项自动化的云服务,包括基础能力(虚拟机、存储卷、网络资源等)、应用支撑能力(应用自动化部署、数据库服务、负载均衡服务等)、辅助能力(HPC、大数据处理、3D渲染等)等,品高云操作系统用户可以通过这些服务满足各种场景下的IT需求。该层是整个品高云操作系统的核心部分,直接决定着云数据中心的能力大小。(4)自助服务平台品高云操作系统为业务部门各用户提供了自助服务门户。品高云操作系统管理员只需要为每个用户分配一定的资源配额(例如10VCPU、20G内存、200G存储空间等),用户就可以自助登录到品高云操作系统界面,使用品高云操作系统提供的各项功能进行应用部署、HPC计算等工作。(5)API品高云操作系统的构建需要遵循标准化的原则,目前界面云计算公认的成熟标准的AWS标准化接口,品高云操作系统平台兼容AWS超过200个API,并且所有的API均对外开放,品高云操作系统用户可以利用这些API进行能力扩展开发。(6)云管控中心云管控中心提供运维管理门户供管理人员通过界面的方式实现对品高云操作系统各类资源进行高效调配、全面监控、日常维护、用户管理,并能够将品高云操作系统资源的使用情况形成报表导出。1.2资源池系统资源池系统是品高云操作系统的核心层相当于云操作系统的底层,其主要负责将硬件资源转化为可编程的逻辑单元,可被上层服务系统灵活调度与使用。资源池中的资源通过云控制器、集群控制器和节点控制自上向下的三层架构进行调度。而针对资源池中具体资源则通过计算、存储和网络三个子系统进行管理和控制。1.2.1三层调度架构品高云操作系统对资源的管理是三层架构,自上而下分别是:云控制器(CloudController)、集群控制器(ClusterController)、节点控制器(NodeController)组成。其中云控制器可以管理多个集群控制器、一个集群控制器可以管理多个节点控制器。如下图所示:(资源池系统的三层调度架构示意图)1.2.1.1云控制器(CLC)云控制器负责接收用户请求,并校验请求的合法性。根据请求类型的不同,云控制器自动处理请求,或者将请求按策略调度到合适的集群控制器处理,最后将处理结果返回给用户。云控制器需要一台物理服务器部署,但可以与集群控制器共用一台物理服务器。云控制器可管理的集群控制器数量没有限制。1.2.1.2集群控制器(CC)集群控制器是对云基础计算节点进行资源分群的手段,根据业务需求可以配置成不同业务集群。集群控制器接收到云控制器的请求后,按策略将其调度给合适的节点控制器处理,并由节点控制器通过计算子系统完成计算资源的创建和管理;通过调用网络子系统搭建集群的受控网络环境,包括虚拟子网,网络路由,防火墙策略等;通过对存储子系统的调用,为集群提供数据存储能力。集群控制器需要一台物理服务器部署,但可以与云控制器共用一台物理服务器,多个集群控制器不建议放入一台物理服务器中。一个集群控制器最多可以管理1024个节点控制器。1.2.1.3节点控制器(NC)节点控制器负责处理从集群控制器发出的请求,并控制、管理和监控运行在其上的虚拟服务器的计算环境和存储环境。节点控制器对虚拟服务器的监控是一种非入侵式的监控,它不需要对目标虚拟服务器植入监控程序。另外,有时节点控制器除了承担计算任务之外,其本地硬盘也会通过BingoFS被构建成分布式存储系统。一个节点控制器需要部署在一台物理服务器中,不建议与云控制器、集群控制器共用一台物理服务器。1.2.2三大资源子系统为实现对数据中心内的各类硬件资源的灵活使用,在三层调度架构体系下,分别使用计算计算、存储与网络等三个子系统对硬件/虚拟资源进行具体的管理和控制。(三大资源系统与三层调度架构关系示意图)1.2.2.1计算子系统计算子系统通过对x86物理设备的虚拟封装,实现灵活的服务器资源控制,支持市面常见的服务器虚拟化技术供用户选择,包括:KVM、XEN、ESXi。如果服务器不支持虚拟化技术或低损耗计算要求等原因,品高云操作系统还允许用户选择使用Linux下几乎无损性能的轻虚拟化技术(容器技术)。1.2.2.1.1多种虚拟化技术支持品高云操作系统支持多种虚拟化Hypervisor技术,对于不同的虚拟化Hypervisor,平台提供了统一的bingo-hypervisor接口对虚拟机进行操作。其中使用libvirt实现KVM、Xen虚拟化;使用VMwareESXiAPI接口支持VMware的虚拟化。KVM是开源社区于2007年推出的,完全内置于Linux内核的开源hypervisor。KVM目前支持IntelVT及AMD-V的原生虚拟技术。时至今日IBM、红帽、英特尔等重量级厂商组成开放虚拟化联盟(OVA),致力于提升KVM的认知度与采用率。由于软硬件厂商的共同推进,KVM经常被拥有较大服务器规模的IDC使用,用于自身的品高云操作系统建设,规模经常达到百台以上。XEN2002年XEN正式被开源,由剑桥大学开发。在先后推出了1.0和2.0版本之后,开始被诸如Redhat、Novell和Sun的Linux发行版集成,作为其中的虚拟化解决方案。而XEN最成功的案例来自于美国亚马逊公有云,其推出的EC2服务采用开源XEN作为虚拟机的hypervisor,并拥有数十万级别的服务器规模。ESXiESXi是VMWARE公司在2001年推出的针对服务器的虚拟化平台产品,是著名的虚拟化产品,其推出的vsphere、vcloud套件在企业客户中广为使用。品高云操作系统主要针对封装调度对象是VMWARE底层的虚拟化技术ESXi,并可对接上层vcenter管理平台。1.2.2.1.2Linux容器技术支持(LXC)LinuxContainer容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于:与宿主机使用同一个内核,性能损耗小;不需要指令级模拟;不需要即时(Just-in-time)编译;容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制;避免了准虚拟化和系统调用替换中的复杂性;轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。当服务器不支持虚拟化,或者对性能有更高要求时,考虑使用Linux容器技术。但它只支持常见的Linux服务器。(容器技术与常见虚拟化技术架构比较)1.2.2.1.3灵活的调度策略如何在众多物理服务器中选出最符合业务需要的来创建虚拟机,一直以来是衡量品高云操作系统调度能力的重点能力。所谓业务需要就是在实际场景中品高云操作系统中运行的应用系统特性,如生产环境、测试环境、网络I/O密集型环境等等。计算子系统则原生提供了8个自动化的“资源调度策略”供管理员选择。“资源调度策略”可以分别针对不同的集群控制器管理的集群、同时也允许进一步针对不同的计算节点设置个性化策略。品高云操作系统原生提供的全局资源调度策略包括:轮循(roundrobin):平均、轮流地使用集群下的节点资源(默认使用的规则)。贪婪(resource-max-first):自动使用所有服务器中资源占用最低的创建计算资源(一般用于生产环境)。节约(resource-min-first):优先使用资源利用率高的节点资源,待其耗尽后再使用其他节点资源(一般用于测试环境)。利旧(old-first):优先使用先加入集群的节点资源(一般用于测试环境)。利新(new-first):优先使用后加入集群的节点资源(一般用于生产环境)。能耗大优先(power-max-first):优先使用能耗大的节点资源(此策略需要主板支持IntelNodeManager技术;主要用于渲染集群)。能耗小优先(power-min-first):优先使用能耗小的节点资源(此策略需要主板支持IntelNodeManager技术;主要用于渲染集群)。网络空闲优先(net-io-low-first):优先使用网络流量小的节点资源(主要用于网络密集型应用的集群)。针对集群内的虚拟机关机的资源使用情况,品高云操作系统还提供“紧缩模式”的设置,在设置了紧缩模式后,虚拟机关机后将自动释放占用的CPU、内存资源,节省品高云操作系统资源。但带来的副作用是如果其他虚拟机启动后将物理机资源沾满,则关闭的虚拟机可能无法开机,直到有资源被释放出来。(默认不启用)另外一个设置是针对节电功能,当启用了“节电模式”后,只要物理机中不在运行虚拟机,或其中的虚拟机全部处于关闭状态,则物理服务器自动进入休眠状态,直到虚拟机被开机或有调度任务需要在其中创建新虚拟机时会被自动唤醒。(默认不启用)针对单一的云节点,品高云操作系统还提供了高级个性化配置,可以通过“表达式”语法来设置个性云节点的特殊设置,可设置的参数包括:ImageType(镜像类型,取值为vm|vmware|container)Platform(平台,取值为windows|linux)Architecture(架构,取值为x86_64|i386)Vmtype(规模,取值是品高云操作系统中设定的实例规模名称----虚拟机的虚拟硬件配置模板)UserId(用户,品高云操作系统平台中的用户账号名)ImageId(镜像,品高云操作系统中虚拟机模板的编号)示例语法:ImageId==ami-11111111orelseImageId==ami-22222222(指定节点只能运行某些镜像);UserId=/=bingo(指定节点不允许某用户再使用)1.2.2.2存储子系统存储子系统通过对分布式存储系统、SAN设备、服务器本地硬盘的逻辑化封装,实现灵活的数据存储能力。1.2.2.2.1分布式云存储提供品高云操作系统内置提供BingoFS分布式存储系统,它通过将x86服务器的本地硬盘集合起来协同工作,并通过通用数据接口(如posix、CIFS、S3等),向用户提供海量数据存储、管理和访问服务。既可以用于承载虚拟机的运行文件、虚拟磁盘、模板以及相关备份等工作,也可以直接为运行在物理机中的软件系统提供网络存储服务。BingoFS系统包括元数据服务器(支持主备)以及若干台分布式存储节点构成,元数据服务器用于数据索引,用户向BingoFS发起的数据请求由元数据负责指向实际的存储位置,为避免单点瓶颈元数据服务器除了支持主备模式之外,索引数据也一般保存在内存中可以快速响应客户的数据读写需求;存储节点服务器用于保存实际数据,理论上存储节点越多整体容量越大,且读写带宽越大,再加之切片冗余的架构数据的可靠性也会更高。(分布式存储系统示意图)切片冗余架构、数据高可用当用户数据需要写入分布式存储中时,会采取切片技术将大文件切分成若干份,每份数据块为64MB,如果文件低于64M则按实际大小保存,这些数据块会被分别保存在不同