Cloudstack

article/2025/9/10 3:50:29

 

 

1、cloudstack介绍

一个开源具有高可用性及扩展性的云计算平台,Cloudstack是一个开源的云操作系统;

cloudstack支持管理大部分主流的hypervisors,如:VMware,KVM,Citrix XenServer,Xen Cloud Platform(XCP),Oracle VM服务器和Microsoft Hyper-V。

 

2、结构介绍

注释:

#区域Zone
zone对应于现实中的一个数据中心,它是CloudStack中最大的一个单元
(一个zone包含多个pod,一个pod可以包含多个cluster,一个cluster包含多个host)#提供点pods
一个提供点通常代表一个机架;机柜里的主机在同一个子网,每个区域中
必须包含一个或多个提供点,提供点中包含主机和主存储服务器;Cloudstack
的内部管理通信配置一个预留的IP地址范围。预留的IP地址范围对云中的
每一个区域来说必须是唯一的。#集群Clusters
Clusters是多个主机组成的一个集群。
同一个cluster中的主机有相同的硬件,相同的Hypervisor和共用同样的存储。
同一个cluster中的虚拟机,可以实现无中断服务地从一个主机迁移到另一个主机上集群由一个或多个宿主机和一个或多个主要存储服务器构成;
集群的大小取决于下层虚拟机软件,大多数情况下基本无建议。#主机hosts
host就是运行的虚拟机(VM)主机。
宿主机就是一个独立的计算机,宿主机在CloudStack部署中属于最小的组织单元#存储
CloudStack中存在两种存储:
Primary storage:一级存储与cluster关联,它为该cluster中的主机内全部虚拟机提供
磁盘卷。一个cluster至少有一个一级存储,且在部署时位置要临近主机以提高性能。Secondary storage:二级存储与zone关联,它存储模板文件、ISO镜像和磁盘卷快照。

 

3、实验

 系统版本        主机名               IP地址                    磁盘Centos7.5       master01        10.10.10.80    /dev/sda 系统盘    /dev/sdb 数据盘(50G)
Centos7.5       agent01         10.10.10.81    /dev/sda 系统盘    /dev/sdb 数据盘(50G)

  3.1、基础环境设置(全部节点)

修改主机名‘、添加hosts解析、关闭SElinux

#下载epl源

  yum -y install epel-release

#关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config#临时关闭
setenforce 0
getenforce 

#同步时区
timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc 1

yum -y install ntpdate
ntpdate time.windows.com

crontab -e
*/5 * * * * /usr/sbin/ntpdate time.windows.com 2>&1 >> /dev/null

systemctl enable ntpd

  3.2、下载软件包(master节点)

#第一种方式(yum安装)
[root@master01 yum.repos.d]# pwd
/etc/yum.repos.d
[root@master01 yum.repos.d]# cat cloudstack.repo 
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/centos7/4.11/
enabled=1
gpgcheck=0
[root@master01 yum.repos.d]# yum list|grep cloudstack
cloudstack-agent.x86_64                   4.11.1.0-1.el7.centos        cloudstack
cloudstack-baremetal-agent.x86_64         4.11.1.0-1.el7.centos        cloudstack
cloudstack-cli.x86_64                     4.11.1.0-1.el7.centos        cloudstack
cloudstack-common.x86_64                  4.11.1.0-1.el7.centos        cloudstack
cloudstack-integration-tests.x86_64       4.11.1.0-1.el7.centos        cloudstack
cloudstack-management.x86_64              4.11.1.0-1.el7.centos        cloudstack
cloudstack-marvin.x86_64                  4.11.1.0-1.el7.centos        cloudstack
cloudstack-mysql-ha.x86_64                4.11.1.0-1.el7.centos        cloudstack
cloudstack-usage.x86_64                   4.11.1.0-1.el7.centos        cloudstack
[root@master01 yum.repos.d]# #第二种方式(先下载好)
#http://download.cloudstack.org/centos/7/4.11/

