当前位置: 首页 > news >正文

ceph手动部署

ceph手动部署

一、 节点规划

主机名IP地址角色
ceph01.example.com172.18.0.10/24mon、mgr、osd、mds、rgw
ceph02.example.com172.18.0.20/24mon、mgr、osd、mds、rgw
ceph03.example.com172.18.0.30/24mon、mgr、osd、mds、rgw

操作系统版本: Rocky Linux release 8.8 (Green Obsidian)

二、 准备工作

以下操作所有主机都要操作

1. 替换YUM源

sed -e 's|^mirrorlist=|#mirrorlist=|g'

-e 's|^#baseurl=Index of /$contentdir|baseurl=rockylinux安装包下载_开源镜像站-阿里云|g'

-i.bak

/etc/yum.repos.d/Rocky-.repo

dnf makecache

2. 关闭防火墙和SELINUX

systemctl disable --now firewalld.service

setenforce 0

vim /etc/sysconfig/selinux

3. 配置时间同步

echo “server ntp.aliyun.com iburst” >> /etc/chronyd.conf

systemctl enable --now chronyd

chronyc sources

4. 主机名与IP进行映射

vim /etc/hosts

172.18.0.10 ceph01.example.com ceph01

172.18.0.20 ceph02.example.com ceph02

172.18.0.30 ceph03.example.com ceph03

5. 节点安装ceph软件包

yum install centos-release-ceph-pacific -y 此处使用P版 目前企业级存储使用的稳定版

yum install ceph -y

三、配置MON

1. 生成集群UUID

uuidgen

eb6d6dab-6854-4663-ba7f-eadf2758e681

2. 创建ceph.conf配置文件

vim /etc/ceph/ceph.conf

[global]

fsid=eb6d6dab-6854-4663-ba7f-eadf2758e681

mon_initial_members=ceph01,ceph02,ceph03

mon_host=172.18.0.10,172.18.0.20,172.18.0.30

public_network=172.18.0.0/24

auth_cluster_required=cephx

auth_service_required=cephx

auth_client_required=cephx

osd_pool_default_size=3

osd_pool_default_min_size=2

osd_pool_default_pg_num=128

osd_pool_default_pgp_num=128

storage_type=bluestore

osd_objectstore=bluestore

osd_mkfs_type=xfs

bluestore_block_size=5628755968

3. 生成monitor keyring

ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow '

4. 生成admin管理员key

ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow ' --cap osd 'allow ' --cap mds 'allow ' --cap mgr 'allow '

5. 生成OSD引导key

ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'

6. 将admin和osd引导key导入到mon key中

ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring

chown ceph:ceph /tmp/ceph.mon.keyring

7. 生成monmap映射视图

monmaptool --create --add ceph01 172.18.0.10 --add ceph02 172.18.0.20 --add ceph03 172.18.0.30 --fsid eb6d6dab-6854-4663-ba7f-eadf2758e681 /tmp/monmap

8. 拷贝文件到其他节点

scp /etc/ceph/ceph.conf root@ceph02:/etc/ceph/

scp /etc/ceph/ceph.conf root@ceph03:/etc/ceph/

scp /tmp/monmap root@ceph02:/tmp/

scp /tmp/monmap root@ceph03:/tmp/

scp /tmp/ceph.mon.keyring root@ceph02:/tmp/

scp /tmp/ceph.mon.keyring root@ceph03:/tmp/

scp /etc/ceph/ceph.client.admin.keyring root@ceph02:/etc/ceph/

scp /etc/ceph/ceph.client.admin.keyring root@ceph03:/etc/ceph/

9. 从映射视图导入集群关系(在所有节点上操作)

sudo -u ceph mkdir /var/lib/ceph/mon/ceph-ceph01(ceph01改成不同的主机名)

ceph-mon --mkfs -i ceph01 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring(ceph01改成不同的主机名)

chown ceph.ceph -R /var/lib/ceph

10. 启动mon服务并查看集群状态(在所有节点上操作)

systemctl enable --now ceph-mon@ceph01.service (ceph01改成不同的主机名)

ceph -s 查看集群状态

问题1:3 monitors have not enabled msgr2

ceph mon enable-msgr2 ()

问题2:mons are allowing insecure global_id reclaim

ceph config set mon auth_allow_insecure_global_id_reclaim false(禁用不安全模式)

四、配置MGR

1-3以下所有节点均需要操作

1. 创建mgr key存放目录

sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-$(hostname -s)

2. 生成mgr key

ceph auth get-or-create mgr. $(hostname -s) mon 'allow profile mgr' osd 'allow ' mds 'allow ' > /var/lib/ceph/mgr/ceph-$(hostname -s)/keyring

3. 启动mgr服务

systemctl enable --now ceph-mgr@ceph01.service (ceph01在不同节点上换成不同主机名)

