cloudstack部署
参考文档
https://blog.csdn.net/u012124304/article/details/80960504#Mysql_37
cloudstack的rpm包下载地址
http://download.cloudstack.org/centos/
环境部署规划,
虚拟化:esxi 6.7
操作系统版本:centos 6.9
cloudstack版本:4.9.3.0
python版本:2.6
|
主机名 |
IP地址 |
配置 |
用途 |
|
node1 |
172.16.103.2 |
16vcpu,32Gb内存,16G精简配置硬盘 |
cloudstack控制节点,安装数据库,和控制节点的web控制台,同时也作为计算节点存在 |
|
node2 |
172.16.103.3 |
4vcpu,4G内存,16G精简配置,300G精简配置硬盘,100G精简配置 |
模拟存储节点,安装nfs包,对外提供nfs的存储服务,16G用于安装操作系统,300G用于主存储,100G用户二级存储 |
|
node3 |
172.16.103.4 |
16vcpu,32Gb内存,16G精简配置硬盘 |
纯的计算节点,为cloudstack提供计算资源 |
1,配置ntp服务器和数据库服务器
关闭selinux和防火墙,重启
vi /etc/selinux/config
chkconfig iptables off
修改hosts
vi /etc/hosts
172.16.103.2 node1
172.16.103.3 node2
172.16.103.4 node3
安装ntp服务
yum install ntp -y
service ntpd start
chkconfig ntpd on
安装mysql
yum -y install mysql mysql-server
service mysqld start
chkconfig --add mysqld
chkconfig mysqld on
修改mysql中root用户的密码为root
mysql
mysql> use mysql;
mysql> set password for root@localhost = password('root');
2,安装管理端和服务端的rpm包
cloudstack主要的包
cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm #agent包。添加计算节点的时候,计算节点上需要安装的包
cloudstack-common-4.9.3.0-1.el6.x86_64.rpm #common包,应该是主程序包
cloudstack-management-4.9.3.0-1.el6.x86_64.rpm #管理端的包
cloudstack-usage-4.9.3.0-1.el6.x86_64.rpm #计费用量包,本次项目不安装
mysql-connector-python-2.1.3-1.el6.x86_64.rpm #cloudstack安装所需要的mysql的python连接器,需要自行去mysql官网下载对应系统版本的即可
libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数
libvirt-lock-sanlock-0.10.2-62.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数
sanlock-2.8-3.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数
sanlock-lib-2.8-3.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数
augeas-1.0.0-10.el6.x86_64.rpm #安装libvirt所需要的依赖包,需要自行上网下载,通过rpm -ivh 安装,必要是可以强制安装,加上--force --nodeps参数
jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64 #添加计算节点的需要安装的依赖包
systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2 #系统vm文件
将以上rpm包上传到/root目录下,然后使用yum localinstall 安装
先安装mysql的python连接器包
rpm -ivh mysql-connector-python-2.1.3-1.el6.x86_64.rpm
使用yum localinstall 安装cloudstack包
yum localinstall cloudstack-management-4.9.3.0-1.el6.x86_64.rpm cloudstack-common-4.9.3.0-1.el6.x86_64.rpm -y
初始化数据库
cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:root
参数解析:
cloud:cloud@localhost :其中cloud:cloud是cloudstack在mysql数据库中创建的账户和密码,localhost是mysql数据库的地址,因为我们装在本机上,所以是localhost,如果mysql数据库在另外一台机器上,则需改为该机器的IP或域名
–deploy-as=root:root :这个参数的值root:root填的是数据库的root用户名和密码
执行这个命令会在MySql数据库上创建一个cloud的用户,并使用这个用户创建一个cloud数据库。出现以下信息则表明cluodstack的数据库初始化成功:

时间比较久,耐心等待。
初始化cloudstack管理服务器
cloudstack-setup-management

使用浏览器访问,地址为[host_ipaddress]:8080/client,默认的用户名和密码为admin/password,首次登陆和首次使用最好走一遍下面的向导

