Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10197439
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 云计算

2015-08-27 15:04:48

Host Citrix XenServer Installation

如果你想用Citrix XenServer作为hypervisor运行虚拟机,安装XenServer 6.0或XenServer 6.0.2版本。你需要按照以下步骤来完成初次安装。如果你想从之前的旧版本升级,请参阅 升级XenServer版本

XenServer安装步骤

  1. From  download the appropriate version of XenServer for your CloudStack version (see “System Requirements for XenServer Hosts”). Install it using the Citrix XenServer Installation Guide.

    较旧版本的XenServer:

    下载最新版本的XenServer不需要使用Citrix账户。如果你要下载旧版本的XenServer,你需要注册一个账户。

配置XenServer dom0内存

配置XenServer dom0占用更大的内存可以使XenServer运行更多的虚拟机。我们建议修改为2940MB。如何来做这些更改,请看。这篇文档是针对XenServer 5.6的,但同样适用于XenServer6.0。

用户名和密码

CloudStack中同一群集下的所有XenServer主机必须拥有同样的用户名和密码。

时间同步

主机必须配置NTP。同一提供点中的所有主机时间必须相同。

  1. 安装NTP.

    # yum install ntp 
  2. 编辑NTP配置文件指定NTP服务器。

    # vi /etc/ntp.conf 

    在文件中添加一行或多行你想使用的服务器地址. 例如:

    server 0.xenserver.pool.ntp.org
    server 1.xenserver.pool.ntp.org
    server 2.xenserver.pool.ntp.org
    server 3.xenserver.pool.ntp.org
    
  3. 重启NTP客户端。

    # service ntpd restart 
  4. 确保机器重启之后NTP会自动启动。

    # chkconfig ntpd on 

安装 CloudStack XenServer 支持包(CSP)

(可选)

要在XenServer上启用安全组、弹性负载均衡和弹性IP,请下载安装CloudStack XenServer支持包(CSP)。安装完XenServer之后,在每台XenServer主机上执行下列步骤。

For XenServer 6.1:

CSP functionality is already present in XenServer 6.1

  1. Run the below command

    xe-switch-network-backend bridge
    
  2. update sysctl.conf with the following

    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 0
    net.bridge.bridge-nf-call-arptables = 1 $ sysctl -p /etc/sysctl.conf
    

For XenServer 6.0.2, 6.0, 5.6 SP2:

  1. 请从下列链接之一下载CSP至XenServer主机:

    适用于XenServer 6.0.2:

    适用于XenServer 5.6 SP2:

    适用于XenServer 6.0:

  2. 解压文件:

    # tar xf xenserver-cloud-supp.tgz 
  3. 执行下列脚本:

    # xe-install-supplemental-pack xenserver-cloud-supp.iso 
  4. 如果XenServer主机所在的区域使用的是基本网络模式 ,请禁用Open vSwitch (OVS):

    # xe-switch-network-backend  bridge 

    操作完成之后重启主机。

现在可以在CloudStack中添加XenServer。

为XenServer配置主存储

CloudStack原生支持NFS,iSCSI和本地存储。如果使用其中的一种存储类型,则不需要创建XenServer存储库(“SR”)。

