精华内容
下载资源
问答
  • github地址:https://github.com/iwannay/jiacrontab
    展开全文
  • 虚拟化主机系统在线web管理平台

    万次阅读 2016-01-08 11:47:46
    虚拟化管理软件比较(Eucalyptus, OpenNebula, OpenStack, OpenQRM, ...关键字:LisVP 虚拟化管理平台 | 虚拟机管理系统 | VM | KVM | OpenVZ | 主机系统 |开放云 kvm管理平台官方软件列表:http://www.linux-kvm.or
    虚拟化管理软件比较(Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt) 
    

    关键字:LisVP 虚拟化管理平台 | 虚拟机管理系统 | VM | KVM | OpenVZ | 主机系统 |开放云

    kvm管理平台官方软件列表:http://www.linux-kvm.org/page/Management_Tools

    LisVP 领立斯网络科技虚拟机管理平台是基于OpenVZ虚拟化技术,建立在CentOS 6.x高效稳定的操作系统上。让管理员方便应对日常工作, 服务器高效利用节约成本、整虚拟机备份提高服务安全性、模板特性让部署应用更简单:如果您是开发公司更能体验出模板的便捷性:http://www.extmail.org/product/lisvp.html  案例演示:http://mail.yinyuetai.com:8080/

    数据中心虚拟化和云端解决方案 OpenNebula:http://www.oschina.net/p/opennebula

    CENTOS6.0 KVM 虚拟化web管理安装:http://my.oschina.net/qq277049/blog/120261

    HyBird 虚拟化系统企业版:http://www.xsdou.com/1396.html

    最近笼统地学习和试用了几款比较有名的虚拟化管理软件。学习的内容包括Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt。借这一系列文章,对过去一个月的学习内容作一个阶段性的总结。

    (1)授权协议、许可证管理、购买价格等方面的比较

     授权协议许可证管理商业模式
    Eucalyptus社区版采用GPLv3授权协议

     

    企业版使用自定义的商业授权协议

    社区版不需要安装许可证

     

    企业版需要在云控制器(CLC)节点上安装许可证

    社区版免费使用

     

    企业版按处理器核心总数收费,用户购买的许可证针对特定版本永久有效。

    OpenStackApache 2.0授权协议不需要许可证免费使用
    OpenNebulaApache 2.0授权协议不需要许可证社区版免费使用

     

    企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能够更容易的安装、配置和管理,以订阅的模式提供服务。

    企业版按物理服务器总数收费,每台物理服务器器的服务价格为250欧元每年。

    OpenQRM社区版使用GPLv2授权协议

     

    企业版使用自定义的商业授权协议

    不需要许可证社区版免费使用

     

    企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能够更容易的安装、配置和管理,以订阅的模式提供服务。基本、标准和高级服务的价格分别为480、960、1920欧元每月。

    XenServerCitrix XenServer系列产品均使用自定义的商业授权协议

     

    基于XenServer的Xen Cloud Platform使用GPLv2授权协议

    不管是XenServer还是Xen Cloud Platform都需要在每台服务器安装许可证

     

    许可证每年更新一次

    XenServer免费版本和开源版本的Xen Cloud Platform可以免费使用

     

    XenServer高级版、企业版和白金版按物理服务器数量收费,分别是1000、2500和5000美元。购买的许可证针对特定版本永久有效

    Oracle VMOracle VM Server是基于Xen开发的,使用GPLv2协议发布,从Oracle的网站可以下载到源代码,但是Oracle并不宣传这一点。

     

    Oracle VM Manager使用自定义的商业授权协议。

    Oracle VM VirtualBox的二进制版本使用自定义的商业授权协议,源代码使用GPLv2授权协议。

    不需要许可证免费使用,可以购买技术支持。技术支持的费用为每台物理服务器8184人民币每年。
    CloudStack社区版采用GPLv3授权协议企业版使用自定义的商业授权协议社区版不需要安装许可证

     

    企业版需要在管理服务器上安装许可证

    社区版免费使用企业版提供增强功能和技术支持,收费模式不详。
    ConVirt社区版使用GPLv2授权协议

     

    企业版使用自定义的商业授权协议

    社区版不需要安装许可证

     

    企业版需要在管理服务器上安装许可证

    社区版免费使用

     

    企业版提供增强功能和技术支持,按物理服务器数量收费,每个节点费用1090美元。购买的许可证针对特定版本永久有效。

    (2)项目历史与运营团队、社区规模和活跃程度、沟通交流等方面的比较

     项目历史与运营团队社区规模和活跃程度沟通交流
    Eucalyptus最初是UCSB的HPC研究项目,2009年初成立公司来支持该项目的商业化运营。现任CEO是曾担任MySQL CEO的Marten Mickos,现任工程部门SVP的Tim Cramerc曾担任 Sun公司NetBeans和OpenSolaris项目的执行总监。整个管理团队对开放源代码项目的管理和运营方面具有丰富的经验。在同类开放源代码项目当中,Eucalyptus的社区规模最大,活跃程度也最高。主要原因是该项目起源于大学研究项目,次要原因是管理团队对开放源代码理念的高度认同。Ubuntu 10.04服务器版选择Eucalyptus作为UEC的基础构架,大大地促进了Eucalyptu的推广。社区发表在论坛上的问题通常在48小时内得到回应,通过技术支持电子邮件提出的问题通常在24小时内得到回应。

     

    Eucalyptus在北京和深圳设有办事处,在中国有工程师提供支持团队。

    OpenStackOpenStack是服务器托管公司RackSpace与NASA共同发起的开放源代码项目。在开放源代码项目的管理和运营方面,RackSpace和NASA显然缺乏足够的经验。针对OpenStack项目的批评集中在(1)RackSpace对项目有过于强烈的控制欲,(2)OpenStack项目的运作对于社区成员来说基本上是不透明的,(3)OpenStack项目对同类开放源代码项目的攻击性过強。社区规模较小,主要参与者为支持/参与该项目的公司人员。有几个公开的邮件列表,流量很小。由于该项目比较新,在网络上可以参考的安装与配置方面的文章不多。Ubuntu 11.04服务器版同时支持Eucalyptus和OpenStack作为UEC的基础构架,将有助于OpenStack的推广。通过邮件列表进行技术方面的沟通,通常在48小时内得到回应。商务方面的邮件沟通,没有得到回应。
    OpenNebula2005年启动的研究性项目,2008年初发布第一个开放源代码版本,2010年初大力推进开源社区的建设。社区规模较小,主要参与者为支持/参与该项目的公司人员,以及少量的用户。有几个公开的邮件列表,流量比OpenStack项目的流量稍大。在网络上搜索到一些中文版安装和配置方面的文章,基本上是以讹传讹,缺乏可操作性。英文版的相关文章也不多,可操作的更少。通过邮件列表进行技术方面的沟通,通常在48小时内得到回应。
    OpenQRM起源于集群管理方面的软件,2006年公开源代码,2008年免费发布,目前版本为4.8。

     

    项目的运营团队较小,似乎只有Matt Rechenburg一个人。

    有一些零星的用户,基本上没有形成社区。虽然功能还在不断更新,但是用户文档的日期是2008年的。相关论坛的活跃程度比OpenStack和OpenNebula更差。在论坛发布的问题,大约有50%左右没有得到回应。通过电子邮件进行商务沟通,反应迅速,在24小时以内得到回应。
    XenServerCitrix公司的产品,与Xen项目的发展基本同步。围绕Xen Cloud Platform有一些开放源代码的项目,用于替代XenCentor提供基于桌面或者是浏览器的管理功能。初期商务沟通的速度比较快。
    Oracle VMOracle公司的产品,用户量较小。Oracle VM仅仅是Oracle用户生态系统中的一部分,不是Oracle的关键业务。有一定数量的用户,但是没有形成社区。在网络上缺少与Oracle相关的讨论与交流。Oracle VM团队有一个博客网站,但是最近两篇文章的日期分别是2010年11月和2008年1 月。产品下载的速度很慢。初期商务沟通的速度比较快。在技术方面的沟通,Oracle在国内没有相应的技术人员提供支持。
    CloudStack源于2008年成立的VMOps公司,2010年五月启用cloud.com域名,2010年6 月共同启动OpenStack项目。用户数量较少,论坛不是很活跃。官方文档非常完备,按照文档操作至少能够顺利地完成安装和配置过程。网络上可以搜索到一些可操作的安装和配置文档(得益于CloudStack的安装和配置比较简单)。商务沟通比较困难,通过社区论坛和电子邮件提出的问题都没有得到回应。
    ConVirt起源于2006年发起的XenMan项目,与Xen项目的发展基本同步。目前的版本为ConVirt 2.0。现任CEO和工程部门EVP均来自Oracle。用户规模与Eucalyptus相当,论坛的活跃程度很高。官方文档非常完备,按照文档操作至少能够顺利地完成安装和配置过程。在网络上搜索到的中英文的安装配置教程也基本可用。商务沟通非常顺畅,社区发表在论坛上的问题通常在48小时内得到回应,通过技术支持电子邮件提出的问题通常在24小时内得到回应。

    (3)综合评估

    总的来说,虚拟化管理软件的用户还不是很多。大部分虚拟化管理软件的社区规模较小,活跃程度也不高。除了Eucalyptus积极地鼓励社区用户参与项目的开发与测试之外,其他项目选择开放源代码只是一种营销策略。如果排除技术和价格方面的因素,最值得选择的软件无疑是Eucalyptus和ConVirt。这两个项目拥有最大和最活跃的用户社区,其开发/运营团队与潜在客户之间的沟通最为顺畅。XenServer也是一个值得考虑的对象,但是XenServer社区版要求对每台物理服务器都要每年更新一次许可证。对于拥有大量物理服务器的公司来说,管理和维护成千上百个许可证将是一个令人头疼的问题。

    架构篇:

    (1)系统构架比较

     系统构架
    EucalyptusEucalyptus是一个与Amazon EC2兼容的IaaS系统。Eucalyptus包括云控制器(CLC)、Walrus、集群控制器(CC)、存储控制器(SC)和节点控制器(NC)。CLC是整个Eucalyptu系统的核心,负责高层次的资源调度,例如向CC请求计算资源。Walrus是 一个与Amazon S3类似的存储服务,主要用于存储虚拟机映像和用户数据。CC是一个集群的前端,负责协调一个集群内的计算资源,并且管理集群内的网络流量。SC是一个与Amazon EBS类似的存储块设备服务,可以用来存储业务数据。NC是最终的计算节点,通过调用操作系统层的虚拟化技术来启动和关闭虚拟机。在同一个集群(CC)内的所有计算节点(NC)必须在同一个子网内。 在一个集群(CC)内通常需要部署一台存储服务器(SC),为该集群内的计算节点提供数据存储服务。

     

    Eucalyptus通过Agent的方式来管理计算资源。在每一个计算节点上,都需要运行一个eucalyptus-nc的服务。该服务在集群控制器(CC)上注册后,云控制器(CLC)即可通过集群控制器(CLC)将需要运行的虚拟机映像文件(EMI)拷贝到该计算节点上运行。

    Eucalyptus将虚拟机映像文件存储在Walrus上。当用户启动一个虚拟机实例的时候,Eucalyptus首先将相应的虚拟机映像(EMI)从Walrus拷贝到将要运行该实例的计算节点(NC)上。当用户关闭(或者是由于意外而重启)一个虚拟机实例的时候,对虚拟机所做的修改并不会被写回到Walrus上原来的虚拟机映像(EMI)上,所有对该虚拟机的修改都会丢失。如果用户需要保存修改过的虚拟机,就需要利用工具(euca2ools)将该虚拟机实例保存为新的虚拟机映像(EMI)。如果用户需要保存数据,则需要利用存储服务器(SC)所提供的弹性块设备来完成。

    OpenStackOpenStack是一个与Amazon EC2兼容的IaaS系统。OpenStack包括OpenStack Compute和OpenStack Object Storage两个部分。

     

    OpenStack Compute又包含Web前端、计算服务、存储服务、身份认证服务、存储块设备(卷)服务、网络服务、任务调度等多个模块。OpenStack Compute的不同模块之间不共享任何信息,通过消息传递进行通讯。因此,不同的模块可以运行在不同的服务器上,也可以运行在同一台服务器上。

    OpenStack Object Store可以利用通用服务器搭建可扩展的海量数据仓库,并且通过冗余来保证数据的安全性。同一份数据的在多台服务器上都有副本,将出现故障的服务器从集群中撤除不会影响数据的完整性,加入新的服务器后系统会自动地在新的服务器上为相应的文件创建新的副本。从功能上讲,OpenStack Object Store同时具备Eucalyptus中的Walrus服务和弹性块设备(SC)服务。不过OpenStack Object Store不是一个文件系统,不能够保证数据的实时性。从这个方面来考虑,OpenStack Object Store更适合用于存储需要长期保存的静态数据,例如操作系统映像文件和多媒体数据。

    OpenStack通过Agent的方式来管理计算资源。在每一个计算节点上,都需要运行nova-network服务和nova-compute服务。这些服务启动之后,就可以通过消息队列来与云控制器进行交互。

     

    OpenNebulaOpenNebula的构架包括三个部分:驱动层、核心层、工具层。驱动层直接与操作系统打交道,负责虚拟机的创建、启动和关闭,为虚拟机分配存储,监控物理机和虚拟机的运行状况。核心层负责对虚拟机、存储设备、虚拟网络等进行管理。工具层通过命令行界面/浏览器界面方式提供用户交互接口,通过API方式提供程序调用接口。

     

    OpenNebula使用共享存储设备(例如NFS)来提供虚拟机映像服务,使得每一个计算节点都能够访问到相同的虚拟机映像资源。当用户需要启动或者是关闭某个虚拟机时,OpenNebula通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。这种模式也称为无代理模式,由于不需要在计算节点上安装额外的软件(或者服务),系统的复杂度也相对降低了。

    OpenQRMOpenQRM是为了管理混合虚拟化环境而开发的一个虚拟化管理框架,包括基础层(框架层)和插件。基础层(框架)的作用是管理不同的插件,而对虚拟资源的管理(计算资源,存储资源,映像资源)都是通过插件来实现的。OpenQRM的框架类似于Java语言中的Interface,定义了一系列虚拟机资源生命周期管理的方法,例如创建、启动、关闭虚拟机等等。在个框架的基础上,OpenQRM针对不同的虚拟化平台(Xen、KVM)实现了不同的插件,用来管理不同的物理和虚拟资源。当出现新的资源需要支持的时候,只需要为OpenQRM编写新的插件,就可以无缝地整合到原来的环境中去。

     

    OpenQRM插件也是使用无代理模式工作的。当需要管理的目标节点提供SSH登录方式时,OpenQRM插件通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。当需要管理的目标节点提供HTTP/HTTPS/XML-RPC远程调用接口时,OpenQRM插件通过目标节点所提供的远程调用接口实现对目标平台的管理。

    OpenQRM是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口。

     

    XenServerXenServer是对Xen虚拟化技术的进一步封装,在Dom0上提供一系列命令行和远程调用接口,独立的管理软件XenCenter通过远程调用这些接口来管理多台物理服务器。XenSever在标准Xen实现之上所实现的远程调用接口类似于其他虚拟化管理平台中所实现的Agent,因此XenServer是通过Agent方式工作的。由于只考虑对Xen虚拟化技术的支持,XenServer的构架相对简单。

     

    XenServer是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口。管理软件XenCenter是运行在Windows操作系统上的,对于需要随时随地访问管理功能的系统管理员来说有点不便。目前有一些第三方提供的开放源代码的基于浏览器的XenServer管理工具,但是都还处于比较早期的阶段。

     

    Oracle VMOracle VM包括Oracle VM Server和Oracle VM Manager两个部分。Oracle VM Server在支持Xen的Oracle Linux上(Dom0)运行一个与Xen交互的Agent,该Agent为Oracle VM Manager提供了远程调用接口。Oracle VM Manager通过一个Java应用程序来对多台Oracle VM Server上的虚拟资源进行管理和调度,同时提供基于浏览器的管理界面。由于只考虑对Xen虚拟化技术的支持,Oracle VM Server / Manager的构架相对简单。

     

    Oracle VM是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口。

    值得注意的是,Oracle VM Manager还通过Web Service的方式提供了虚拟机软件生命周期管理的所有接口,使得用户可以自己使用不同的编程语言来调用这些接口来开发自己的虚拟化管理平台。不过由于Oracle在开放源代码方面的负面形象,似乎没有看到有这方面的尝试。

     

    CloudStack与OpenQRM类似,CloudStack采用了“框架 + 插件”的系统构架,通过不同的插件来提供对不同虚拟化技术的支持。对于标准的Xen / KVM计算节点,CloudStack需要在计算节点上安装Agent与控制节点进行交互;对于XenServer / VMWare计算节点,CloudStack通过XenServer / VMWare所提供的XML-RPC远程调用接口与计算节点进行交互。

     

    CloudStack本身是一个虚拟化管理平台,但是它通过CloudBridge提供了与Amazon EC2相兼容的云管理接口,对外提供IaaS服务。

     

    ConVirtConVirt是一个虚拟化管理平台,使用无代理模式工作。当需要管理的目标节点提供SSH登录方式时,ConVirt通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管 理命令。当需要管理的目标节点提供HTTP/HTTPS/XML-RPC远程调用接口时,ConVirt插件通过目标节点所提供的远程调用接口实现对目标平台的管理。

     

    ConVirt是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口。但是ConVirt 3.0提供了与Amazon EC2 / Eucalyptus的用户接口,使得ConVirt用户能够在同一个Web 管理界面下同时管理Amazon EC2 / Eucalyptus提供的虚拟计算资源。

     

    (2)云管理平台还是虚拟化管理平台?

    在IaaS这个层面,云管理和虚拟化管理的概念非常接近,但是有一些细微的差别。

    虚拟化是指在同一台物理机器上提供多台虚拟机器(包括CPU、内存、存储、网络等计算资源)的能力。每一台虚拟机器都能够像普通的物理机器一样运行完整的操作系统以及执行正常的应用程序。当需要管理的物理机器数量较小时,虚拟机生命周期管理(资源配置、启动、关闭等等)可以通过手工去操作。当需要管理的物理机器数量较大时,就需要写一些脚本/程序来提高虚拟机生命周期管理的自动化程度。以管理和调度大量物理/虚拟计算资源为目的系统,属于虚拟化管理系统。这样一个系统,通常用于管理企业内部计算资源。

    云计算是指通过网络访问物理/虚拟计算机并利用其计算资源的实践。通常来讲,云计算提供商以虚拟机的方式向用户提供计算资源。用户无须了解虚拟机背后实际的物理资源状况,只需了解自己所能够使用的计算资源配额。因此,虚拟化技术是云计算的基础。任何一个云计算管理平台,都是构建在虚拟化管理平台的基础之上的。如果某个虚拟化管理平台仅对某个集团内部提供服务,那么这个虚拟化管理平台也可以被称为“私有云”;如果某个虚拟化管理平台对公众提供服务,那么这个虚拟化管理平台也可以被称为“公有云”。服务对象的不同,对虚拟化管理平台的构架和功能提出了不同的需求。

    私有云服务于集团内部的不同部门(或者应用),强调虚拟资源调度的灵活性。系统管理员需要为不同的部门(或者应用)定制不同的虚拟机,根据部门(或者应用)对计算资源的需求对分配给某些虚拟机的计算资源进行调整。从这个意义上来讲,OpenQRM、XenServer、Oracle VM、CloudStack和ConVirt比较适合提供私有云服务。

    公有云服务于公众,强调虚拟资源的标准性。通过将计算资源切割成标准化的虚拟机配置(多个系列的产品,每个产品配置相同数量的CPU、内存、磁盘空间、网络流量配额),公有云提供商可以通过标准的服务合同(Service Level Agreement, SLA)以标准的价格出售计算资源。当用户对计算资源的需求出现改变的时候,用户只需要缩减或者是增加自己所使用的产品数量。由于Amazon EC2是目前比较成功的公有云提供商,大部分云管理平台都在某种程度上模仿Amazon EC2的构架。从这个意义上来讲,Eucalyptus、OpenNebula和OpenStack提供了与Amazon EC2兼容或者是类似的接口,比较适合提供公有云服务。

    公有云和私有云之间的界限,就像“内部/外部”和“部门/合作伙伴”的概念一样,并不十分明显。根据项目需求的不同,可能会有不同的解释。

    功能篇:

    (1)支持的虚拟化技术

      Xen KVM XenServer / XCP VMWare LXC openVZ
    EucalyptusYY Y  
    OpenStackYYYYY 
    OpenNebulaYY Y  
    OpenQRMYYYYYY
    XenServerY     
    Oracle VM
    Y     
    CloudStack YYY  
    ConVirtYY    

    可以看出,Xen和KVM是目前获得最广泛的厂商虚拟化技术,紧随其后的是VMWare。需要注意的是,XenServer是对Xen的进一步封装,可以认为是一种新的虚拟化平台(用户在XenServer上不能直接执行Xend相关命令)。

    (2)系统安装和配置

     前端计算节点备注
    Eucalyptus使用Ubuntu 10.04或者CentOS 5.5操作系统,通过apt-get install或者yum install的方式直接安装二进制包,构建一个包含CLC、 Walrus、SC、CC的前端。根据官方网站提供的文档进行操作,是比较容易实现的。使用Ubuntu 10.04或者CentOS 5.5操作系统,通过apt-get install或者yum install的方式直接安装二进制包,构建一个提供NC服务的计算节点。根据官方网站提供的文档进行操作,是比较容易实现的。Eucalyptus包含了一个dhcpd,如果配置不好的话,会造成一定的麻烦。另外,计算节点(NC)与集群控制器(CC)必须在一个C类子网里(例如,掩码为255.255.255.0)。如果NC和CC在一个超网里(例如,掩码为255.255.0.0),在注册服务的时候会出现一些问题。

     

     

    OpenStack在Ubuntu 10.04上利用官方网站提供的nova-install脚本进行安装,基本上没有遇到问题。

     

     

    在Ubuntu 10.04上利用官方网站提供的nova-install脚本进行安装,基本上没有遇到问题。对于一个简单的系统,安装配置比较简单。
    OpenNebula使用CentOS 5.5操作系统,配置好CentOS Karan源,启用kbs-CentOS-Testing条目。下载对应的rpm包,直接yum localinstall –nogpgcheck opennebula*.rpm,就可以直接完成安装过程。按照官方文档创建/srv/cloud/one和/srv/cloud/images目录,通过NFS共享/srv/cloud目录。创建cloud用户组和属于cloud用户组的oneadmin用户。按照官方文档创建/srv/cloud/one和/srv/cloud/images目录,通过NFS共享/srv/cloud目录。创建cloud用户组和属于cloud用户组的oneadmin用户。

     

    将前端服务器上oneadmin用户的ssh key拷贝到计算节点上oneadmin用户的authorized_keys中。这样前端服务器才可以通过SSH登陆到计算节点上。

    在CentOS 5.5 x86_64上进行安装的时候,如果按照官方网站提供的文档进行操作,先配置好必要的软件依赖关系再安装opennebula,就会出现xmlrpc-c包版本不对的错误。

     

    网络上可以搜索到一些安装配置方面的文档和教程,但是对于熟悉Linux但是不熟悉OpenNebula的开发人员来说,很难按照这些文档完成安装和配置过程。

     

    OpenQRM在Ubuntu 10.04上通过SVN下载OpenQRM源代码,进入源代码目录后依次执行make / make install / make start命令。按照官方文档的描述创建数据库,然后通过Web界面进行下一步的安装和配置。

     

     

    计算节点配置好网桥和虚拟化支持之外不需要特别的安装和配置。在OpenQRM管理界面中启用相对应的插件即可通过插件对计算节点进行管理。在Ubuntu 10.04上安装前端时,可能需要手工安装dhcp3-server。

     

    启用插件管理虚拟资源的操作流程不够直观,并且缺乏详细的文档。

     

    XenServer前端为基于Windows操作系统的XenCenter。在Windows XP上可以安装,需要.NET Framework Update 2的支持。安转过程非常简单,基本上不需要配置。

     

     

    从Citrix的网站下载ISO,刻盘直接安装在裸机上即可。计算节点安装完毕后,在XenCenter中把新增计算资源添加到资源池即可。每一台XenServer服务器都需要安装从Citrix获得License,并且每年更新一次。
    Oracle VM在CentOS 5.5 x86_64上进行安装。将ISO文件mount起来后,执行runinstaller.sh即可。从Oracle的网站下载ISO,刻盘直接安装在裸机上即可。计算节点安装完毕后,在Oracle VM Manager中把新增计算资源添加到资源池即可。最好从Oracle的官方网站下载,不过速度很慢。通过迅雷等途径下载的文件,看起来似乎没有问题,但是ISO刻盘后在启动操作系统安装过程中会出现错误。

     

    如果在Oracle VM Server上安装Oracle VM Manager,建议分区的时候把/ 分得大一点,不然的话会由于磁盘空间不够而无法安装Oracle VM Manager。

     

    CloudStack在CentOS 5.5和Ubuntu 10.4上,按照官方网站的安装文档顺序操作,基本没有问题。

     

     

    计算节点上必须安装相应的Agent。安装配置相对简单,但是在删除物理资源的时候存在较多的问题。
    ConVirt在CentOS 5.5和Ubuntu 10.4上,按照官方网站的安装文档顺序操作,基本没有问题。

     

    在Ubuntu 10.04上安装企业版,需要手工sudo apt-get install libmysqlclient-dev。

    在计算节点上的root用户必须允许管理节点上运行ConVirt服务的用户通过key auth方式登录。

     

     

    安装配置相对简单。

    不同的虚拟化管理软件有不同的设计理念,采用不同的系统构架,类似的概念也采用不同的术语来表述,其学习曲线也各不相同。对于大部分用户来说,虚拟化管理软件还是个新生事物。即使是粗略地尝试一下利用不同的虚拟化管理软件来安装、配置和测试一个最小规模的私有云系统,也需要花费不少的时间和精力。在这个过程当中,遇见各种各样的问题都在所难免。不过,也只有亲身经验过这些形形色色的问题,才能够切身体会不同虚拟化管理软件的优点和缺点,并且在分析、总结、归纳的基础上形成自己独特的观点。

    (3)用户界面

     概述用户权限资源池和虚拟机管理
    EucalyptusEucalyptus提供了一个基于浏览器的简单用户界面,可以完成用户注册,下载credentials,对提供的产品类型进行简单配置等。资源池和虚拟机生命周期管理需要通过euca2ools在命令行模式下完成。

     

    euca2ools是一组基于命令行的工具,可以与Amazon EC2/S3相兼容的Web Service进行交互。该用具可以管理基于Amazon EC2、Eucalyptus和OpenStack,OpenNebula的云计算服务。

    euca2tools的主要功能包括:

    – 查询可以使用的域
    – 管理SSH Key
    – 虚拟机生命周期管理
    – 安全组管理
    – 管理卷和快照
    – 管理虚拟机映像
    – 管理IP

    在Eucalyptus社区版中只有两种类型的用户:管理员,普通用户。在Eucalyptus企业版中进一步提供了用户组,属于某个用户组的用户可以管理属于该用户组的计算资源。管理员可以通过注册或者是撤销注册某个计算节点,配置标准产品类型的计算资源(CPU、内存、存储)。普通用户只能够在标准配置的基础上创建、启动、关闭虚拟机,不能够定制化自己所需要的计算资源。

     

    虚拟机映像文件(EMI)的制作,以及虚拟机生命周期管理等等操作,需要通过euca2ools在命令行模式下完成。在FireFox浏览器中,可以利用ElasticFox插件,在浏览器中启动、监控和关闭虚拟机。ElasticFox的界面不够美观,并且提供的功能非常有限。

    Eucalyptus不提供console功能。用户可以通过SSH连接到自己所管理的虚拟机。

    每一个公开发布的虚拟机映像(EMI),都是一个模板。用户创建虚拟机实例的时候,系统根据用户选择的EMI将相应的虚拟机映像拷贝到目标计算节点上运行。Eucalyptus根据某种算法自动决定用户的虚拟机将在哪个物理服务器上运行,用户对物理服务器的状况一无所知。

    Eucalyptus中的虚拟机实例只是原虚拟机映像(EMI)的一个副本,用户在运行的实例中对虚拟机所做的任何修改,不会被保存到原来的虚拟机映像中。如果用户将运行的虚拟机实例关闭(例如:shutdown),用户对虚拟机所作的任何修改都会丢失。如果用户需要保存自己对虚拟机所做的修改,用户可以选择使用弹性块设备来保存数据,或者将正在运行的虚拟机实例发布为新的EMI。(Amazon EC2自动地将停止运行的虚拟机实例保存为新的AMI,直到用户销毁该虚拟机实例为止。因此,用户可以shutdown自己的虚拟机实例,但是保存自己对虚拟机所作的修改,直到用户选择销毁该虚拟机实例为止。)

     

    OpenStackOpenStack不缺省地提供基于浏览器的用户界面。系统管理员需要手工创建用户。大部分的管理操作,需要在命令行下进行。 尽管OpenStack和Eucalyptus在构架上有很大的不同,但是所暴露给用户的界面是类似的(两者都模仿了Amazon EC2的用户接口规范)。因此,OpenStack同样可以使用Eucalyptus所提供的euca2ools进行管理。

     

    OpenStack的openstack-dashboard项目和django-nova项目提供了一个基于浏览器的用户界面,没有被集成到OpenStack安装脚本中,需要单独安装。

    OpenStack将用户分成如下几个类别:

     

    admin — 云服务管理员,拥有所有管理权限。

    itsec — IT安全管理员,具有隔离有问题的虚拟机实例的权限。

    projectmanager — 项目管理员,可以增加属于该项目的新用户,管理虚拟机映像,管理虚拟机生命周期。

    netadmin — 网络管理员,负责IP分配,管理防火墙。

    developer — 开发人员,可以登录进入属于本项目的虚拟机,管理虚拟机生命周期

    在模仿Amazon EC2的云平台(Eucalyptus, OpenStack, OpenNebula)中,OpenStack提供了颗粒度最细的用户权限管理模式。

    与Eucalyptus类似,虚拟机映像文件(EMI)的制作,以及虚拟机生命周期管理等等操作,需要通过euca2ools在命令行模式下完成。同样,在FireFox浏览器中,可 以利用ElasticFox插件,在浏览器中启动、监控和关闭虚拟机。

     

    OpenStack不提供虚拟机console功能。用户可以通过SSH连接到自己所管理的虚拟机。

    正在开发中的openstack-dashboard,基于浏览器提供了比较完整的资源池管理功能和虚拟机生命周期管理功能。虽然界面还比较简单,但是已经处于可用的状态。

    OpenStack的模板和虚拟机实例机制与Eucalyptus类似。与Eucalyptus类似,OpenStack根据某种算法自动决定用户的虚拟机将在哪个物理服务器上运行,用户对物理服务器的状况一无所知。

     

    OpenNebulaOpenNebula不缺省地提供基于浏览器的用户界面。系统管理员需要手工创建用户。大部分的管理操作,需要在命令行下进行。

     

    OpenNebula目前有两个基于浏览器的用户界面:SunStone和OneMC。这两个项目需要单独安装。

    同样,OpenNebula提供了与Amazon EC2相兼容的Web Service接口。因此,可以通过FireFox所提供的ElasticFox插件和Eucalyptus提供的euca2ools工具集与OpenNebula云平台进行交互。

     

    OpenNebula只有两种类型的用户:管理员,普通用户。在早期版本中,OpenNebula管理员可以在后台通过命令行来管理资源池和虚拟机生命周期。 同样,在FireFox浏览器中,可 以利用ElasticFox插件,在浏览器中启动、监控和关闭虚拟机。

     

    SunStone和OneMC这两个项目都提供了比较完整的资源池管理和虚拟机生命周期管理功能。两个项目的界面都比较简单,但是基本上处于可用的状态。SunStone没有提供虚拟机console功能,OneMC通过VNC协议提供了虚拟机console功能。

    OpenNebula的模板和虚拟机实例机制与Eucalyptus类似。但是并不缺省地使用euca2ools作为工具。

    与Eucalyptus类似,OpenNebula根据某种算法自动决定用户的虚拟机将在哪个物理服务器上运行,用户对物理服务器的状况一无所知。

     

    OpenQRM基于浏览器的用户界面,功能比较丰富。OpenQRM的管理界面只有两种用户:管理用户,普通用户。普通用户只有查看权限,没有管理权限。通过启用不同的插件,可以管理不同的计算资源。所有的资源池和虚拟机生命周期管理操作都可以通过浏览器界面完成。

     

    OpenQRM的novnc插件可以提供基于VNC协议的虚拟机console功能。

     

    XenServerXenCenter是基于Windows的桌面应用,安装与操作都非常简单,界面美观,功能强大。

     

    在参与评测的8 个软件中,XenCenter的用户界面是表现最出色的。基于Windows桌面的应用能够迅速地对用户的点击动作作出反应,从而提高用户体验的满意度。

     

    系统管理员登录XenCenter之后,可以结合Active Directory在用户和用户组的层面分配管理权限。

     

     

    授权用户可以通过图形界面方便地进行资源池和虚拟机生命周期管理。在图形界面上可以直观地监控物理服务器和虚拟机的计算资源使用情况(CPU、内存、存储、网络活动)。

     

    提供基于VNC的虚拟机console。

    可以基于模板的部署新的虚拟机。

     

     

    Oracle VMOracle VM Manager提供了基于浏览器的管理界面。Oracle VM Manager同时提供了role和group的概念。其中role定义了用户所具备的权限,属于同一个group的用户拥有该group所被授予的权限。

     

    Oracle VM Manager提供了三种role:

    user — 拥有指定资源池的虚拟机生命周期管理权限。

    manager — 拥有除了用户管理之外的所有管理权限。

    administrator — 拥有整个系统的管理权限。

     

    授权用户可以通过图形界面方便地进行资源池和虚拟机生命周期管理。在图形界面上可以直观地监控物理服务器和虚拟机的计算资源使用情况(CPU、内存、存储、网络活动)。

     

    提供基于VNC的虚拟机console。

    可以基于模板的部署新的虚拟机。

    CloudStack基于浏览器的用户界面,功能丰富,美观大方。

     

     

    CloudStack根据用户的role将用户分成三个类型:

     

    admin — 全局管理员。

    domain-admin — 域管理员,可以对某个域下的物理和虚拟资源进行管理。

    user — 个体用户,可以管理自己名下的虚拟机资源。

     

    CloudStack对物理资源的管理完整地模拟了一个物理机房的实际情况,按照“机房(Zones)-》机柜(Pods)-》集群(Cluster)-》服务器(Server)”的结构对物理服务器进行组织,使得管理员能够在管理界面里面的计算资源和机房里面的计算资源建立起直观的一一对应关系。

     

    授权用户可以通过图形界面方便地进行资源池和虚拟机生命周期管理。在图形界面上可以直观地监控物理服务器和虚拟机的计算资源使用情况(CPU、内存、存储、网络活动)。

    提供基于VNC的虚拟机console。

    可以基于模板的部署新的虚拟机。

     

    ConVirt基于浏览器的用户界面,功能丰富,美观大方。社区版可以注册多个用户,并可将用户按照用户组进行分类,但是所有的用户拥有相同的全局管理权限。企业版则提供了更细致的用户权限管理机制。除此之外,企业版还提供了对LDAP的支持。

     

     

    授权用户可以通过图形界面方便地进行资源池和虚拟机生命周期管理。在图形界面上可以直观地监控物理服务器和虚拟机的计算资源使用情况(CPU、内存、存储、网络活动)。提供基于VNC的虚拟机console。

     

    可以基于模板的部署新的虚拟机。

    ConVirt的最大优点,在于其通过时程图的方式在不同的层次上直观地展示计算资源(包括物理资源和虚拟资源)的利用情况和健康状况。在整个数据中心和资源池的层面,ConVirt实时显示资源池数量、物理服务器和虚拟机数量、虚拟机密度、存储资源使用状况、负载最高的N 台物理服务器和虚拟机。在物理服务器和虚拟机的层面,ConVirt实时显示CPU和内存使用情况,监控人员可以通过CPU和内存时程图及时地发现或者是调查系统异常情况。

     

    在所有参与评测的虚拟化管理软件中,XenServer / XCP和ConVirt的图形用户界面是做的最好的。XenCenter的图形界面的优点在于提供了独一无二的用户体验,ConVirt的图形界面的优点在于以图形的方式直观地展示了从机房到虚拟机的健康状况。CloudStack的图形界面非常大气,但是在功能上不如ConVirt那么实用。不过按照CloudStack的目前的发展势头来看,下一个版本可能比较值得期待。

    由于进行评测的时间较短,并且测试系统规模较小的原因,暂时无法对各个软件的稳定性、健壮性、扩展性等等关键问题作出评估。

    商务篇:

    目前市面上形形色色的虚拟化管理软件总数很多,这一系列文章所提及的几个软件仅仅其中的几个代表。作为一个机构、或者是一家企业,在向虚拟化过渡时都不可避免地要面临软件选型的问题。本文作为这一系列文章的最后一篇,从商务和功能两个方面提出自己的一点粗浅意见。

    (1)商务评估

    从商务上进行软件选型,性价比通常是一个决定性的因素。在假定参与选型的软件全部满足技术要求的前提下,企业(机构)需要考虑的因素包括软件的授权协议是否友好、许可证管理的难易程度、软件和服务的价格高低、运营团队在业界的声誉、开发者社区和用户社区的规模和活跃程度、商业与技术沟通的难易程度。

    授权协议/许可证管理 — 以全部开放源代码为10分,部分开放源代码(例如以企业版的形式提供某些高级功能,或者以服务的形式提供特别版本的安装包和补丁)扣1 分。商业版本需要在控制节点安装许可证不扣分,需要在所有计算节点安装许可证扣1 分,许可证需要每年更新者扣1 分。

    价格指数 — 以全部功能免费使用为10分,以企业版的模式提供全部功能的软件,每台物理服务器每花费500美元扣1 分。

    运营团队 — 以运营团队的规模、背景、影响力评分,存在的主观因素较多。

    社区因素 — 以开发者和用户社区的规模和活跃程度评分,存在的主观因素较多。

    沟通交流 — 以个人与运营团队、开发者社区、用户社区之间的沟通顺畅程度评分,存在的主观因素较多。

      授权协议

     

    许可证管理

    价格指数 运营团队 社区因素 沟通交流 总分
    Eucalyptus98991045
    OpenStack101088743
    OpenNebula9978942
    OpenQRM9867837
    XenServer78910943
    Oracle VM
    9776736
    CloudStack9876737
    ConVirt98891044

    (2)功能评估

    从功能上进行虚拟化管理软件选型,需要考虑的因素包括该软件所支持的虚拟化技术、安装配置的难易程度、开发和使用文档的详尽程度、所提供的功能是否全面以及用户界面是否直观友好、二次开发的难易程度、是否提供物理资源和虚拟资源的监控报表等等。

    虚拟化技术支持 — 仅支持一种虚拟化技术为6 分,每增加一种虚拟化技术加1 分,10分封顶。

    安装配置 — 以按照官方文档进行安装配置的难易程度评分,存在的主观因素较多。

    开发/使用文档 — 以官方所提供的开发与使用文档的详尽程度评分,文档详尽程度越高者得分越高。

    功能与界面 — 综合评分,涵盖用户进行物理资源和虚拟资源管理、虚拟机生命周期管理、访问虚拟机资源和存储资源的难易程度,用户界面的美观易用程度,以及综合用户体验。

    二次开发 — 基础得分6 分,提供与Amazon EC2相兼容的程序调用接口者加3 分,提供二次开发接口但是与Amazon EC2不兼容者加2 分。

    监控报表 — 基础得分6 分,依系统所提供监控与分析功能的详尽程度加分。

      虚拟化技术支持 安装配置 开发/使用文档 功能与界面 二次开发 监控报表 总分
    Eucalyptus88949 (Amazon WS)644
    OpenStack108849 (Amazon WS)645
    OpenNebula88749 (Amazon WS)642
    OpenQRM1095106 (OS)747
    XenServer61010108 (Plugin)953
    Oracle VM
    69878 (WS)745
    CloudStack898106 (OS)849
    ConVirt71010108 (API)1055

    (3)综合评估

    从商务上考虑,Eucalyptus和ConVirt以微弱 的优势领先于其他选项。Eucalyptus是私有云管理平台的先行者。Ubuntu 10.04选择捆绑Eucalyptus作为UEC的基础构架,使得Ecualyptus比其他的私有云管理平台拥有更多的用户和更加活跃的社区。此外,Ecualyptus在中国国内有销售和技术支持人员,在沟通上比选择其他软件要更加容易。ConVirt排名第二,根本原因在于其销售和技术支持团队与(潜在的)客户保持积极而有效的沟通。Citrix XenServer仅仅与其他两个选项并列排名第三,输在其过于严苛的许可证管理政策。的确,要给100台以上的服务器单独安装许可证并且每年更新一次,可不是一件有意思的事情。

    从功能上考虑,ConVirt与XenServer遥遥领先于其他选项。虽然ConVirt仅仅支持Xen和KVM两种虚拟化技术,但是其安装配置相对简单,文档详尽、功能齐全、界面美观、是比较容易上手的虚拟化管理软件。更重要的是,ConVirt的监控报表功能直观地展示了从数据中心到虚拟机的CPU、内存利用情况,使得用户对整个数据中心的健康状况一目了然。同样,XenServer虽然仅支持Xen一种虚拟化技术,但是在安装配置、操作文档、用户界面等方面都不亚于ConVirt。如果用户对基于Windows的界面没有强烈的抵触情绪的话,XenServer是比较值得考虑的一个选型。

    综合如上考虑,对于希望利用虚拟化管理软件提高硬件资源利用率和虚拟化管理自动化程度的企业(机构)来说,建议使用ConVirt来管理企业(机构)的计算资源。如果网管人员不希望深入了解Linux操作系统,并且所管理的物理服务器数量有限的话,XenServer也是一个不错的选择。ConVirt的浏览器界面是开放源代码的,用户可以对其进行定制化,将自己所需要的其他功能添加到同一个用户界面中去。XenCenter则提供了一种插件机制,用户可以通过插件的方式讲自己的功能集成到XenCenter中。

    不过,你的基础设施是否需要与Amazon EC2相兼容呢?也就是说,你的用户是否需要使用他们用于访问和操作Amazon EC2的脚本和工具来访问你的计算资源呢?如果是这样的话,你可能需要在Eucalyptus和OpenStack之间作一个选择(CloudStack和OpenNebula同样提供了与Amazon EC2兼容的操作接口,但是CloudStack在商务方面得分不高,OpenNebula在功能方面得分不高)。Eucalyptus的历史比OpenStack稍长,用户群比OpenStack要大,社区的活跃程度也比OpenStack要高。不过OpenStack的后台老板NASA比Eucalyptus要财大气粗,Ubuntu 11.04也集成了OpenStack作为其UEC的基础构架之一,表明OpenStack已经得到了社区的重视和支持。总的来说,开放源代码的云构架,还是一个不断发展之中的新生食物。笔者只能够建议用户亲自去安装使用每一个软件,最终基于自己的经验以及需求达到一个最适合自己的选择。

    虚拟化管理软件比较 -- 幻灯片

    结合前段时间对不同虚拟化管理软件的评测工作,准备了一套讲座用的幻灯片。PDF版本的文件可以从这里下载。如果有人需要ODP版本的文件,直接跟我联系吧。

    展开全文
  • Web管理虚拟机平台

    千次阅读 2018-09-07 19:54:22
    考虑到硬件和成本的约束,为了充分利用现有的资源和方便进行管理,需要不同的环境进行实验的时候,建立各种不同的虚拟机进行相关的实验。特别是一些大数据方面的集群实验、区块链多节点的实验、人工智能的分布式计算...

     


     

    • 一、平台目标

     随着大数据和人工智能的热潮,计算机专业学生平常做实验的环境要求也越来越复杂。考虑到硬件和成本的约束,为了充分利用现有的资源和方便进行管理,需要不同的环境进行实验的时候,建立各种不同的虚拟机进行相关的实验。特别是一些大数据方面的集群实验、区块链多节点的实验、人工智能的分布式计算等等都需要多种不同的虚拟机来进行实验和操作。

    虽然不同的虚拟机解决了不同系统和环境的需求问题,但是随着同学的增加和实验的不断扩展,大量虚拟机的管理也是一个需要解决的问题。现有的远程软件虽然可以进行登录和操作,但是当大量实验课进行的时候,太多的远程连接会消耗太多的系统资源或者难以方便快捷地进行管理,故Web虚拟机管理平台的开发势在必行。

    通过Web虚拟机管理平台,不仅可以在学校的内网进行相关的操作,把平台部署在公网服务器上,不论在何时何地,只要有网有浏览器我们就可以进行相关的学习和实验。同时,通过系统化的规划,每个相关的实验可以包含特定的虚拟机,让做实验的人单独管理,降低了管理的复杂度,同时也提高虚拟机操作的灵活性,如果不出现特殊的情况,基本可以实现自主操作和管理虚拟机。

    为了实现Web网页方式,远程Windows桌面和Linux桌面,经过一些调研和比较,选用了轻量级的开源的noVNC(http://novnc.com/info.html或者https://github.com/novnc/noVNC)技术来实现。noVNC是一个HTML5 VNC客户端,采用HTML5 websockets、Canvas和JavaScript实现,noVNC被普遍应用于各大云计算、虚拟机控制面板中,比如OpenStack, OpenNebula, LibVNCServer和 ThinLinc都用的是 noVNC。noVNC既是HTML VNC客户端、JavaScript库,也是构建在该库之上的应用程序。noVNC在任何现代浏览器中运行良好,包括移动浏览器(iOS和Android)。其特点有:

    特征

    • 支持所有现代浏览器,包括移动(iOS,Android)
    • 支持的VNC编码:raw,copyrect,rre,hextile,tight,tightPNG
    • 支持缩放,剪裁和调整桌面大小
    • 本地光标渲染
    • 剪贴板复制/粘贴
    • 主要根据MPL 2.0 获得许可,请参阅 许可文档以获取详细信息

    浏览器要求

    noVNC使用许多现代Web技术,因此无法获得正式的需求列表。但是,这些是我们目前了解的最低版本:

    Chrome 49,Firefox 44,Safari 10,Opera 36,IE 11,Edge 12

    服务器要求

    noVNC遵循标准的VNC协议,但与其他VNC客户端不同,它确实需要WebSockets支持。许多服务器都包含支持(例如 x11vnc / libvncserver, QEMU和 MobileVNC),但对于其他服务器,您需要使用WebSockets到TCP套接字代理。noVNC有一个姐妹项目websockify,它提供了一个简单的代理。noVNC提供一种在网页上通过html5的Canvas,访问机器上vncserver提供的vnc服务,需要做tcp到websocket的转化,才能在html5中显示出来。网页就是一个客户端,类似win下面的vncviewer,只是此时填的不是裸露的vnc服务的ip+port,而是由noVNC提供的websockets的代理,在noVNC代理服务器上要配置每个vnc服务,noVNC提供一个标识,去反向代理所配置的vnc服务。

    快速开始

    • 使用启动脚本自动下载并启动websockify,其中包括一个迷你Web服务器和WebSockets代理。该--vnc选项用于指定正在运行的VNC服务器的位置:

    ./utils/launch.sh --vnc localhost:5901

    • 将浏览器指向启动脚本输出的URL。点击“链接”按钮,如果VNC服务器配置了密码,请输入密码,然后享受!

     

    集成和部署

    有关如何将noVNC集成到您自己的软件中,或在生产环境中部署noVNC应用程序,请参阅我们的其他文档:

    • 嵌入 - 适用于noVNC应用程序
    •  - 适用于noVNC JavaScript库
    • 二、开发环境

    Realvnc:https://www.realvnc.com/en/ 等等

     

    • 三、开发步骤
    1. 基本环境搭建

    在主机windows10下的VMware14中安装虚拟机Windoserver2016、Ubuntu16.04、CentOS7,且Ubuntu和Cent OS都要安装图形界面,并且保证主机Windows10(192.168.1.33)、Windowsserver2016(192.168.57.129)、Ubuntu14.04(192.168.57.128)、Centos7(192.168.57.131)的网络畅通

    1. 在Windows下搭建VNC服务器
    1. 安装UltraVNC Server 并开启服务(安装后设置密码,最好三个虚拟机中的vncserver的服务密码都设置为一样:a1236540) 
    2. 安装Node.js

    安装时选择npm package manager

     

    安装ws、optimist、mime-types模块(执行websockify.js文件所需)

    C:\Users\Administrator>npm install ws

     

    C:\Users\Administrator>npm install optimist

     

    C:\Users\Administrator>npm install mime-types

     

    安装完ws、optimist、mime-types后会在C:\Users\Administrator\下生成node_modules目录(如果登录的用户是Administrator,换做其他用户的话就是:C:\Users\Jiao\node_modules)

         3.把noVNC.zip解压到node_modules目录下,再把websockify-master.zip解压到noVNC目录下,形成这样的目录结构:

       4.执行websockify.js:转发9000端口的http链接到5900端口(UltraVNC Server的默认端口为5900)C:\Users\Administrator\node_modules\noVNC\websockify-master\other\js>node websockify.js --web C:\Users\Administrator\node_modules\noVNC 9000 10.1.0.112:5900

        5.在浏览器地址栏输入http://192.168.57.129:9000/(服务器端IP:192.168.57.129)可能会提示:

    这时候只要在websockify.js中搜索filename += ‘/index.html’改成filename += ‘/vnc.html’,再重复第4、5步,出现下面的情况,证明成功连接了:

    点击“链接”输入UltraVNC设置的密码(a1236540) 完成,即可见到winserver2016的远程桌面:

    6. 在做win下相关的实验的时候我们需要输入相应的密码,不方便,可以按照以下步骤,设置win用户的自动登录:

    Win + R(运行相关的命令):control userpasswords2

     

    这时就会弹出一个用户帐户设置的窗口,在这里找到“要使用本计算机,用户必须输入用户我和密码”的设置项。

     

    我们把该设置项前面的勾选去掉,最后点击确定按钮。

     

    这时会弹出一个自动登录的默认账户设置窗口,在这里设置好用户名,然后下面输入对应的登录密码(注意必须保证和登录密码一样),最后点击确定按钮。这样以后Windows系统启动的时候,就会自动登录该账户,而不会再出现登录选择窗口了。

     

    7. 如果想不输入服务器密码和自动点击自动远程,可以添加两个参数在url中,password=a1236540(服务器密码参数)   autoconnect=true(自动登录参数) 则新的url应该为http://192.168.57.129:9000/?password=a1236540&&autoconnect=true 可以直接远程到相应的系统桌面:

    3、在Ubuntu中建立vncserver的服务器

    1. 先更新Ubuntu的软件包:sudo apt-get update
    2. 安装vnc4server:sudo apt-get  install  vnc4server
    3. 启动vnc4server服务:vnc4server    //这里会提示输入密码,就是服务器的访问密码:a1236540
    4. 安装并配置noVNC:sudo apt-get install git

    git clone https://github.com/kanaka/noVNC

                                               cd noVNC

                                               ./utils/launch.sh --vnc  127.0.0.1:5901  

                                              //127.0.0.1:为ubuntu本机的IP地址。      

                                              //5901:为目标机启动vnc4server时启动的1号服务

                                              vi vnc_token  //新建一个文件,写入要访问的目标机的相关内容     

                                             //最后启动的命令如下

                                               ./utils/websockify/websockify.py --web ./ 8844 --target-config=/home/jiao/noVNC/test.conf  

    执行上述最后一条命令后结果(要切换到noVNC目录下执行,要提前关闭防火墙):

     

    5. 测试连接Ubuntu上的网站URL为:http://192.168.57.128:8844/vnc.html?path=?token=abc789&&password=a1236540&&autoconnect=true

    说明

    192.168.57.128:8844 为主机Ubuntu的ip和vnc服务器的端口

    path=?token=abc789 为vnc_token文件中写入的目标机的名称

    password=a1236540 为Ubuntu的vncserver服务器的密码,有了这个参数,可以不用手动输入服务器的密码

    autoconnect=true :  为自动点击“链接”自动登录的参数

    测试结果为:

     

    4、Centos7中建立VNCserver服务器

    1.(如果防火墙未关闭)关闭防火墙:service  firewalld.service  stop

     

    2. 查看本机ip地址,将ip+端口,写入Ubuntu代理服务器的配置中:

     

    3. 安装git(以便下载novnc源码):yum  install  –y  git

     

    4. 安装配tigervnc: yum install tigervnc-server

     

    输入 vncserver :1 启动服务,并输入密码=a1236540(注意密码长度不小于6位,1代表的是默认端口5900+1=5901):

     

    5. 将winserver2016、centos7、ubuntu16.04都配置到代理服务器的最后的配置文件为:test.conf

     

    6. 因为虚拟机启动的时候,最好可以自动登录,方便做实验,所以要设置CentOS7启动的时候,自动登录相关的用户:

    首先,在 CentOS 7 桌面右击鼠标,选择“设置”。

     

    在设置界面中点击进入“用户”。

     

    随后,在用户窗口中,先选中你要自动登录的用户名,再点击右上角的“解锁”。

    这时,会弹出一个认证窗口,要求你输入当前用户的登录密码。密码输入完成后,点击“认证”。

     

    认证之后,我们再打开“自动登录”的开关。

     

    现在,我们在下次开机时就可以无需手动输入密码自动登录到 CentOS 7 系统了。

    7. 当不同的同学的开启不同的虚拟机做实验的时候,不能再手动去启动每个虚拟机的vncserver服务,需要在win和linux系统下,都设置为随系统启动而启动。在win下直接将Utrlvnc直接设置为自启动就可以。而在Centos下需要进行相应的设置:

    (1)创建一个新的配置文件,以开启1号窗口为例(也可以同时开启多个窗口,修改数字即可),方法如下:

    cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service

    或者再增加一个窗口:

    cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service

    (2)编辑/lib/systemd/system/vncserver@:1.service,设置用户root相关参数,最终内容如下:

    上述内容中最好设置为root用户,否则可能会看到以下报错:

     

    (3)更新systemctl以使其生效systemctl daemon-reload 

    (4)设置vncserver的密码 vncpasswd root

    按提示输入密码以及确认密码

    (5)启动该服务用来启用vnc的1号窗口;

    systemctl start vncserver@:1.service  或者 vncserver :1

    关闭1号窗口:

    systemctl stop vncserver@:1.service   或者 vncserver -kill :1

    (6)设置为开机自动启动;

    systemctl enable vncserver@:1.service

    5、利用Ubuntu代理服务器访问            

    配置完三个虚拟机以后,启动三个虚拟机,winserver和centos的vncserver会直接启动,不需要特殊的处理。而Ubuntu需要启动vncserver:vncserver :1 ,然后进入noVNC目录,启动novnc:./utils/websockify/websockify.py --web ./ 8844 --target-config=/home/jiao/noVNC/test.conf  在浏览器中可以分别通过以下url直接访问三个虚拟机的远程桌面:

    WindowsServer2016:http://192.168.57.128:8844/vnc.html?path=?token=abc789&&password=a1236540&&autoconnect=true

    Ubuntu16.04:http://192.168.57.128:8844/vnc.html?path=?token=abc123&&password=a1236540&&autoconnect=true

    CentOS7:http://192.168.57.128:8844/vnc.html?path=?token=abc456&&password=a1236540&&autoconnect=true

     

    集成到JavaWeb平台

    1. 在MyEclipse10中创建JavaWeb项目——WebVMware

    • JDK用的是Myeclipse10默认的JDK1.6.0_13
    • Tomcat用的是apache-tomcat-7.0.42
    • 利用ajax技术,实现页面的局部刷新,也就是切换和管理虚拟机
    • 前端的布局直接用的bootstrap框架和js进行相关的功能控制
    • 项目的目录结构和具体的相关设置为:

     

    2. 集成noVNC功能的关键点

    • 为了通过网页来控制做实验所需要的虚拟机,就需要通过Tomcat服务器来调用VMware的命令管理方式,直接通过Java调用Win先命令的接口Runtime来直接开启和关闭相应的虚拟机,关键的代码为:
    • 为了随时切换不同的虚拟机进行相关的实验操作,需要对网页的内容进行局部刷新,所以需要通过不同的点击事件,来通过ajax去对服务器的虚拟机进行相应的操作,关键的代码为:

     

    3. 待解决的地方

    • 在win和linux的网页远程桌面操作的时候,剪贴板的功能不稳定,而且不支持文件的传输操作,需要解决
    • 在本平台的情况下,只是建立了简单的三台虚拟机进行实验。其中实用阶段的网络延迟、细节操作、权限的限制、链接的安全性和高效性都是需要我们考虑和解决的
    • 本平台在实验的过程中,参考了很多网友的博客或者帖子,再次表示感谢,参考文献中也列出了一些地址,如有错误或者不足的地方,欢迎大家讨论~

     

    参考文献

    1. noVNC在Windows下的安装配置:         http://www.zhumeng.org/thread-292491-1-1.html 
    2. win 设定 默认登录的用户名和密码:https://jingyan.baidu.com/article/fc07f989b561cd12ffe519cf.html 
    3. noVNC+VNCserver实现远程访问Docker容器桌面:https://blog.csdn.net/u012829611/article/details/72576493 
    4. CentOS 7 怎样自动登录:https://jingyan.baidu.com/article/a3761b2bc3c3771577f9aa6f.html
    5. CentOS7下安装配置vncserver/vncviewer:http://blog.51cto.com/hsuehwee/1632211  
    6. vnc与Windows、linux远程桌面实现复制和粘贴:https://blog.csdn.net/u014505990/article/details/72628243 
    7. vmrun命令行的使用(VMWare虚拟机):https://blog.csdn.net/devper/article/details/54089342 
    8. Java——调用Linux和Windows下命令行执行程序:https://blog.csdn.net/u013507760/article/details/51899723 
    9. JavaWeb 之 AJAX和其json数据的处理:https://www.cnblogs.com/jiangwz/p/7450570.html 

     

    展开全文
  • WEB数据库管理平台简介 给大家推荐一个自研的开源WEB版数据库管理工具:kb-dms 开源项目地址: kb-dms ,如果能帮到你,请帮忙点个星。谢谢~ 本工具主要有以下特点: 权限控制: 避免数据源权限不可控的风险,避免...

    WEB数据库管理平台简介

    给大家推荐一个自研的开源WEB版数据库管理工具:kb-dms

    开源项目地址: kb-dms ,如果能帮到你,请帮忙点个星。谢谢~

    本工具主要有以下特点:

    • 权限控制
      避免数据源权限不可控的风险,避免数据、库表被无故修改。
    • 误操作拦截
      SQL语句不小心写错,不用担心,该工具将阻断相应SQL的执行,保障数据的安全。
    • 记录可追踪
      所有的SQL执行记录都会被该工具记录,方便数据的恢复和定责。
    • 操作体验
      该工具的操作体验与客户端基本无异,而且还开发了很多新功能,方便大家使用。
    • 建表规范
      平台推出了很多建表及索引相关的规范,并且从前端图形化页面上实现了相应误操作的拦截,帮助用户更好的规范库表。

    kb-dms 是一个WEB版的数据库管理平台,此平台支持权限可控、执行记录追踪、数据源配置管理、在线库表查询+编辑+新增等操作。

    功能简介

    数据查询更新在这里插入图片描述
    库表操作在这里插入图片描述
    权限控制在这里插入图片描述
    执行记录在这里插入图片描述

    平台制定的建表规范

    为规范建表,kb-dms平台在图形化的建表页面上,添加也页面级的规范要求,用来约束用户,保证数据库规范的落实。
    数据库规范对于库表的管理有未来的扩展性都有很好的帮助。

    表规范

    1. 表名仅支持英文小写字母,数字,以及下划线,且以英文字母开头
    2. 表名不能为MySQL保留字
    3. 表名长度不能超过64个字符
    4. 存储引擎必须为InnoDB
    5. 字符集编码必须为utf8或utf8mb4
    6. 表必须提供comment备注以说明表用途

    字段规范

    1. 字段名仅支持英文小写字母,数字,以及下划线,且以英文字母开头
    2. 字段名不能为MySQL保留字
    3. 字段名长度不能超过32个字符
    4. 不能使用char类型,使用varchar或tinyint代替
    5. 不能使用timestamp类型,使用datetime代替
    6. 非id字段必须为not null 并提供默认值
    7. 字段必须提供comment备注
    8. 不能使用set,enum或bool类型,请使用varchar或tinyint代替
    9. 必须包含:insert_time detetime not null default CURRENT_TIMESTAMP comment ‘插入时间’
    10. 必须包含:update_time datetime not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’

    索引规范

    1. 主键id必须为bigint(22) unsigned not null auto_increment类型
    2. 唯一索引名称:uniq_字段名称[_字段名称]
    3. 非唯一索引名称:idx_字段名称[_字段名称]
    4. 索引个数不能超过8个,索引字段不能超过5个
    5. 唯一索引不能和主键重复
    6. 包含idx_insert_time(insert_time)索引
    7. 包含idx_update_time(update_time)索引

    下一篇: WEB数据库管理平台kb-dms:本地安装与启动教程【二】

    展开全文
  • 课程简介: 历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中...
  • 前言最近,为了方便对命令行过敏的测试或开发人员,我决定部署一个可视化的管理平台来管理docker,在我重装十几次系统(当然,只是虚拟机镜像克隆),对比之后,终于选择了一款心仪的管理平台。部署docker环境安装...
  • WEB应用发布管理平台的设计与实现

    千次阅读 2017-05-17 01:18:55
    一、设计的初衷 应用发布上线、版本回退以及配置管理是每个运维人员都要面对的工作内容,有时候甚至还会占用非常多的精力。 ...这也是我思考、设计和实现一个WEB应用发布管理平台的初衷。 一定会
  • 10个开源web后台管理系统(一)

    万次阅读 2019-10-23 15:31:41
    Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用 10个开源WEB后台管理系统(一) 1. AdminLTE AdminLTE-是一个完全响应的...
  • + "它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。") .endObject(); //创建文档对象 client.prepareIndex("blog1", "article", "1").setSource(builder).get(); //关闭连接 ...
  • 华为路由器利用web管理界面备份

    千次阅读 2018-08-01 16:01:10
    有用tftp的,有直接display current configuration命令导出的,但是因为我的华为路由器是边界路由器,所以使用xftp导出的时候连接不上远程xftp服务器,无意中在浏览华为官方文档的时候发现了华为路由器有web管理界面...
  • Webmin:一款基于Web的Linux管理

    万次阅读 2020-05-13 16:25:31
    Webmin不仅为系统管理员提供了丰富的管理工具列表,还随带自己的内部配置和管理选项: 图2. Webmin的内部配置菜单 选择其中一个链接会打开许多??可编辑选项。比如说,下面我选择了Webmin配置选项。如你所见,有几个...
  • 基于C#、.net Web 学生信息管理系统

    千次阅读 2020-04-12 10:59:35
    疫情期间少出门,不聚集!在家里也是闷的慌的,然而就体验...3、课程信息管理模块:查询、新增、修改、删除 4、班级信息管理模块:查询、新增、修改、删除 5、教师信息管理模块:查询、新增、修改、删除 6、学生信息...
  • mongodb可视化web管理工具---adminmongo

    千次阅读 2018-09-30 10:08:01
    最近想自己搭建一个个人博客,所以学了下mongodb,mongodb是用命令行输入的,有些人可能不太习惯,我自己找了下mongodb的一些可视化工具,一开始安装的是mongoVUE,mongoVUE页面挺友好的,还不错,但是最新版本的...
  • 基于kettle8的web端调度监控平台

    千次阅读 2019-06-11 10:08:32
    转自:... 基于web版kettle开发的用户专业版B/S架构工具:https://blog.csdn.net/weixin_34015336/article/details/86007813 Kettle的Web版分享:https://www.oschina.net/question/2615834_21494...
  • kb-dms平台为用户提供了命令行窗口执行的功能可以进行查询等操作,还提供了快捷键的方式及在线编辑的功能等。 窗口命令行操作数据库 命令行窗口有表名提示功能及sql关键字提示功能,方便用户进行sql的输入。 ...
  • Samba的Web界面管理

    千次阅读 2017-03-30 17:14:20
    Samba的Web界面管理 本人在网上搜索了一下,有一个更改用户密码的功能,就这一个功能,后来由于工作需要,特用php语言写了一个功能,实现添加用户功能(add.php),删除用户功能(del.php),修改用户密码(change.php)...
  • 值得一提的是,这套中台系统由于讲解了如何统一管理企业内部各大应用系统的“菜单资源列表”、“操作权限”,故而本门课程的“代码实战”是建立在之前debug录制的“企业权限管理平台”这套课程的基础之上的,故而在...
  • Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本, 拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。 ...
  • 数据源就是数据库的IP地址及账号信息,kb-dms平台会自动获取该IP下所有的数据库列表信息。 名称 数据源的一个名称,用于方便标记和区分数据源。 类型 类型分为mysql/sqlserver 所属团队 数据源所属的团队,方便...
  • Java Web酒店管理系统源码 +mysql 数据库

    千次下载 热门讨论 2014-03-19 10:04:37
    系统开发平台:MyEclipse 6.5。 数据库管理系统软件:MySQL 5.0。 java开发包:JDK 5.0以上。 Web服务器:Tomcat 6.0。 本系统采用MVC架构模式开发,具体技术如下。 AJAX框架:使用ExtJS技术开发 显示层:使用...
  • JAVA Web文件管理系统

    热门讨论 2011-01-06 16:34:25
    Web文件管理系统 文件管理系统 教材案例(Web文件管理系统)
  • Web基础(三)Python Web

    千次阅读 多人点赞 2018-11-14 19:11:49
    文章目录Python Web基础1. WSGI1.1 概述1.2 实现原理1、WSGI Server/gateway2、WSGI Application3、WSGI MiddleWare1.3 测试 WSGI服务器代码简析1.4 实现WSGI服务器1.5 生产环境中的Web服务器[Gunicorn]...
  • 主流的Web应用程序平台

    千次阅读 2017-09-06 20:15:40
    主流的Web应用程序平台 动态网站应用程序平台的搭建需要使用Web服务器发布网页,而Web服务器软件又需要安装在操作系统上,并且动态网站都需要使用脚本语言对服务器端进行编程,所以也要在同一个服务器中为Web服务器...
  • 打开localhost:8080链接,进入kb-dms数据库管理平台首页 页面自动跳转到登录页面 点击登录框,右上角的按钮,页面跳转到注册页面 注册成功后,页面自动跳转到登录页面 输入注册的账号密码,点击回车键(或登录按钮)...
  • 后台WEB原型页面后台管理 后台WEB原型页面后台管理 后台WEB原型页面后台管理 后台WEB原型页面后台管理
  • 物流管理平台 java web 完整项目 包含源码和数据库 物流管理平台 java web 完整项目 包含源码和数据库
  • 数据统计页面主要用于统计用户对于数据库操作的执行记录,方便管理员及用户查看平台的使用情况。 统计页面如下图所示: 接入团队 统计平台接入的团队数量。 数据源数量 统计平台数据源的数量。 执行次数 统计平台...
  • 依赖工具安装 安装JDK1.8(自行安装) 安装JAVA开发工具Idea、eclipse等一个(自行安装) ...WEB数据库管理平台kb-dms:功能简介【一】 下一篇: WEB数据库管理平台kb-dms:注册与登录【三】
  • 系统初始化的管理员拥有平台最大的权限,只有管理可以创建团队和添加管理员。 负责人 团队可以配置相应的负责人,可以配置多个。只要团队的创建人和负责人才可以编辑团队、更新成员信息。 成员 团队里的人员列表,由...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 435,220
精华内容 174,088
关键字:

web管理平台