版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 翻译:万宁2011/05/0 9AppScale开源的PaaS平台 使用手册UCSB技术报告#2011-01 2011年1月Chris Bunch,Navraj Chohan,Chandra Krintz加利福尼亚大学,计算机科学学院目录1.介绍31.1AppScale 内部机制31.2Google App Engine提供的API集合31.3其他的AppScale API32.安装和部署32.1部署AppScale32.2高级部署策略32.3常见错误32.4社区支援(Community Support)33.使用AppScale33.1数据库服务33.2监测服务33.3Neptune服务3
2、4.限制与未来工作34.1未来发展方向35.致谢31. 介绍AppScale 是加州大学圣塔芭芭拉学院在参加研究下一代编程系统时研发的,一个可扩展的、 分布式的和故障容错的云操作系统。AppScale作为云计算组织结构中PaaS层(Platform as a Service)的云的平台,管理、执行虚拟化(如Xen、KVM等)或没有虚拟化的,通过流行的云计算架构(如Amazon、Eucalyptus等)构建起来的集群资源。AppScale 平台通过write-one run-anywhere(WORA)技术虚拟化、抽象并多路复用了云计算提供的各种系统服务,并通过简化使用云计算和分布式计算技术开发
3、、部署应用程序的过程,AppScale带来了预制的、私有的、集群的云计算组织结构。为了实现这一目标,我们仿效了商业云计算系统的几个主要层面:(1)建立一个用户社区;(2)从实际应用出发进行研究和实验;(3)探索、综合其它基于开源技术实现的、 扩展性强的云计算系统。我们选择了要效仿的第一个API是 Google App Engine。Google App Engine是提供可伸缩的Web服务技术(消息,关键价值的数据存储,多任务处理,Web服务器支持,弹性,和资源管理等,其中)的云计算平台。使用 Google App Engine,开发人员使用Google体统的开放源码软件开发工具包(SDK)调
4、试和测试所开发的非可扩展版本的基于API的应用程序。然后,开发人员将他们的代码和数据上传到 Google 的群集,就可以低价租用Google提供的对每个应用程序用户的付费使用(“pay-per-use”)业务了。AppScale实现了“开源”的Google App Engine提供的 API。这样,在 Google App Engine上部署运行的应用程序不需要修改私有群集资源和公共云基础架构就可以部署和运行在AppScale上。AppScale API和服务的实现了目标应用的规模化,分布化,容错性,高性能,高可用性。我们充分利用成熟的开源技术,最大程度使这一点成为可能。AppScale实现了
5、支持多种开发语言(Java,Python,Ruby)开发的运行应用前端(runtime frontends)和广泛的开源数据存储技术(关键值存储、关系数据库等)。 AppScale不是一个Google App Engine或其他任何公共云服务平台的替代品,相反,AppScale是一个强壮的,跨多个应用程序动态分布资源的分布式系统。 AppScale平台提供了包含Google App Engine的服务和基本API在内的服务和API集。AppScale提供的这些技术对一些技术领域的应用,如数据分析和数据密集型的计算应用来说,显得尤其重要。AppScale以服务的形式提供这些技术,例如AppSca
6、le “service-izes”库,工具集和软件包,还包括了为Google App Engine提供支持的MapReduce,x10.R和MPI等技术。AppScale为这些技术提供了自动配置,部署和分布式功能,以支持他们的弹性伸缩,负载均衡及容错能力。由于AppScale在云计算的应用层和服务及API层之间提供了一个软件层,那么我们可以在应用中加入现有的一些云服务。同样的,AppScale提供了一个“混合”云平台 一个编程系统,通过它应用程序可以同时或不同时地访问不同的云组织(公共云、私有云或混合云)提供的不同的服务。这些技术可以让开发人员在不同的云平台间移动数据,例如灾难恢复,容错,数据
7、备份等,以减少公共云的成本(使用成本更低的替代品),并且可以从有限制的私有云资源“脱离”到公共云“要即有”的环境中。1.1 AppScale 内部机制图1显示了AppScale的布局,最高级别是一个负载平衡器(Load Balancer),它路由传入的用户请求到一个应用服务器(Application Server),这个应用服务器的副本可能存在于不同数量的远程主机上。应用层由大量的服务的集合所组成,通过排除各个应用间的重复任务的方式简化了应用程序的开发和部署。最底层是一个数据库服务系统,提供磁盘上的数据持续化存储功能。AppScale在自动提供服务的同时也自动提供了自动容错和自动扩展功能。自动
8、化的关键是建立一个数据存储机制。AppScale支持许多用不同语言实现的不同设计的数据库系统,这些数据库系统有Cassandre,HBase,Hypertable,MongoDB,MemcacheDB,Scalaris,SimpleDB,MySQL Cluster和Voldemort。图 1 AppScale的层次结构:负载均衡器,多个应用服务器,支持不同API的不同服务和持续化的数据存储1.2 Google App Engine提供的API集合最重要的,AppScale提供了Google App Engine实现的API集合。这些API提供了多种可扩展的Google App Engine服务
9、。Google App Engine的API集合包括了Blobstore,Channel,Datastore,Images,Memcache,Namespaces,TaskQueue,Users,URL Fetch 和 XMPP。在Http://appengine/docs/上有每一个API的概述和功能介绍。我们在AppScale中使用开源软件系统,工具和一些开源服务仿效了这些API并开发了一些其他的新的组件。这些API的分布式执行,是我们能够提供云计算平台应用程序的隔离性,可扩展性,弹性和容错性。这与Google App Engine只在单机上提供调试和测试SD
10、K形成鲜明的对比。我们将在第4节描述AppScale目前不支持的API的一些特性。Blobstore API Blobstore API 使用户能够存储二进制数据,文本和大型的数据实体。通过在一个窗体应用程序中输入文件名的形式来实现数据上传。使用Blobstore API,上传的文件大小不受限于传统的Bolb字段的1MB大小的存储限制。Channel API该API允许应用程序从应用程序服务器到客户端的浏览器推送消息。应用程序必须注册申请一个服务令牌,而JavaScript库则使用这个服务令牌顺序连接到一个消息服务。Channel API对创建在线聊天或实时多人游戏这类的应用程序显得十分有用。
11、AppScale实行了相同的消息推送机制,注册登记了应用令牌的程序可以将消息推送至多个接收者,而Google App Engine在此上强制限制了每个消息发送通道只能有一个接收者。AppScale使用了Ejabberd和 Strophejs技术实现channel API。 Datastore API 数据存储API Datastore API实现了数据持久性。此API提供了许多有用的功能来将各种数据操作映射为简单的PUT, GET, DELETE, QUERY操作.谷歌查询语言(Google Query Language/GQL)与标准SQL语句类似,是一个SQL的子集,但从根本上讲,它缺乏对
12、数据的关系操作,例如JOIN和MERGE操作,AppScale使用了内存过滤器来过滤Google App Engine在范围查询数据时映射而成的GQL语句。AppScale使用了和Google App Engine相同的事务语义处理机制(multi-row/key,atomic updates等)。事务只能在一个实体组内进行,实体组是一个描述数据存储元素之间关系的可编程化的构件。同样,交易则通过应用程序将它传送到Google App Engine的“run_as_transaction”功能时表现出来。AppScale中所有的数据存储操作事务遵循“读-写”独立的ACID标准。(ACID-com
13、pliant with READ-COMMIT isolation)AppScale的事务执行是数据无关的,它依赖ZooKeeper来锁定目标实体组。ZooKeeper存储了有关哪些实体当前被锁定,交易中间件采用了哪些垃圾回收器来确保这些锁定不会存在过长时间的信息。AppScale采用了在数据库中保存日志的方式来实现当事务失败时的回滚机制。开发人员可以在应用程序需要跨多个键和原子更新时使用实体组和事务(在一个实体组内),然而,事务语义引入了开销(overhead)机制,限制了底层数据库的实现和可扩展性 (相对于非事务性操作)。为了减少这种开销,我们鼓励程序开发人员避免创建大型实体组和在实体组间
14、互相传播的碎片。Images API 图像 API 简化了图像的编程操作。此 API 的基本功能包括生成缩略图、 旋转、 组合、 转换格式和裁剪图像等。AppScale使用 Google App Engine SDK相同的方法来实现此API。Memcache API Memcache API 允许应用程序将其经常使用的数据存储在分布式的内存网格。这可以作为一种缓存机制以防止相对耗资源的重复计算或数据库访问。开发人员必须注意的是为了创建新的空间来进行操作缓存而导致某些实体被清空、撤销的这种情况。 Namespace API 命名空间的API Namespace API 实现了将数据隔离到不同的命
15、名空间的能力。例如,开发人员可以在不乱动实时生产数据的情况下测试其应用。Namespace API 还可以和 Memcache API和Task Queue API一起使用。Task Queue API 任务队列API Google App Engine平台缺乏执行大于30秒的计算和操作的能力。TaskQueue API通过web请求对任务进行排队,可以后台方便的进行计算(或执行任务)。Google App Engine限制了任务持续时间为30秒(GAE 1.4.0版本),AppScale 实现相同的限制,但可以通过修改轻微的代码来修改此值。一种可能的解决方法是建立一个多任务队列,每个任务有3
16、0秒的工作时间,然后再将此多任务队列作为另外一个任务插入到原有的队列位置中。Users APIUsers API通过使用cookie提供web应用的身份验证机制。就像用户可以注册一个Google账号来使用Google App Engine一样,AppScale同样需要用户通过AppScale的门户网站的网址来注册一个AppScale的账号。此外,Users API还会对普通用户和管理员用户进行区分。 URL Fetch APIURL Fetch API 使应用程序能够做发布(POST)和获取(GET)远程资源。可以使用此 API 来访问来自第三方提供的REST接口的API。在AppScale
17、中使用此API和在Google App Engine SDK中使用完全一样。XMPP API通过一个有效的XMPP账户,XMPP API 提供了接收和发送XMPP消息的能力,Google App Engine利用 Google Talk的基础架构,而 AppScale则是能够在 Ejabberd 中使用一种可扩展的实现1.3 其他的AppScale API除了 Google App Engine API,AppScale还实现其他不被Google App Engine所支持的API。这些 API为新兴的云平台应用程序开发人员使用,如数据分析和高性能计算。MapReduce Streaming
18、API就Google App Engine本身而言,目前没有一种方法可以让应用程序执行长时间运行的、 任意的计算。AppScale 支持这种通过 Hadoop 流的计算:(/hadoop/HadoopStreaming)。通过 Hadoop 流媒体,用户可以指定可以在 MapReduce编程规范下运行的映射器(Mapper)和收缩器(Reducer),AppScale只需要对Hadoop流公开一个简单的API接口,便可让Hadoop流框架自动管理容错和数据复制功能。此 API 是:putMRInput (data、 inputLoc): 传入字符串形式
19、的数据和input Loc,在Hadoop 文件系统位置创建名为inputLoc的 Hadoop 文件。 runMRJob (mapper、reducer、 inputLoc、 outputLoc、config): 传入mapper和reducer的相对路径(相对于主运行的Python文件),运行 Hadoop MapReduce 流作业。输入的HDFS 文件名为inputLoc,输出的HDFS文件名为outputLoc。如果“配置”是通过哈希表方式传递的,那么关键 / 值对作为配置选项传递给 Hadoop 流。getMROutput(outputLoc): 给定一个 Hadoop 文件系统位
20、置outputLoc,以字符串形式返回此文件的内容。 writeTempFile (suffix,data): 在本地计算机/tmp目录下写入一个内容为data,后缀为suffix的临时文件,对于在节点间传递从 MapReduce 作业中排除的文件非常有用。getAllIPs(): 返回AppScale云中所有用户的IP。可用于排除或包括基于某些用户定义的应用程序逻辑的节点。getNumOfNodes(): 返回一个整数,AppScale云中的节点数目。可用于确定在MapReduce作业运行时、有多少Map任务和Reduce任务应获得最佳性能运行(推荐值是每节点只运行一个Map任务)getMR
21、Logs(outputLoc): 返回一个字符串,其输出是位于 outputLoc 的 MapReduce 工作日志。返回的数据格式为Hadoop 的标准格式中的XML与键/值对的组合。目前,Mapper和Reducer可以用Python,Ruby或Perl语言开发。此外,我们也可以轻松地使用其他编程语言支持扩展 AppScale。若要使用此 API,云管理员必须选择 HBase 或 Hypertable 作为平台数据存储以便Hadoop 的分布式文件系统 (HDFS) 的自动部署 (这两种数据存储系统都是通过使用HDFS来实现的)。一个使用 MapReduce 流 API 的完整的示例是一个
22、与AppScale 工具捆绑在一起应用程序,名字叫做mapreduce.EC2 API Google App Engine并不提供任何机制使用户可以与亚马逊 Web 服务进行交互,为了填补这一空白,AppScale 提供了亚马逊 EC2 API。用户可以使用此 API 生成虚拟机并通过 AppScale 的 web 服务完全管理这些虚拟机。此 API 提供的主要功能是EC2 命令行工具的镜像:ec2 run instances(options): 生成与指定的选项 (解释为命令行参数) 的虚拟机。ec2 describe instances():返回当前用户所拥有的所有计算机的状态。 ec2
23、terminate instances(options): 终止指定的选项的虚拟机(解释为命令行参数)。 ec2 add keypair(options): 创建新 SSH 密钥对,可以用来登录到使用此密钥的名称创建的虚拟机。 ec2 delete keypair(options): 从底层的云基础架构中删除命名的SSH密钥对。 ec2 describe availability zones(options): 在Eucalyptus中,返回可以被用户创建的虚拟机数量相关的信息。 ec2 describe images(): 返回系统可使用的虚拟机映像、虚拟磁盘和可使用的内核相关信息。 ec2
24、 reboot instances(options): 根据选项重启虚拟机。(解释为命令行参数)。其他函数可用于处理存储和检索 EC2 凭据: 它们的用法可以在 与 AppScale 工具捆绑在一起的ec2demo应用程序中找到。另外,KOALA Cloud Manager项目在Google App Engine的一个应用上实现了几个AWS的API(例如写操作、EC2、EBS、S3和ELB),并可以运行在 Google App Engine和AppScale上。它可以在这里找到:/p/koalacloud/。2. 安装和部署 AppScale的一个典型
25、应用就是在虚拟机镜像中安装使用AppScale。在虚拟机中安装AppScale增加了AppScale的弹性 (服务的增长和收缩,负载平衡)。我们目前支持 Xen 和 KVM 作为虚拟化基础设施的使用,但这些技术是不足够的。通过虚拟化的专用群集部署 AppScale 需要复制虚拟机镜像和手动初始化实例。因此,云管理员可以虚拟化软件系统来实例化客户虚拟机(VMs)。我们建议使用 vmbuilder 来创建在Xen平台上运行的客户虚拟机(Vm)和使用Virt-install来创建在KVM环境中运行的客户虚拟机(Vm)。我们目前只支持在Ubuntu 10.0 (Lucid Lynx) Linux 服务
26、器系统和分布式系统上来实现客户虚拟机的这些技术。来宾 VM 映像运行 Ubuntu 10.04 服务器版后确保,theinstance 是能够获得访问的 IP 地址 (例如,网络正常工作)。一旦在Ubuntu 10.04服务器版中创建了一个客户虚拟机镜像实例后,要确保此实例能够获得可访问的正确的IP地址(例如:网络正常运行)。AppScale的另外一种方式是在云基础架构中部署,我们目前支持亚马逊Web Service弹性计算云 (EC2)和Eucalyptus运行在虚拟私有集群上的AWS的开源实现。我们已经在AppScale的安装中向用户提供了亚马逊的AMI镜像。云管理员必须获取帐户凭据,并且
27、应通过测试来确定一个单独的 VM的部署没有任何问题,并且每个实例都应有一个正确的IP地址。云提供商应该确保这些故障(虚拟机启动故障或无法获得正确IP的故障)不会发生。终止成功运行的实例后,我们进入下一节。2.1 部署AppScale如上文所述,用户可以在虚拟专用群集或云基础架构上部署AppScale。AppScale通过AppScale自带的工具集实现自动化部署和云平台的管理接口。这个工具集配置每个平台组件并按正确的顺序启动他们,此外,这个工具集还负责在各个AppScale VM实例间同步SSH密钥和凭据。云管理员可以在网络中任何具有云访问权限的物理机上运行这个工具集,但必须注意的是,这台机器
28、必须能解析所有AppScale虚拟机实例的IP地址,同样的,任何VM实例都必须能正确解析AppScale中其他实例的IP地址并与之通信。AppScale的规模大小由云平台管理员决定,规模可以是一个或多个节点,一个节点就是一个AppScale的虚拟机实例。AppScale在虚拟专用群集和云基础架构上的部署有一个重要区别:虚拟专用群集部署中,用户(云管理员)必须手动启动(初始化) 节点,如果用户要部署X个节点的AppScale环境,就要手动复制X个AppScale的节点镜像,这些节点(AppScale虚拟机)可以根据系统可利用资源的多少而被实例化在不同数量的物理机上。我们建议为每个AppScale
29、实例至少配置1GB的内存和2个虚拟CPU。管理员应该在每个实例成功初始化后登录到此实例,检查并记录此实例的IP地址。AppScale在云基础架构(例如AWS或Eucalyptus)上部署时,会自动进行VM实例化,也就是对管理员来说,VM自动实例化是AppScale云平台在云基础架构上部署过程的一部分。在任一情况下(指在虚拟专用群集和云基础架构上的部署),云平台管理员都要在配置文件中指定云平台的规模大小(可选)和节点的角色),此配置文件存在于运行AppScale工具集的同一物理机上。配置文件是用YAML22编写的,YAML是一种流行的,易用的,可读的数据序列化的标准格式。配置文件指定了云平台中节
30、点的数量和各个节点的角色。对于部署在虚拟专用集群环境中的AppScale来说,管理员必须手动指定那些已启动的虚拟机实例的IP地址:-:controller: :servers:- - - (再次提醒:这些实例的IP地址必须能够被运行AppScale工具集的机器正确解析)对于在云基础架构上的AppScale的部署,管理员为AppScale中的每一个节点指定一个唯一的标识符“node-X”(X为从1开始的整数):-:controller: node-1:servers:- node-2- node-3- no
31、de-4云配置文件将第一台机器标识为主节点(),在此节点上,AppScale会自动部署Database Master和Load Balancer,然后根据配置文件中的内容,在其它节点上部署Database Slave和Application Server。Application Server就是一个App Engine的应用程序。AppScale可以通过在控制器中指定具体内容来运行一个单独的虚拟机实例。(请参考:/p/appscale/wiki/Single_Node_AppScale_Deplyment)-:controller
32、: 或 :-controller: node-1,这种情况下,所有的组件都被一个单独的虚拟机实例在AppScale的部署过程中调用。在虚拟专用集群上部署AppScale时,有一个额外的步骤需要用户来执行。请注意,对于在云基础设施上的部署,AppScale工具集自动执行了这一步所以这一步是没有必要的。这一步设置了一个SSH密钥对,用户通过此密钥对访问和使用已经启动的虚拟机实例。用户可以通过AppScale的一个(命令行)工具“appscale-add-keypair ips ips.yaml”执行此功能。Ips.yaml是AppScale平台的配置文件名,它包含内容格式类
33、似上面说到的标识,即类似:-:controller: :servers:- - - (如果用IP来表示表示AppScale是在虚拟专用集群上部署的,用节点名则表示AppScale是在云基础框架上部署的)此工具会提示用户输入在配置文件中列出的每个虚拟机的root密码。输出如下所示:usermylaptop:/appscale-tools/ips$ appscale-add-keypair ips ips.yamlroots password: Now try logging into t
34、he machine, with ssh root, and check in:.ssh/authorized_keysto make sure we havent added extra keys that you werent expecting.The authenticity of host ()cant be established.RSA key fingerprint is e8:f5:6f:83:3a:06:84:38:b8:94:6d:59:d0:7d:fc:d0.Are you sure you want t
35、o continue connecting (yes/no)? yesWarning: Permanently added (RSA) to the list of known hosts.roots password: Now try logging into the machine, with ssh root, and check in:.ssh/authorized_keysto make sure we havent added extra keys that you werent expecting.The aut
36、henticity of host ()cant be established.RSA key fingerprint is e8:f5:6f:83:3a:06:84:38:b8:94:6d:59:d0:7d:fc:d0.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added (RSA) to the list of known hosts.roots password: Now try lo
37、gging into the machine, with ssh root, and check in:.ssh/authorized_keysto make sure we havent added extra keys that you werent expecting.roots password: Now try logging into the machine, with ssh root, and check in:.ssh/authorized_keysto make sure we havent added ex
38、tra keys that you werent expecting.A new ssh key has been generated for you and placed at/home/user/.appscale/appscale.You can now use this key to log into any of the machines you specified without providing a password via the following command:ssh rootXXX.XXX.XXX.XXX -i /home/user/.appscale/appscal
39、e从这一刻起,无论是在虚拟化专用群集或是云基础架构部署AppScale,接下来的步骤都是相同的。下一步是创建各个不同的AppScale的组件和实现自动配置,以组建完整的AppScale平台,这一步通过使用AppScale工具“appscale-run-instances”来实现。云管理员指定要在平台内和 (可选)希望部署的第一个应用程序中使用的数据库。管理员之后可使用工具“appscale-upload-app”上传一个或多个应用到正在运行的AppScale云平台。这个工具的输出类似以下的内容。在这个例子中,我们正在虚拟私有集群上部署AppScale,ips.yaml指定了就上文中节点的IP地
40、址和角色。(此例子中使用的数据库为Cassandra)若要在Eucalyptus上部署,那么用户必须在ips.yaml配置文件中添加“-infrastructure euca”的标志,若要在亚马逊EC2上部署,那么用户必须在ips.yaml配置文件中添加“-infrastructure ec2”的标志,对于这两种云基础架构上的部署,用户都必须用如上文所述的唯一的标识符(如“node-X”形式的标识符)来替代各个节点的IP地址。 usermylaptop:/appscale-tools/ips$ appscale-run-instances -ips ips.yaml -file ./sampl
41、e_apps/guestbook/ -table cassandraAbout to start AppScale over a non-cloud environment.Head node successfully created at . It is now starting up cassandra via the command line arguments given.Generating certificate and private keyStarting server at Please wait for the controlle
42、r to finish pre-processing tasks.This AppScale instance is linked to an e-mail address giving it administrator privileges.Enter your desired administrator e-mail address: The new administrator password must be at least six characters long andcan include non-alphanumeric characters.Ent
43、er your new password: Enter again to verify: Please wait for AppScale to prepare your machines for use.Copying over needed files and starting the AppController on the other VMsStarting up Cassandra on the head nodeYour user account has been created successfully.Uploading guestbook.We have reserved t
44、he name guestbook for your application.guestbook was uploaded successfully.Please wait for your app to start up.Your app can be reached at the following URL:/apps/guestbookThe status of your AppScale instance is at the following URL:/statusAppScale 开始先初始化系统中的第一个节点 (
45、主节点),然后再异步启动系统中的其他节点。此时,管理员输入电子邮件地址和密码以平台管理员权限登录平台。平台管理员是一个特殊的用户,他不仅能管理控制整个平台的运行,还能管理和控制平台中运行的所有应用程序。,以及本身的云平台中执行的所有应用程序。下一步,系统会启动Cassandra,Cassandra是由云管理员选择的平台存储系统。系统然后创建管理员帐户,上传一个名为GuestBook的应用程序示例,并返回给用户AppScale 云状态管理界面的URL。AppScale的负载均衡器在各个可用的服务实例之间实现负载平衡,然后提交到此URL界面。状态页列出了平台内每个节点上运行服务,使用的CPU和内存
46、,以及当前正在运行的应用程序。基于云基础架构的部署的输出结果是类似的,但该过程是从使用云基础架构来创建(初始化)虚拟机实例开始的。这取决于云基础架构的基本结构,创建或初始化虚拟机的时间,节点的数量和虚拟镜像的大小等。管理员可以使用工具“appscale-describe-instances”来查看云平台的部署情况,其输出的结果类似状态页中的内容:usermylaptop:/appscale-tools/ips$ appscale-describe-instancesStatus of node at :Currently using 1.0 Percent CPU and
47、 96.94 Percent MemoryHard disk is 99 Percent fullIs currently: load_balancer, shadow, db_master, zookeeper, loginDatabase is at Current State: Preparing to run AppEngine apps if neededStatus of node at :Currently using 0.3 Percent CPU and 95.00 Percent MemoryHard disk is 98 Per
48、cent fullIs currently: load_balancer, db_slave, appengineDatabase is at Current State: Preparing to run AppEngine apps if neededHosting the following apps: guestbookStatus of node at :Currently using 0.3 Percent CPU and 96.45 Percent MemoryHard disk is 98 Percent fullIs current
49、ly: load_balancer, db_slave, appengineDatabase is at Current State: Preparing to run AppEngine apps if neededHosting the following apps: guestbookStatus of node at :Currently using 0.3 Percent CPU and 95.65 Percent MemoryHard disk is 98 Percent fullIs currently: load_balancer,
50、db_slave, appengineDatabase is at Current State: Preparing to run AppEngine apps if neededHosting the following apps: guestbook工具“appscale-upload-app”和“appscale-remove-app”分别用来向正在运行的AppScale云平台中增加或删除应用程序。这个例子中,我们首先添加一个名为“shell”的应用程序:usermylaptop:/appscale-tools/ips$ appscale-upload-app -f
51、ile ./sample_apps/shell/This AppScale instance is linked to an e-mail address giving it administrator privileges.Enter your desired administrator e-mail address: Preparing to run AppEngine apps if neededUploading shell.We have reserved the name shell for your application.shell was upl
52、oaded successfully.Please wait for your app to start up.Your app can be reached at the following URL:/apps/shell在这个过程中,我们指定了包含应用程序的目录和应用程序管理员的电子邮件(注意:这不一定是云平台管理员)。这个例子没有提示输入密码,是因为我们制定的用户已经存在。下面这个例子,我们删除“shell”应用程序:usermylaptop:/appscale-tools/ips$ appscale-remove-app -appname shellW
53、e are about to attempt to remove your application, shell.Are you sure you want to remove this application (Y/N)? YYour application was successfully removed.这里的输出是相当简单:我们提供的应用程序的名称,由 “appscale-remove-app”工具删除此程序,确认后,系统主节点立即停止“shell”应用程序。请注意,如果应用程序实际上不是在系统中运行的(例如,因为我们的应用程序名称拼写错误或此应用程序早些时候已经取消或停止),这样的话
54、,则输出如下:usermylaptop:/appscale-tools/ips$ appscale-remove-app -appname shell2We are about to attempt to remove your application, shell2.Are you sure you want to remove this application (Y/N)? YWe could not stop your application because it was not running.云管理员可以使用工具“appscale-terminate-instances”来终止App
55、Scale的部署。在虚拟私有集群上,这一步在不关闭虚拟机实例的情况下关闭所有正在虚拟机上运行的AppScale服务。而在云基础架构上,两者都被关闭。例如,我们在虚拟专用集群上关闭一个AppScale云的输出大致如下:usermylaptop:/appscale-tools/ips$ appscale-terminate-instances -ips ips.yamlNot backing up data.About to terminate instances spawned via Xen/KVM with keyname appscale.Shutting down AppScale co
56、mponents at .Shutting down AppScale components at .Shutting down AppScale components at Shutting down AppScale components at Terminated AppScale across 4 boxes. 在云基础架构上关闭一个AppScale云的输出大致如上,但必须指明所部署的云基础架构的类型:usermylaptop:/appscale-tools/ips$ appscale-termin
57、ate-instances -infrastructure eucaNot backing up data.About to terminate instances spawned via euca with keyname appscale.Terminated AppScale in cloud deployment.2.2 高级部署策略AppScale也能够进行更多的高级的组件和服务的配置,这是通过云平台的配置文件ips.yaml实现的(前一节中我们曾提及ips.yaml配置文件)。在以前的例子中,“ips.yaml”配置文件将一个节点标识为“控制器”(Controller),它担任了Load Balancer和Database Master的角色;将其他节点标识为“服务器”(Servers),它们担任了Database Sla
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 观光业员工激励机制探讨
- 化妆品业务员工作总结
- 美容美发行业销售代表工作总结
- 2024年度新疆瓜果采摘节赞助合作合同2篇
- 医疗行业财务管理工作总结
- 混凝土梁桥课程设计
- 瑜伽课程设计划书
- 2024年新型养殖模式贷款及产业链合作合同3篇
- 高三复习-文言虚词系列练习(共18套)
- 换热器课程设计结果讨论
- 公司理财全书电子教案完整版ppt整套教学课件最全教学教程
- 阅读《合作学习:实用技能、基本原则及常见问题》的体会
- 粉尘整改方案
- SJG 74-2020 深圳市安装工程消耗量定额-高清现行
- 在全市高技能人才队伍建设工作会议上的讲话
- 最新开利中央空调故障代码大全
- 列车牵规正文
- 中小学优秀备课组(教研组)评比考核表(分值已调整)
- 时产10吨配合饲料厂工艺设计
- 挡风玻璃自动涂胶方案
- 四层电梯控制系统设计-(共38页)
评论
0/150
提交评论