CloudStack快速安装使用

参考链接:https://blog.csdn.net/zhangliu463884153/article/details/80606020
https://blog.csdn.net/u012124304/article/details/75529429

CloudStack结构

Zone

  • Zone 对应于现实中的一个数据中心,它是 CloudStack 中最大的一个单元。 即从包含关系上来说,一个 zone 包含多个 pod,一个 pod 包含多个 cluster,一个 cluster 包含多个 host。

提供点(Pods)

  • 一个提供点通常代表一个机架,机柜里面的主机在同一个子网,每个区域中必须包含一个或多个提供点,提供点中包含主机和主存储服务器, CloudStack 的内部管理通信配置一个预留 IP 地址范围。预留的 IP 范围对云中的每个区域来说必须唯一。

集群(Clusters)

  • Cluster 是多个主机组成的一个集群。
  • 同一个cluster中的主机有相同的硬件,相同的 Hypervisor,和共用同样的存储。同一个 cluster 中的虚拟机,可以实现无中断服务地从一个主机迁移到另外一个上。
  • 集群由一个或多个宿主机和一个或多个主要存储服务器构成。集群的大小取决于下层虚拟机软件。大多数情况下基本无建议。当使用VMware时,每个VMware集群都被vCenter 服务器管理。管理员必须在本产品中登记vCenter。每个zone下可以有多个vCenter服务器。每个vCenter服务器可能管理多个VMware集群

主机(Hosts)

  • Host 就是运行的虚拟机(VM)主机。
  • 宿主机就是个独立的计算机。宿主机运行来宾虚拟机并提供其相应的计算资源。每个宿主机都装有虚拟机软件来运行来宾虚拟机。比如一个开启了kvm支持的服务器,一个思杰XenServer服务器,或者一个ESXi服务器都可以作为宿主机。
  • 宿主机在CloudStack部署中属于最小的组织单元。宿主机包含于集群中,集群又属于提供点,而区域中包含提供点(就是在逻辑概念上zone>pod>cluster>host),新增的宿主机可以随时添加以提供更多资源给来宾虚拟机,CloudStack自动探测宿主机的cpu数量和内存资源。宿主机对终端用户不可见。终端用户不能决定他们的虚拟机被分配到哪台宿主机。

CloudStack 中存在两种存储:

Primary storage
  • 一级存储与 cluster 关联,它为该 cluster 中的主机的全部虚拟机提供磁盘卷。一个 cluster 至少有一个一级存储,且在部署时位置要临近主机以提供高性能。
Secondary storage
  • 二级存储与 zone 关联,它存储模板文件,ISO 镜像和磁盘卷快照。

通过控制台连接,您应该以root用户身份登录。我们将首先创建Cloudstack将用于网络的桥梁。创建并打开/ etc / sysconfig / network-scripts / ifcfg-cloudbr0并添加以下设置:

快速安装cloudstack

  • 实验环境:CentOS7.5 ,Dell630服务器单节点,ip地址:172.16.16.1
  • 如果使用vmware workstation虚拟机上试验,需要cpu开启虚拟化支持并分配两个处理器,内存要4G以上


    vm虚拟机cpu开启虚拟化支持
# yum install bridge-utils -y
#设置网桥
# vim /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
IPADDR=172.16.16.2
GATEWAY=172.16.10.1
NETMASK=255.255.0.0
DNS1=8.8.8.8
DNS2=8.8.4.4
STP=yes
USERCTL=no
NM_CONTROLLED=no

#设置网卡
# vim /etc/sysconfig/network-scripts/ifcfg-em1
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=em1
DEVICE=em1
ONBOOT=yes
BRIDGE=cloudbr0

~]# brctl addbr cloudbr0
~]# brctl addif cloudbr0 ens33
此时如果连接了ssh,会断开,要到主机里面查看,已经添加到网桥中了,但未能启用,然后重启主机

重启后再次把网卡加入网桥,成功

~]# vim install_cloudstack.sh

#!/bin/sh
# cloudstack pike 一键安装脚本 单机
# 环境 centos 7.4.1708 x86_64
 read   -p "Enter nodename > " name  #输入节点主机名
[[ `uname -r` = *el7* ]] && { echo '开启安装cloudstack pike'; } || { echo '请在CentOS7.4 环境运行';exit; }
[[ $(whoami) == root ]] || { sudo su - root; }
[[ $? = 0 ]] || { echo 'Must run in root !';exit; }

##########################################
#参数

#获取第一块网卡名、ip地址
Net=`ip add|egrep global|awk '{ print $NF }'|head -n 1`
IP=`ip add|grep global|awk -F'[ /]+' '{ print $3 }'|head -n 1`
echo  "网卡名称:$Net"
echo  "IP地址:  $IP"


#参数
Node=$name     #节点名
Netname=$Net        #网卡名称
MyIP=$IP            #IP地址

##########################################
#1、设置

echo  '调整selinux、关闭防火墙'
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
sed -i '/^SELINUX=.*/c SELINUX=disable' /etc/selinux/config
grep --color=auto '^SELINUX' /etc/selinux/config
setenforce 0