3,配置该主机为计算节点。
配置为计算节点需要安装cloudstack-agent包和cloudstack-common包,而在这之前还需要安装libvirt和qemu,cloudstack对KVM虚拟化层的操作实际上都是libvirt和qemu来完成的,安装libvirt和qemu需要安装相关的依赖包,需要的依赖包如下
libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm
libvirt-lock-sanlock-0.10.2-62.el6.x86_64.rpm
sanlock-2.8-3.el6.x86_64.rpm
sanlock-lib-2.8-3.el6.x86_64.rpm
augeas-1.0.0-10.el6.x86_64.rpm
这5个包在centos的系统安装镜像里面没有,需要自行上网搜索下载,下面安装这几个rpm包
rpm -ivh libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm
rpm -ivh sanlock-lib-2.8-3.el6.x86_64.rpm
rpm -ivh sanlock-2.8-3.el6.x86_64.rpm
rpm -ivh augeas-1.0.0-10.el6.x86_64.rpm --force --nodeps
安装libvirt和qemu
yum install libvirt* qemu* -y
安装cloudstack-agent包和cloudstack-common包,同时安装cloudstack-usage包,如果是其他纯计算节点,可以不安装cloudstack-usage包,在安装这些包之前还需要安装一个依赖包,这个依赖包可能在centos的系统镜像里面也没有
rpm -ivh jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm
yum localinstall cloudstack-common-4.9.3.0-1.el6.x86_64.rpm cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm
启动相关服务
service cloudstack-agent start
查看服务器状态
service cloudstack-agent status

发现服务器为cloudstack-agent dead but subsys locked状态,修复该错误,开启宿主机的虚拟化支持,在vmware workstation设编辑虚拟机设置选择CPU,勾选虚拟化引擎

修改配置文件
vi /etc/cloudstack/agent/agent.properties
private.network.device=eth0
public.network.device=eth0
这里主要修改的网桥设备,如果使用本地网卡作为网桥的话就写ifconfig看到的本地网卡的名字即可
重新启动服务
service cloudstack-agent restart
查看服务状态
service cloudstack-agent status

4,配置存储节点
关闭该节点的selinux和iptables,挂载系统镜像,安装nfs包
yum install nfs-utils rpcbind -y
设置开机启动
chkconfig nfs on
chkconfig rpcbind on
建立data目录
mkdir -p /data
mkdir primary
mkdir secondary
添加两块磁盘,将磁盘分区格式化之后挂载到/data/primary和/data/secondary 目录,并写入fstab文件,实现开机自动挂载
编辑nfs的配置文件
vi /etc/exports
/data/primary *(rw,sync)
/data/secondary *(rw,sync)
/data/primary为把该目录共享出去,*代表所有网络的主机可以连接该共享,(rw,sync) rw为权限,可读可写,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。
设置权限
chown -R nfsnobody:nfsnobody /data
重启相关服务
service rpcbind restart
service nfs restart
查看nfs共享的目录

5,创建系统vm
在管理节点上创建被挂载的二级存储目录/data/secondary,然后将上面nfs服务器的secondary目录挂载的此目录。
mkdir -p /data/secondary
mount -t nfs 172.16.103.3:/data/secondary /data/secondary/
同时写入fstab文件,实现开机自动挂载
vi /etc/fstab
172.16.103.3:/data/secondary /data/secondary ext4 defaults 0 0
上传系统vm文件到/data/secondary目录
解压缩系统vm文件
bunzip2 systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2
安装系统vm
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /data/secondary/ -f /data/secondary/systemvm64template-4.10-4.10.0.0-kvm.qcow2 -h kvm -F

6,图形化操作














注意看系统的vm是状态,

如果代理状态不是up的话,可以尝试重启一下资源域
如果是在esxi虚拟化下做此实验的话,需要在esxi虚拟化平台中启动混杂模式,具体操作是网络,选择节点桥接的网络,启用混杂模式,然后重启cloudstack的资源域即可。
7,添加一个计算节点
计算节点安装好操作系统,挂载系统镜像为yum源,关闭selinux和iptables,注意在vmware workstation设编辑虚拟机设置选择CPU,勾选虚拟化引擎

编辑hosts文件
vi /etc/hosts
172.16.103.4 node3
上传相关的程序包和依赖包到/root目录
augeas-1.0.0-10.el6.x86_64.rpm
cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm
cloudstack-common-4.9.3.0-1.el6.x86_64.rpm
jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm
libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm
sanlock-2.8-3.el6.x86_64.rpm
sanlock-lib-2.8-3.el6.x86_64.rpm
安装安装libvirt和qemu的依赖包
rpm -ivh sanlock-lib-2.8-3.el6.x86_64.rpm
rpm -ivh sanlock-2.8-3.el6.x86_64.rpm
rpm -ivh augeas-1.0.0-10.el6.x86_64.rpm --force --nodeps
安装libvirt和qemu,cloudstack对KVM虚拟化层的操作实际上都是libvirt和qemu来完成的
yum install libvirt* qemu*
安装cloudstack-agent包和cloudstack-common包的依赖包
yum install java-gcj-compat
rpm -ivh jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm
安装cloudstack-agent包和cloudstack-common包
yum localinstall cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm cloudstack-common-4.9.3.0-1.el6.x86_64.rpm
编辑cloudstack-agent的配置文件
vi /etc/cloudstack/agent/agent.properties
private.network.device=eth0
public.network.device=eth0
这里主要修改的网桥设备,如果使用本地网卡作为网桥的话就写ifconfig看到的本地网卡的名字即可
开启cloudstack-agent服务
service cloudstack-agent start
查看cloudstack-agent服务的运行状态
service cloudstack-agent status