但是,如果你想使用其他技术的存储,如FC存储,你必须自行设置SR。请按以下步骤操作来设置SR。如果你要设置的主机存在于XenServer池中,请在master主机上执行这些操作。如果是单台节点主机,则在该XenServer主机上操作即可。

  1. 通过光纤通道将集群中的所有主机连接至光纤存储设备

  2. 重新扫描SCSI总线。使用下列命令或者在XenCenter中使用HBA rescan按钮来完成扫描。

    # scsi-rescan 
  3. 在所有主机上重复步骤2.

  4. 检查确保已经识别到新的SCSI磁盘。

    # ls /dev/disk/by-id/scsi-360a98000503365344e6f6177615a516b -l 

    输出结果如下所示,指定的文件名稍许不同(scsi-<scsiID>):

    lrwxrwxrwx 1 root root 9 Mar 16 13:47
    /dev/disk/by-id/scsi-360a98000503365344e6f6177615a516b -> ../../sdc
    
  5. 在所有主机上重复步骤4

  6. 在存储服务器中,运行下列命令获取新添加SR的唯一ID标识。

    # uuidgen 

    输出结果如下所示,指定的ID不同:

    e6849e96-86c3-4f2c-8fcc-350cc711be3d
    
  7. 创建FC SR 。在name-label中,输入刚才获取的ID。

    # xe sr-create type=lvmohba shared=true device-config:SCSIid=360a98000503365344e6f6177615a516b
    name-label="e6849e96-86c3-4f2c-8fcc-350cc711be3d" 

    这条命令会获取SR的ID,以下面为例(你的UUID不同):

    7a143820-e893-6c6a-236e-472da6ee66bf
    
  8. 使用下面的命令为SR创建通俗易懂的描述, uuid参数使用使用之前命令返回的SR ID. 在名称描述中,设置任何你自己喜欢的描述。

    # xe sr-param-set uuid=7a143820-e893-6c6a-236e-472da6ee66bf name-description="Fiber Channel storage repository" 

    记录这些值,之后在CloudStack中添加存储时会用到(查看 “添加主存储”)。在添加主存储对话框中的协议一项,选择PreSetup。在SR Name-Label中,输入之前设置的 name-label(在本示例中为e6849e96-86c3-4f2c-8fcc-350cc711be3d)。

  9. (可选)如果想在FC SAN上启用多路径I/O,请参考SAN供应商提供的文档。

XenServer iSCSI多路径设置(可选)

在Citrix XenServer上配置存储库时,你可以启用多路径I/O,它是通过在服务器与SAN设备之间提供冗余的物理组件实现,提供了更高的可靠性。要启用多路径,请使用 XenServer文档中提供的SAN驱动程序。从下面链接开始:

你同样可以咨询SAN提供商提供关于配置Citrix存储库多路径的建议。

记录这些值,之后在CloudStack中添加存储时将会用到(查看 “添加主存储”)。在添加主存储对话框中的协议一项,选择PreSetup。在SR Name-Label中,输入之前创建的SR名称。

如果遇到任何困难, 请通过SAN供应商团队获得支持. 如果仍然无法解决你的问题, 请联系技术支持.

XenServer物理网络设置

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

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

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

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

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

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的网络流量标签;这个在 `“管理服务器的安装” <installation.html#management-server-installation>`_中有介绍。

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

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

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

  2. 运行以下命令。

    # 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。可以称为<UUID-Guest>。

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

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

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

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

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

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

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

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

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

# xe pif-list host-name-label='hostname' device=eth5 uuid(RO): ab0d3dd4-5744-8fae-9693-a022c7a3471d
device ( RO): eth5 #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. 找到想要绑定在一起的物理网卡。

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

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

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

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

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

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

公共网络网卡绑定

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

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

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

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

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

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

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

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

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

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

在群集中添加更多主机

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

# xe pool-join master-address=[master IP] master-username=root master-password=[your password] 

完成群集内的绑定设置

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

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

  2. 运行脚本:

    # ./cloud-setup-bonding.sh 

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

升级XenServer版本

本章节介绍了如何升级CloudStack环境中的XenServer。实际升级的操作在XenServer文档中有详细描述,但是在升级前后有些额外的步骤必须执行。

注解

确保硬件可以被新版本XenServer支持。