echo  '设置hostname,上面已设置,这里怕忘记设置,在搞一遍'
hostnamectl set-hostname $Node
echo "$MyIP   $Node">>/etc/hosts
yum install -y wget 
#使用阿里源
mkdir -p /etc/yum.repos.d/remark && mv  /etc/yum.repos.d/* /etc/yum.repos.d/remark/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo
##设置yum源
touch /etc/yum.repos.d/{cloudstack.repo,mysql.repo}
echo "#cloudstack-yum源 repo
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/7/4.11/
enabled=1
gpgcheck=0
">/etc/yum.repos.d/cloudstack.repo

echo "#mysql-yum源 repo
[mysql-connectors-community]
name=MySQL Community connectors
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/\$releasever/\$basearch/
enabled=1
gpgcheck=1
">/etc/yum.repos.d/mysql.repo

yum clean all && yum makecache  #清理缓存
 
echo  '时间同步'
[[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp ntpdate -y &> /dev/null; } #若没NTP则安装
/usr/sbin/ntpdate ntp6.aliyun.com 
echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com  &> /dev/null" > /tmp/crontab
crontab /tmp/crontab

##########################################
#2 安装

 yum -y upgrade &> /dev/null
yum install -y ntp wget vim net-tools openssh tree &> /dev/null
echo  'CloudStack tools 安装'
yum -y install nfs-utils &> /dev/null
echo  'mysql安装'
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum -y  install  mysql-community-release-el7-5.noarch.rpm 
yum -y update
yum -y install mysql-server

echo  '安装nfs'

##########################################
#3、nfs配置
mkdir -p /var/export/{primary,secondary}
echo "/var/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/var/export/primary *(rw,async,no_root_squash,no_subtree_check)" >> /etc/exports

#域是kvm.io 
sed -i '/^#Domain = */c Domain = kvm.io ' /etc/idmapd.conf
#添加配置值
echo "LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020" >> /etc/sysconfig/nfs
#启动nfs
systemctl enable rpcbind &&  systemctl start rpcbind
 systemctl enable nfs && systemctl start nfs


# #------------------#####################
echo 'SQL数据库配置'
touch /etc/my.cnf.d/cloudstack.cnf
echo "[mysqld]
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
">/etc/my.cnf.d/cloudstack.cnf
echo '启动数据库服务'
systemctl enable mysqld && systemctl start mysqld
sleep 5
netstat -antp|grep mysqld


##############从MySQL导入GPG公钥:
rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql
#安装mysql-connector
yum -y install mysql-connector-python
#安装服务器管理器
yum -y install cloudstack-management
#设置数据库
cloudstack-setup-databases cloud:password@localhost --deploy-as=root
#下载vm模板
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /var/export/secondary -u http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.2-kvm.qcow2.bz2 -h kvm -F
#安装管理代理
yum -y install cloudstack-agent
#QEMU VNC配置
sed -i '/^#vnc_listen=*/c vnc_listen="0.0.0.0"' /etc/libvirt/qemu.conf
#Libvirt配置
echo "listen_tls = 0
listen_tcp = 1
tcp_port = \"16509\"
auth_tcp = \"none\"
mdns_adv = 0
"  >> /etc/libvirt/libvirtd.conf

sed -i '/^#LIBVIRTD_ARGS="--listen"/c LIBVIRTD_ARGS="--listen"' /etc/sysconfig/libvirtd

#重新启动libvirtd
 systemctl enable libvirtd   &&  systemctl start libvirtd 
systemctl enable  cloudstack-management  &&   systemctl start  cloudstack-management  

 #查看是否启用kvm模块
lsmod | grep kvm   #查看是否启用kvm模块
##########################################
##########################################
#end

echo '
安装完毕!
登录Web管理 http://'$MyIP':8080/client

'

#执行脚本
~]# . install_cloudstack.sh
  • 后添加了一个小硬盘作为辅助存储,存储镜像文件用,不添加也可以用
~]# echo "/dev/sda1 /var/export/secondary/   ext4 defaults 0 0"  >> /etc/fstab
登录,最下面空白行可以选择成中文
第一次进行基础配置

设置区域和dns
  • 由于没有自己的dns服务器,所以使用公网dns


    创建机架

    添加pod

    设置网络

添加一个集群

  • 群集提供了一种分组主机的方法。群集中的主机都具有相同的硬件,运行相同的虚拟机管理程序,位于同一子网上,并访问相同的共享存储。虚拟机实例(VM)可以在同一群集内从一个主机实时迁移到另一个主机,而不会中断对用户的服务。
  • 集群是CloudStack™部署中的第三大组织单位。群集包含在群集中,并且群落包含在区域内。

CloudStack™允许云部署中的多个群集,但对于基本安装,我们只需要一个群集。


image.png