wget http://download.cloudstack.org/centos/7/4.11/cloudstack-usage-4.11.1.0-1.el7.centos.x86_64.rpm
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-management-4.11.1.0-1.el7.centos.x86_64.rpm
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-common-4.11.1.0-1.el7.centos.x86_64.rpm
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-cli-4.11.1.0-1.el7.centos.x86_64.rpm
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-agent-4.11.1.0-1.el7.centos.x86_64.rpm
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-baremetal-agent-4.11.1.0-1.el7.centos.x86_64.rpm

#http://download.cloudstack.org/systemvm/4.11/
wget http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.1-kvm.qcow2.bz2

  3.3、安装nfs(master节点)

配置的环境使用NFS作为主存储和辅助存储,需要配置两个NFS共享目录

[root@master01 src]# yum -y install nfs-utils[root@master01 src]# cat /etc/exports
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)[root@master01 src]# mkdir -p /export/secondary
[root@master01 src]# mkdir -p /export/primary#格式化dev/sdb作为挂载磁盘mkfs.ext4 /dev/sdb
[root@master01 ~]# mount /dev/sdb /export/secondary/#加入/etc/fsta文件中加入
/dev/sdb /export/secondary  xfs defaults 0  0***客户端创建一个/export/primary***
mkdir -p /export/primary
mkfs.ext4 /dev/sdb
[root@agent01 ~]# mount /dev/sdb /export/primary/#cloudstack官方文档
http://docs.cloudstack.apache.org/en/4.11.1.0/quickinstallationguide/qig.html#nfs
[root@master01 ~]# vim /etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020#此处防火墙端口的添加不再操作!生产中?开启防火墙放行相应端口#启动nfs服务
systemctl restart nfs
systemctl rpcbind start
systemctl enable rpcbind
systemctl enable nfs

 

  3.4、客户端挂载nfs共享磁盘

yum -y install nfs-utils[root@agent01 ~]# showmount -e 10.10.10.80
Export list for 10.10.10.80:
/export/primary   *
/export/secondary *
注释:可以进行挂载测试,测试完成可以挂载后续删除,后续软件会自动挂载

 

 

 

4、管理服务器安装

接下来进行Cloudstack管理节点和相关工具的安装

  4.1、安装管理端

#如果配置好了源
[root@master01 src]# yum -y install cloudstack-management cloudstack-common
#如果下载了好包
yum -y install cloudstack-management-4.11.1.0-1.el7.centos.x86_64.rpm  cloudstack-common-4.11.1.0-1.el7.centos.x86_64.rpm


#验证

[root@master01 ~]# rpm -qa|grep cloudstack
cloudstack-common-4.11.1.0-1.el7.centos.x86_64
cloudstack-management-4.11.1.0-1.el7.centos.x86_64

 

  4.2、安装mysql-server

[root@master01 ~]# yum -y install mariadb-servermysql安装完成后,需更改其配置文件/etc/my.cnf 在[mysqld]下添加下列参数:
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format= 'ROW'#启动mysql服务
systemctl start mariadb.service
systemctl enable mariadb.service#修改初始密码
[root@master01 ~]# mysqladmin -u root password '123456'
或(如果之前有密码需要更新)
mysqladmin -u root -p password '12345'#远程连接权限
mysql -uroot -p12345 -e "GRANT ALL PRIVILEGES ON *.* TO ROOT@'%' IDENTIFIED BY '12345'";

  4.3、系统初始化

在程序执行完毕后,需初始化数据库,通过如下命令和选项完成:

[root@master01 ~]# cloudstack-setup-databases cloud:12345@localhost --deploy-as=root:12345

#启动cloudstack服务 [root@master01
~]# cloudstack-setup-management Starting to configure CloudStack Management Server: Configure Firewall ... [OK] Configure CloudStack Management Server ...[OK] CloudStack Management Server setup is Done!

#启动日志
[root@master01 ~]# tailf /var/log/cloudstack/management/setupManagement.log

 

  4.4、系统模板设置

