Openstack云平台脚本部署之Ceph存储集群配置(十四)

article/2025/8/25 12:54:55

目录

一、简介

二、部署脚本

三、参考文档

四、源码

五、系列文章


一、简介

Openstack的后端存储对接Ceph分布式统一存储,将Glance镜像、Nova虚拟机及快照、Cinder-Volume的存储在Ceph统一存储上。Ceph在Openstack社区的带动下发展迅速,已经成为最受欢迎的开源Openstack后端存储,Ceph的相关内容将在后面的博客中进行学习总结,这里不在赘述。

安装简明过程:

  1. 在终端1中,SSH到控制节点,修改系统0-set-config.sh中关于ceph的配置,指定Mon、OSD、部署节点、存储网络、安装版本、安装源等相关信息;
  2. 在控制节点上执行install-configure-ceph-deploy.sh,提示执行/tmp/set-ssh-ceph-storage-nodes.sh时暂停操作;
  3. 新开一个终端2,SSH到存储部署节点,比如这里是compute01,执行/tmp/set-ssh-ceph-storage-nodes.sh完成部署节点到其他所有节点的SSH;
  4. 在新开的终端2上SSH到控制节点,执行test-ssh-compute-nodes.sh,检查部署节点到其他节点的SSH配置是否正确,如果正确继续下面操作;
  5. 回到终端1中,输入yes继续操作,完成ceph-deploy的安装;
  6. 在终端1中,继续执行 install-configure-ceph-storage-cluster.sh脚本,完成Ceph存储集群的安装;
  7. 查看安装后ceph集群状态,如果失败,查找原因,再次执行install-configure-ceph-storage-cluster.sh,脚本会自动卸载ceph并清空安装数据,必要时重启节点,通知内核读取最新磁盘分区表。
  8. 直到安装成功。

二、部署脚本

安装前请注意0-set-config.sh配置项是否正确

1

2

3

4

5

6

7

8

9

10

11

12

13

14

declare -A monitor_map=(["controller01"]="192.168.2.11" ["network01"]="192.168.2.14" ["compute01"]="192.168.2.17");

### 计算节点默认部署节点(必须存在该主机名的节点)

compute_host=compute01

### 设置网络网段信息,分别对应管理网、虚拟网、存储网

store_network=11.11.11.0/24

### 存储节点上OSD盘挂载目录 所有节点统一成一个

declare -A blks_map=(["osd01"]="sdb" ["osd02"]="sdc" ["osd03"]="sdd");

### ceph安装版本

ceph_release=jewel

### 每个pool的pg_num,参考http://ceph.com/pgcalc/计算

pg_num_volumes=512

pg_num_images=1024

pg_num_backups=128

pg_num_vms=512

注意:对于每个pool的pg_num的设置参考http://ceph.com/pgcalc/,根据实际情况在线计算即可,这里不在赘述。

离线安装ceph-deploy,避免python包冲突,install-configure-ceph-deploy.sh

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#!/bin/sh

. ../0-set-config.sh

./style/print-split.sh "Ceph-deploy Installation"

echo $compute_host

scp ../0-set-config.sh $compute_host:/tmp

scp ./set-ssh-ceph-storage-nodes.sh $compute_host:/tmp

. ./style/print-warnning.sh "Have you execute \". /tmp/set-ssh-ceph-storage-nodes.sh\" to SSH in $compute_host! \nIf haven't, please press Ctrl+C to terminate this script and execute it in $compute_host!"

. ./style/print-info.sh "continue?yes/Ctrl+C"

read continue_tag

base_location=../conf/wheel_ceph/

scp -r ../conf/wheel_ceph/ root@$compute_host:/tmp

ssh root@$compute_host /bin/bash << EOF

yum install --nogpgcheck -y epel-release

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

rm -rf /etc/yum.repos.d/epel*

yum install -y python-pip

yum install -y python-wheel

pip install --use-wheel --no-index --trusted-host $(echo $ftp_info|awk -F "/" '{print $3}') --find-links=/tmp/wheel_ceph/ ceph-deploy

ceph-deploy --version

EOF

