Cloudstack
OpenStack是目前最大和最活跃的开源云计算项目,OpenStack已经获得了很多的支持,包括很多大牌厂商,例如Rackspace、戴尔、惠普、思科、VMware和红帽等。与此同时,另外一个开源云计算项目CloudStack也正迅猛的增长,对OpenStack发起挑战,目前主要受到思杰(Citrix)和其他较小厂商的支持。
CloudStack是一个开源的具有高可用性及扩展性的云计算平台。2012年4月Ctrtix宣布将CloudStack加入Apache软件基金会,成为Apache许可下的完全开源软件。可以加速高伸缩性的公共和私有云(基础设施即服务)的部署、管理、配置。提到开源的云计算平台,相信大家首先想到的可能是OpenStack,目前国内的几家云计算平台如阿里云、盛大云以及新浪SAE貌似都基于OpenStack做了二次开发。OpenStack由NASA和Rackspace合作研发的的云计算平台,以Apache许可证授权,旨在为公有云及私有云的建设与管理提供软件的自由软件和开源项目。同时兼容亚马逊AWSAPI 接口,可用来管理AWS的资源。
如何选择cloudstack 一个考虑的点:
如果公司是偏向于项目集成的,并不想在底层做太多的投入,只希望有一个稳定的底层,自己根据用户的业务场景进行二次开发,那么CloudStack 很适合你。CloudStack的底层功能已经做的很完善了,目前CloudStack的落地项目很多,功能和稳定性上更适合商用。国内的公司只需要做一些界面的开发,结合客户的业务做一些定制即可。相对来说,开发难度低很多。国内的java程序员要比python程序员多很多,招人也方便。
OpenStack和CloudStack虽然都对VMware的ESXi虚拟化技术提供支持,但支持方式是不一样的,如图所示。CloudStack要经过vCenter才可以实现对ESXi宿主机上虚拟机的管理;而OpenStack支持直接和ESXi通信,实现对虚拟机的基本管理,只有高级功能才需要vCenter的支持。针对目前中小企业普遍采用VMware的免费虚拟化技术而没有vCenter的现状,这也是在平台选择时需要考虑的。
准备
使用 CentOS 7.9.2009
节点 | 主机名 | 配置 |
---|---|---|
192.168.1.111 | cloudone | 8G_2V_单网卡 |
192.168.1.112 | cloudwo | 8G_2V_单网卡 |
192.168.1.115 | nfs | 1G_1V_单网卡 |
使用阿里源
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# yum install wget -y
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
在开始之前更新系统:
都执行
[root@localhost ~]# yum -y upgrade
主
[root@localhost ~]# hostnamectl set-hostname cloudone
[root@cloudone ~]# bash
从
[root@localhost ~]# hostnamectl set-hostname cloudtwo
[root@cloudtwo ~]# bash
两台主机
都添加
[root@cloudone ~]# vi /etc/hosts
192.168.1.111 cloudone
192.168.1.112 cloudtwo
关闭selinux和防火墙
[root@localhost ~]# setenforce 0 ; systemctl stop firewalld ; systemctl disable firewalld
[root@localhost ~]# vi /etc/selinux/config
修改
SELINUX=disabled
安装时钟服务器同步
[root@cloudone ~]# yum install chrony -y
[root@cloudtwo ~]# yum install chrony -y
cloudone:
[root@cloudone ~]# vi /etc/chrony.conf
注释掉server开头的
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server cloudone iburst
# Allow NTP client access from local network. 修改
allow 192.168.1.0/24
# Serve time even if not synchronized to a time source. 修改
local stratum 10
[root@cloudtone ~]# systemctl enable chronyd --now
cloudtwo节点:
[root@cloudtwo ~]# vi /etc/chrony.conf
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server cloudtwo iburst
[root@cloudtwo ~]# systemctl enable chronyd --now
2个节点都配置CloudStack软件包存储库
[root@cloudtwo ~]# vi /etc/yum.repos.d/1.repo
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/$releasever/4.19/
enabled=1
gpgcheck=0
FNS节点
[root@localhost ~]# yum -y install nfs-utils
注意一下,其他两个节点都创建这2个目录
[root@localhost ~]# mkdir -p /export/primary
[root@localhost ~]# mkdir /export/secondary
[root@localhost ~]# vi /etc/exports
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)
[root@localhost ~]# systemctl restart rpcbind.service
[root@localhost ~]# systemctl restart nfs.service
[root@localhost ~]# systemctl enable rpcbind.service
[root@localhost ~]# systemctl enable nfs.service
主节点配置
数据库安装和配置
yum -y install wget
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-server
需要对 /etc/my.cnf 文件修改添加
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
启动
systemctl enable mysqld
systemctl start mysqld
数据库初始化安全配置
mysql_secure_installation
如果看不懂英文,请翻译确认一下是什么意思再回车,基本都是默认,禁止root登陆那一项选no就行
授权root远程登陆权限
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '000000' WITH GRANT OPTION";
安装管理服务器
yum -y install cloudstack-management
cloudstack数据库初始化
cloudstack-setup-databases cloud:000000@localhost --deploy-as=root:000000
启动cloudstack
cloudstack-setup-management
系统模板设置
CloudStack使用许多系统虚拟机来提供访问的功能。 实例控制台,提供各种联网服务,以及 管理存储的各个方面。
我们需要下载 systemVM 模板并将其部署到辅助存储。 我们将使用本地路径 (/export/secondary),因为我们已经在 NFS 服务器本身上, 但否则,您需要将辅助存储挂载到临时挂载点,然后使用 该挂载点,而不是 /export/secondary 路径。
执行以下脚本:
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloudstack.org/systemvm/4.19/systemvmtemplate-4.19.0-kvm.qcow2.bz2 -h kvm -F
重启cloudstack
systemctl restart cloudstack-management
访问测试,默认账号admin、默认密码password
http://192.168.1.111:8080
从节点配置
确保“bridge-utils”和“net-tools”已安装且可用:
[root@localhost ~]# yum install bridge-utils net-tools -y
创建并打开 /etc/sysconfig/network-scripts/ifcfg-cloudbr0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
IPADDR=192.168.1.112 #(or e.g. 192.168.1.2)
GATEWAY=192.168.1.1 #(or e.g. 192.168.1.1 - this would be your physical/home router)
NETMASK=255.255.255.0
DNS1=192.168.1.1
STP=yes
USERCTL=no
NM_CONTROLLED=no
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=cloudbr0
[root@localhost ~]# systemctl disable NetworkManager; systemctl stop NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@localhost ~]# systemctl enable network
network.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network on
[root@localhost ~]# reboot
安装cloudstack-agent
yum -y install cloudstack-agent
QEMU 配置
vi /etc/libvirt/qemu.conf
vnc_listen=0.0.0.0
Libvirt 配置
vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
vi /etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen"
重新启动 libvirt
systemctl restart libvirtd
KVM配置完成
为了完整起见,您应该检查 KVM 是否在您的 机器(您应该看到kvm_intel或kvm_amd模块显示为已加载):
lsmod | grep kvm
kvm_intel 55496 0
kvm 337772 1 kvm_intel
kvm_amd # if you are in AMD cpu
UI 访问
要访问CloudStack的Web界面,只需将浏览器指向 您机器的 IP 地址,例如 http://192.168.1.111:8080/client 默认用户名为“admin”,默认密码为“password”。
设置区域
区域是CloudStack中最大的组织实体
在UI中添加
评论区