CloudStack通过一系列系统虚拟机提供功能,如访问虚拟机控制台,如提供各类网络服务以及管理辅助存储中的各类资源。该步骤会获取系统虚拟机模板,用于云平台引导后系统虚拟的部署。

然后需要下载系统虚拟机模板并把这些模板部署于刚才创建的辅助存储中,管理服务器包含一个脚本可以正确的操作这些系统虚拟机模板:

[root@master01 ~]# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary/ -f /usr/local/src/systemvmtemplate-4.11.1-kvm.qcow2.bz2 -h kvm -F

 

 

 

  4.5、登录管理页面

要访问CloudStack的Web界面,只需将浏览器指向 http://172.16.10.2:8080/client,默认用户名为“admin”,默认密码为“password”

5、安装agent节点及配置

 

  5.1、agent安装

安装kvm代理仅仅需要一条简单的命令,但之后我们需要进行一些配置。

[root@agent01 ~]# yum -y install cloudstack-common cloudstack-agent

   5.2、修改配置

KVM的配置相对简单,仅需配置一项,编辑QEMW VNC配置文件/etc/libvirt/qemu.conf并取消如下一行的注释;同时注释#security_driver = "selinux"。

vnc_listen = "0.0.0.0"   #这个需要打开
#security_driver = "selinux"  #这个默认就是关闭的,不需要管

 

   5.3、配置Libvirt

CloudStack使用libirt管理虚拟机;因此正确的配置libvirt至关重要。libvirt属于cloudstack-agent的依赖组件,需要提前安装好。

为了实现动态迁移,libvirt需要监听使用非加密的TCP连接,还需要关闭libvirts尝试使用组播DNS进行广播。这些都在 /etc/libvirt/libvirtd.conf文件中进行配置。