添加一个主机

  • 主机是一台计算机。主机提供运行来宾虚拟机的计算资源。每个主机都安装了虚拟机管理程序软件来管理来宾虚拟机(裸机主机除外,这是“高级安装指南”中讨论的特殊情况)。例如,支持Linux KVM的服务器,Citrix XenServer服务器和ESXi服务器是主机。在基本安装中,我们使用运行XenServer或KVM的单个主机。
  • 主机是CloudStack™部署中最小的组织单位。主机包含在群集中,群集包含在pod中,pod包含在区域中。


    image.png
添加主存储
  • CloudStack™云基础架构使用两种类型的存储:主存储和二级存储。这两者都可以是iSCSI或NFS服务器,也可以是localdisk。
  • 主存储与群集关联,并且它为在该群集中的主机上运行的所有VM存储每个来宾VM的磁盘卷。主存储服务器通常位于主机附近。


    image.png
添加二级存储

辅助存储与区域关联,它存储以下内容:

  • 模板 - 可用于引导VM的操作系统映像,可包含其他配置信息,例如已安装的应用程序

  • ISO映像 - 可以启动或不可启动的操作系统映像
    磁盘卷快照 - 保存的VM数据副本,可用于数据恢复或创建新模板


    添加辅助存储
  • 最后点击完成

ISO和模板文件的管理

  • ISO和模板文件通过HTTP或HTTPS协议上传到二级存储中。CloudStack中的模板分为三种:系统模板,内置模板和用户模板:

系统模板:创建系统虚拟机实例时使用
内置模板:CloudStack内置的一组模板,供用户创建客户虚拟机实例
用户模板:由平台管理员或用户注册的模板

注册ISO和模板文件

  • 准备一个HTTP服务器,把系统模板和ISO文件上传到服务器上,供CloudStack后续下载
  • 修改全局设置,将存放模板的服务器ip地址设置到secstorage.allowed.internal.sites中,让CloudStack可以从该服务器下载模板
  • 确认辅助存储虚拟机工作状态是否正常,因为上传ISO或模板文件需要SSVM的支持
    注册ISO文件:在管理界面的模板菜单项中点击注册ISO,填入ISO的URL地址
    注册模板:类似注册ISO文件
  • 创建模板,编辑模板,下载模板,复制模板,删除模板,重置密码
安装nginx,启用web,为cloudstack提供iso下载服务
~]# vim /etc/nginx/nginx.conf 
........
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    autoindex on;          # 显示目录
    autoindex_exact_size on;   # 显示文件大小
    autoindex_localtime on;    # 显示文件时间
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
.......
#移除nginx网页根目录/usr/share/nginx/内的文件
 ~]# mkdir /tmp/nginxback
 ~]# mv  /usr/share/nginx/html/* /tmp/nginxback/  
~]# systemctl enable nginx && systemctl start nginx
#下载centos镜像到网页根目录
 ~]# wget https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso -P  /usr/share/nginx/html/centos
下载完成的镜像

全局设置可下载的ip地址
注册自定义镜像

创建实例

添加iso

image.png

image.png

给实例安装系统

安装完后,1关闭虚拟机,2移除ISO镜像,然后在开启虚拟机

根据新创建的虚拟机创建模板

打开虚拟机

进入虚拟机,设置通用项目

#关闭防火墙、关闭selinux
~]# sed -i '/^SELINUX=.*/c SELINUX=disable' /etc/selinux/config
~]# systemctl disable firewalld
~]# systemctl stop firewalld

#配置虚拟机网卡
~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
~]# systemctl reboot

#安装阿里云源、同步时间
~]#  yum install wget vim -y
~]# mkdir -p /etc/yum.repos.d/remark && mv  /etc/yum.repos.d/* /etc/yum.repos.d/remark/
~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
~]#  sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo
~]#  [[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp ntpdate -y &> /dev/null; } 
~]# /usr/sbin/ntpdate ntp6.aliyun.com 
#删除持久化设备
~]# rm -f /etc/udev/rules.d/70*
~]# rm -f /var/lib/dhclient/*
关闭实例

创建模板

定义模板名称

创建完成

使用自定义模板创建实例虚拟机,下面输入框是创建一个数据磁盘, 可以不输入

资源域的基础网络

  • 在资源域的基础情况下,网络虚拟机创建后,系统会自动分配一个ip地址。


    系统分配的ip地址
  • 更改IP地址,需要关闭实例。


    给实例更改ip

    完成

安全组的使用

  • 虚拟机创建后,使用ssh还无法连接,设置安全组规则。
  • 注意:如果启用项目,每个项目的安全组要单独设定,项目内的安全组规则只对项目内虚拟机有效。


    设置安全组

    设置入口规则和出口规则

项目的创建使用

创建项目

添加一个账户

可以根据实际资源状况,调整分配这个项目资源

登录后默认的是默认视图,可以选择项目,进入项目视图
  • 项目内部创建的实例,默认视图中看不到。
  • 项目内部创建的存储、网络、安全组只对项目内虚拟机有效。


    默认视图下实例,迁移给其他项目账户

    分给test项目

    到test项目查看
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容