警告
NOTICE: THIS DOCUMENTATION SITE HAS BEEN SUPERSEDED.
For the current documentation site goto: http://docs.cloudstack.apache.org
CloudStack使用几类系统虚拟机来完成云中的任务。总的来说,CloudStack管理这些系统虚拟机,并根据某些范围内或快速需要创建、启动和停止它们。然而,管理员需要意识到他们在调试中的作用。
系统VM来自于一个单独的模板,系统VM具有以下特性:
Using the 64-bit template should be use with a System Offering of at least 512MB of memory.
基于你所使用的hypervisor,从以下地址下载64位模板:
使用管理员登录到CloudStack管理界面。
注册64位的模板。
例如:KVM64bit 模板
当注册模板时,选择路由(routing)。
导航至 基础结构 > 地域 > 设置
在全局参数 *``router.template.kvm``*中设置64位模板的名称,KVM64bitTemplate。
如果你正在使用XenServer64位模板,将名字设置在*``router.template.xen``*全局参数中。
任何在此地域中创建的新虚拟路由器均使用这个模板。
重启管理服务器。
每个CloudStack 区域都有一个单独的系统VM用于模板处理任务,如下载模板,上传模板,上传ISO。在使用VMware的区域中,有另外的系统VM用来处理VMware专有的任务,如制作快照,创建私有模板。 当VMware专有任务的负载增加时,CloudStack管理端将推出额外的系统VM。管理端监控并平衡发送到这些系统VM的命令,实行动态负载均衡并增加更多的系统VM。
控制台代理是一种系统VM,可以通过网页用户接口为用户呈现一个控制台视图。它通过hypervisor为来宾提供控制台将用户的浏览器与vnc端口相连。管理员和终端用户动能通过网页用户接口获得一个控制台连接。
点击控制台图标会弹出一个新窗口。根据控制台代理的公共IP ,AJAX代码会下载到这个新窗口。每个控制台代理都会分配一个公共IP。AJAX程序会连接到这个IP。控制台代理会将连接代理到正在运行所请求虚拟机的宿主机的vnc端口。
注解
hypervisors可能会分配很多端口到VNC上,因此可能同时并发多个VNC会话。
不会有任何流量是来宾虚拟IP的,因此不需要打开来宾虚拟机的vnc。
控制台虚拟机会定时的向管理服务器汇报当前活动的会话数。默认报告间隔是五秒钟。可以通过管理服务器的配置参数 consoleproxy.loadscan.interval.更改。
如果来宾虚拟机之前有已经分配的关联控制台代理的会话,控制台代理的分配会由第一次分配的控制台代理决定。如果该来宾虚拟机之前存在已分配的控制台代理,则不论该控制台代理目前负载如何管理服务器都会将该来宾虚拟机分配到目标控制台代理虚拟机。如果失败则会将来宾虚拟机分配到第一个拥有足够资源处理新会话的控制台代理上。
管理员能重启控制台代理,但此操作会中断用户与控制台会话。
默认情况下,代理视图功能使用HTTP协议,在任何生产环境下,代理服务连接至少要通过SSL进行加密。
CloudStack管理员有2种方式来保证SSL加密控制代理连接的安全:
管理员可以通过选择一个域并上传一个新的SSL证书和密钥配置SSL加密。这个域必须运行一个能DNS服务器,该服务器能解决地址格式是aaa-bbb-ccc-ddd.your.domain到IPv4 IP地址的结构aaa.bbb.ccc.ddd,例如 for example, 202.8.44.1。就是为了改变终端代理与,SSL证书和私有密钥。
建立一个动态的方案或者适用于所有可能DNS名称在你的公共IP范围以format aaa-bbb-ccc-ddd.consoleproxy.company.com-> aaa.bbb.ccc.ddd.到你已经存在的DNS服务器上
注解
在上述步骤中你会注意到*consoleproxy.company.com* -为安全最好的实践,我们推荐在独立的子域中创建一个新的有通配符的SSL证书,所以证书在事件中可能妥协,一个恶意的用户不能模仿一个company.com域。
通常有私钥和证书签名请求(CSR)。当你使用openssl产生私钥/公钥对和CSR,你将私钥复制到CloudStack中,保证转换为PKCS#8格式。
产生一个新的2048位的私钥
openssl genrsa -des3 -out yourprivate.key 2048
Generate a new certificate CSR. Ensure the creation of a wildcard
certificate, eg *.consoleproxy.company.com
openssl req -new -key yourprivate.key -out yourcertificate.csr
前往你喜爱的站点相信授权证书,购买一个SSL证书并获得CSR确认。你将会收到一个返回的有效地证书
转化你的私钥格式成PKCS#8加密格式。
openssl pkcs8 -topk8 -in yourprivate.key -out yourprivate.pkcs8.encrypted.key
转化你的PKC#8加密的私钥到PKC#8格式是CloudStack遵循的方式。
openssl pkcs8 -in yourprivate.pkcs8.encrypted.key -out yourprivate.pkcs8.key
在CloudStack用户界面的修改SSL证书,复制以下内容:
*.
; for example, *.consoleproxy.company.com
这停止了所有正运行的终端代理VM,然后已新的许可和密钥重启。用户可能会注意到对控制台有益的一个简短的打断。
管理服务器在这个改变后生成格式如 “aaa-bbb-ccc-ddd.consoleproxy.company.com” 的URLs。这个新的终端请求将会依照新的DNS域名,证书和密钥提供服务。
If you need to upload custom certificate with ROOT CA and intermediate CA, you can find more details here: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Procedure+to+Replace+realhostip.com+with+Your+Own+Domain+Name
IMPORTANT NOTES:
In order to avoid errors and problems while uploading custom certificates, please check following:
1. While doing URL encoding of ROOT CA and any Intermediate CA, be sure that the plus signs (“+”) inside certificates are not replaced by space (” “), because some URL/string encoding tools tend to do that.
2. If you are renewing certificates it might happen you need to upload new ROOT CA and Intermediate CA, together with new Server Certificate and key. In this case please be sure to use same names for certificates during API upload of certificate, example:
http://123.123.123.123:8080/client/api?command=uploadCustomCertificate&…&name=root1… http://123.123.123.123:8080/client/api?command=uploadCustomCertificate&…&name=intermed1…
Here names are “root1” and “intermed1”. If you used other names previously, please check the cloud.keystore table to obtain used names.
If you still have problems and folowing errors in management.log while destroying CPVM:
that means that still some of the Root/intermediate/server certificates or the key is not in a good format, or incorrectly encoded or multiply Root CA/Intemediate CA present in database by mistake.
Other way to renew Certificates (Root,Intermediates,Server certificates and key) - although not recommended unless you fill comfortable - is to directly edit the database, while still respect the main requirement that the private key is PKCS8 encoded, while Root CA, Intemediate and Server certificates are still in default PEM format (no URL encoding needed here). After editing the database, please restart management server, and destroy SSVM and CPVM after that, so the new SSVM and CPVM with new certificates are created.
一个在最近的段落中使用动态DNS或者创建一定范围DNS记录作为可替换的描述将被用来创建一个特定域名的SSL证书,配置CloudStack使用特定的FQDN,然后配置一个负载均衡以均衡终端代理IP地址后的FQDN。作为这项新功能的更多详情,参见 http://cwiki.apache.org/confluence/display/CLOUDSTACK/Realhost+IP+changes。
虚拟路由器是一个系统虚拟机。它经常在CloudStack服务方案中被使用;终端用户不能够直接访问虚拟路由器。用户可ping和影响它(比如设置端口转发)但是不能通过ssh访问
这里没有一种机制使得管理员可以登录虚拟路由器。管理员可以重启虚拟路由器,但是会中断终端用户网络访问和服务。在一个基本的网络故障排错中,尝试在一个虚拟机上ping虚拟路由器。虚拟路由器的一些功能特性是通过系统服务方案配置的。
你可以设置以下内容:
当 CloudStack创建一个虚拟路由器,它是按照默认的系统计算服务方案进行的设置。参见 <xref linkend=”system-service-offerings” />。所有在单独客户网络中的虚拟路由器都使用相同的系统计算服务方案。可以通过新建和使用自定义的系统计算服务方案来提高虚拟路由器的性能。
警告:从一个虚拟机管理程序控制台重新启动一台虚拟路由器,将删除所有iptables规则。要解决这个问题,从CloudStack用户界面停止虚拟路由器和启动。
警告
在网络中只有一个路由器可用时,不要使用destroyRouter API,因为restartNetwork API 带cleanup=false参数不能随后重新创建它。如果你想销毁并重新创建网络中的单一路由器,使用restartNetwork API 带cleanup=true参数。
运行在CloudStack虚拟路由上的不同的各种服务都可以使用服务监视工具监视。工具将确保服务成功运行除非CloudStack被故意损坏。如果一个服务停止,工具将自动重启该服务,如果不能帮助重启该服务,将产生一个导致失败的警报事件。一个全局参数,”network.router.enableservicemonitoring”,已经被介绍了它能控制这种特性。默认值是false,也就是说监控不是默认。当你激活后,确保服务管理器和路由被重启。
监视工具可以帮助启动一个由不期望的原因导致的冲突的VR服务。例如:
注解
只有这些服务的守护进程仍被监视。这些服务因在服务器/守护进程配置文件中的错误而失败将导致不能被监视工具重启。VPC网络不予支持。
在VR中监视下列服务:
支持以下网络:
独立的网络
在高级和基础域中分享网络
注解
VPC网络不被支持
在下列hypervisor上支持此特性:XenServer,VMware和KVM
升级VR也是很灵活的。CloudStack管理员将能够控制VR升级序列。该序列基于Infrastructure层,例如Cluster,pod或者Zone,管理层 (账户),例如Tenan或者Domain.作为管理员,当一个特殊的用户服务,例如VR,在一个短暂的具体升级后的间隔后,你可以终止它。升级操作将允许多个升级操作并行操作促使升级速度增加。
在一个完整的持续的升级过程中,用户不能启动新服务或者改变已经存在的服务。
另外,使用多版本的VR在一个单例上也是支持的。对于具体地VR,你可以预览版本和是否升级。在管理服务器升级时,CLoudStack检查VR是否是VR上操作的最新版本。为支持此特点,一个新的全局参数,``router.version.check``, 已经被加入.这个参数默认设置为true,它意味着当操作前,最少要求版本检查。如果不是VR要求的版本就没有任何操作。在旧的版本上的VR仍然是有效地,但必须升级后才能进行更多的操作。在升级之前,它将是临时状态。这将保证VR服务和状态不受管理服务器升级的影响。
以下服务将是有效的,无论VR是否升级。或者,没有任何服务在VR升级后发送到VR.
下载最新的系统VM模板。
下载最新的系统VM到所有主存储池。
升级管理服务器
从用户界面和使用下列描述中升级CPVM和SSVM
# cloudstack-sysvmadm -d <IP address> -u cloud -p -s
即使VR仍然是老版本,已经存在的服务会继续对VM有效。管理服务器除非升级,否则不会再VR上有任何动作。
选择性的升级VR:
用系统管理员登陆到CloudStack UI界面。
在左边的导航,选择基础架构。
在虚拟路由上,单击更多视图。
所有的VR都在虚拟路由页中列出。
在选择视图的下拉列表中,选择所需的群组
你可以设置以下内容:
单击已经被升级的VR组
例如,你可以按域分组,选择希望的域名。
单击升级按钮升级所有的VRs.|vr-upgrade.png|
点击确定。
除了主机,CloudStack的二级存储虚拟机会挂载和往二级存储中写入内容。
通过二级存储虚拟机来提交信息到二级存储。二级存储虚拟机会使用多种协议通过URL来获取模版和ISO镜像文件。
二级存储虚拟机会提供后台任务来负责各种二级存储的活动:将新模版的下载到资源域中,多个资源域之间的模版复制,和快照备份。
如果有需要,管理员可以登录到辅助存储VM上。