配置存储部署节点到其他所有节点的SSH,配置脚本set-ssh-ceph-storage-nodes.sh,该脚本被自动拷贝至存储部署节点的/tmp/set-ssh-ceph-storage-nodes.sh目录下,需要手动SSH到该部署节点并执行该脚本,完成SSH配置,该脚本如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#!/bin/sh

. /tmp/0-set-config.sh

nodes_name=(${!nodes_map[@]});

### 重新设置/etc/hosts,切换主机名至ceph的存储网段

cp /etc/hosts /etc/hosts.bak2

ssh-keygen

for ((i=0; i<${#nodes_map[@]}; i+=1));

do

name=${nodes_name[$i]};

ip=${nodes_map[$name]};

echo "-------------$name------------"

ssh-copy-id root@$ip

ssh-copy-id root@$name

ssh-copy-id root@$(echo $store_network|cut -d "." -f1-3).$(echo $ip|awk -F "." '{print $4}')

done;

SSH配置完成后,可以利用test-ssh-compute-nodes.sh脚本测试是否配置好存储部署节点到其他节点的SSH,test-ssh-compute-nodes.sh脚本如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#!/bin/sh

. ../0-set-config.sh

./style/print-split.sh "Test Compute Nodes SSH"

scp pssh-exe root@$compute_host:/tmp/

scp -r ./hosts root@$compute_host:/tmp/

ssh root@$compute_host /bin/bash << EOF

  yum install -y pssh

  chmod +x /tmp/pssh-exe

  sed -i -e '/0-gen-hosts.sh/d' /tmp/pssh-exe

  cd /tmp

  /tmp/pssh-exe A date

  cp /etc/hosts /etc/hosts.bak2

  sed -i -e 's#'"$(echo $local_network|cut -d "." -f1-3)"'#'"$(echo $store_network|cut -d "." -f1-3)"'#g' /etc/hosts

EOF

部署Ceph存储集群 install-configure-ceph-storage-cluster.sh,注意配置文件中OSD盘(一定是数据盘,千万不要选择系统盘,否则系统盘会被格式化)、Mon节点、Ceph存储网络的配置,一定要对应。

install-configure-ceph-storage-cluster.sh脚本如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

#!/bin/sh

. ../0-set-config.sh

./style/print-split.sh "Ceph Storage Cluster Installation"

base_location=$ftp_info

deploy_node=$compute_host

### 获取Monitor信息,用于生成ceph配置文件

monitor_name=(${!monitor_map[@]});

mon_hostname=""

mon_ip=""

### set mon nodes

for ((i=0; i<${#monitor_map[@]}; i+=1));

do

name=${monitor_name[$i]};

ip=${monitor_map[$name]};

if [ $name = $deploy_node ]; then

echo $name" already is mon!"

else

mon_hostname=$mon_hostname","$name

mon_ip=$mon_ip","$(echo $store_network|cut -d "." -f1-3).$(echo $ip|awk -F "." '{print $4}')

fi

done;

#echo $mon_hostname" >>${#monitor_map[@]} "$mon_ip

### 获取OSD信息,用于生成并激活OSD

blk_name=(${!blks_map[@]});

osds="";

echo $osds

for ((i=0; i<${#nodes_map[@]}; i+=1));

do

name=${nodes_name[$i]};

ip=${nodes_map[$name]};

for ((j=0; j<${#blks_map[@]}; j+=1));

do

name2=${blk_name[$j]};

blk=${blks_map[$name2]};

osds=$osds" "$name":"$blk;

done

done

echo $osds

echo $deploy_node

###安装前所有OSD盘重置为裸盘

. ./style/print-warnning.sh "Do you want to zap/erase/destroy partition table and contents in all OSD Disks"

. ./style/print-info.sh "Zap all?yes/no"

read zap_tag

for ((i=0; i<${#nodes_map[@]}; i+=1));

do

name=${nodes_name[$i]};

ip=${nodes_map[$name]};

for ((j=0; j<${#blks_map[@]}; j+=1));

do

name2=${blk_name[$j]};

blk=${blks_map[$name2]};

. style/print-info.sh "-------------$name:$blk------------";

if [[ "$zap_tag" = "yes" ]];then

ssh root@$ip ceph-disk zap /dev/$blk

ssh root@$ip partprobe

fi

done

done

. ./style/print-warnning.sh "Do you want to purge all previous ceph data before further installing?"

. ./style/print-info.sh "Purge all?yes/no"

read purge_tag

ssh root@$compute_host /bin/bash << EOF

sed -i -e 's#'"$(echo $local_network|cut -d "." -f1-3)"'#'"$(echo $store_network|cut -d "." -f1-3)"'#g' /etc/hosts

ceph-deploy forgetkeys

if [[ "$purge_tag" = "yes" ]];then

ceph-deploy purge ${nodes_name[@]}

ceph-deploy purgedata ${nodes_name[@]}

fi

mkdir -p /root/my-cluster

cd /root/my-cluster

rm -rf /root/my-cluster/*

ceph-deploy new $deploy_node

echo "public network ="$store_network>>ceph.conf

ceph-deploy install --nogpgcheck --repo-url $base_location/download.ceph.com/rpm-$ceph_release/el7/ ${nodes_name[@]} --gpg-url $base_location/download.ceph.com/release.asc

ceph-deploy mon create-initial

ceph-deploy osd create $osds

ceph-deploy admin ${nodes_name[@]}

EOF

## set mon nodes

for ((i=0; i<${#monitor_map[@]}; i+=1));

do

name=${monitor_name[$i]};

ip=${monitor_map[$name]};

. style/print-info.sh "Set $name as a ceph monitor"

if [ $name = $deploy_node ]; then

echo $name" already is mon!"

else

ssh root@$deploy_node /bin/bash << EOF

cd /root/my-cluster

ceph-deploy mon add $name

EOF

fi

done;

###查看集群状态 ceph管理节点创建Pool

ssh root@$deploy_node /bin/bash << EOF

cd /root/my-cluster

sed -i -e 's#'"$(ssh root@$compute_host cat /root/my-cluster/ceph.conf |grep mon_initial_members)"'#'"$(ssh root@$compute_host cat /root/my-cluster/ceph.conf |grep mon_initial_members)$mon_hostname"'#g' /root/my-cluster/ceph.conf

sed -i -e 's#'"$(ssh root@$compute_host cat /root/my-cluster/ceph.conf |grep mon_host )"'#'"$(ssh root@$compute_host cat /root/my-cluster/ceph.conf |grep mon_host )$mon_ip"'#g' /root/my-cluster/ceph.conf

ceph-deploy --overwrite-conf config push ${nodes_name[@]}

ceph -s

ceph osd pool create volumes $pg_num_volumes

ceph osd pool create images $pg_num_images

ceph osd pool create backups $pg_num_backups

ceph osd pool create vms $pg_num_vms

### [恢复部署节点hosts文件]

sed -i -e 's#'"$(echo $store_network|cut -d "." -f1-3)"'#'"$(echo $local_network|cut -d "." -f1-3)"'#g' /etc/hosts

EOF

注意:脚本安装时会提示是否清除之前的数据盘分区以及之前的安装数据,如果首次安装失败时,重复安装需要执行磁盘zap及数据purge清除操作。

三、参考文档

http://docs.ceph.com/docs/master/start/quick-ceph-deploy/

四、源码

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

五、系列文章

“Openstack云平台脚本部署”系列文章目录如下:

Openstack云平台脚本部署之概述(零)

Openstack云平台脚本部署之基础环境配置(一)

Openstack云平台脚本部署之Galera高可用集群配置(二)

Openstack云平台脚本部署之RabbitMQ高可用集群部署(三)

Openstack云平台脚本部署之MongoDB配置(四)

Openstack云平台脚本部署之Memcached配置(五)

Openstack云平台脚本部署之Keystone认证服务配置(六)

Openstack云平台脚本部署之Glance镜像服务配置(七)

Openstack云平台脚本部署之Nova计算服务配置(八)

Openstack云平台脚本部署之Neutron网络服务配置(九)

Openstack云平台脚本部署之Dashboard配置(十)

Openstack云平台脚本部署之Cinder块存储服务配置(十一)

Openstack云平台脚本部署之Ceilometer数据收集服务配置(十二)

Openstack云平台脚本部署之Aodh告警服务配置(十三)

Openstack云平台脚本部署之Ceph存储集群配置(十四)

Openstack云平台脚本部署之计算节点服务配置(十五)

Openstack云平台脚本部署之增加计算节点配置(十六)

Openstack云平台脚本部署之测试验证(十七)

Openstack云平台脚本部署之Ganglia监控(十八)

Openstack云平台脚本部署之Nagios监控(十九)


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

相关文章

ceph分布式存储搭建

目录 一、环境搭建 1.基础环境 2.centos1安装软件 3.创建集群 4.修改配置文件 5.安装软件 二、构建集群 1.初始化monitor 2.同步管理信息 3.安装mgr 4.安装rgw 5.创建mds服务 三、安装OSD 1.centos1、centos2、centos3、三个虚拟机各加一个磁盘 2.热刷新磁盘并格…

Ceph存储搭建及在k8s中的使用

一、基础环境准备 主机IP主机名部署服务备注192.168.0.91admin-nodeceph、ceph-deploy、monmon节点又称为master节点192.168.0.92ceph01cephosd192.168.0.93ceph02cephosd Ceph版本 10.2.11 Ceph-deploy版本 7.6.1810 内核版本 3.10.0-957.el7.x86_64 每个节点关闭防火墙和s…

ceph存储应用--owncloud

目录 框架​ 节点规划 部署环境准备 ceph集群部署 在master1上创建集群 创建mon监控组件 监控节点master1初始化 创建mgr管理组件 创建osd磁盘 添加其他节点到ceph集群中 对象存储搭建 创建对象存储网关 创建owncloud应用 ceph对象存储对接owncloud 安装s3工具 框…

ceph存放mysql备份_Kubernetes持久化Ceph存储

一、依然简介 Kubernetes使用Persistent Volume和Persistent Volume Claim两种API资源来管理存储。 PersistentVolume(简称PV):由管理员设置的存储&#xff0c;它是集群的一部分。就像节点(Node)是集群中的资源一样&#xff0c;PV也是集群中的资源。它包含存储类型&#xff0c;…

关于 Ceph 存储集群配置的一些笔记

写在前面 Ceph 考试整理笔记&#xff0c;老师总结基础上&#xff0c;略有补充博文内容涉及&#xff1a; ceph 集群的配置简单介绍永久和零时修改集群配置文件集群 Mon 的配置集群身份验证的配置集群多网络的配置 理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有…

ceph存储快速部署

前言&#xff1a;ceph的基本介绍 Ceph是一个统一的分布式存储系统&#xff0c;设计初衷是提供较好的性能、可靠性和可扩展性。 Ceph特点&#xff1a; 1.高性能: a. 摒弃了传统的集中式存储元数据寻址的方案&#xff0c;采用CRUSH算法&#xff0c;数据分布均衡&#xff0c;并…

Ceph存储

集中式存储 所谓集中式系统就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心节点中,并且整个系统的所有业务单元都集中 部署在这个中心节点上,系统所有的功能均由其集中处理。也就是说,集中式系统中,每个终端或客户端仅仅负责 数据的录入和 输出,而数据的存储与…

ceph(分布式存储)

文章目录 一、ceph的组件和功能1.简介2.层次结构和功能 二、ceph的数据读写流程三、使用ceph-deploy安装一个最少三个节点的ceph集群(推荐3个或以上的磁盘作为专用osd)1.基础配置配置主机名给三台主机写入hosts解析配置node1到所有节点root用户免密钥互信配置时间同步在node1上…

【ceph】学习笔记(三)三大存储模式简介

Ceph本身是一个统一存储&#xff0c;支持块、对象和文件等所有存储形态 在RADOS集群之上&#xff0c;Ceph构建了块存储、文件存储和对象存储等存储形态。由于RADOS集群本身是以对象为粒度进行数据存储的&#xff0c;因此上述三种存储形态&#xff0c;在最终存储数据的时候都划…

Ceph分布式存储

目录 一、ceph简介 1、什么是ceph 2、ceph支持的三种存储方式 1&#xff09;块存储RBD 2&#xff09;对象存储RGW 3&#xff09;文件系统存储ceph-fs 3、ceph的主要特点 4、ceph组件作用 OSD&#xff1a;&#xff08;Object Storage Device&#xff09; Monitors MD…

Ceph 存储介绍

文章目录 一、Ceph 简介二、Ceph 特点三、Ceph 应用场景四、Ceph 核心组件五、Ceph 存储系统的逻辑层次结构六、RADOS 的系统逻辑结构七、Ceph 数据存储过程八、Ceph IO 流程及数据分布1. 正常 IO 流程图2. 新主 IO 流程图 九、Ceph Pool 和 PG 分布情况 一、Ceph 简介 ceph 是…

王道2021版计算机考研书勘误表

转载于 王道论坛 计算机考研QQ群&#xff0c;很多大学的计算机考研/软件考研资料&#xff08;见群文件&#xff09; 群号是 954288959 您还可以在以下平台找到我们 你点的每个在看&#xff0c;我都认真当成了喜欢

计算机组成原理【by王道考研计算机】

文章目录 第一章1. 什么是计算机系统2. 硬件的发展3. 计算机硬件的基本组成冯诺依曼结构现代计算机结构主存储器运算器控制器工作过程实例 4. 计算机系统的层次结构五层结构三种级别的语言 5. 计算机的性能指标存储器的容量CPU其他常用时间单位 第二章1. 进制转换2. 字符与字符…

王道考研-计算机网络

目录 P1 1.1.1 概念、组成、功能、分类1.计算机网络概念2.计算机网络的功能3.计算机网络的组成4.计算机网络分类 P2 1.1.2 标准化工作机器相关组织1.标准化工作 P3 1.1.3 速度指标1.速率与带宽2.吞吐量4.性能指标2.时延带宽积3.往返时延RTT4.利用率 P5 1.2.1 分层结构、协议、接…

王道考研系列 计算机考研 ——机试指南(第二版) 笔记(一)

计算机机试&#xff0c;王道机试指南&#xff08;第二版&#xff09;笔记 机试指南一些笔记。。。 题目代码github链接 https://github.com/BenedictYoung 链接 视频 and pdf 链接&#xff1a;https: //pan.bai du. com/s/1WFl E5hWgg Y9c3J97 fVbsRg?pwd xwep 提取 码&#…

2021王道考研pdf

参考一&#xff1a;&#xff08;2021&#xff09; https://www.bilibili.com/read/cv5517739/ 计算机考研王道天勤PDF百度网盘&#xff08;数据结构、操作系统、计算机组成原理、计算机网络&#xff09;&#xff08;&#xff01;&#xff01;&#xff01;&#xff01;b站这个链…

操作系统笔记(含王道计算机考研——操作系统课件)

操作系统&#xff08;OS&#xff09; 笔记根据B站王道计算机考研——操作系统视频整理所得&#xff0c;视频链接&#xff1a;https://b23.tv/0I2qex视频中所用课件&#xff1a;链接&#xff1a;https://pan.baidu.com/s/101bFWm0Tv0emNpEneidYPA 提取码&#xff1a;y3dd笔记md…

一篇学完:王道考研408计算机网络(全)

笔记首发于&#xff1a;lengyueling.cn PDF版本附在 lengyueling.cn 对应文章结尾&#xff0c;欢迎下载访问交流 网络体系结构 概念与功能 网络&#xff1a;网样的东西或者网站系统 计算机网络&#xff1a;是一个将分散的、具有独立功能的计算机系统&#xff0c;通过通信设…

24考研王道计算机组成原理笔记

24考研王道计算机组成原理笔记 文章目录 24考研王道计算机组成原理笔记前言一、计算机系统概述1.1 计算机的发展1.2 计算机硬件1.2.1 计算机硬件的基本组成1.2.2 各个硬件的工作原理1.2.3 计算机系统的层次结构 1.3 计算机性能指标1.3.1 存储器性能指标1.3.2 CPU性能指标1.3.3 …

2023年计算机考研专业课408 - 王道书资源做题本OneNote电子笔记

&#x1f4bb;cs-408 构建本仓库的初衷是记录自己备考计算机专业课408的过程本仓库收纳了2023年四本王道复习指导书和2023年王道书上的刷题本本仓库分享了一些自己从2022年6月备考以来的学习408心得本仓库分享了自己使用OntNote制作的电子笔记 希望本仓库的一些经验和资源能够…