图形化操作,添加计算节点

8,默认情况下的cloudstack控制台上主存储中显示的容量为可分配的容量,由于虚拟化平台有一个存储超配的概念,所以默认情况下这里显示的是可分配的容量,默认情况下可分配的容量是实际容量的2倍(下图中显示的容量为实际容量,是本人修改做全局配置之后的容量),为了能够显示实际容量需要在全局配置中更改相关的参数,需要更改的参数为storage.overprovisioning.factor(默认这个值为2)修为该1即可,修改之后要重启cloudstack控制台的服务。


9,添加iso镜像
由于是内网环境,需要在nfs上搭建一个httpd服务,用于发布系统发iso镜像包,目前版本无法支持在web端自由上传iso镜像,所以需要搭建模拟环境
安装httpd服务
yum install httpd -y
编辑httpd.conf配置文件,将默认的html目录更改为主存储的目录
cd /etc/httpd/conf
备份默认的配置文件
mv httpd.conf httpd.conf.bak
将原配置文件中的内容去掉注释行导入到新配置文件
cat httpd.conf.bak |grep -v '#' > httpd.conf
vi httpd.conf
DocumentRoot "/data/primary" #此处修改为主存储挂载的目录
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/data/primary"> #此处修改为主存储挂载的目录
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
重启http服务
service httpd restart
将win2008的系统镜像和centos7.3的系统镜像上传至/data/primary目录并且将win的镜像名字修改为win08r2.iso,centos系统镜像名字修改为centos1611every.iso
创建index.html文件,写入上面的系统镜像的下载地址
vi /data/primary/index.html
http://172.16.103.3/win08r2.iso
<p>
http://172.16.103.3/centos1611every.iso
</p>
在cloudstack平台添加iso



添加之后查看状态一直处于Connection refused状态,百度得知需要修改全局配置中
secstorage.allowed.internal.sites的配置,默认情况下,不允许连接任何地址,需要将这里配置成我们的httpd的网络地址,注意,经过我的多次测试,这里不能写IP地址,写了IP地址后重启了控制台依然还会出现connection refused的情况,所以所需要的填写的一个网络,例如我们的httpd服务在172.16.103.2,那么这里就需要填写172.16.103.0/24
填写完毕之后,重启控制台机器,重启不能够使用restart参数,需要在控制节点(node1)上执行以下操作
service cloudstack-management stop
service cloudstack-management start
执行完start命令之后要确保8080端口打开之后才可以访问控制台
netstat -nutpl |grep 8080

配置了以上全局配置之后可以看到镜像处于downloaded状态了

10,模板制作
首先使用上面的ISO镜像安装好操作系统,然后将安装好的系统进行优化,最后制作成系统模板。
centos模板制作
安装好的centos系统需要执行的操作,首先是网络配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
仅保留上面的配置项,其他项均删除
删除udev绑定
rm -f /etc/udev/rules.d/70-persistent-net.rules
删除历史命令
history -c
其实还可以执行更多的优化操作例如,删除日志,安装一些需要的软件之类的。
然后关机,等待cloudstack控制台上centos实例的状态为stopped状态之后在创建模板如下图

创建模板
点击实例名

点击查看卷

点击卷名名称

点击创建模板

输入自定义的名称和说明,选择对应的操作系统,勾选公用,点击确定即可创建模板,模板创建成功之后即可使用模板快速创建虚拟机。

windows主机创建模板的流程根上述大致相同,都是首先执行一些系统优化的操作,不同之处在于有些低版本的windows系统可能需要额外添加一些支持虚拟化的驱动(主要是磁盘的驱动),例如virtio-win.iso之类的,最后执行windows封装命令即可。系统封装的具体操作如下
在C:\Windows\System32\Sysprep目录下,运行sysprep.exe,选择进入系统全新体验,关机,点确定即可。

