Ubuntu20.04LTS环境docker+cephadm方式部署Ceph 17.2.5

news/2025/1/18 11:49:27/文章来源:https://www.cnblogs.com/dachenyi/p/18321427

简述
什么是ecph
​ ceph是一个开放、自我修复和自我管理的统一分布式存储系统。具有高扩展性、高新能、高可靠性的优点。

​ ceph分布式存储优势

​ 高扩展性:使用普通X86服务器,支持10~1000台服务器,支持TB到EB级的扩展。

​ 高可靠性:没有单点故障,多数据副本,自动管理,自动修复。

​ 高性能:数据分布均衡

ceph支持三种调用接口: 块存储、文件系统存储、对象存储。三种方式可以一同使用。

ceph的三个主要进程
​ Monitor监控整个集群的状态,维护集群的cluster MAP数据分布图(二进制表),保证集群数据的一致性。

​ OSD用于集群中所有数据与对象的存储,处理集群数据的复制、恢复、回填、在均衡,并向其他osd守护进程发送心跳,然后向Monitor提供监控信息。

​ MDS(可选)为Ceph文件系统提供元数据计算、缓存与同步。MDS进程并不是必须的进程,只有需要使用CephFS时,才需要配置MDS节点。

部署时注意事项
​ ceph生产环境推荐:

​ 1、存储集群采用全万兆网络(条件允许使用光纤网络)

​ 2、集群网络与公共网络分立

​ 3、mon、mds与osd分离部署在不通机器上

​ 4、OSD使用SATA亦可

​ 5、根据容量规划集群

​ 6、志强E5 2620 V3或以上的cpu,64GB或更高内存

​ 7、集群主机分散部署,避免机柜故障(电源、网络)

 

1、环境准备

1.1主机信息

主机名 IP 角色 备注 磁盘 hosts
node1 192.168.10.101 admin,osd,mon,mar   sda/60G IP 主机名
node2 192.168.10.102 osd,mds   sdb/20G IP 主机名
node3 192.168.10.103 osd,mds   sdb/20G IP 主机名
node4 192.168.10.104 client 客户端,访问存储 sdb/60G IP 主机名

 

1.2修改主机名

node1/node2/node3

hostnamectl set-hostname node1/node2/node3

1.3修改hosts文件,加入主机信息

vi /etc/hosts
192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
 1.4NTP时间同步

1.4.1在node1上,从阿里云的NTP服务器上同步时间。

apt -y install chrony# 备份NTP服务的原始配置文件
mv /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak# 编写一个空的配置文件,文件只有两行配置
vim /etc/chrony/chrony.conf
--------------------
server ntp.aliyun.com iburst
allow 192.168.10.101/24
# 保存退出#重启系统的ntp服务
service chrony restart

1.4.2再配置ceph0002和ceph0003的NTP服务,从ceph0001上拉去时间。

apt -y install chrony# 备份NTP服务的原始配置文件
mv /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak# 编写一个空的配置文件,文件只有一行配置
vim /etc/chrony/chrony.conf
--------------------
server ceph0001 iburst#重启系统的ntp服务
service chrony restart

 1.4.3三台节点执行以下命令。

chronyc sources

 

1.5 关闭 iptable 和 firewalld

systemctl stop iptables
systemctl stop firewalld
systemctl disable iptables
systemctl disable firewalld

1.6关闭 SElinux

vi /etc/selinux/config

SELINUX=disabled

1.7生成SSH证书,并分发到其他节点

ssh-keygen -t rsa -P ''
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.10.102
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.10.103

1.8依赖安装

cephadm 部署 ceph 集群时,需要如下依赖:
  • python3
  • Docker或Podman
  • systemd
  • lvm2

运行以下命令即可安装Docker:

wget -qO- get.docker.com | sh

查看Docker版本

docker -v

使用以下命令 启动docker后台服务、使Docker在开机时自动启动:

sudo service docker start
systemctl enable docker

 

2. 安装部署Ceph17.2.5

2.1安装cephadm,拉取ceph镜像

以下命令在controller节点执行

# 下面的命令会自动安装 docker 等依赖
apt install -y cephadm# 拉取ceph镜像
docker pull quay.io/ceph/ceph:v17.2# 查看cpeh版本
$ cephadm version
ceph version 17.2.5 (98318ae89f1a893a6ded3a640405cdbb33e08757) quincy (stable)# 查看docker镜像
$ docker images
REPOSITORY          TAG         IMAGE ID       CREATED       SIZE
quay.io/ceph/ceph   v17.2       cc65afd6173a   2 months ago   1.36GB

 通过运行以下命令确认cephadm

which cephadm

成功的命令将返回以下内容:/usr/sbin/cephadm

 

 

2.2创建集群

使用 cephadm 创建 Ceph 集群的流程为:

  • 初始化第一个 mon 节点
  • 配置 ceph 命令行
  • 扩展集群 osd 节点

2.2.1. 初始化 mon 节点

cephadm bootstrap --mon-ip 192.168.10.101 --allow-overwrite

 显示出 Bootstrap complete. 表示部署成功。使用:

–image quay.io/ceph/ceph:v17.2 指定镜像地址
–registry-url 指定仓库 https://hub.docker.com/u/quayioceph
–single-host-defaults
可以登陆输出的地址输入账号密码进入dashboard界面查看ceph运行情况如下图所示。

 

启用 CEPH CLI

安装该ceph-common软件包,其中包含所有 ceph 命令

cephadm add-repo --release pacific
cephadm install ceph-common

 

添加主机

1分发 SSH 公钥

我们在 2.1 引导第一台机器的时候,SSH 生成了一个公钥文件(默认位置是 /etc/ceph/ceph.pub)。

