借3/30技术沙龙实践日之际, 在CloudStack 4.0.1发布版本的基础上,从零开始部署了异构的Hypervisor (KVM, XenServer). 本着分享的精神,在这里重新部署一遍并详细记录流程以方便日后自己和他人作为参照.
用到的术语或缩写 (知道的可直接跳过):
术语/缩写 |
全称 |
解释 |
MS |
Management Server |
CloudStack管理服务器 |
主存储 |
Primary Storage |
虚机镜像的存储, 承担虚机实例的I/O操作, 要求性能比较好 |
二级存储 |
Secondary Storage |
虚机快照, 模板或ISO安装镜像存储的区域, 承担一次写多次读的操作, 不要求很高的IOPS |
根卷 |
Root Volume |
虚机系统盘存储的卷, 比如Windows的系统盘(一般是C:盘), Linux的root(“/”)卷 |
数据卷 |
Data Volume |
虚机数据盘存储的卷, 比如Windows的数据盘(比如,D:, E:盘), Linux下挂载的其它卷 |
系统虚拟机 |
System VM |
CloudStack为完成特定功能而添加的虚机, Debian 6.0系统, 共有三种(SSVM, CPVM, vRouter) |
SSVM |
Secondary Storage VM |
二级存储系统虚机,提供模板, ISO等到二级存储的上传下载 |
CPVM |
Console Proxy VM |
提供基于Web的到虚机控制台的VNC访问 |
vRouter |
Vritual Router |
又称DomR; 是CloudStack提供丰富网络功能的基础, 基于vRouter的网络功能有: DHCP, DNS, Port Forwarding, Static NAT, Source NAT, Load Balancing, Network Tier, VPN, s-2-s VPN等 |
Public Network |
接入外部流量所走的网络, 这里的外部流量是相对的, 可以是internet或其它 |
|
Management Network |
管理网络, 用于CloudStack对主机或系统虚拟机控制时走的流量 |
|
Guest Network |
来宾网络的流量, 即虚拟机之间的网络流量 |
|
Stroage Network |
二级存储系统虚拟机与二级存储之间的网络流量, 默认走管理网络 |
|
安装前的准备:
1. CloudStack安装文件
1> CentOS 6.3 x64 ISO文件, 建议选择一个中国的镜像站点下载: http://goo.gl/mWJ5Z
2> CloudStack 4.0.1 安装文件, 本次采用的安装包: http://goo.gl/WY90o
3> XenServer 6.0.201 ISO文件, 下载路径:http://goo.gl/4Ejip
2. 部署规划
3. 网络规划
Network |
IP |
CIDR |
VLAN |
Others |
Public |
172.16.206.133~139 |
172.16.206.0/24 |
access |
|
10.10.70.30~50 |
10.10.70.0/24 |
access |
||
Management |
10.10.80.50~80 |
10.10.80.0/24 |
access |
|
Guest |
10.1.1.2~253 |
10.1.1.0/24 |
300 ~ 500 |
|
Storage |
同Public |
|||
4. 节点及角色
Node |
Role |
IP |
Office IP |
System |
Others |
democs |
ms/mysql |
10.10.80.5 |
172.16.206.110 |
CentOS6.3 x64 |
安装ntp服务器 |
demostorage |
主存储/二级存储 |
10.10.80.6 |
172.16.206.39 |
CentOS6.3 x64 |
安装http服务器 |
demokvm1 |
kvm |
10.10.80.7 |
CentOS6.3 x64 |
||
demokvm2 |
kvm |
10.10.80.8 |
CentOS6.3 x64 |
||
demoxs1 |
xenserver |
10.10.80.9 |
XenServer 6.0.2 |
||
demoxs2 |
xenserver |
10.10.80.10 |
XenServer 6.0.2 |
||
winbridge |
win7 |
10.10.80.11 |
172.16.206.7 |
可选, 作为跳板机使用 |
|
各节点的安装及配置:
1. Storage安装及配置
Demo环境将使用NFS作为XenServer和KVM的主存储, 同时作为共同的二级存储, 使用iSCSI作为XenServer的另一个主存储
1.1 CentOS6.3 x64最小化安装 (硬件配置: 1CPU, 2G内存, 400G硬盘)
默认最小化安装即可, 设置root密码
1.2 配置本地DVD源
建立目录: /home/export/nfs 作为NFS共享的根路径 (默认安装后, /home挂载点空间最大)
新建/home/export/nfs/iso目录, 将CentOS 6.3 x64 两个ISO安装文件放置在此目录下 (请注意如何将ISO放置过来, 也可以直接mount过来, 这里假定你ISO有办法拷过来)
新建两个目录:
# mkdir /media/dvd1 /media/dvd2
配置yum本地DVD源:
# cd /etc/yum.repos.d
# mv CentOS-* ~
# cp ~/CentOS-Media.repo dvd.repo
# vi dvd.repo
[c6-media]
name=CentOS-$releasever ? Media
baseurl=file:///media/dvd1/
file:///media/dvd2/
gpgcheck=0
enabled=1
更新yum源缓存:
# yum makecache
1.3 安装apache tomcat并配置
配置满足我们需求的http服务器再简单不过了:
# yum install httpd -y
配置apache tomcat:
# vi /etc/httpd/conf/httpd.conf
ServerName 10.10.80.6:80
DocumentRoot “/var/www”
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
1.4 配置安全策略及防火墙
关闭selinux:
# setenforce 0
# sed -i s/SELINUX=enforcing/SELINUX=permissive/g /etc/selinux/config
配置防火墙添加相应规则, 注意添加的位置在第一条 “-A INPUT …” 之前:
# vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp ?dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp ?dport 3260 -j ACCEPT
-A INPUT -m state ?state NEW -p udp ?dport 111 -j ACCEPT
-A INPUT -m state ?state NEW -p tcp ?dport 111 -j ACCEPT
-A INPUT -m state ?state NEW -p tcp ?dport 2049 -j ACCEPT
-A INPUT -m state ?state NEW -p tcp ?dport 32803 -j ACCEPT
-A INPUT -m state ?state NEW -p udp ?dport 32769 -j ACCEPT
-A INPUT -m state ?state NEW -p tcp ?dport 892 -j ACCEPT
-A INPUT -m state ?state NEW -p udp ?dport 892 -j ACCEPT
-A INPUT -m state ?state NEW -p tcp ?dport 875 -j ACCEPT
-A INPUT -m state ?state NEW -p udp ?dport 875 -j ACCEPT
-A INPUT -m state ?state NEW -p tcp ?dport 662 -j ACCEPT
-A INPUT -m state ?state NEW -p udp ?dport 662 -j ACCEPT
1.5 安装配置NFS工具
# yum install nfs-utils -y
# yum install rpcbind -y
将下面文件的一些注释去掉
# vi /etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
RPCNFSDARGS=”-N 4″ # 对于KVM集群是必须的, 否则存储异常导致系统虚机无法启动
# chkconfig nfs on
# chkconfig rpcbind on
配置NFS服务及路径:
# echo “/home/export/nfs *(rw,async,no_root_squash)” >> /etc/exports
# exportfs
# service rpcbind restart
# service nfs restart
1.6 将CentOS 6.3安装ISO文件拷贝到/home/export/nfs/iso下备用
1.7 安装配置iSCSI工具
暂略.
1.8 检查存储服务及http服务是否正常
2. MS安装及配置
2.1 CentOS 6.3 x64最小化安装 (硬件配置: 1CPU, 2G内存, 30G硬盘)
默认最小化安装即可, 设置root密码
2.2 配置本地DVD源
由于之前已设置好NFS存储服务并且CentOS安装ISO已在NFS路径下
这里需要做的操作:
# mkdir /media/dvd1 /media/dvd2 /media/iso
# mount -t nfs 10.10.80.6:/home/export/nfs/iso /media/iso
# mount -o loop /media/iso/<>.iso /media/dvd1
# mount -o loop /media/iso/<>.iso /media/dvd2
以下配置yum本地DVD源同1.2
2.3 安装本地NTP服务器
# yum install ntp -y
# vi /etc/ntp.conf
server 10.10.80.5
restrict default ignore
restrict 10.10.80.0 mask 255.255.255.0 nomodify notrap
# chkconfig ntp on
# service ntp restart
2.4 配置安全策略及防火墙
selinux配置同1.4
防火墙配置规划, 注意添加位置在第一个”-A INPUT …”之前:
# vi /etc/sysconfig/iptables
-A INPUT -p tcp ?dport 3306 -j ACCEPT
# service iptables restart
2.5 安装管理服务
解压cloudstack安装包至: /root/CloudStack-non-OSS-13
# cd /root/CloudStack-non-OSS-13
# ./install.sh
>M
2.6 安装MySQL服务
# ./install.sh
>D
2.7 设置DB root访问的密码为password
#mysql
mysql> set password=password(‘password’);
2.8 初始化CloudStack数据库, 创建cloud用户; DB的管理员我们创建cloud/cloud的账户, 其它保持默认
# cloud-setup-databases cloud:cloud@localhost ?deploy-as=root:password
2.9 配置管理服务器服务并启动服务
# cloud-setup-management
2.7 检查管理服务
# service cloud-management status
# tail -n 200 -f /var/log/cloud/management/managementserver.log
3. KVM安装及配置
3.1 CentOS6.3 x64最小化安装 (硬件配置: 4CPU, 4G内存, 20G硬盘)
3.2 配置本地DVD源
同2.2
3.3 配置安全策略及防火墙
selinux配置同1.4
防火墙配置规划, 注意添加位置在第一个”-A INPUT …”之前:
# vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp ?dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp ?dport 1798 -j ACCEPT
-A INPUT -p tcp -m tcp ?dport 16509 -j ACCEPT
-A INPUT -p tcp -m tcp ?dport 5900:6100 -j ACCEPT
-A INPUT -p tcp -m tcp ?dport 49152:49216 -j ACCEPT
3.4 安装bridge工具
# yum install bridge-utils
3.5 配置网络
cloudbr0: management, public及storage网络流量
cloudbr1: guest网络流量
3.5.1 配置hostname
# echo “10.10.80.7 kvm1 kvm1.cschina.org” >> /etc/hosts
# vi /etc/sysconfig/Network
HOSTNAME=kvm1.cschina.org
3.5.2 配置bridge
# cd /etc/sysconfig/network-scripts/; touch ifcfg-cloudbr0 ifcfg-cloudbr1
# vi ifcfg-cloudbr0
DEVICE=cloudbr0
TYPE=Bridge
BOOTPROTO=none
OnBOOT=yes
STP=yes
DELAY=5
IPV6INIT=no
IPV6_AUTOCOnF=no
IPADDR=10.10.80.7
NETMASK=255.255.255.0
GATEWAY=10.10.80.254
# vi ifcfg-cloudbr1
DEVICE=cloudbr1
TYPE=Bridge
BOOTPROTO=none
OnBOOT=yes
DELAY=5
STP=yes
IPV6INIT=no
IPV6_AUTOCOnF=no
# vi ifcfg-eth0
DEVICE=eth0
NM_COnTROLLED=yes
OnBOOT=yes
TYPE=Ethernet
BRIDGE=cloudbr0
# vi ifcfg-eth1
DEVICE=eth1
NM_COnTROLLED=yes
OnBOOT=yes
TYPE=Ethernet
BRIDGE=cloudbr1
3.5.3 检查网络及bridge的配置:
# service network restart
# brctl show
bridge name bridge id STP enabled interfaces
cloudbr0 8000.005056856a67 yes eth0
cloudbr1 8000.005056851eeb yes eth1
3.6 配置cloudstack本地源
3.6.1 解压cloudstack 4.0.1 安装文件至: /root/CloudStack-non-OSS-13/
3.6.2 创建本地yum源
# cd /etc/yum.repos.d/; touch cloudstack.repo
# vi cloudstack.repo
[cloudstack]
name=cloudstack
baseurl=file:///root/CloudStack-non-OSS-13/
gpgcheck=0
enabled=1
# yum makecache
3.7 安装cloudstack agent
# yum install cloud-agent
3.8 安装配置libvirt
我们使用的是CentOS发行版的bridge, CloudStack要求 libvirt版本>=0.9.4, qemu可选; 上一步安装cloud-agent时, 想着依赖也已安装完毕.下面要对libvirt进行配置
# vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = 16059
auth_tcp = “none”
mdns_adv = 0
# vi /etc/sysconfig/libvirtd
LIBVIRTD_ARGS=”?listen”
3.9 重启libvirtd服务
# service libvirtd restart
3.10 检查libvirt环境
# service libvirtd status
# virsh
#virsh -v
3.11 每一台kvm上重复上述步骤
4. XenServer安装及配置 (硬件配置: 4CPU, 4G内存, 20G硬盘)
4.1 安装XenServer 6.0.201 ISO
注意在安装XenServer过程中保持默认, 不要选择安装额外的包
4.2 配置管理网络
管理网络:
DHCP/Static: static
IP: 10.10.80.9
Netmask: 255.255.255.0
GW: 10.10.80.254
Hostname: xs1.cschina.org
NTP: enabled
4.3 配置NTP时间同步
NTP服务器: 10.10.80.5
4.4 配置网络流量标签
mgtpub: management, public及storage网络流量
trunk: Guest网络流量
登入xenserver
# ssh root@10.10.80.9
# xe network-list
xenserver有两块物理网卡, 上述命令会显示xenbr0和xenbr1的网络UUID, 假设
uuid ( RO) : 3489fa11-66ed-6a71-926b-5336d69c62ba
bridge ( RO): xenbr0
uuid ( RO) : eb734bff-750b-ecac-32b6-9490179f9d33
bridge ( RO): xenbr1
# xe network-param-set name-label=mgtpub uuid=3489fa11-66ed-6a71-926b-5336d69c62ba
# xe network-param-set name-label=guest uuid=eb734bff-750b-ecac-32b6-9490179f9d33
4.5 每一台xenserver重复上述步骤
5. 通过管理服务器添加资源域
5.1 通过浏览器访问管理服务器
http://172.16.206.110:8080/client 或者 http://10.10.80.5:8080/client
5.2 更改全局配置
integration.api.port : 8096
management.network.cidr : 10.10.80.0/24
secstorage.allowed.internal.sites : 10.10.80.0/24
host : 10.10.80.5
5.3 重启管理服务器服务
# service cloud-management restart
5.4 添加高级资源域
在同一个资源域, 机架下, 添加两个集群, 分别是XenServer和KVM的集群
5.4.1 在建立第一个高级资源域的时候添加第一个KVM集群
5.4.1.1 浏览器登入管理服务器
5.4.1.2 Infrastructure -> Zones -> Add Zone -> Advanced -> Next
5.4.1.3 Setup Zone
Name: advzone
DNS 1: 172.16.100.111
Internal DNS 1: 10.10.80.254
Hypervisor: KVM
Network Domain: cschina.org
Guest CIDR: 10.1.1.0/24
Public: Checked
Local Storage Enabled: Unchecked
5.4.1.4 Physical Network
5.4.1.5 Public Traffic
5.4.1.6 POD
Pod name: advpod
Reserved system gateway: 10.10.80.254
Reserved system netmask: 255.255.255.0
Start reserved system IP: 10.10.80.50
End Reserved system IP: 10.10.80.80
5.4.1.7 Guest Traffic
vlan range: 300 ~ 500
5.4.1.8 Cluster
Name: kvmcluster
5.4.1.9 Host
Host name: 10.10.80.7
username: root
password: password
Host tags: <无>
5.4.1.10 Add Primary Storage
name: kvmpri
protocol: nfs
Server: 10.10.80.6
Path: /home/export/nfs/kvmpri