4. 配置dashboard图形化控制台

4.0 安装dashboard模块并启用

yum install ceph-mgr-dashboard -y

4.1 生成自签名证书

openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650

-keyout dashboard.key -out dashboard.crt -extensions v3_ca

4.2 导入证书

ceph dashboard set-ssl-certificate -i dashboard.crt

ceph dashboard set-ssl-certificate-key -i dashboard.key

4.3 配置地址和端口

ceph config set mgr mgr/dashboard/server_addr 0.0.0.0

ceph config set mgr mgr/dashboard/ssl_server_port 8443

4.4 禁用rgw api校验自签名证书(如果启用rgw ssl则需要)

ceph dashboard set-rgw-api-ssl-verify false

4.5初始化 dashboard 用户

echo redhat123 > pass.txt

ceph dashboard ac-user-create admin administrator -i pass.txt

4.6 启用http关闭ssl

mgr-dashboard默认使用ssl进行访问,关闭ssl可以使用http

ceph config set mgr mgr/dashboard/ssl false

4.7 启用或禁用dashboard

ceph config module disable dashboard

ceph config module enable dashboard

五、配置OSD

1. 拷贝OSD的密钥环(ceph01操作)

scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@ceph02:/var/lib/ceph/bootstrap-osd/

scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@ceph03:/var/lib/ceph/bootstrap-osd/

拷贝后修改文件的权限chown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring

2. 创建OSD

ceph-volume lvm create --data /dev/sdb --bluestore

说明:

--bluestore 不接时默认为bluestore后端驱动,使用--filestore则使用文件级filestore驱动,cephadm不支持管理后端驱动为filestore的OSD

上述过程可以拆分成两步:

准备OSD:ceph-volume lvm prepare --data /dev/sdb

激活OSD:ceph-volume lvm activate {ID} {FSID}

 ceph-volume lvm list 查看OSD的ID

3. 查看集群状态以及添加的OSD

ceph -s 查看集群状态是否ok

ceph osd ls

六、配置MDS

以下操作所有节点都要做

1. 创建mds key存放目录

sudo -u ceph mkdir /var/lib/ceph/mds/ceph-$(hostname -s)

2. 生成mds keyring

ceph auth get-or-create mds.$(hostname -s) osd "allow rwx" mds "allow" mon "allow profile mds" > /var/lib/ceph/mds/ceph-$(hostname -s)/keyring

chown ceph.ceph -R /var/lib/ceph/mds/ceph-ceph02/keyring

3. 启动mds 服务

systemctl start ceph-mds@ceph01.service

systemctl start ceph-mds@ceph02.service

systemctl start ceph-mds@ceph03.service

4. 创建文件系统测试

ceph osd pool create fspool_meta 创建文件系统元数据池

ceph osd pool create fspool_data 创建文件系统数据池

ceph fs new fs01 fspool_meta fspool_data 创建fs01的文件系统

ceph fs status 查看文件系统的主从节点

ceph fs authorize fs01 client.wangwu / rw 创建文件系统使用用户王五并授权

mount -t ceph ceph01:/ /media/ -o name=wangwu,fs=fs01,secret=AQB3ryJl1Z2QMRAAH1C/qRaBGIKKBWET5lM1eg== 挂载测试

七、配置RGW

1.安装软件包(所有节点操作)

yum install ceph-radosgw -y

2.创建 rgw key(ceph01操作)

ceph auth get-or-create client.rgw.ceph01 osd 'allow rwx' mon 'allow rwx' >> /etc/ceph/ceph.client.radosgw.keyring

ceph auth get-or-create client.rgw.ceph02 osd 'allow rwx' mon 'allow rwx' >> /etc/ceph/ceph.client.radosgw.keyring

ceph auth get-or-create client.rgw.ceph03 osd 'allow rwx' mon 'allow rwx' >> /etc/ceph/ceph.client.radosgw.keyring

chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring

scp /etc/ceph/ceph.client.radosgw.keyring root@ceph02:/etc/ceph/

chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring (ceph02操作)

scp /etc/ceph/ceph.client.radosgw.keyring root@ceph03:/etc/ceph/

chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring (ceph03操作)

4.编辑配置文件(ceph01操作)

vim /etc/ceph.conf 新增rgw配置

[client.rgw.ceph01]

host=ceph01

keyring=/etc/ceph/ceph.client.radosgw.keyring

log file=/var/log/radosgw/client.radosgw.gateway.log

rgw frontends = civetweb port=172.18.0.10:8080

[client.rgw.ceph02]

host=ceph02

keyring=/etc/ceph/ceph.client.radosgw.keyring

log file=/var/log/radosgw/client.radosgw.gateway.log

rgw frontends = civetweb port=172.18.0.20:8080

