XenServer物理网络设置

XenServer安装完成后, 需要对网络做一些额外的设置。此时, 你应该对主机上的网卡及每个网络传输的流量有一个整体规划。网络连接必须满足你的规划.

如果你计划使用网卡绑定,那么所有主机上的网卡的连接必须相同。比如,如果群集中的一台主机eth0为专用绑定,那么其他主机上的eth0也必须为专用绑定。

分配给管理网络的IP必须是静态IP。它可以通过DHCP保留或者在主机上指定。

CloudStack使用XenServer上的不同网卡或绑定来配置不同流量类型。你可以在管理服务器上通过输入XenServer适配器标签来控制这些流量。CloudStack中的标签名称就是物理接口或绑定的名称。在简单的网络中,可以不填写标签。

在XenServer环境中配置网络时,必须正确的配置网络流量标签,确保CloudStack将虚拟接口绑定到正确的物理设备上。XenServer的网络标签必须与配置CloudStack的网络时指定的XenServer流量标签一致。运行以下命令来设置:

  1. xe network-param-set uuid=<network id> name-label=<CloudStack traffic label>

使用专用的XenServer网卡来配置公用网络(可选)

CloudStack支持公共网络使用第二块网卡(或者是2块网卡绑定,在 XenServer中的网卡绑定(可选) 有描述)。如果没有使用绑定,公共网络可以使用群集中不同主机上的不同网卡。比如,公共网络可以使用节点A上的eth0和节点B上的eth1。但是,用于公共网络的名称标签在所有主机上必须一致。举个例子,我们在XenServer上设定了网络标签”cloud-public”。在安装完管理服务器之后,你必须使用( “cloud-public”)作为对应的CloudStack的网络流量标签;这个在 `“管理服务器的安装” `_中有介绍。

如果你使用双网卡绑定作为公共网络,请参阅 XenServer中的网卡绑定(可选)

如果你指定单网卡作为公共网络,在加入CloudStack环境之前按照下面的流程配置每个主机。

  1. 运行xe network-list,查找公共网络。通常它的名字就是public。找到之后记录UUID。可以称之为

  2. 运行以下命令。

    1. # xe network-param-set name-label=cloud-public uuid=<UUID-Public>

XenServer配置多个来宾网络(可选)

CloudStack支持在XenServer上使用多个来宾网络。在XenServer中为每个网络都被分配名称标签。例如,你可能有两个名称分别为”cloud-guest”和”cloud-guest2”的网络。在配置好管理服务器并且运行后,你必须使用这些标签将这些网络添加到CloudStack中,以便CloudStack能够识别到这些网络。

在将主机添加到CloudStack之前,请在每个新主机上执行以下操作:

  1. 运行xe network-list,找出来宾网络。并记录UUID。可以称为

  2. 运行下面的命令, 替换你自己的名称标签和UUID.

    1. # xe network-param-set name-label=<cloud-guestN> uuid=<UUID-Guest>
  3. 对每个额外的来宾网络都重复这些步骤,注意每次要使用不同的名称标签和UUID。

XenServer设置单独的存储网络(可选)

在绑定网卡之前,你可以有选择的配置一个独立的存储网络。使用1到2个网卡,上述给出了两块网卡绑定的示例。配置一个独立的存储网络是管理的职责。

为存储网络设置一个与其他网络不同的名称标签。

让独立的存储网络工作正常,必须可以通过它的接口ping通主存储设备的IP。比如,如果eth0是管理网络的网卡,ping -I eth0 必须是不通的。在所有的部署环境里,通过管理网络必须能ping通辅助存储设备的IP。如果辅助存储设备是在存储网络中,那么通过存储网络同样也要能ping通它。

你可以设置两个独立的存储网络。例如,使用两块独立网卡实现iSCSI多路径。当然,两个网络都需要自己的名称标签。

如果没有做绑定,管理员必须为所有主机上(主、从节点)的存储网络设置名称标签。

此处示例配置eth5访问172.16.0.0/24的存储网络。

  1. # xe pif-list host-name-label='hostname' device=eth5
  2. uuid(RO): ab0d3dd4-5744-8fae-9693-a022c7a3471d
  3. device ( RO): eth5
  4. #xe pif-reconfigure-ip DNS=172.16.3.3 gateway=172.16.0.1 IP=172.16.0.55 mode=static netmask=255.255.255.0 uuid=ab0d3dd4-5744-8fae-9693-a022c7a3471d

XenServer中的网卡绑定(可选)

