Host Citrix XenServer Installation
如果你想用Citrix XenServer作为hypervisor运行虚拟机,安装XenServer 6.0或XenServer 6.0.2版本。你需要按照以下步骤来完成初次安装。如果你想从之前的旧版本升级,请参阅 升级XenServer版本。
XenServer主机的系统要求
-
主机必须通过下列任一版本的兼容性认证。请查看Citrix硬件兼容性指导:
-
XenServer 5.6 SP2
-
XenServer 6.0
-
XenServer 6.0.2
-
XenServer 6.1.0
-
XenServer 6.2.0
-
XenServer 6.5.0
-
如果你想使用以前装的某台主机,你必须重新安装Citrix XenServer.
-
必须支持HVM(Intel-VT或者AMD-V)
-
确保安装了所有系统补丁供应商提供的所有系统补丁。请随时关注供应商的技术支持渠道,一旦发布补丁,请尽快打上补丁。CloudStack不会跟踪或提醒你安装这些程序。安装最新的补丁对主机至关重要。虚拟化供应商可能不会对过期的系统提供技术支持。
-
集群中的主机必须是相同架构。CPU的型号、数量和功能参数必须相同。
-
必须支持HVM(BIOS中要打开Intel-VT或者AMD-V)
-
64位x86 CPU(多核性能更佳)
-
硬件虚拟化支持
-
4GB 内存
-
36GB本地磁盘空间
-
至少一块网卡
-
静态分配的IP
-
在部署CloudStack时,Hypervisor主机不能运行任何虚拟机
警告
The lack of up-to-date hotfixes can lead to data corruption and lost VMs.
用户名和密码
CloudStack中同一群集下的所有XenServer主机必须拥有同样的用户名和密码。
时间同步
主机必须配置NTP。同一提供点中的所有主机时间必须相同。
-
安装NTP.
-
编辑NTP配置文件指定NTP服务器。
在文件中添加一行或多行你想使用的服务器地址. 例如:
server 0.xenserver.pool.ntp.org
server 1.xenserver.pool.ntp.org
server 2.xenserver.pool.ntp.org
server 3.xenserver.pool.ntp.org
-
重启NTP客户端。
-
确保机器重启之后NTP会自动启动。
安装 CloudStack XenServer 支持包(CSP)
(可选)
要在XenServer上启用安全组、弹性负载均衡和弹性IP,请下载安装CloudStack XenServer支持包(CSP)。安装完XenServer之后,在每台XenServer主机上执行下列步骤。
For XenServer 6.1:
CSP functionality is already present in XenServer 6.1
-
Run the below command
xe-switch-network-backend bridge
-
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:
-
请从下列链接之一下载CSP至XenServer主机:
适用于XenServer 6.0.2:
适用于XenServer 5.6 SP2:
适用于XenServer 6.0:
-
解压文件:
# tar xf xenserver-cloud-supp.tgz
-
执行下列脚本:
# xe-install-supplemental-pack xenserver-cloud-supp.iso
-
如果XenServer主机所在的区域使用的是基本网络模式 ,请禁用Open vSwitch (OVS):
# xe-switch-network-backend bridge
操作完成之后重启主机。
现在可以在CloudStack中添加XenServer。
为XenServer配置主存储
CloudStack原生支持NFS,iSCSI和本地存储。如果使用其中的一种存储类型,则不需要创建XenServer存储库(“SR”)。
但是,如果你想使用其他技术的存储,如FC存储,你必须自行设置SR。请按以下步骤操作来设置SR。如果你要设置的主机存在于XenServer池中,请在master主机上执行这些操作。如果是单台节点主机,则在该XenServer主机上操作即可。
-
通过光纤通道将集群中的所有主机连接至光纤存储设备
-
重新扫描SCSI总线。使用下列命令或者在XenCenter中使用HBA rescan按钮来完成扫描。
-
在所有主机上重复步骤2.
-
检查确保已经识别到新的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
-
在所有主机上重复步骤4
-
在存储服务器中,运行下列命令获取新添加SR的唯一ID标识。
输出结果如下所示,指定的ID不同:
e6849e96-86c3-4f2c-8fcc-350cc711be3d
-
创建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
-
使用下面的命令为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)。
-
(可选)如果想在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环境之前按照下面的流程配置每个主机。
-
运行xe network-list,查找公共网络。通常它的名字就是public。找到之后记录UUID。可以称之为<UUID-Public>。
-
运行以下命令。
# xe network-param-set name-label=cloud-public uuid=<UUID-Public>
XenServer配置多个来宾网络(可选)
CloudStack支持在XenServer上使用多个来宾网络。在XenServer中为每个网络都被分配名称标签。例如,你可能有两个名称分别为”cloud-guest”和”cloud-guest2”的网络。在配置好管理服务器并且运行后,你必须使用这些标签将这些网络添加到CloudStack中,以便CloudStack能够识别到这些网络。
在将主机添加到CloudStack之前,请在每个新主机上执行以下操作:
-
运行xe network-list,找出来宾网络。并记录UUID。可以称为<UUID-Guest>。
-
运行下面的命令, 替换你自己的名称标签和UUID.
# xe network-param-set name-label=<cloud-guestN> uuid=<UUID-Guest>
-
对每个额外的来宾网络都重复这些步骤,注意每次要使用不同的名称标签和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上设置网卡绑定的步骤不同,重点包括几个部分:
管理网络绑定
在将主机添加至CloudStack之前管理员必须绑定管理网络的网卡。
在群集的第一台主机中创建专用绑定
使用下述步骤在XenServer上创建网卡绑定。这些步骤只在群集中第一台主机上运行即可。本示例为cloud-private网络绑定了两块物理网卡(eth0和eth1)。
-
找到想要绑定在一起的物理网卡。
# 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。
-
为该绑定创建一个新的网络。例如,一个名为“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)。
-
找到想要绑定在一起的物理网卡。
# 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。
-
为网卡绑定创建一个新的网络。比如,一个名为”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脚本。此脚本将配置群集中所有主机的网卡绑定。
-
将管理服务器中/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/cloud-setup-bonding.sh拷贝到master主机中并确认该脚本可执行。
-
运行脚本:
# ./cloud-setup-bonding.sh
现在,群集内所有主机的网卡绑定都已配置正确。
升级XenServer版本
本章节介绍了如何升级CloudStack环境中的XenServer。实际升级的操作在XenServer文档中有详细描述,但是在升级前后有些额外的步骤必须执行。
注解
确保硬件可以被新版本XenServer支持。
升级XenServer:
-
升级数据库。在管理服务器节点上:
-
备份数据库:
# mysqldump --user=root --databases cloud > cloud.backup.sql # mysqldump --user=root --databases cloud_usage > cloud_usage.backup.sql
-
需要更改升级后的主机中虚拟机的操作系统类型。
-
如果是从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,需完成以上所有操作。
-
重启管理服务和Usage服务. 只需为所有的集群做一次这样的操作。
# service cloudstack-management start # service cloudstack-usage start
-
在CloudStack中断开XenServer群集连接。
-
使用admin账户登录CloudStack管理界面。
-
导航至XenServer群集,点击操作-取消管理。
-
查看群集状态直到显示未受管理。
-
登录到群集中的任意一台主机,运行下面的命令清除VLAN信息:
# . /opt/xensource/bin/cloud-clean-vlan.sh
-
仍旧在这台已经登录的主机中,运行下面的升级准备脚本:
# /opt/xensource/bin/cloud-prepare-upgrade.sh
故障排除:如果看到 “can’t eject CD,” 错误,请登录到虚拟机将光盘卸载,并重新运行脚本。
-
升级群集中所有的XenServer主机。首先升级master节点。
-
将该主机上的所有虚拟机动态迁移到其他主机。请参照管理指南了解动态迁移指导。
故障排除:迁移虚拟机时可能会遇到下面的错误:
[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
-
重启主机。
-
要升级更新版本的XenServer。请执行XenServer文档中的步骤。
-
在升级完成之后,将下列文件从管理服务器复制到这台主机,文件所在路径如下:
复制管理服务器的文件
|
复制到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
|
-
执行下列脚本:
# /opt/xensource/bin/setupxenserver.sh
故障排除:如果看到下面的错误信息,可以忽略它。
mv: cannot stat `/etc/cron.daily/logrotate`: No such file or directory
-
将XenServer主机连接至存储库(物理的块设备):
# for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; done
注解
如果添加一台主机到这个XenServer资源池中,你必须将这台主机上的所有的虚机迁移到其他主机,然后将这台主机从原来的XenServer资源池中移除。
-
重复这些步骤,将每台主机都升级到相同的XenServer版本。
-
在XenServer群集中的一台主机上运行下面命令来清除主机标签:
# for host in $(xe host-list | grep ^uuid | awk '{print $NF}') ; do xe host-param-clear uuid=$host param-name=tags; done;
注解
当复制和粘贴命令时,请确保没有多余的换行符,因为一些文档查看器可能会在复制时加上换行符。
-
在CloudStack中重新连接XenServer群集。
-
使用admin账户登录CloudStack管理界面。
-
在XenServer群集导航页中,点击操作-管理。
-
查看状态以确保所有的主机都恢复正常.
-
当所有的主机都是运行状态后, 在集群中的一台主机上运行下列的命令:
# /opt/xensource/bin/cloud-clean-vlan.sh
阅读(1898) | 评论(0) | 转发(0) |