设置如下参数:(不是必须的

listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0

 

[root@agent01 ~]# modprobe kvm
[root@agent01 ~]# lsmod|grep kvm
kvm                   578518  0 
irqbypass              13503  1 kvm

 

重启libvirt服务

systemctl restart libvirtd

 

 6、系统配置

 10章未看

 

转载于:https://www.cnblogs.com/huangyanqi/p/9592966.html


http://chatgpt.dhexx.cn/article/lJqgewy6.shtml

相关文章

【私有云架构】Cloudstack 与 OpenStack:哪个更适合您?

创建云管理平台是因为云计算几乎已成为大多数日常业务使用的必需品。CloudStack 与 OpenStack 之争并不是很重要,而是在控制大量数据的高级云管理平台之间进行选择。 对于许多组织而言,重要的一步是实施逻辑云管理,该管理拥有许多用于控制各种…

CloudStack那些事儿1 : 初识CloudStack

CloudStack是什么呢?百科上对CloudStack的定义如下: CloudStack是一个开源的具有高可用性及扩展性的云计算平台,同时是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用CloudSt…

OpenStack与CloudStack

目录 一、云计算 二、IaaS 三、OpenStack与CloudStack (一)概述 (二)项目历史与运营团队 (三)架构 (四)计算 (五)网络 (六)存…

CloudStack(二)基础网络模式安装部署

概述: 在CloudStack(一)简介及相关理论介绍里面简单的介绍了下cloudstack的相关概念好让我们安装部署的时候好理解一点,在cloudstack的区域里面有两种网络模式, 基础模式 基础网络模式只提供了简单的网络模型,管理网络、来宾网络(只支持1个来宾网络)、存储网络、V-Route(只提供…

CloudStack 云计算平台框架

前言 CloudStack 和OpenStack 一样都是IaaS层 开源框架,可以管理XenServer、ESXI、KVM、OVM等主流虚拟机,相对OpenStack比较简单、稳定; 二、Cloud Stack架构 Zone:相当于现实中的1个数据中心,它是CloudStack中最大的一…

【大数据实验1】cloudstack安装部署(小白式傻瓜教学)

cloudstack安装部署 0 说明1 Prerequisites 先决条件2 Environment 环境2.0 先看看有没有KVM2.1 Operating System 操作系统2.2 Configuring the network 配置网络2.3 Hostname2.4 SELinux2.5 NTP2.6 Configuring the CloudStack Package Repository 配置CloudStack软件包存储库…

Java线程池

目录 一、什么是线程池 二、线程池有哪些好处? ①降低资源的消耗 ②提高响应速度 ③提高线程的可管理能力 三、线程池如何使用 ①创建线程池​编辑 工厂模式: 工厂模式代码实现: ②往线程池当中添加任务 四、Java当中有哪些线程池 ​编辑 ①Executors.newFixedThreadPool …

线程池(一)线程池的基本使用

一、线程池简介 线程池的概念 线程池就是首先创建一些线相衬,它们的集合称为线程池,使用线程池可以很好的提高性能,线程池在系统启动时既创建大量空闲的线程,程序将一个任务传给线程池。线程池就会启动一条线程来执行这个任务&…

线程池介绍及创建线程池的4种方式

1. 什么是线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成…

线程池的使用

1.线程池使用场景 java中经常需要用到多线程来处理一些业务,我们非常不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程,那样势必有创建及销毁线程耗费资源、线程上下文切换问题。同时创建过多的线程也可能引发资源耗尽的风险,这…

线程池_线程池详解

1 线程池使用场景? java中经常需要用到多线程来处理一些业务,我们非常不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程,那样势必有创建及销毁线程耗费资源、线程上下文切换问题。同时创建过多的线程也可能引发资源耗尽的风险&…

Netty 线程池

Netty的线程池有什么样的特性 Java 原生线程池 Java 原生的线程池主要有三种:ThreadPoolExecutor、ScheduledThreadPoolExecutor、ForkJoinPool。 ThreadPoolExecutor 是最古老的类,我们通常说的线程池,也是指这个类。 ScheduledThreadPoo…

Linux —— 线程池

目录 一、什么是线程池 二、线程池的优点 三、线程池的应用 四、实现一个简单的线程池 五、单例模式 1. 饿汉实现方式 2. 懒汉实现方式 3. 单例模式实现线程池(懒汉方式) 六、其他常见的各种锁 一、什么是线程池 线程池是线程的一种使用模式。在…

线程池的实现原理

系统学习性,移步 IT-BLOG 线程池做的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数超过了最大数量超出数量的线程排队等候,等其他线程执行完毕,再从队列…

java——线程池

一、线程池 线程池可以看做是线程的集合。它的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后 启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕, 再…

java线程池(详解)

线程池介绍 线程池(thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,对线程统一管理。 线程池就是存放线程的池子,池子里存放了很多可以复…

Java线程池详解

本文包含知识点 线程池的使用场景分析线程池的创建及重要参数线程池实现线程复用的原理springboot中使用线程池Callabel与Runnable任务在基于spring体系的业务中正确地关闭线程池实现优先使用运行线程及调整线程数大小的线程池(线程池的优化)在java web项目中慎用Executors以及…

C++线程池

1.基础概念 线程池:一种线程的使用模式,线程过多会带来调度开销,进而影响缓存局部性和整体性。而线程池维护着多个线程,等待监督管理者分配可并行执行的任务。这样避免了在短时间内创建和销毁线程的代价。线程池不仅能够内核的充分…

线程池详解

成功不是将来才有的&#xff0c;而是从决定去做的那一刻起&#xff0c;持续累积而成。 目录 背景 线程池介绍 线程池使用 Executors 线程池如何关闭&#xff1f; 面试题 总结 背景 下面是一段创建线程并运行的代码: for (int i 0; i < 100; i) {new Thread(() -&…

线程池(通俗易懂)

目录 一、什么是线程池 二、创建线程池的方式 三、线程池的七大参数 四、四种拒绝策略 1.AbortPolicy() 2.CallerRunsPolicy() 3.DiscardPolicy() 4.DiscardOldestPolicy() 五、自定义一个线程池 1.场景描述 2.代码实现 一、什么是线程池 线程池其实就是一种多线程处理…