安装

谁应该读本文

如果您已经完成设计阶段,计划部署一个复杂的云,或是准备对用基础安装向导搭建的试验云进行扩展,请选择此项。在后续过程中,您可以使用CloudStack中更强大的功能,例如高级VLAN网络、高可用、负载均衡器和防火墙等额外网络设备,以及支持Citrix XenServer、KVM、VMware vSphere等多种虚拟化平台。

安装步骤概述

对于任何一个简单的实验设备,你将需要一系列的配置选择向导。强烈推荐您阅读以下内容:

  • 选择部署架构

  • 选择Hypervisor:支持的功能

  • 网络设置

  • 存储设置

  • 最佳实践

  1. 确定您已经准备好了所需的硬件。参阅 最低系统需求

  2. 安装管理服务器 (选择单节点或多节点)。 参阅 增加一个区域

  3. 登陆到用户界面。参阅 *用户界面*

  4. 添加区域。包含第一个Pod,群集,和主机。参阅 添加一个宿主机

  5. 添加更多的Pod(可选)。参阅 添加一个机柜提供点

  6. 添加更多的群集(可选)。参阅 添加群集

  7. 添加更多的主机(可选)。参阅 添加一个宿主机

  8. 添加更多的主存储(可选)。参阅 添加主存储

  9. 添加更多的辅助存储(可选)。参阅 添加二级存储

  10. 尝试使用云。参阅: 初始化及测试

最低系统需求

管理服务器,数据库和存储系统需求。

运行管理服务器和mysql数据库的机器必须满足以下要求。主存储和辅助存储可以通过本地存储或NFS配置在一台机器上。管理服务器可以安装在虚拟机中。

  • 操作系统:

    • 推荐:CentOS/RHEL 6.3+ 或 Ubuntu 12.04(.1)

  • 64位 x86架构CPU(多核CPU性能更佳)

  • 4GB 内存

  • 250GB本地硬盘 (更大的容量性能更佳;推荐500GB)

  • 至少1块网卡

  • 静态分配的IP地址

  • 使用hostname命令能返回的完全合格的域名

主机/Hypervisor系统需求

主机是以虚拟机形式运行云服务。每台主机需满足如下要求:

  • 必须支持HVM(启用Intel-VT或AMD-V)。

  • 64位 x86架构CPU(多核CPU性能更佳)

  • 硬件虚拟化支持

  • 4GB 内存

  • 36GB本地磁盘空间

  • 至少1块网卡

注解

如果主机使用DHCP,请确保这些主机使用的DHCP服务和CloudStack创建的虚拟路由器提供的DHCP服务不冲突。

  • 虚拟机软件需打好最新的补丁

  • 当部署CloudStack时,hypervisor主机不能有任何已在运行的虚拟机。

  • 集群中的主机必须是同构的。CPU的型号、数量和功能参数必须相同。

根据所使用虚拟化软件的不同主机可能有另外的需求。详情请查看你所选用虚拟化软件安装部分的需求清单

警告

如果你按照本指南的步骤并确定你满足了所选用虚拟机软件的 要求。宿主机应该就可以在CloudStack中正常工作了。比如XenServer的要求列表在Citrix XenServer安装部分。

配置包仓库

CloudStack是唯一一种源自官方镜像源文件的分布式平台。尽管如此,CloudStack社区的成语可以构建便捷的二进制代码,使用户能够在无需构建源代码的情况下安装Apache CloudStack。

如果你不能按照步骤使用源码构建你自己的包 “从源码编译RPM包”“编译DEB包” 你会发现预先构建的DEB和RPM包在 下载 页面.

注解

该仓库同时包含管理服务器和KVM Hypervisor的包

DEB包库

你可以按照以下指令在你的apt源中增加DEB包库。请注意只有来自 Ubuntu 12.04 LTS (precise)的包可以在此时构建。

用你准备好的编辑器打开(或创建) /etc/apt/sources.list.d/cloudstack.list.将社区提供的仓库添加到该文件:

$ deb http://cloudstack.apt-get.eu/ubuntu precise 4.3

我们现在必须添加公钥并信任密钥。

$ wget -O - http://cloudstack.apt-get.eu/release.asc|apt-key add -

现在升级本地的apt缓存

$ apt-get update