Cephadm 通过 SSH 免密实现对集群中各个机器的操作(私钥藏起来了),所以我们得把这个 SSH 公钥,分发到每个集群的主机上。

命令:ssh-copy-id -f -i /etc/ceph/ceph.pub root@<new-host>把引导机上的 SSH 公钥副本 /etc/ceph/ceph.pub 的内容,
写入 root@<new-host> 的 /root/.ssh/authorized_keys 中,从而实现免密(引导机的 /root/.ssh/authorized_keys 在引导阶段就已经写入了)。
ssh-copy-id -f -i /etc/ceph/ceph.pub root@node2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@host3
2添加主机
ceph orch host add node2 192.168.10.102
ceph orch host add node3 192.168.10.103

 若不能添加主机,请检查主机的4个依赖(python3、Docker或Podman、systemd、lvm2),未安装的须安装,所有主机的docker需要启动

添加额外的监视器 MON

 

添加OSD

 

CEPH-MGR 管理员

apt install ceph-mgr

创建一个身份验证密钥:

ceph auth get-or-create mgr.$name mon 'allow profile mgr' osd 'allow *' mds 'allow *'

将该密钥放入路径中,对于集群“ceph”和 mgr $name“foo”来说,该路径将是mgr data/var/lib/ceph/mgr/ceph-foo

启动 ceph-mgr 守护进程:

ceph-mgr -i $name

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/776616.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Cython调用CUDA Kernel函数

从Python接口调用GPU进行加速的方案有很多,包括Cupy和PyCuda以及之前介绍过的Numba,还可以使用MindSpore、PyTorch和Jax等成熟的深度学习框架,这里介绍了一种直接写CUDA Kernel函数的方案。为了能够做到CUDA-C和Python编程的分离,这里引入了Cython作为中间接口,这样一来Py…

WEEK5|WEB Unserialize Again

进入后是一个文件上传但是这里并没有漏洞点看cookie得到源码<?php highlight_file(__FILE__); error_reporting(0); class story{private $user=admin;public $pass;public $eating;public $God=false;public function __wakeup(){$this->user=human;if(1==1){die();}…

PixiJS源码分析系列:第四章 响应 Pointer 交互事件(上篇)

响应 Pointer 交互事件(上篇) 上一章我们分析了 sprite 在 canvasRenderer 上的渲染,那么接下来得看看交互上最重要的事件系统了最简单的 demo 还是用一个最简单的 demo 演示 example/sprite-pointerdown.html 为 sprite 添加一个 pointerdown 事件,即点击事件,移动设备上就…

最新SEO自动外链蜘蛛池工具促进百度快速收录使用方法介绍

此工具集成市面上所有自动外链网站的资源链接,经过合并、去重、筛选、验证 总结出最终的外链资源 ,软件实时更新本软件将您繁杂的外链推广转为自动化进行,并且加入站群的支持,您只需要将你的站群域名粘贴到软件里,点击开始按钮就可以了软件会自动轮刷您的每一个网站软件效…

Markdown入门指南

Markdown入门指南HelyaHsiung2021.9.27SRE IN UESTC1.The Title of Markdown (1) Denote title using = or - First title ===========Second title -----------(2) Denote title using # # First title ## Second title ### Third title #### Fourth title ##### Fifth titl…

BGP属性 ASPath

BGP属性 ASPath AS_PATH 属性 BGP路由的必遵属性; AS间防环属性; 用于BGP路由的路径选择,当经过多条路径到达莫网络的情况,会选择经过ASpath 较少的作为最优; 顺序的记录了某条BGP路由所经过的AS信息,每经过一个AS会在ASPath 属性的最左边…

功能强大的电路设计与仿真软件Multisim 14.3安装教程

一款功能强大的电路设计与仿真软件Multisim是一款强大的电子电路仿真软件,广泛应用于电子工程和教育领域。本教程全面细致地解析了原理图设计、电路仿真以及虚拟仪器测试等核心功能,通过友好易学的界面设计,为用户打造了一款高效便捷的电路设计和分析工具,助您轻松掌握电路…

图书《数据资产管理核心技术与应用》分享

《数据资产管理核心技术与应用》是由清华大学出版社出版的一本图书,该图书主要特点如下: 1、依托于大数据技术,独家加密数据血缘的底层技术实现 2、详解数据资产管理的知识体系和核心技术 3、应用元数据管理和数据建模技术,充分发挥出数据资产的更大潜力和价值。 4、全书从…

山东省威海市台依村,杨文召——老赖!!!

山东省威海市台依村,杨文召——老赖!!!认识下老赖的家人!!!

MQ高级

消息的可靠性:一个消息发送出去以后至少被消费一次 丢失场景:消息发送时候丢失,mq崩了消息丢失,消费者把消息搞丢了(交易服务) 解决方法针对以上三个场景和兜底方案 1、发送者可靠性 消息从生产者到消费者的每一步都可能导致消息丢失: - 发送消息时丢失: - 生产者发送…

VitePress安装总结

1、安装node.js 2、安装vscode,并在扩展中安装markdown插件 3、在vscode的终端中修改淘宝镜像源:1npm config set registry https://registry.npmmirror.com4、在终端中输入1npm add -D vitepress5、在D盘创建文件夹,右键用vscode打开,或在vscode中打开文件夹 6、在终端中执…

哪位大佬知道为啥最后计数是0吗? 实际是有数据的

大家好,我是Python进阶者。 一、前言 前几天在Python白银交流群【Jethro Shen】问了一个Python数据处理的问题,问题如下:哪位大佬知道为啥最后计数是0吗?实际是有数据的二、实现过程 这里【瑜亮老师】给了一个指导,如下所示:这不是发生错误了么?你设置的发生错误return …