XenServer支持Source Level Balancing (SLB) NIC绑定。两块网卡可被绑定在一起承载公共网络、管理网络和来宾网络流量,或这些网络的组合。单独的存储网络同样可以。以下是一些配置的示例:

  • 管理网络使用2块网卡,公共网络使用2块网卡,存储网络使用2块网卡

  • 管理网络使用2块网卡,公共网络使用1块网卡,存储共用管理网络

  • 管理网络使用2块网卡,共用网络使用2块网卡,存储共用管理网络

  • 管理网络,公共网络,存储网络使用一块网卡

所有的网卡绑定都是可选的

XenServer期望群集中所有的节点都拥有相同的网络布线,以及相同的绑定。在安装完成后第一台主机将成为Master,而随后加入到群集中的其他主机都将成为Slave。Master主机上的网卡绑定设置会覆盖其他主机的网络配置。在Master和Slaver上设置网卡绑定的步骤不同,重点包括几个部分:

  • 必须在添加至群集的第一台主机上设置网卡绑定。然后必须使用如下的xe命令,使第二台和随后添加至该群集的主机上自动配置与Master主机相同的网卡绑定。

  • 群集中的Slave主机必须与Master主机拥有完全相同的布线。例如,如果eth0在群集中的主机上的专用网络绑定中,那么eth0必须在群集中的所有主机上专用网络绑定中。

管理网络绑定

在将主机添加至CloudStack之前管理员必须绑定管理网络的网卡。

在群集的第一台主机中创建专用绑定

使用下述步骤在XenServer上创建网卡绑定。这些步骤只在群集中第一台主机上运行即可。本示例为cloud-private网络绑定了两块物理网卡(eth0和eth1)。

  1. 找到想要绑定在一起的物理网卡。

    1. # xe pif-list host-name-label='hostname' device=eth0
    2. # xe pif-list host-name-label='hostname' device=eth1

    如上命令显示了eth0、eth1和对应的UUID。并替换你的网卡编号。上述命令返回的UUID称为slave1-UUID和slave2-UUID。

  2. 为该绑定创建一个新的网络。例如,一个名为“cloud-public”的新网络。

    标签非常重要。因为CloudStack根据配置的名称查找网络。必须对云中所有主机的管理网络使用同样的名称标签(name-label)。

    1. # xe network-create name-label=cloud-private
    2. # xe bond-create network-uuid=[uuid of cloud-private created above]
    3. pif-uuids=[slave1-uuid],[slave2-uuid]

现在有了可以被CloudStack识别为管理网络的网卡绑定。

公共网络网卡绑定

可以在单独的公共网络上执行绑定。管理员可以将使用网卡绑定的公共网络与管理网络区分开。

在集群的第一台主机上创建公共网络网卡绑定

以下步骤仅在群集的第一台主机中运行。本示例为cloud-public绑定了两块物理网卡(eth2和eth3)。

  1. 找到想要绑定在一起的物理网卡。

    1. #xe pif-list host-name-label='hostname' device=eth2
    2. # xe pif-list host-name-label='hostname' device=eth3

    以上命令显示了eth2、eth3和对应的UUID。替换你的网卡编号。将上述命令返回的UUID称为slave1-UUID和slave2-UUID。

  2. 为网卡绑定创建一个新的网络。比如,一个名为”cloud-public”的新网络。

    该标签非常重要。因为CloudStack根据配置的名称来查找网络。必须对云中所有物理主机的公共网络使用同样的名称标签(name-label)。

    1. # xe network-create name-label=cloud-public
    2. # xe bond-create network-uuid=[uuid of cloud-public created above]
    3. pif-uuids=[slave1-uuid],[slave2-uuid]

现在有了被CloudStack识别为公共网络的网卡绑定。

在群集中添加更多主机

在master主机添加了(任何)绑定网卡的基础上,可以添加其他的slave主机。对所有添加至群集的其他主机执行下面的命令。他的作用是将这些主机都加入master所在的同一个XenServer池中。

  1. # xe pool-join master-address=[master IP] master-username=root
  2. master-password=[your password]
完成群集内的绑定设置

所有主机添加至资源池后,运行 cloud-setup-bond脚本。此脚本将配置群集中所有主机的网卡绑定。

  1. 将管理服务器中/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/cloud-setup-bonding.sh拷贝到master主机中并确认该脚本可执行。

  2. 运行脚本:

    1. # ./cloud-setup-bonding.sh

现在,群集内所有主机的网卡绑定都已配置正确。