制作模板的过程根上述制作centos模板的过程类似,都是选择卷,制作模板,需要注意的是执行关机之后也要得到cloudstack控制上对应实例的状态处于stopped之后再执行制作模板的操作
cloudstack部署的更多相关文章
- cloudstack ---部署的架构
cloudstack跟KVM一起部署的架构 下图是CloudStack跟kvm一起部署的架构: 在每个kvm的宿主机上都需要部署agent程序. cloudstack跟vsphere一起部署的架构 下 ...
- 虚拟化平台cloudstack(3)——安装(下)
登录时用户名和密码错误 默认账号密码 admin/password 管理节点安装好后,初始化数据库,完了使用admin和password登陆提示用户名密码错误,查看日志: Fail to genera ...
- 四大主流云平台对比--CloudStack, Eucalyptus, vCloud Director和OpenStack。
我迟早可能都要进入的领域,提前温习... 还有KVM,ESXI,API,XEN之间的术语和关系,也要心中有数.. ~~~~~~~~~~~~~~~~~~~ 云计算在如今的IT界一直是一个最热门的话题,鉴 ...
- Cloudstack
1.cloudstack介绍 一个开源具有高可用性及扩展性的云计算平台,Cloudstack是一个开源的云操作系统: cloudstack支持管理大部分主流的hypervisors,如:VMware, ...
- Cloudstack介绍(一)
云计算的出现 基本上,云计算只是一种把 IT 资源当作服务来提供的手段.几乎所有 IT 资源都可以作为云服务来提供:应用程序.计算能力.存储容量.联网.编程工具,以至于通信服务和协作工具. 云计算最早 ...
- OpenStack、CloudStack、Eucalyptus和vCloud Director四大主流云平台怎么选?
软件产品开发公司Altoros Systems的IT基础设施设计师Vadim Truksha在美国<网络世界>上发表一篇文章,详细对比了CloudStack.Eucalyptus.vClo ...
- cloudstack-4.1.5版本最全入门笔记【2022】
cloudstack简介 CloudStack是一个开源的具有高可用性及扩展性的云计算平台.目前Cloudstack支持管理大部分主流的hypervisors,如KVM,XenServer,VMwar ...
- 快速部署简单私有云CloudStack(上)
前言: 亲身用了大半年,没出过重大毛病,也就是服务挂了,跟服务器也没啥关系.如果想更深入学习cloudstack可以试试高级网络,我是一直用的简单网络(扁平网络). 由来:CloudStack的前身是 ...
- Centos7快速部署CloudStack服务器
OS:centos7 server:172.16.13.159 client:172.16.13.156 1.下载要用到的安装包 在client上: wget http://download.clou ...
随机推荐
- Hyper-V + WSL2与 VirtualBox 共存
Hyper-V + WSL2与 VirtualBox 共存 这样的教程网上有很多,我先简单复述一下.真正麻烦的是我遇到的问题--开启 Hyper-V 后我的电脑会多出几个删不掉的虚拟显示器来,会在文章 ...
- flex 简单设置
/*弹性盒子 start*/ /* ============================================================ flex:定义布局为盒模型 flex-v: ...
- 解决dede编辑器不能保存word文档样式问题
ckeditor在dede里不能保存样式,试过多种解决办法都还是没有解决.最终将编辑器换成FCK得到解决. 第一步:下载FCK编辑器 下载地址: 链接: http://pan.baidu.com/s/ ...
- 制作ppt最少必要知识
设计PPT的最少必要知识是什么呢?其实,只要记住两个词就可以了. 简洁,留白. 简洁,就是有很简单的实施方案:在任何一个视觉框架之中,都要尽量减少元素的数量(如形状.线条样式.颜色的数量等),将它们控 ...
- windows安装python2.7、python3.7和pycharm
下载安装包 下载可执行文件 安装 安装2.7 安装pycharm
- solidity 错误
solidity版本 0.7.5 Member "transfer" not found or not visible after argument-dependent looku ...
- 2020牛客NOIP赛前集训营-提高组(第三场)C-牛半仙的妹子Tree【虚树,最短路】
正题 题目链接:https://ac.nowcoder.com/acm/contest/7609/C 题目大意 给出\(n\)个点的一棵树,\(m\)个时刻各有一个操作 标记一个点,每个点被标记后的每 ...
- Kettle学习笔记(四)— 总结
目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle中设置编码 ...
- MySQL优化之路
一.Mysql的存储原理 索引相关 本质 索引是帮助MySQL高效获取数据的排好序的数据结构 建索引,提高数据检索的效率,降低数据库的IO成本: 通过索引列对数据进行排序,降低数据排序的成本, ...
- 7.JVM调优-方法区,堆,栈调优详解
通常我们都知道在堆空间新生代Eden区满了,会触发minor GC, 在老年代满了会触发full GC, 触发full GC会导致Stop The World, 那你们知道还有一个区域满了一会触发Fu ...