技术总结报告_第1页
技术总结报告_第2页
技术总结报告_第3页
技术总结报告_第4页
技术总结报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

经典word整理文档,仅参考,双击此处可删除页眉页脚。本资料属于网络整理,如有侵权,请联系删除,谢谢!技术总结报告编号:版本:第一版语言:中文完成日期:变更记录填表说明:1.日期:2012-9-242.版本:0.13.变更说明:无4.:张志楠2目录556666789)功能描述)功能描述)功能描述341.openstackopenstack镜像服务及网络服务,并添加了监控服务,自启动,动态迁移,高可用迁移,负载均衡,存储容灾等功能,在当前版本中这些模块通过统一的认证系统进行协同工作。52.云操作系统(OpenStackIdentity(KeystoneOpenStack服务提供了认证和管理用户、帐号和角色信息服务。Keystone体系结构主要有两个部件:验证和服务目录验证:提供了一个基于令牌(token)的验证服务。服务目录:Keystone为OpenStack安装提供了一个RESTAPI端点列表并以此作为决策参考。验证服务验证接口服务Keystone-adminKeystone-serviceKeystone:运行Keystone-admin和Keystone-serviceKeystone-admin:操作Keystone的管理APIKeystone-service:用于验证的,面向用户的APIKeystone-manage:管理Keystone的命令行接口需求。OpenStack里有对象存储和块存储的支持,许多部署选项为每个使用情况而定。对象存储提供了一个完全分布式的,API访问的存储平台,可以直接集成到应用程序或6存储平台。Swift节点(Proxynode)运行Swift代理服务进程并提供对后台存储节点的访问。计算服务(Nova是云计算开源软件OpenStack的虚拟机控制和服务的部分;针对于云计算服务的IPIPIP7novanova-apinova-network管理虚拟网路(新版本会由quantumnova-volum提供卷组服务,nova-schedule提供调度管理,里面包含已提供的几种调度算queue为消息队列,组件间的交互都是基于amqp协议,通过消息队列转发;nova-compute,nova的核心组件,控制虚拟机生命周期、虚拟机网络、卷组等。。镜像服务(GlanceOpenStack中镜像服务是为你的OpenStack拟机服务器操作系统的模板。8从上图中可以看出,镜像服务(Glance)主要包括两个方面的服务,其中一个是镜像注Glance镜像的元数据信息存放至镜像服务(Glance)所属的数据库中;另外一个是镜像接口服务,他提供对镜像服务的管理接口来达到对云虚拟机镜像的管理操作功能。网络服务(Quantum它能提供openstack的networkOpenStack提供虚拟网络管理的项目服务,他主要包括两个插件Openvswitch和Cisco。UCSNexus●Openvswitch——使用OpenvSwitch实现QuantumAPI。●Cisco——为思科UCS刀片和Nexus交换机实现QuantumAPI。9计算节点服务器虚拟交换机虚拟交换机虚拟交换机Quantum+Network控制节点服务器Quantum+network的网络结构和控制节点是弱关联的,就算控制节点服务器停机了,quantum+network还是可以为用户提供网络服务。虚拟化管理程序(KVM是Linux内核的一个模块,基于硬件虚拟化技术实现VMM的功能。该模块的工作主要是通过操作与处理器共享的数据结构来实现指令集以及MMU的虚拟化,捕捉客户机的IO指令(包括PortIO和mmapIO)以及实现中断虚拟化。至于IO设备的软件模拟,是通过用户程序QEMU来实现的。QEMU负责解释IO指令流,并将其请求换成系统调用或者库函数传给主机操作系统,让主机上的驱动去完成真正IO操作。它们之间的关系如下图所示:10vHDvNICNICHDD从主机操作系统的角度来看,KVM的命令如kill、top、taskset等可以作用于该客户机。该进程的用户虚拟空间就是客户机的物理空间,该进程的线程对应着客户机的处理器。从Qemu的角度来看,KVM模块抽象出了三个对象,她们分别代表KVM自己,客户机的虚拟空间以(VM)及运行虚拟处理器(VCPU)。这三个对象分别对应着三个文件描述符,Qemu通过文件描述符用系统调用IOCTL来操作这三个对象,同KVM交互。此时,Qemu主要只模拟设备,它以前的CPU和MMU的模拟逻辑都被kvm.ko取代了。如上介绍,KVM是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。全虚拟化,可以处理在客户机中不加修改的驱动请求。通常这将消耗大量的处理器cycleKVMvirtio速的读写驱动。这时的kvm可以类似的看做半虚拟化。设备模拟后架构如下图所示:11Virtio提经过优化后的kvm有很大的提升。虚拟化工具(libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,为主流虚拟化工具提供编程接口。支持C、C++、Java、Ruby、Python等开发语言。Openstack管理虚拟机都是通过调用libivrt提供的虚拟化管理接口实现的。使用模型如下:从图中可以看出这是在xen虚拟化中的使用模型(因为有Domain0),libivrt在openstack中的使用模型与此类似。12Libvirt支持的虚拟机类型:KVM/QEMULinuxhypervisorXenhypervisorLXCOpenVZUserModeLinuxparavirtualizedkernelVirtualBoxhypervisorVMwareESXandGSXhypervisorsVMwareWorkstationandPlayerhypervisorsMicrosoftHyper-Vhypervisor除此之外,libvirt还支持网络管理和存储管理。虚拟化管理程序(QEMULGPL模式和系统模式。Openstack支持qemu类型的虚拟机,qemu类型的虚拟机没有对硬件的限制。Openstack中qemu为kvm模块提供模拟设备,kvm通过virtio提供的驱动与qemu模拟出的设备交互,如下图所示:QemuIrqfdfd_vmioeventfdPIOkvm.koEventfdcore主机内核13Openstack还利用qemu提供的命令行管理虚拟机存储块设备,包括创建、快照、恢复qemuqemu模拟的虚拟机。虚拟机驱动程序(VirtioLinux虚拟机平台上统一的虚拟IO接口驱动,VirtIO为客户机和Qemu提供了高速的IO通道,目前云平台中虚拟机的设备驱动都是使用virtio,提高了kvm虚拟机网络和磁盘读写的性能。客户机的磁盘和网络都是通过VirtIOmmap到Qemu的进程空间中,VirtIO以共享内存的数据传输方式以及半虚拟化(para-virtualized)接口为Guest提供了高效的硬盘以及网络IO性能。其中,KVM为VirtIO设备与客户机的VirtIO驱动提供消息通知机制,如下图所示:客户机VirtIO驱动通过访问port空间向Qemu的VirtIO设备发送IO发起消息。而设备通过读写irqfd或者IOCTLfd_vm通知客户机驱动IO完成情况。irqfd和ioeventfd是KVM为用户程序基于内核eventfdIO处理(这样发起IO请求的vcpu)。之所以使用PIO而不是MMIO,是因为KVM处理PIO的速度快于MMIO。14虚拟机可能由于物理服务器内存不足或运行程序错误等原因导致异常关机,虚拟机对外据库依然保存着active关机的,系统每隔30秒钟尝试重启这台虚拟机,直到虚拟机启动为止。实现了虚拟机异常例说明:例如一台物理服务器上运行着10台虚拟机,不能单独对其中的一台虚拟机提供自启动功能,只能同时对所有虚拟机提供自启动功能。通过使用共享存储和对libvirt设置,虚拟机可以在物理服务器间移动,并且移动过程对或机房改造时,不想停止虚拟机服务,热迁移功能是最好的选择。15在很短的时间内实现虚拟机在物理服务器间动态迁移,迁移过程服务不停止。NFSI/O性能会成为瓶颈,所以还需要更优秀的共享存储方案。高可用迁移(HA与vmware的HA功能类似,提供高性价比的自动化重启。在一个HA集群中,有一个监端的心跳包,就判定这台服务器异常,通过RPC,服务端在其他客户端上重启异常服务器上的说有虚拟机。这个过程涉及到数据库查询、网络配置、防火墙修改、虚拟机信息注册等一系列操作。16HA迁移实现了当硬件或操作系统发生故障,几分钟内,所有故障服务器上的虚拟机,通过一系列算法选择,在其他服务器上自动重启。需要使用共享存储,需要用于生产环境的共享存储方案。负载均衡(为了满足服务的负载能力,在几台服务器上布置相同的服务,这些服务通过共同的地址了负载均衡功能。负载均衡实现有软件和硬件或者软硬件结合的方式,由于硬件负载均衡价格昂贵,所以我们使用软件负载均衡方案。使用开源的Haproxy工具,Haproxy被许多公司应用在了生产环境,性能稳定,功能强大,可以实现IP识别、cookie识别、session识别等功能。17通过在物理服务器安装,将虚拟机中的服务添加到负载策略中,即可以实现虚拟机服务的负载均衡。目前已经实现动态的添加和删除负载策略。Haproxy提供几种负载策略模式,但是目前使用到的只是其中一种。包过滤系统(iptables是与最新的2.6.x版本Linux内核集成的IP提高网络的保密性和私有性,记录网络的使用状态,为安全规划和网络维护提供依据18虚拟交换机(OpenvSwitch是一个由NiciraNetworks主导的开源项目,通过运行在虚拟化平台上的虚拟交换机,为本台物理机上的VM提供二层网络接入,跟云中的其它物理交换机一样工作在Layer2层。OpenvSwitch充分考虑了在不同虚拟化平台间的移植性,采用平台无关的CApache2.0用都OK。而它的同类产品VMware的vDS(vSphereDistributedVirtualSwitchCisco的Nexus1000V都是收费的。更重要的是,虽然免费,其产品质量却深得信赖。在2010年OpenvSwitch1.0.0发布之前,Citrix就宣布在XenServer中将其作为默认组件。关于这一点,也许Nicira的身世可以给出一些解释,它的投资人里有DianeGreene(VMware联合AndyRachleff(BenchmarkCapitalVMware网络大牛也加盟其中,是目前硅谷最炙手可热的SDN创业公司之一。191.网络隔离。物理网络管理员早已习惯了把不同的用户组放在不同的VLAN中,例如研发部门、销售OpenvSwitch通过在host上虚拟出一个软件交换机,等于在物理交换机上级联了一台新的交换机,所有VM通过级联交换机接入,让管理员能够像配置物理交换机一样把同一台host上的众多VM分配到不同VLAN中去;2.QoS配置。在共享同一个物理网卡的众多VMVM证核心业务VM的网络性能。通过在OpenvSwitch端口上,给各个VM配置QoS,可以实现物理交换机的trafficqueuing和trafficshaping功能。3.流量监控,Netflow,sFlow。物理交换机通过xxFlowAnalyzer现包括网络监控、应用软件监控、用户监控、网络规划、安全分析、会计和结算、以及网络流量数据库分析和挖掘在内的各项操作。4.数据包分析,PacketMirror。fortroubleshooting,etc可以配置各种span(SPAN,RSPAN,ERSPAN过抓包工具进行分析。20逻辑卷管理(LogicalVolumeManager(逻辑卷管理),简写为LVM。是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。它是一种抽象化存储技术,根据操作系统而有所不同。基本上,它是在驱动程式与操作系统之间增加一个逻辑层,以方便系统管理硬盘分割系统。比如我们有一个硬盘/dev/hda,分了3:hda1,hda2,hda3,后面磁盘空间没有划分,分别对应的挂载点是/boot,/,/home,如果我们的/home空间不够了,怎么办?传统的方法是在未划分的空间中分割一个分区,挂载到/home下,并且把hda3的内容复制到这个新分区,然后在/home下创建链接,链接到这个新挂载21,第一种方法浪费了hda3,并且如果后面的分区容量小于hda3怎么办?第二种方法不大浪费容量,但是每次要额外创建链接,比较麻烦.那么,如果用lvm呢?lvm的好处在于,可以动态放大一个逻辑卷(相当于一个逻辑分区),也就是说,hda3如果是一个逻辑分区,比如/dev/rootvg/lv3,那么lv3可以被动态放大.这样就解决了动态容量调整的,前提是系统已设定好lvm支持,并且需要动态缩放的挂载点对应的设备是逻辑卷。网络存储标准(iSCSI又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:把原来只用于本机的SCSI协同透过TCP/IP网络传送,使连接距离可作无限的地域延伸;连接的服务器数量无限(原来的SCSI-3的上限是15由于是服务器架构,因此也可以实现在线扩容以至动态部署。存储整合公司希望将不同的存储资源从分散在网络上的服务器移动到统一的位置(常这可以让存储的分配变得更为有效。SAN环境中的服务器无需任何更改硬件或电缆连接就可以得到新分配的磁盘卷。灾难恢复公司希望把存储资源从一个数据中心镜像到另一个远程的数据中心上,后者在出现长时间停电的情况下可以用作热备份。特别是,iSCSISAN使我们只需要用最小的配置更改就可以在WAN就像普通的网络通信一样。22如图所示,iSCSItarget是存储设备端,存放磁盘或RAID的设备,也可以使用linux主机做存储设备。iSCSIinitiator就是能够使用target的客户端。网络文件系统(NetworkFileSystemNFSUnix系统间实现磁盘文件共享的议。最早于1984年由升阳开发。功能是透过网络让不同的服务器、不同的操作系统能够彼此分享个别的资料。NFS的基本原则是“容许不同的客户端及伺服端通过一组RPCs分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。23NFS示意图DRBDDRBD技术)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像,当应用对磁盘的数据进行修改不同的服务器上。DRBD在Linux的I/O堆栈中的位置24单主模式在单主模式下,任何资源在任何特定的时间,集群中只存在一个主节点。正是因为这样EXT3EXT4、XFS部署DRBD单主节点模式可保证集群的高可用性(fail-over双主模式在双主模式下,任何资源在任何特定的时间,集群中都存在两个主节点。由于双方数据如GFS和OCFS2。部署双主模式时,DRBD是负载均衡的集群,这就需要从两个并发的主节点选取一个首选的访问数据。这种模式默认是禁用的,如果要用的话必须在配置文件中进行声明。复制模式DRBD提供了三种不同的复制方式,允许三种复制方式:协议A:一旦本地磁盘写入已经完成,数据包已在发送队列中,则写被认为是完成。在一个送队列。尽管,在故障转移节点上的数据是一致的,但没有及时更新。这通常是用于地理上分开的节点。协议能不会被提交到磁盘。协议C只有在本地和远程节点的磁盘已经确认了写操作完成,写才被认为完成。没有任何:数据丢失,所以这是一个群集节点的流行模式,但I/O吞吐量依赖于网络带宽。25多协议支持DRBD的复制和同步框架套接字层支持多个级别的传输:IPv4中的TCP协议:这规范的实施方式,也是DRBD默认使用的,可用于任何开启IPv4协议的系统上。IPv6的TCPTCP协议用于复制和同步时,DRBD还可使用IPv6的网络协议。虽然是不同于IPv4,但是这是和使用IPv4的相当的。三路复制当使用三路复制,DRBD对一个已存在的2节点集群增加了一个第三节点,并复制数据到这个第三节点上,使用这个第三节点用于备份和灾难恢复。DRBD资源,类似以下图示:DRBDprotocolADRBDprotocolC)来实现的。三路复制可以永久使用,此时第三节点从生产集群持续更新数据。并且,也可以在需要是建立连接,此时生产集群通常和备份站点断开,周期性地启动site-to-site同步(例如在每天晚上cron任务)。26这个构架适合远程灾备,对于远程镜像可以采用异步方式。由于生产系统不需要等待远程节点完成就可以继续读写,远程站点可以在后续逐步同步好存储系统。集群管理器(cman是一个基于内核的对称通用集群管理器。它由两部分组成:连接管理器(cnxman),用于处理成员、消息、投票数、事件通知和过渡;服务管理器(SM),用于处理那些需要通过各种方式进行集群管理的应用及外部系统。cman是中最核心的服务,可通过系统中的serivce命令进行启/停操作;DLM、GFS、及Fence都依赖于群集管理器。RHCS架构示意图rgmanager资料组管理器rgmanager(ResourceGroupManager)基于并使用DLMcman一样,27rgmanager也是中的一个核心服务,可通过系统中的serivce命令进行启/停操作;rgmanager管理并为集群中的Service(服务和Resources(资源提供Failover错误切换功能。Service()每个服务都被指定存在于一个FailoverDomain中,并与多个Resources(资源关联。每个服务可以理解为实际操作中的一个应用,如WebJava中间件、数据库、文件共享系统、邮件系统等。这些应用在运行时不但对应用程序本身有要求如某个运行指令或多个运行脚本的组合,还要提供对诸如虚拟IP、文件系统等资源的支持。FailoverDomain(错误切换域)每个FailoverDomain都与两个或两个以上的Node(服务器节点进行绑定,FailoverDomain指定了集群中某个ServiceService将会由哪些服务器提供FailoverNode都允许与多个FailoverDomainNode都可以为多个Service服务,因此可以实现“主动/主动双活动”方式的集群配置。资源)ResourcesIP、文件系统。资源与Service组合时,往往还会体现出一定的层次关系,例如:通常系统都要求确认虚拟IP及文件系统都已经正常连接及挂载后,才可以运行某个应用程序,这个顺序一旦调转,就会使应用程序运行出错。Fence机制在集群运行时,为了避免因出现不可预知的情况而造成的“脑裂”现象如:心跳Fence机制来28保障系统切换时的I/O使用安全。5.1系统监控(VNC)功能描述VNC(VirtualNetworkComputing)是基于RFB(RemoteFrameBuffer)协议进行通信的,一般是一个基于平台无关的简单显示协议的超级瘦客户系统。RFB(远程帧缓存)是一个远程图形用户的简单协议,因为它工作在帧缓存级别上,所以它可以应用于所有的窗口系统,例如:X11,Windows和Mac系统。本功能实现了不同浏览器的Java的Applet组件通过RFB协议实现任何操作系统虚拟机的IP,并且对用户不公开计算节点的物理机IP以确保物理机的网络安全性。计算节点上运行vncserver,然后通过一个代理服务器或集群将vnc数据传输给用户。计算节点(vnc服务端)计算节点计算节点vnc代理服务器或集群安全认证用户(vnc客户端)29网络时间协议(NTP网络时间协议NTP(NetworkTime)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC(UniversalTimeCoordinated)。NTP的主要开发者是美国特拉华大学的DavidL.Mills教授。NTP的设计充分考虑了互联网上时间同步的复杂性。NTP适应于在各种规模、速度和连接通路情况的互联网环境下工作。NTP以GPS时间代码传送的Client/ServerNTP不仅校正现行时间,而且持续跟踪时间的变化,能够自动进行调节,即使网络发生故障,也能维持时间的稳定。NTP产生的网络开销甚少,并具有保证网络安全的应对NTPNTP成为互联网上公认的时间同步工具。目前,在通常的环境下,NTP提供的时间精确度在WAN上为数十毫秒,在LAN上则为亚毫秒级或者更高。在专用的时间服务器上,则精确度更高。数据库集群(MySQLCluster是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的Cluster。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQLCluster由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDBClusterCluster中这些组件的关系,请参见下图:30memcached是以LiveJournal旗下DangaInteractive公司的BradFitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论