[client.rgw.ceph03]

host=ceph03

keyring=/etc/ceph/ceph.client.radosgw.keyring

log file=/var/log/radosgw/client.radosgw.gateway.log

rgw frontends = civetweb port=172.18.0.30:8080

scp /etc/ceph/ceph.conf root@ceph02:/etc/ceph/

scp /etc/ceph/ceph.conf root@ceph03:/etc/ceph/

5. 创建日志目录(所有节点操作)

sudo -u ceph mkdir /var/log/radosgw/

6. 启动RGW服务(对应节点操作)

systemctl enable --now ceph-radosgw@rgw.ceph01.service

systemctl enable --now ceph-radosgw@rgw.ceph02.service

systemctl enable --now ceph-radosgw@rgw.ceph03.service

服务启动后rgw将自动创建以下存储池

.rgw.root #包含 realm(领域信息),比如 zone 和 zonegroup

default.rgw.log #存储日志信息,用于记录各种 log 信息

default.rgw.control #系统控制池,在有数据更新时,通知其它 RGW 更新缓存

default.rgw.meta #元数据存储池,通过不同的名称空间分别存储不同的 rados 对象

7. 创建s3用户测试

radosgw-admin user create --uid=user1 --access-key=123 --secret=456 --email user1@example.com --display-name user1

7. s3对象存储测试(任意选择一个节点测试)

7.1 安装s3工具

yum install epel-release -y 使用epel源

yum install aws -y 安装s3客户端工具

7.2 配置s3访问凭据

aws configure --profile=ceph 凭据名为ceph

输入ak和sk

7.3 创建存储桶

aws --profile=ceph --endpoint-url=http://172.18.0.10:8080 s3 mb s3://bucket1

7.4 上传文件到桶

aws --profile=ceph --endpoint-url http://172.18.0.10:8080 s3 cp /etc/passwd s3://bucket1/passwd

相关文章:

ceph手动部署

ceph手动部署 一、 节点规划 主机名IP地址角色ceph01.example.com172.18.0.10/24mon、mgr、osd、mds、rgwceph02.example.com172.18.0.20/24mon、mgr、osd、mds、rgwceph03.example.com172.18.0.30/24mon、mgr、osd、mds、rgw 操作系统版本: Rocky Linux release …...

superset load_examples加载失败解决方法

如果在执行load_examples命令后,出现上方图片情况,或是相似报错(url error\connection error),大概率原因是python程序请求github数据,无法访问. 因此我们可以将数据下载在本地来解决. 1.下载zip压缩文件,存放到本地 官方示例地址:GitHub - apache-superset/examples-data …...

wareshark分析mysql协议的数据包

使用wareshark 分析mysql协议的数据包,是每个dba都应该掌握的技能,掌握以后,就可以通过tcpdump抓包分析,得到连接报错的信息了。 tcpdump抓包命令: tcpdump -nn -i bond0 dst 10.21.6.72 and port 4002 -w 1129_tcpdu…...

HarmonyOS4+NEXT星河版入门与项目实战(25)------UIAbility启动模式(文档编辑案例)

文章目录 1、启动模式2、Specified启动模式实现步骤3、文档编辑案例1、文件创建2代码实现3、Statge 创建4、添加配置1、启动模式 Singleton启动模式: 每个 UIAbility 只存在一个实例,是默认的启动模式,任务列表中只会存在一个相同的 UIAbilityStandard启动模式: 每次启动 U…...

webpack 项目访问静态资源

使用 webpack dev serve 启动 react 项目后,发现无法使用 http://localhost:8080/1.png 访问到项目的 /static 目录下的 1.png 文件。我的 webpack-dev.js 配置如下: const webpack require(webpack) const webpackMerge require(webpack-merge) cons…...

‌UNION和UNION ALL区别

文章目录 结果集的处理方式‌:‌对重复记录的处理‌:‌排序处理‌:‌执行效率‌: ‌UNION和UNION ALL的主要区别在于结果集的处理方式、对重复记录的处理、排序处理以及执行效率。‌‌ 结果集的处理方式‌: ‌UNION‌…...

Rook入门:打造云原生Ceph存储的全面学习路径(下)

文章目录 六.Rook部署云原生CephFS文件系统6.1 部署cephfs storageclass6.2 创建容器所需cephfs文件系统6.3创建容器pod使用rook-cephfs提供pvc6.4 查看pod是否使用rook-cephfs 七.Ceph Dashboard界面7.1 启用dashboard开关7.2 ceph-dashboard配置外部访问7.3 Dashboard web ad…...

RabbitMQ消息可靠性保证机制6--可靠性分析

在使用消息中间件的过程中,难免会出现消息错误或者消息丢失等异常情况。这个时候就需要有一个良好的机制来跟踪记录消息的过程(轨迹溯源),帮助我们排查问题。 在RabbitMQ中可以使用Firehose实现消息的跟踪,Firehose可…...