升级XenServer:

  1. 升级数据库。在管理服务器节点上:

    1. 备份数据库:

      # mysqldump --user=root --databases cloud > cloud.backup.sql # mysqldump --user=root --databases cloud_usage > cloud_usage.backup.sql 
    2. 需要更改升级后的主机中虚拟机的操作系统类型。

      • 如果是从XenServer 5.6 GA 升级到XenServer 5.6 SP2,更改虚机操作系统类型CentOS 5.5 (32-bit), Oracle Enterprise Linux 5.5 (32-bit)或者Red Hat Enterprise Linux 5.5 (32-bit)为Other Linux (32-bit)。同样这些虚机的64位版本操作系统类型也要改为Other Linux (64-bit)。

      • 如果是从XenServer 5.6 SP2升级到XenServer 6.0.2,更改虚拟操作系统类型CentOS 5.6 (32-bit), CentOS 5.7 (32-bit), Oracle Enterprise Linux 5.6 (32-bit), Oracle Enterprise Linux 5.7 (32-bit), Red Hat Enterprise Linux 5.6 (32-bit)或者Red Hat Enterprise Linux 5.7 (32-bit)为Other Linux (32-bit)。同样这些虚机的64位版本操作系统类型也要改为Other Linux (64-bit)。

      • 如果从XenServer 5.6升级到XenServer 6.0.2,需完成以上所有操作。

    3. 重启管理服务和Usage服务. 只需为所有的集群做一次这样的操作。

      # service cloudstack-management start # service cloudstack-usage start 
  2. 在CloudStack中断开XenServer群集连接。

    1. 使用admin账户登录CloudStack管理界面。

    2. 导航至XenServer群集,点击操作-取消管理。

    3. 查看群集状态直到显示未受管理。

  3. 登录到群集中的任意一台主机,运行下面的命令清除VLAN信息:

    # . /opt/xensource/bin/cloud-clean-vlan.sh 
  4. 仍旧在这台已经登录的主机中,运行下面的升级准备脚本:

    # /opt/xensource/bin/cloud-prepare-upgrade.sh 

    故障排除:如果看到 “can’t eject CD,” 错误,请登录到虚拟机将光盘卸载,并重新运行脚本。

  5. 升级群集中所有的XenServer主机。首先升级master节点。

    1. 将该主机上的所有虚拟机动态迁移到其他主机。请参照管理指南了解动态迁移指导。

      故障排除:迁移虚拟机时可能会遇到下面的错误:

      [root@xenserver-qa-2-49-4 ~]# xe vm-migrate live=true host=xenserver-qa-2-49-5 vm=i-2-8-VM You attempted an operation on a VM which requires PV drivers to be installed but the drivers were not detected.
      vm: b6cf79c8-02ee-050b-922f-49583d9f1a14 (i-2-8-VM) 

      解决这个问题,请运行下面的命令:

      # /opt/xensource/bin/make_migratable.sh  b6cf79c8-02ee-050b-922f-49583d9f1a14 
    2. 重启主机。

    3. 要升级更新版本的XenServer。请执行XenServer文档中的步骤。

    4. 在升级完成之后,将下列文件从管理服务器复制到这台主机,文件所在路径如下:

      复制管理服务器的文件

      复制到XenServer主机的路径

      /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py /opt/xensource/sm/NFSSR.py
      /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/setupxenserver.sh /opt/xensource/bin/setupxenserver.sh
      /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/make_migratable.sh /opt/xensource/bin/make_migratable.sh
      /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/cloud-clean-vlan.sh /opt/xensource/bin/cloud-clean-vlan.sh
    5. 执行下列脚本:

      # /opt/xensource/bin/setupxenserver.sh 

      故障排除:如果看到下面的错误信息,可以忽略它。

      mv: cannot stat `/etc/cron.daily/logrotate`: No such file or directory
      
    6. 将XenServer主机连接至存储库(物理的块设备):

      # for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; done 

      注解

      如果添加一台主机到这个XenServer资源池中,你必须将这台主机上的所有的虚机迁移到其他主机,然后将这台主机从原来的XenServer资源池中移除。

  6. 重复这些步骤,将每台主机都升级到相同的XenServer版本。

  7. 在XenServer群集中的一台主机上运行下面命令来清除主机标签:

    # for host in $(xe host-list | grep ^uuid | awk '{print $NF}') ; do xe host-param-clear uuid=$host param-name=tags; done; 

    注解

    当复制和粘贴命令时,请确保没有多余的换行符,因为一些文档查看器可能会在复制时加上换行符。

  8. 在CloudStack中重新连接XenServer群集。

    1. 使用admin账户登录CloudStack管理界面。

    2. 在XenServer群集导航页中,点击操作-管理。

    3. 查看状态以确保所有的主机都恢复正常.

  9. 当所有的主机都是运行状态后, 在集群中的一台主机上运行下列的命令:

    # /opt/xensource/bin/cloud-clean-vlan.sh
阅读(1898) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~