你的DEB包库现在将被配置并准备使用。

RPM 包仓库

这里有一个CloudStack的RPM包库,所以你可以轻易地安装在RHEL基础平台上。

如果你使用基于RPM的系统,你需要添加Yum库,以便可以用Yum安装CloudStack.

Yum库信息在``/etc/yum.repos.d``中。你可以看到一些 ``.repo``文件在这个目录中,每个都代表一个特定的仓库。

添加CloudStack库,创建 ``/etc/yum.repos.d/cloudstack.repo``并插入以下信息

[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.3/
enabled=1
gpgcheck=0

现在你可以通过Yum安装CloudStack 。

管理服务器安装

管理服务器安装概述

本节介绍管理服务器的安装. 根据你云环境中管理服务器节点个数的不同, 安装步骤有两处稍有不同.

  • 一个单独的管理服务器节点, MySQL也装在这个节点上.

  • 多个管理服务器节点, MySQL装在与所有管理服务都不相同的节点上.

无论哪种方案, 所有系统的要求都要符合系统需求里的描述.

警告

出于安全的目的,确保公共网络无法访问管理服务器的8096或者8250端口。

安装管理服务器的步骤:

  1. 准备操作系统

  2. (仅限XenServer)下载并安装vhd-util.

  3. 安装第一台管理服务器

  4. 安装并配置MySQL数据库。

  5. 准备NFS共享存储

  6. 准备并启动额外的管理服务器(可选)

  7. 准备系统虚拟机模板

准备操作系统

要在主机上安装管理服务器,需要按下列步骤准备操作系统. 这些步骤必须在每个要安装的管理服务器节点上执行.

  1. 以root身份登录进入系统。

  2. 检查全称域名.

    hostname --fqdn
    

    该命令会返回完整主机名,例如”management1.lab.example.org”。如果没有,请编辑 /etc/hosts。

  3. 确保机器可以连接到互联网.

    ping www.cloudstack.org
    
  4. 启用NTP服务以确保时间同步.

    注解

    NTP服务用来在你的云中同步服务器时钟。

    安装NTP.

    yum install ntp
    
    apt-get install openntpd
    
  5. 在每一个安装管理服务器的节点上重复所有这些步骤.

在第一台主机上安装管理服务器

安装的第一步,不论你在一台或多台主机上安装管理服务器,在单个节点上安装这些软件。

注解

If you are planning to install the Management Server on multiple nodes for high availability, do not proceed to the additional nodes yet. That step will come later.

CloudStack管理服务器可以用RMP或者DEB包来安装,这些包会依赖运行管理服务器的所有需要的东西。

在CentOS/RHEL上安装

我们开始安装需要的软件包:

yum install cloudstack-management

在Ubuntu上安装

apt-get install cloudstack-management

警告

There is a known bug in the 4.3.0 release. You need to install an additional package by hand:

apt-get install libmysql-java

This bug has been fixed in master and upcoming 4.4 release and will also be fixed in bug fix releases 4.3.x

下载vhd-util

这个步骤仅适用于安装了XenServer的hypervisor主机。

在设置管理服务器前,下载 `vhd-util<http://download.cloud.com.s3.amazonaws.com/tools/vhd-util>`_.

如果管理服务器是RHEL或者是CentOS,复制 vhd-util到`/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver`

如果管理服务器是Ubuntu系统,复制vhd-util到`/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver`

安装数据库服务器

CloudStack管理服务器使用一个MySQL数据库服务来存储自身数据。当你在一个独立的节点上安装管理服务器,你可以在本地安装MySQL服务器。对于在多重节点上安装,我们假设MySQL也运行在一个已经分隔开的节点上。

CloudStack已经在MySQL 5.1和5.5上被测试过。这些平台版本包含RHEL/CentOS和Ubuntu.

在管理服务器节点上安装数据库。

本节将会介绍如何将MySQL与管理服务器安装在同一台机器上. 这种方法是针对只有一个管理服务器的部署. 如果你部署了多台管理服务器节点, 你最好使用单独的一个节点来部署MySQL数据库. 参阅 在单独的节点上安装数据库。.

  1. 使用你部署的软件仓库安装MySQL:.

    yum install mysql-server
    
    apt-get install mysql-server
    
  2. 编辑MySQL的配置文件 。根据你操作系统的不同, 文件是/etc/my.cnf 或者/etc/mysql/my.cnf.

  3. 在[mysqld]区域插入下列行。

    你可以把这几行放在datadir行下. 参数max_connections应该设置为 350 乘以你部署管理服务器节点的个数. 这个示例假定你只部署了一台管理服务器.

    注解

    在Ubuntu上,你也可以创建 /etc/mysql/conf.d/cloudstack.cnf文件并在此添加如下目录。不要忘记在文件第一行加[mysqld]。

    innodb_rollback_on_timeout=1
    innodb_lock_wait_timeout=600
    max_connections=350
    log-bin=mysql-bin
    binlog-format = 'ROW'
    
  4. 启动或者重启MySQL使新的配置生效。

    在RHEL/CentOS上,MySQL在安装完后不会自动启动。手工启动它。

    service mysqld start
    

    在Ubuntu上,重启MySQL.

    service mysql restart
    
  5. (仅限CentOS 和 RHEL平台,对Ubuntu不作要求)

    警告

    在RHEL和CentOS上, MySQL默认并未设置root用户的密码. 强烈建议您设置超级用户密码作为安全预防措施。

    运行以下命令进行安全配置。你可以对所有的问题回答”Y”。

    mysql_secure_installation
    
  6. CloudStack的会被安全机制阻止,例如SELinux。确保关闭SELinux 和 Agent具有所必需的权限。

    配置SELinux(RHEL和CentOS):

    1. 检查你的机器是否安装了SELinux。如果没有,请跳过此部分。

      在RHEL或者CentOS中,SELinux是默认安装并启动的。你可以使用下条命令验证:

      $ rpm -qa | grep selinux
      
    2. 在/etc/selinux/config文件中设置变量SELINUX为“permissive”。这样能确保对SELinux的设置在系统重启之后依然生效。

      在RHEL 或者CentOS平台上:

      vi /etc/selinux/config
      

      修改如下行

      SELINUX=enforcing
      

      修改为:

      SELINUX=permissive
      
    3. 执行该命令无需系统重启就会将SELinux的运行模式设置为permissive。

      $ setenforce permissive
      
  7. 设置数据库. 下列的命令会在数据库中创建”cloud”用户.

    • dbpassword,为 “cloud”的用户设置的密码。你也可以选择不设置密码,尽管并不推荐。

    • deploy-as, 指定安装数据库的用户名和密码. 在下面的命令中, root用户部署了数据库并创建了cloud用户.

    • (可选)encryption_type, 使用file或web来告知数据库通过哪种技术对密码进行加密. 默认是file. 参考 关于密码和密钥加密.

    • (可选)management_server_key,在CloudStack属性文件中使用加密的机密参数替代默认密码。默认为:password。强烈推荐您使用更安全的值替代它。参阅: 关于密码和密钥加密.

    • (可选)database_key,在CloudStack数据库中使用加密的机密参数替代默认密码。默认为:password。强烈推荐您使用更安全的值替代它。参阅: 关于密码和密钥加密.

    • (可选)management_server_ip, 你可以明确的指定群集管理服务器的IP。如果不指定,默认使用本机IP。

    cloudstack-setup-databases cloud:<dbpassword>@localhost \
    --deploy-as=root:<password> \
    -e <encryption_type> \
    -m <management_server_key> \
    -k <database_key> \
    -i <management_server_ip>
    

    当脚本完成后,你将会看到类似这样的信息:”Successfully initialized the database”

    注解

    If the script is unable to connect to the MySQL database, check the “localhost” loopback address in /etc/hosts. It should be pointing to the IPv4 loopback address “127.0.0.1” and not the IPv6 loopback address ::1. Alternatively, reconfigure MySQL to bind to the IPv6 loopback interface.

  8. 如果你的KVM Hypervisor和管理服务器在同一台的机器上,编辑 /etc/sudoers并添加以下行:

    Defaults:cloud !requiretty
    
  9. 现在数据库已经设置好, 你可以完成管理服务器的设置. 这个命令将会设置iptables, sudoers并启动管理服务.

    # cloudstack-setup-management
    

    你应该看到这样的信息: “Management Server setup is done.”

在单独的节点上安装数据库。

This section describes how to install MySQL on a standalone machine, separate from the Management Server. This technique is intended for a deployment that includes several Management Server nodes. If you have a single-node Management Server deployment, you will typically use the same node for MySQL. See “Install the Database on the Management Server Node”.

注解

管理服务器不要求为MySQL节点指定特定的分支。你可以选择使用任何一个操作系统的分支。建议与管理服务器使用相同的分支,但不做强制要求。参阅 “管理服务器, 数据库和存储系统要求”.

  1. 使用你部署的软件仓库安装MySQL:.

    yum install mysql-server
    
    apt-get install mysql-server
    
  2. 编辑MySQL的配置文件 (根据你操作系统的不同, 文件为/etc/my.cnf 或者/etc/mysql/my.cnf) 并在 [mysqld] 章节插入下面几行. 你可以把这几行放在datadir行下. 参数max_connections应该设置为 350 乘以你部署管理服务器节点的个数. 这个示例假定你只部署了一台管理服务器.

    注解

    在Ubuntu上,你也可以创建 /etc/mysql/conf.d/cloudstack.cnf文件并在此添加如下目录。不要忘记在文件第一行加[mysqld]。

    innodb_rollback_on_timeout=1
    innodb_lock_wait_timeout=600
    max_connections=700
    log-bin=mysql-bin
    binlog-format = 'ROW'
    bind-address = 0.0.0.0
    
  3. 启动或者重启MySQL使新的配置生效。

    在RHEL/CentOS上,MySQL在安装完后不会自动启动。手工启动它。

    service mysqld start
    

    在Ubuntu上,重启MySQL.

    service mysql restart
    
  4. (仅限CentOS 和 RHEL平台,对Ubuntu不作要求)

    警告

    在RHEL 和 CentOS上,MySQL默认并未设置root用户的密码。强烈建议您设置超级用户密码作为安全预防措施。运行以下命令进行安全配置。你可以对所有问题回答”Y”, “Disallow root login remotely?”问题除外。设置数据库需要root远程登录。

    mysql_secure_installation
    
  5. 如果系统中存在防火墙,打开TCP的3306端口用于建立MySQL连接。

    在Ubuntu上,默认防火墙是UFW。用以下命令打开端口:

    ufw allow mysql
    

    在RHEL/CentOS上:

    1. 编辑/etc/sysconfig/iptables文件并在INPUT链中添加下列行。

      -A INPUT -p tcp --dport 3306 -j ACCEPT
      
    2. 现在重新加载iptables规则。

      service iptables restart
      
  6. 返回到第一个管理服务器root用户的shell中。

  7. 设置数据库。按照如下命令在数据库中创建cloud用户。

    • dbpassword,为 “cloud”的用户设置的密码。你也可以选择不设置密码。

    • deploy-as, 指定安装数据库的用户名和密码. 在下面的命令中, root用户部署了数据库并创建了cloud用户.

    • (可选)encryption_type, 使用file或web来告知数据库通过哪种技术对密码进行加密. 默认是file. 参考 关于密码和密钥加密.

    • (可选)management_server_key,在CloudStack属性文件中使用加密的机密参数替代默认密码。默认为:password。强烈推荐您使用更安全的值替代它。参阅关于密码和密钥加密。

    • (可选)database_key,在CloudStack数据库中使用加密的机密参数替代默认密码。默认为:password。强烈推荐您使用更安全的值替代它。参阅: 关于密码和密钥加密.

    • (可选)management_server_ip, 你可以明确的指定群集管理服务器的IP。如果不指定,默认使用本机IP。

    cloudstack-setup-databases cloud:<dbpassword>@<ip address mysql server> \
    --deploy-as=root:<password> \
    -e <encryption_type> \
    -m <management_server_key> \
    -k <database_key> \
    -i <management_server_ip>
    

    当脚本完成后,你将会看到类似这样的信息:”Successfully initialized the database”

关于密码和密钥加密

CloudStack存储一些敏感密码和密钥用于提供安全保证。这些值总是自动被加密。

  • 数据库密钥

  • 数据库密码

  • SSH密钥

  • 计算节点root密码

  • VPN密码

  • 用户API密钥

  • VNC密码

CloudStack使用java简单的加密库(JASYPT)。数据值加密和解密通过使用一个存储在一个CloudStack带有数据库密码的内部属性文件中的密钥。上述列出的其他加密的值,例如SSH密钥,也在CloudStack内部数据库中。

当然,数据库密钥本身不是公开存储的-它必须被加密。那么,CloudStack如何阅读它呢?从外部源启动管理服务时必须提供第二个密钥。这个密钥可以提供两种方式中的一种:从文件加载或者由CloudStack的管理员提供。CloudStack数据库中都有一个配置设置使它知道这些方法将被调用。如果加密类型设置为 “file,” 密钥 必须存在于文件的已知位置中。如果加密类型设置为 “web,” 管理员运行 com.cloud.utils.crypt.EncryptionSecretKeySender工具,which relays the key to the Management Server over a known port.

加密类型,数据库密钥和管理服务器密钥在CloudStack初始化的过程中设置。它们全部是CloudStack数据库设置脚本的参数(cloud-setup-databases).默认值是file,password和password。当然,强烈建议你修改这些密钥。

更改默认密码加密

创建或更新用户密码会被加密。CloudStack允许你定义管理员和用户登录的默认密码和授权机制。这两种配置列表都已经介绍过了—userPasswordEncoders 和 userAuthenticators。userPasswordEncoders允许你配置优先顺序进行密码编码,而userAuthenticators允许你配置的调用身份验证方案来验证用户密码。

此外,纯文本的用户认证方已经修改为:在检查数据库记录之前,不对获取的密码进行md5值校验。仅对提供的登录密码执行检索。 由于客户端不再对密码进行散列(hash),所以不再对比存储的密码散列值和获取的密码的哈希值。下面的方法决定用于用户创建或修改过程中提供的密码进行编码时使用什么编码方案。

在创建新用户时,用户密码是按照``ComponentContext.xml`` 或 nonossComponentContext.xml 文件中 UserPasswordEncoders 属性中指定的顺序对有效的编码器进行编码。该文件中的 UserAuthenticators 属性也指定了认证方案的顺序。如果使用了Non-OSS(非开源软件)组件,例如要部署VMware环境,修改 nonossComponentContext.xml 文件中的 UserPasswordEncodersUserAuthenticators 列表。针对OSS(开源软件),例如XenServer和KVM,则修改 ComponentContext.xml 文件。建议对这两个文件做统一的修改。当添加新的认证器和解释器时,你可以添加至该列表。做的过程中,确保已经在这些文件中指定认证器和解释器。管理员可以更改这两个属性的排序和计划作为首选的排列顺序。如果适用的话,在 client/tomcatconf/nonossComponentContext.xml.inclient/tomcatconf/componentContext.xml.in 文件中修改下面的列表中可用的属性的顺序:

<property name="UserAuthenticators">
   <list>
      <ref bean="SHA256SaltedUserAuthenticator"/>
      <ref bean="MD5UserAuthenticator"/>
      <ref bean="LDAPUserAuthenticator"/>
      <ref bean="PlainTextUserAuthenticator"/>
   </list>
</property>
<property name="UserPasswordEncoders">
   <list>
      <ref bean="SHA256SaltedUserAuthenticator"/>
      <ref bean="MD5UserAuthenticator"/>
      <ref bean="LDAPUserAuthenticator"/>
      <ref bean="PlainTextUserAuthenticator"/>
   </list>
</property>

在上述排序中,SHA256Salt首次使用 UserPasswordEncoders.如果这个模块已经找到并且编码后返回一个有效值,编码密码存储在用户表密码列中。如果因某些原因失败,接下来将尝试MD5UserAuthenticator,并按照规定继续。对于 UserAuthenticators, SHA256Salt授权首先被使用。如果成功,用户将登陆进入管理服务器。如果失败,下一步将尝试md5,并继续尝试直到成功。如果他们没起作用,用户将返回一个无效的确认信息。

准备NFS共享存储

CloudStack需要主存储和辅助存储空间(参阅 云基础设施概述)。两种存储都可以是NFS共享存储。这节描述如何在CloudStack中添加存储。

注解

NFS is not the only option for primary or secondary storage. For example, you may use Ceph RBD, GlusterFS, iSCSI, and others. The choice of storage system will depend on the choice of hypervisor and whether you are dealing with primary or secondary storage.

主存储和辅助存储的需求描述:

典型地安装使用一个独立的NFS 服务器。参阅 使用独立的NFS服务器.

你也可以使用管理服务节点作为NFS服务器。这是更为典型的安装,部署更大的环境在技术上是可行的。参阅 使用管理服务器作为NFS服务器.

使用独立的NFS服务器

这一节描述如何在存储系统中为辅助存储和主存储(可选)设置NFS共享,它运行在一个与管理控制服务器不同的独立节点。

以下步骤的命令取决于你的操作系统版本。

警告

(仅KVM)确保没有任何卷被挂载到你的NFS挂载点上。

  1. 在存储服务器上,创建一个用于辅助存储的NFS共享,如果同时也用于主存储,则创建2个NFS共享,例如:

    # mkdir -p /export/primary
    # mkdir -p /export/secondary
    
  2. 配置新的目录作为NFS输出,编辑/etc/exports。使用 rw,async,no_root_squash,no_subtree_check 输出NFS共享目录。例如:

    # vi /etc/exports
    

    插入如下行。

    /export  *(rw,async,no_root_squash,no_subtree_check)
    
  3. 输出/export目录。

    # exportfs -a
    
  4. 在管理服务器上,创建一个辅助存储的挂载点。例如:

    # mkdir -p /mnt/secondary
    
  5. 在你的管理服务器上挂载辅助存储。更换下面示例中的NFS服务器名称和NFS共享路径为你自己的。

    # mount -t nfs nfsservername:/nfs/share/secondary /mnt/secondary
    

使用管理服务器作为NFS服务器

本节讲述如何在管理服务器节点上设置主存储和辅助存储的NFS共享目录。这是典型的安装部署,但是部署更大的环境在技术上可行的。假设你的主机上拥有少于16TB的存储空间。

以下步骤的命令取决于你的操作系统版本。

  1. 在 RHEL/CentOS系统上,你需要安装 nfs-utils包:

    $ sudo yum install nfs-utils
    
  2. 在管理服务器主机上,创建两个目录用作主存储和辅助存储。例如:

    # mkdir -p /export/primary
    # mkdir -p /export/secondary
    
  3. 配置新的目录作为NFS输出,编辑/etc/exports。使用 rw,async,no_root_squash,no_subtree_check 输出NFS共享目录。例如:

    # vi /etc/exports
    

    插入如下行。

    /export  *(rw,async,no_root_squash,no_subtree_check)
    
  4. 输出/export目录。

    # exportfs -a
    
  5. 编辑/etc/sysconfig/nfs文件。

    # vi /etc/sysconfig/nfs
    

    取消如下行的注释:

    LOCKD_TCPPORT=32803
    LOCKD_UDPPORT=32769
    MOUNTD_PORT=892
    RQUOTAD_PORT=875
    STATD_PORT=662
    STATD_OUTGOING_PORT=2020
    
  6. 编辑 /etc/sysconfig/iptables文件。

    # vi /etc/sysconfig/iptables
    

    在INPUT链开始处添加如下行, <NETWORK>处为你正在使用的网络:

    -A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 111 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 111 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 2049 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 32803 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 32769 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 892 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 892 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 875 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 875 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 662 -j ACCEPT
    -A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 662 -j ACCEPT
    
  7. 运行如下命令:

    # service iptables restart
    # service iptables save
    
  8. 如果客户端和服务器之间使用NFS v4进行通讯,在hypervisor主机和管理服务器上的/etc/idmapd.conf文件中添加你的域名。

    # vi /etc/idmapd.conf
    

    从idmapd.conf文件中的Domain开始行移除字符#,并替代文件中的该值为你自己的域名。在下面的示例中,域名为company.com.

    Domain = company.com
    
  9. 重启管理服务器主机。

    两个NFS共享 /export/primary和 /export/secondary已经建立。

  10. 强烈建议您测试以确保之前的步骤已经成功。

    1. 登陆hypervisor主机。

    2. 确定NFS和rpcbind正在运行。具体命令可能因您的操作系统而不同。例如:

      # service rpcbind start
      # service nfs start
      # chkconfig nfs on
      # chkconfig rpcbind on
      # reboot
      
    3. 重新登录到hypervisor主机并尝试挂载/export目录。例如,替代你自己的管理服务器名称:

      # mkdir /primary
      # mount -t nfs <management-server-name>:/export/primary
      # umount /primary
      # mkdir /secondary
      # mount -t nfs <management-server-name>:/export/secondary
      # umount /secondary
      

准备和启动额外的管理服务器。

在你的次级以及以后的管理服务器上,你将安装管理服务器软件,连接到数据库,并启动管理服务器的操作系统。

  1. 执行这些步骤 “准备操作系统”“从源码编译RPM包”“编译DEB包” 视情况而定.

  2. 这个步骤仅适用于安装了XenServer的hypervisor主机。

    下载 vhd-util

    复制vhd-util到/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver目录下。

  3. 确保必要的服务已经启动并设置为开机启动。

    # service rpcbind start
    # service nfs start
    # chkconfig nfs on
    # chkconfig rpcbind on
    
  4. 配置数据库客户端。注意不使用 –deploy-as 参数在这种情况下。 (关于该命令参数更详细的信息, 参阅 在单独的节点上安装数据库。.)

    # cloudstack-setup-databases cloud:dbpassword@dbhost -e encryption_type -m management_server_key -k database_key -i management_server_ip
    
  5. 配置操作系统,并启动管理服务:

    # cloudstack-setup-management
    

    管理服务应该运行在这个节点上。

  6. 在每个额外的管理服务器上重复这些步骤。

  7. 确保为管理服务器配置负载均衡。参阅: “管理服务器负载均衡”.

准备系统虚拟机模板

辅助存储必须应用一个使用于生成CloudStack中虚拟机系统的模板。

注解

当复制粘贴一个命令时,确保这个命令在执行前作为一个独立的行被粘贴。一些文档可能会引入不必要的文本换行。

  1. 在管理服务器上,运行一个或多个cloud-install-sys-tmplt命令检索和解压系统虚拟机模版。运行这个命令在每个你希望最终用户在这个区域中运行的hypervisor类型。

    如果辅助存储挂点不是 /mnt/secondary,替换你自己的挂载点名称。

    如果在设置数据库时,配置CloudStack数据库加密类型是”web”,你现在必须添加参数-s <management-server-secret-key>。参阅 关于密码和密钥加密

    这个过程每次运行30分钟,运行时要求本地文件系统剩余大约5GB的空间。

    • 对于Hyper-V:

    # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/4.3/systemvm64template-2014-06-23-master-hyperv.vhd.bz2 -h hyperv -s <optional-management-server-secret-key> -F
    
    • 对于XenServer:

    # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/4.3/systemvm64template-2014-06-23-master-xen.vhd.bz2 -h xenserver -s <optional-management-server-secret-key> -F
    
    • 对于vSphere:

    # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/4.3/systemvm64template-2014-06-23-master-vmware.ova -h vmware -s <optional-management-server-secret-key>  -F
    
    • 对于KVM:

    # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/4.3/systemvm64template-2014-06-23-master-kvm.qcow2.bz2 -h kvm -s <optional-management-server-secret-key> -F
    
    • 对于LXC:

    # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/4.3/systemvm64template-2014-06-23-master-kvm.qcow2.bz2 -h lxc -s <optional-management-server-secret-key> -F
    

    在Ubuntu上,使用如下路径:

    # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt
    
  2. 如果你使用独立的NFS服务器,执行这一步骤。如果你使用管理服务器作为NFS服务器,你必须确保不执行这一步骤。

    当脚本完成后,卸载辅助存储并移除创建的目录。

    # umount /mnt/secondary
    # rmdir /mnt/secondary
    
  3. 在每个辅助存储服务器上重述如下步骤。

安装完成!下一步

恭喜!你现在已经安装好了CloudStack管理服务器和用于持久化系统数据的数据库。

installation-complete.png: Finished installs with single Management Server and multiple Management Servers

下面你将做什么?

  • 即使没有增加任何云的基础设施,你可以运行登陆界面感受其提供的内容并与CloudStack进行持续的交互。参见登陆用户界面

  • 当你已经准备好了,添加云基础架构和尝试运行一些虚拟机,你将会观察到CloudStack如何管理基础设施。参阅:提供你的云基础设置