ceph手动部署
ceph手动部署

一、 节点规划
| 主机名 | IP地址 | 角色 |
|---|---|---|
| ceph01.example.com | 172.18.0.10/24 | mon、mgr、osd、mds、rgw |
| ceph02.example.com | 172.18.0.20/24 | mon、mgr、osd、mds、rgw |
| ceph03.example.com | 172.18.0.30/24 | mon、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 数据库体系结构各组件中的流转、解析、优化以及执行路径,…...
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 作为数据库,系统功能完善 ,实用性强…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
