- 搭建一台安装了XenServer的服务器
- 搭建一台安装了CloudStack的服务器用以管理云平台
- 可以使用CloudStack云平台进行虚拟机管理
- 使用远程桌面访问windows虚拟机
由于最近实验室要搭建cloudstack+xenserver环境,先写出这个配置文档,以便后期查阅,文章后面我会给出一个shell脚本安装cloudstack (*^__^*) 嘻嘻……
安装cloudstack的那台机器安装的操作系统为centos6.3 desktop版本,xenserver安装的是xenserver6.0.2版,因为根据官方文档指示,目前cloudstack4.2只支持到6.0.2版本的xenserver。(注意所有的机器的主机名要有统一的后缀,比如cloudstack.cloud.priv,Xenserver.cloud.priv)
一、
首先要做的是先安装centos,然后配置官方的repo,把/etc/yum.conf文件的里的keepcache设置为1,用于保存下载下来的rpm包,以后用来创建本地源,接下来,按照官方文档上写的一步一步安装下去,此部分主要是把rpm包保存下来。
二、
在centos上开启web服务
切换到/var/www/html/目录下,mkdir my_repo ;切换到/var/cache/yum/x86_64/6/使用如下命令把保存下来的rpm包找到并放到my_repo下
find . -name "*.rpm" |xargs -I{} cp {} /var/www/html/my_repo/
在my_repo下使用createrepo命令,创建本地源。编写my.repo文件如下:
[my]
name=cs
baseurl=http://10.10.10.12/my_repo
enabled=1
gpgcheck=0
其中10.10.10.12是本地web服务的ip地址,该文件放置于/etc/yum.repos.d/目录下
三、
yum makecache
yum install -y cloudstack-management
在makecache之前,若是无网络的情况下,最好删掉/etc/yum.repos.d/目录下的所有的repo文件,防止yum重新尝试从网络上获取rpm
下载vhd-util
点击打开链接这步是xenserver必须做的一步,切记切记 !拷贝 vhd-util 到 /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver
四、
yum install mysql-server
安装mysql-server,并修改/etc/my.cnf为如下(注意红色字体,别放到别的地方):
[mysqld]
datadir=/var/lib/mysql
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
然后执行
下面处理有关linux安全机制的问题,防止cloudstack被阻挡——关闭selinux
修改 /etc/selinux/config
然后临时的修改并立即生效:
setenforce permissive
创建cloudstack的mysql数据库表:
cloudstack-setup-databases cloud:123456@localhost --deploy-as=root
配置cloudstack:
cloudstack-setup-management
注意此步会自动打开iptables,如防火墙策略还没有写
清楚,切记关
闭防火墙
六、设置nfs服务
mkdir -p /export/primary
mkdir -p /export/secondary
然后修改/etc/export文件
如下:
/export *(rw,async,no_root_squash,no_subtree_check)
然后执行:
exportfs -a
修改文件/etc/sysconfig/nfs,
把
下列注释的部分去
掉
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
修改/etc/idmapd.conf其中的Domain,使得集群中的所有机器的Domain相同
我们修改成了cloud.priv
然后重启服务
service rpcbind start
service nfs start
chkconfig nfs on
chkconfig rpcbind on
七、
安装模板,可以事先从外网上下载,然后再放在我们的http服务器上,从本地的web服务上下载
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://10.10.10.12/systemvmtemplate-2013-07-12-master-xen.vhd.bz2 -h xenserver -F
其中10.10.10.12为本地web服务器IP,然后这里的/export/secondary即二级存储目的,这个目录一定要是刚才我们nfs上的路径,待会在配置cloudstack时需要配置这个路径,方便cloudstack的两个的诞生虚拟机从模板产生,即SSVM和CPVM
八、配置cloudstack
service cloudstack-management start
后即可从http://10.10.10.12:8080/client打开cloudstack的UI界面
不要着着急打开这个web页面,可使用tailf /var/log/cloudstack/management/managemet-server.log 打开,直到Notifying mangement server join event took 。。。。这行显示,才能打开web界面并进入。
用户名和密码分别为admin和password
选择已经使用过cloudstack
点击全局设置
搜索secs并回车
找到secstorage.allowed.internal.sites这个选项,把值写入10.10.10.0/24,这表示允许子网为10.10.10.*的ip访问二级存储
继续搜索system.vm
修改system.vm.use.local.storage,使得false为true,这个表示,允许使用xenserver本地的存储作为虚拟机的硬盘,因为在一台主机安装完xenserver后,发现其“巨大”的磁盘空间可使用量为0,全部被xenserver隐藏了,为了不浪费空间,我们允许使用本地硬盘,这样也能减轻虚拟机硬盘使用nfs所产生的网络负载。
接下来,
service cloudstack-managment restart
重启cloudstack服务
还是选择已经使用过cloudstack,然后点基础架构,选择区域的查看全部,选择添加新的区域
然后next,选择dns设置为8.8.8.8(公网的话),若是内网,这会在后面会产生问题,后面再提~~
一定要选择一起用本地存储!!!
网络部分直接next
然后转到这里:
提供点的意思即xenserver主机的ip地址范围,这些ip将用作host主机的ip范围
下面是来宾网络:
这个来宾网络的意思即虚拟机将要使用的ip范围.
集群名称随便写个就好了
下面添加主机
这里10.10.10.181即一台已经安装了xenserver的主机,它的ip为181,此外主机名称为xenserver.cloud.priv,还有修改了/etc/hosts,加入了cloudstack管理节点的ip
10.10.10.12 cloudstack.cloud.priv
还要修改/etc/idmapd.conf,同样把Domain改为cloud.priv
下面进入二级存储的选择
这里选择nfs,然后nfs服务器即前面写的cloudstack管理节点作为nfs服务,我们知道前面的/export/secondary目录里已经下好了虚拟机的模板,就那条很长很长的命令~
最好在选择next前,先在机器上用
mount -t nfs 10.10.10.12:/export/secondary /mnt
试试看,能不能重新mount,若出错,则重新配置10.10.10.12的nfs服务,看是否是服务没有重启
下面launch~~
已经完成了所有的步骤~:
选择“是”~
在控制板的选项下,能够看见,已经有内存被使用,还有1Ghz的cpu被使用,是因为SSVM和CPVM正在被启动呢~
还在基础架构里能够看见有两个虚拟机的状态:
等待两个虚拟机的状态为“up”状态:
现在就可以上传iso镜像了
点击模板按钮:
在选择视图里选择ISO
选择注册iso
注意在确定前,尝试下这个url是否正确
查看iso状态能看到正在被下载
如果状态一直为空,请检查防火墙设置,或者直接关闭防火墙,重启SSVM虚拟机
直到iso状态为就绪
下面新建我们的虚拟机服务方案
选择存储类型为local,注意cpu主频务必要低于xenserver主机的单核cpu主频大小,不然创建虚拟机时失败
下面添加实例:
点击launch实例
虚拟机正在creating~稍等后,就会转变为Running状态,这时就可以通过web界面打开这个虚拟机了
在内网状态下,会报这样的问题:
这是由于dns服务器没有响应的缘故,要么配置自己内部集群的dns服务器,通过解析*-*-*-*.realhostip.com成为*.*.*.*即可解决这个问题,但是这么做比较麻烦
可以简单地通过修改hosts文件把10-10-10-202.realhostip.com映射为10.10.10.202即可解决问题
重新刷新界面就好了
下面安装windows xp的步骤和配置远程桌面的部分就不再赘述了,如果出现web界面刷不出来的情况,不要紧张,重启下CPVM就好了,这个web界面用的不多,安装完操作系统,直接远程登陆就好了,这个web界面的响应速度还是不能恭维的。
接下来,我们还需要修改一个安全组的策略,才能顺利的于虚拟机进行tcp/udp/icmp通信。
在网络里选择安全组:
修改default的入口规则和出口规则,如下图所示(出口规则与入口规则同样):
我们安装好xp后,即可查看它的ip
而这个ip,我们也能从虚拟机的信息中得到
在nic这个tab中,我们能看到cloudstack给这台虚拟机分配了地址203
下面我们远程登录试试,这应该是最常用的方式了~
点击确定,即可以进入10.10.10.203的桌面,这个时候,一点也不卡了~~
配置的过程到此结束~。
九、
配置cloudstack的安装脚本install.sh,适用于centos6.3
#!/bin/sh
IP=10.10.10.12
\rm my.repo
touch my.repo
echo "[my]" >> my.repo
echo "name=cs" >> my.repo
echo "baseurl=http://$IP/my_repo" >> my.repo
echo "enabled=1" >> my.repo
echo "gpgcheck=0" >> my.repo
\cp ./config /etc/selinux/config
setenforce permissive
\rm /etc/yum.repos.d/*.repo
\cp my.repo /etc/yum.repos.d/
\cp -r ./my_repo /var/www/html/
\cp ./systemvmtemplate-2013-07-12-master-xen.vhd.bz2 /var/www/html/systemvmtemplate-2013-07-12-master-xen.vhd.bz2
\cp ./*.iso /var/www/html/
service httpd start
yum makecache
yum install -y cloudstack-management
\cp ./vhd-util /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/
chmod 777 /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util
yum install -y mysql-server
\cp ./my.cnf /etc/my.cnf
service mysqld restart
cloudstack-setup-databases cloud:123456@localhost --deploy-as=root
cloudstack-setup-management
service iptables stop
yum install -y nfs-utils
mkdir -p /export/primary
mkdir -p /export/secondary
\cp ./exports /etc/exports
exportfs -a
\cp ./nfs /etc/sysconfig/nfs
service iptables stop
\cp ./idmapd.conf /etc/idmapd.conf
service rpcbind start
service nfs start
chkconfig nfs on
chkconfig rpcbind on
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary/ -u http://$IP/systemvmtemplate-2013-07-12-master-xen.vhd.bz2 -h xenserver -F
service iptables stop
注意这里的相关文件要预先写好,方便覆盖系统的本来配置文件