目录

一、简介

二、部署脚本

三、源码

四、系列文章


一、简介

当计算能力和存储容量无法满足业务发展需求时,需要增加计算节点和存储节点,这里的计算节点和存储节点是融合的,提供一个简单的脚本进行云平台的扩容,主要进行Ceph和Openstack服务的安装部署。在安装部署前需要完成防火墙、SELinux禁用、安装源、时间同步、主机名设置、网络设置、Hosts更新等基础环境配置工作,与前文中《Openstack云平台脚本部署之基础环境配置》相同,这里不在赘述。

二、部署脚本

增加计算节点前首先需要修改0-set-config.sh配置文件,指定需要增加节点的配置信息,内容涉及如下:

### 后期需要增加的计算节点
declare -A additionalNodes_map=(["compute04"]="192.168.2.20");
### 存储节点上OSD盘挂载目录 所有节点统一成一个
declare -A blks_map=(["osd01"]="sdb" ["osd02"]="sdc" ["osd03"]="sdd");

增加计算节点的脚本:add-compute-nodes.sh

#!/bin/sh
. ../0-set-config.sh
./style/print-split.sh "Additional Compute Nodes' Installation and Configuration"

additionalnodes_name=(${!additionalNodes_map[@]});
base_location=$ftp_info
deploy_node=$compute_host
echo $deploy_node
blk_name=(${!blks_map[@]});
osds="";
### 获取OSD信息,用于生成并激活OSD
for ((i=0; i<${#additionalNodes_map[@]}; i+=1));
do
  name=${additionalnodes_name[$i]};
  ip=${additionalNodes_map[$name]};
  for ((j=0; j<${#blks_map[@]}; j+=1));
  do
    name2=${blk_name[$j]};
    blk=${blks_map[$name2]};
    echo "-------------$name:$name2------------";
    osds=$osds" "$name":"$blk;
    ssh root@$ip ceph-disk zap /dev/$blk
  done
  scp /etc/ceph/ceph.client.cinder.keyring  root@$name:/etc/ceph/
  # ssh root@$name  chown -R ceph:ceph $osd_path
done;
echo $osds
### install ceph
ssh root@$compute_host /bin/bash << EOF
  cd /root/my-cluster
  ceph-deploy install --nogpgcheck --repo-url $base_location/download.ceph.com/rpm-$ceph_release/el7/ ${additionalnodes_name[@]} --gpg-url $base_location/download.ceph.com/release.asc
  ###[部署节点]激活OSD
  ceph-deploy --overwrite-conf osd create $osds
  ceph-deploy admin ${additionalnodes_name[@]}
EOF
###查看集群状态
ceph -s
### install openstack services
for ((i=0; i<${#additionalNodes_map[@]}; i+=1));
do
  name=${additionalnodes_name[$i]};
  ip=${additionalNodes_map[$name]};
  . style/print-info.sh "$name configuration"
  scp compute_nodes_exec.sh root@$ip:/tmp
  ssh root@$ip chmod +x /tmp/compute_nodes_exec.sh
  ssh root@$ip /tmp/compute_nodes_exec.sh $virtual_ip $local_nic $data_nic $password
done;

三、源码

脚本源码:GitHub - zjmeixinyanzhi/Openstack-HA-Install-Shells: Shell scripts for installing openstack high availability cluster