k8s容器存储接口 CSI 相关知识

容器存储接口 CSI 相关知识 参考: https://blog.csdn.net/lovely_nn/article/details/122880876 https://developer.aliyun.com/article/783464 https://www.cnblogs.com/varden/p/15139819.html存储商需实现 CSI 插件的 NodeGetVolumeStats 接口,Kube…...

jmeter基础_打开1个jmeter脚本(.jmx文件)

课程大纲 方法1.菜单栏“打开” 菜单栏“文件” - “打开” (或快捷键,mac为“⌘ O”),打开文件选择窗口 - 选择脚本文件,点击“open”,即可打开脚本。 方法2.工具栏“打开”图标 工具栏点击“打开”图标&…...

Linux---对时/定时服务

文章目录 目录 文章目录 前言 一.对时服务 服务端配置 客户端配置 二.定时服务 单次定时任务 循环定时任务 前言 在当今信息化高速发展的时代,时间的准确性和任务的定时执行对于各种系统和服务来说至关重要。Linux操作系统,凭借其强大的功能和灵活的…...

Agent

Agent核心 1、自主性 2、交互性 3、适应性 4、目的性 ReAct Reasoning and Acting范式 模型的推理过程分为 推理 Reason 和行动 Action 两个步骤,交替执行,直至获得最终结果。 推理 Reason 生成分析步骤,解释当前任务的上下文或状态…...

Oracle 数据库执行增删改查命令的原理与过程

摘要: 本文深入探讨当向 Oracle 数据库发送一个增删改查(CRUD)命令时,数据库内部的执行机制与详细过程。从用户发起命令开始,逐步剖析命令在 Oracle 数据库体系结构各组件中的流转、解析、优化以及执行路径&#xff0c…...

HBase难点

查询优化 一次Scan会返回大量数据,客户端向HBase发送一次Scan请求,实际上并不会将所有数据加载到本地,而是通过多次RPC请求进行加载,防止客户端OOM。禁止缓存优化:批量读取数据时会全表扫描一次业务表,这种…...

Y20030023 PHP+thinkphp+MYSQL+LW+基于PHP的健身房管理系统的设计与实现 源代码 配置 初稿

基于PHP的健身房管理系统 1.项目摘要2. 系统开发的背景及意义3.项目功能4.界面展示5.源码获取 1.项目摘要 近年来,随着社会发展和科技进步,人们越来越重视健康养生并关注电子商务对日常交流方式的影响。随着健身行业消费人群的增加,竞争变得…...

mongodb下载与使用

下载地址: Install MongoDB Community Kubernetes Operator | MongoDB 1、安装MongoDB (5.0.30) 将压缩包移动到C:\Program Files 下,然后解压创建C:\data\db目录,mongodb 会将数据默认保存在这个文件夹以mongodb 中 bin目录作为工作目录&…...

【Linux基础】Linux基本指令

目录 1、pwd 指令 2、clear 指令 3、ls 指令 1、ls 显示当前路径下的文件或者目录名称 2、ls -l 显示当前路径下的文件或者目录的更详细的属性信息 3、ls -a :显示所有文件,包括隐藏文件 4、ls -d 将目录像文件一样显示,而不是显示其…...

【RISC-V CPU debug 专栏 3 -- Debugging RISC-V Cores】

文章目录 RISC-V 调试规范开源与多样性挑战调试规范的重要性外部调试支持的主要组件调试功能Lauterbach 的贡献RISC-V 调试规范 调试 RISC-V 内核涉及许多独特的挑战,这是由 RISC-V 的开源特性和多样化的生态系统所决定的。为了避免专有调试接口的泛滥,RISC-V 基金会内的工作…...

思科实现网络地址转换(NAT)和访问控制列表(ACL)和动态路由配置并且区分静态路由和动态路由配置。

实验拓扑(分为静态路由和动态路由两种) 静态路由互通 动态路由互通 实验背景 这个是想实现外网与内网的连接跟网络的探讨,最终实现互通以及使用并且在网络地址转换后能使用网络然后再这个基础上再配置访问控制列表和网络地址转换的的学习过程。 实验需了解的知识…...

基于 Python、OpenCV 和 PyQt5 的人脸识别上课打卡系统

大家好,我是Java徐师兄,今天为大家带来的是基于 Python、OpenCV 和 PyQt5 的人脸识别上课签到系统。该系统采用 Python 语言开发,开发过程中采用了OpenCV框架,Sqlite db 作为数据库,系统功能完善 ,实用性强…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...

[拓扑优化] 1.概述

常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...

Tauri2学习笔记

教程地址:https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引:https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多,我按照Tauri1的教程来学习&…...