使用cephadm离线部署reef 18版并配置对接openstack

news2025/6/7 8:14:51

curl --silent --remote-name --location https://download.ceph.com/rpm-squid/el9/noarch/cephadm
chmod +x cephadm

./cephadm add-repo --release reef

监视节点

离线下载

apt-get --download-only install ceph ceph-mon ceph-mgr ceph-common

mkdir /reef/mon
mv /var/cache/apt/archives/*.deb /reef/mon/
dpkg -i /reef/mon/*.deb

在一个mon节点操作

# 生成ssh密钥并拷贝
ssh-keygen -t ed25519

ssh-copy-id root@mon1
ssh-copy-id root@mon2
ssh-copy-id root@mon3
ssh-copy-id root@stor1
ssh-copy-id root@stor2
ssh-copy-id root@stor3

# 测试
ssh stor1
# bootstrapc初始化:在mon1上完成mon、mgr、dashboard部署,并生成ceph.conf、keyring等
cephadm bootstrap --mon-ip <ip1> --cluster-network <cluster_cidr> --public-network <public_cidr> --initial-dashboard-user admin --initial-dashboard-password 'Os#123'
  • 将配置文件:/etc/ceph/ceph.conf,admin密钥环:client.admin.keyring,拷贝到其他mon节点
# 进入cephadm shell环境
cephadm shell
# 节点加入集群
ceph orch host add mon2 ip2
ceph orch host add mon3 ip3
# 分配为角色
ceph orch daemon add mon mon2
ceph orch daemon add mon mon3

ceph orch daemon add mgr mon1
ceph orch daemon add mgr mon2
ceph orch daemon add mgr mon3

# 验证:
ceph -s
# monmap中3个节点都已加入,状态为quorum

ceph mgr stat
# 1 mgr: mon1(active), standbys: mon2, mon3
# 启用dashboard
ceph mgr module enable dashboard
# 如果没有自动生成自签名证书,则:ceph dashboard create-self-signed-cert

# 查看Dashboard的端口、地址
ceph config get mgr mgr/dashboard/server_addr
ceph config get mgr mgr/dashboard/server_port

存储节点

离线下载

apt-get --download-only install ceph ceph-osd ceph-common lvm2

mkdir /reef/stor
mv /var/cache/apt/archives/*.deb /reef/stor/
dpkg -i /reef/stor/*.deb

在一个mon节点操作

  • 将配置文件:/etc/ceph/ceph.conf,拷贝到osd节点
# 添加stor节点,举例
ceph orch host add stor1 ip11
ceph orch host add stor2 ip12

# 举例osd1的数据盘/dev/sdb,ceph orch daemon add osd stor1:/dev/sdb
# 自动发现盘
ceph orch daemon add osd --all-available-devices --hosts stor1
ceph orch daemon add osd --all-available-devices --hosts stor2

# 验证:osd为up、in状态
ceph -s
ceph osd tree
ceph osd df

整体方案

  • stor节点的nvme ssd作wal写缓冲、db元数据,sata hdd作容量盘
  • 采用bluestore存储引擎,自动创建crush rule

在这里插入图片描述

# lv_capacity = nvme_total / num_of_hdd
pvcreate /dev/nvme0n1
vgcreate nvme-vg /dev/nvme0n1

lvcreate -L <lv_capacity> -n waldb1 nvme-vg
lvcreate -L <lv_capacity> -n waldb2 nvme-vg
lvcreate -L <lv_capacity> -n waldb3 nvme-vg
lvcreate -L <lv_capacity> -n waldb4 nvme-vg

# 逐一绑定
ceph-volume lvm create --data /dev/sdb --block.db /dev/nvme-vg/waldb1
ceph-volume lvm create --data /dev/sdc --block.db /dev/nvme-vg/waldb2
ceph-volume lvm create --data /dev/sdd --block.db /dev/nvme-vg/waldb3
ceph-volume lvm create --data /dev/sdd --block.db /dev/nvme-vg/waldb4

划分池

在这里插入图片描述

# pg_num = osd_total * 100 / 副本数
# pg_num:一个pool中的放置组数量
# pgp_num:对象写入时参与哈希的放置组数量
ceph osd pool create volumes <pg_num> <pgp_num> replicated
ceph osd pool create images <pg_num> <pgp_num> replicated
ceph osd pool create vms <pg_num> <pgp_num> replicated

# pool属性
ceph osd pool application enable volumes rbd
ceph osd pool application enable images rbd
ceph osd pool application enable vms rbd

# 副本数
ceph osd pool set volumes size 3
ceph osd pool set images size 3
ceph osd pool set vms size 3

划分用户

# admin:集群初始化时自动生成的超级管理员,拥有对整个Ceph集群的完全管理权限(一般只分发到运维节点,不给OpenStack服务用)
# glance:只授予images池的读写权限
# nova:只授予vms池的读写权限
# cinder:只授予volumes池的读写权限
ceph auth get-or-create client.glance mon 'allow r' osd 'allow rwx pool=images'
ceph auth get-or-create client.nova mon 'allow r' osd 'allow rwx pool=vms'
ceph auth get-or-create client.cinder mon 'allow r' osd 'allow rwx pool=volumes'

# 获取密钥环
ceph auth get client.glance -o /etc/ceph/ceph.client.glance.keyring
ceph auth get client.nova -o /etc/ceph/ceph.client.nova.keyring
ceph auth get client.cinder -o /etc/ceph/ceph.client.cinder.keyring

# 查看用户及密钥环
ceph auth list
ceph auth get-key client.<user>

crushmap介绍

  • crush算法通过计算位置来确定数据的存储、检索,授权客户端直接连接osd
  • 对象通过算法被切分成数据片,分布在不同的osd上
  • 提供很多种的bucket,最小的节点是osd
  • 结构如下:
osd (or device)
# 主机
host
# 机箱
chassis
# 机柜
rack
row
pdu
pod
# 机房
room
# 数据中心
datacenter
# 地区
zone
# 地域
region
# 最高:根
root

举例

在这里插入图片描述

# 创建根桶
ceph osd crush add-bucket ssd-b root

# 创建主机桶
ceph osd crush add-bucket n1-ssd-b host
ceph osd crush add-bucket n2-ssd-b host

# 主机桶添加到根桶
ceph osd crush move n1-ssd-b root=ssd-b
ceph osd crush move n2-ssd-b root=ssd-b

# osd添加到主机桶
ceph osd crush move osd.3 host=n1-ssd-b root=ssd-b
ceph osd crush move osd.4 host=n2-ssd-b root=ssd-b

# 创建规则:<rule-name> <root> <failure-domain>
# failure-domain:副本分布时的最小容错单元
ceph osd crush rule create-replicated rule1 ssd-b host

# 关联pool和rule
ceph osd pool set pool1 crush_rule rule1
# 规则名称、rootbucket名称、容灾机制(默认default)、host类型、磁盘类型
ceph osd tree
ceph osd crush tree

# 详细查看
ceph osd crush dump

# 查看规则
ceph osd crush rule ls

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年数维杯国际大学生数学建模挑战赛D题城市弹性与可持续发展能力评价解题全过程论文及程序

2024年数维杯国际大学生数学建模挑战赛 D题 城市弹性与可持续发展能力评价 原题再现&#xff1a; 中国人口老龄化趋势的加剧和2022年首次出现人口负增长&#xff0c;表明未来一段较长时期内我国人口将呈现下降趋势。这一趋势必将影响许多城市的高质量和可持续发展&#xff0c…

QT聊天项目DAY13

1. 重置密码 重置密码label也要实现浮动和点击效果&#xff0c;所以将忘记密码这个标签提升为ClickedLabel 1.1 ClickedLabel的复用 由于样式表(.qss) 文件中可以写入多个控件的状态UI&#xff0c;所以为了ClickedLabel能够复用&#xff0c;将成员变量的初始化方式修改为函数…

Web3如何重塑数据隐私的未来

在这个信息爆炸的时代&#xff0c;数据隐私已成为我们不得不面对的严峻问题。Web3&#xff0c;作为下一代互联网的代表&#xff0c;以其去中心化、用户主权和数据安全等特点&#xff0c;正在重塑数据隐私的未来。它不仅仅是技术的革新&#xff0c;更是对个人隐私保护理念的一次…

【鸿蒙】HarmonyOS NEXT之如何正常加载地图组件

1、不支持模拟器&#xff0c;需要真机&#xff01; 2、Map地图需要在AGC上申请权限&#xff0c;需要在AGC上创建对应的项目 地址&#xff1a; AppGallery Connect 2.1 AGC中项目创建 2.1.1 添加项目 2.1.2 起个名字 2.1.3 添加应用&#xff1a; 2.1.4 选择HarmonyOS APP&…

前端框架进化史

本内容是对 You’ll Never Manually Update the DOM Again // Here’s Why 内容的翻译与整理。 你再也不需要手工更新DOM, 以下是原因 现代 JavaScript 框架&#xff0c;如 React、Vue、Svelte、Solid、Quick&#xff0c;以及本周推出的其他 786 个框架&#xff0c;都试图做一些…

(二)stm32使用4g模块(移远ec800k)连接mqtt

下面代码是随手写的&#xff0c;没有严谨测试仅供参考测试 uint8_t msgBuf[200]{"msg from mcu"}; uint8_t txBuf[250]{0}; uint16_t msgid0; uint16_t mqttTaskState0; uint16_t t100msCount0; uint8_t sendFlag10; uint8_t sendFlag20; void t100msTask1(void) { …

防火墙iptables项目实战

目录 一、网络规划 三、环境准备与检测 1、firewall &#xff08;1&#xff09;配置防火墙各大网卡ip并禁用firewalld和selinux &#xff08;2&#xff09;打开firewall路由转发 2、PC1&#xff08;内网&#xff09; &#xff08;1&#xff09;配置ip并禁用firewalld和s…

webpack继续学习

认识PostCSS工具 PostCSS是一个通过JS来转换样式的工具&#xff0c;这个工具可以帮助我们进行一些CSS的转换和适配&#xff0c;比如自动添加浏览器前缀&#xff0c;css样式的重置 实现这些功能需要借助于PostCSS对应的插件 自动添加浏览器前缀需要&#xff1a; npm install…

Scrapy爬虫框架Spiders爬虫脚本使用技巧

我们都知道Scrapy是一个用于爬取网站数据、提取结构化数据的Python框架。在Scrapy中&#xff0c;Spiders是用户自定义的类&#xff0c;用于定义如何爬取某个&#xff08;或某些&#xff09;网站&#xff0c;包括如何执行爬取&#xff08;即跟踪链接&#xff09;以及如何从页面中…

PowerBI企业运营分析—全动态盈亏平衡分析

PowerBI企业运营分析—全动态盈亏平衡分析 欢迎来到Powerbi小课堂&#xff0c;在竞争激烈的市场环境中&#xff0c;企业运营分析平台成为提升竞争力的核心工具。 该平台通过整合多源数据&#xff0c;实现关键指标的实时监控&#xff0c;从而迅速洞察业务动态&#xff0c;精准…

docker的基本命令

容器的三大组成 镜像image 一个静态文件&#xff0c;特点&#xff1a;分层结构&#xff0c;不可更改 容器container 镜像运行的结果&#xff0c;容器可以修改&#xff0c;运行完后直接停止 仓库registry 用来存放镜像文件的地方 容器的常用命令介绍 关于镜像的命令 docker …

【运维实战】Rsync将一台主Web服务器上的文件和目录同步到另一台备份服务器!

在管理 Web 服务器时&#xff0c;确保数据安全且在发生故障时能够快速恢复至关重要&#xff0c;备份和镜像 Web 服务器数据最可靠的方法之一是使用 rsync。 Rsync 工具可以帮助在两台服务器之间同步文件和目录&#xff0c;非常适合用于创建 Web 服务器数据的备份和镜像。 下面…

AgenticSeek 本地部署教程(Windows 系统)

#工作记录 Fosowl/agenticSeek&#xff1a;完全本地的 Manus AI。 部署排错参考资料在文末 或查找往期笔记。 AgenticSeek 本地部署教程&#xff08;Windows 系统&#xff09; 一、环境准备 1. 安装必备工具 Docker Desktop 下载地址&#xff1a;Docker Desktop 官网 安装后启…

基于 qiankun + vite + vue3 构建微前端应用实践

核心内容摘要​​ ​​技术栈组合​​ 采用 Vite Vue3 Qiankun 构建微前端架构主应用和子应用独立开发部署&#xff0c;通过 Qiankun 集成 ​​2. 主应用关键配置​​通过 registerMicroApps 注册子应用&#xff0c;配置路由匹配规则&#xff08;activeRule&#xff09;使用…

机器学习:逻辑回归与混淆矩阵

本文目录&#xff1a; 一、逻辑回归Logistic Regression二、混淆矩阵&#xff08;一&#xff09;精确率precision&#xff08;二&#xff09;召回率recall&#xff08;三&#xff09;F1-score&#xff1a;了解评估方向的综合预测能力&#xff08;四&#xff09;Roc曲线&#xf…

20250602在荣品的PRO-RK3566开发板的Android13下打开HDMI显示

20250602在荣品的PRO-RK3566开发板的Android13下打开HDMI显示 2025/6/2 16:20 缘起&#xff1a;貌似荣品的PRO-RK3566开发板的Android13默认关闭了HDMI显示。 据说&#xff1a;荣品确认RK3566的GPU比较弱&#xff0c;同时开【MIPI接口的】LCD屏显示和HDMI显示容易出现异常。 更…

AI在网络安全领域的应用现状和实践

当前&#xff0c;人工智能技术已深度融入网络安全产品&#xff0c;推动传统防御模式向智能化、自适应方向加速演进。各安全厂商通过机器学习、深度学习与知识图谱等技术的融合应用&#xff0c;提高安全产品在威胁检测、攻击溯源、风险评估等场景的能力跃迁&#xff0c;突破传统…

鸿蒙任务项设置案例实战

目录 案例效果 资源文件与初始化 string.json color.json CommonConstant 添加任务 首页组件 任务列表初始化 任务列表视图 任务编辑页 添加跳转 任务目标设置模型&#xff08;formatParams&#xff09; 编辑页面 详情页 任务编辑列表项 目标设置展示 引入目标…

TDengine 的 AI 应用实战——运维异常检测

作者&#xff1a; derekchen Demo数据集准备 我们使用公开的 NAB数据集 里亚马逊 AWS 东海岸数据中心一次 API 网关故障中&#xff0c;某个服务器上的 CPU 使用率数据。数据的频率为 5min&#xff0c;单位为占用率。由于 API 网关的故障&#xff0c;会导致服务器上的相关应用…

使用Plop.js高效生成模板文件

前情 开发是个创造型的职业&#xff0c;也是枯燥的职业&#xff0c;因为开发绝大多数都是每天在业务的代码中无法自拨&#xff0c;说到开发工作&#xff0c;就永远都逃不开新建文件的步骤&#xff0c;特别现在组件化开发胜行&#xff0c;每天都是在新建新建组件的道路上一去不…