热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cloudstack4.2+XenServer6.0.2详细配置图文教程

搭建一台安装了XenServer的服务器搭建一台安装了CloudStack的服务器用以管理云平台可以使用CloudStack云平台进行虚拟机管理使用远程桌面访问windows虚拟机由于最近实验室要搭建cloudstack+xenserver环境,先写出这个配置文档,以便后期查阅,文章后面我

搭建一台安装了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

然后执行

service mysqld start
五、

下面处理有关linux安全机制的问题,防止cloudstack被阻挡——关闭selinux

修改 /etc/selinux/config

成为
SELINUX=permissive

然后临时的修改并立即生效:

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 注意这里的相关文件要预先写好,方便覆盖系统的本来配置文件

推荐阅读
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 在日常生活中,支付宝已成为不可或缺的支付工具之一。本文将详细介绍如何通过支付宝实现免费提现,帮助用户更好地管理个人财务,避免不必要的手续费支出。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
  • 解决Visual Studio Code中PHP Intelephense误报问题
    PHP作为一种高度灵活的编程语言,其代码结构可能导致Intelephense插件在某些情况下报告不必要的错误或警告。自1.3.3版本起,Intelephense引入了多个配置选项,允许用户根据具体的工作环境和编程风格调整这些诊断信息的显示。 ... [详细]
author-avatar
mobiledu2502914875
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有