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

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

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-commonmkdir /reef/mon
mv /var/cache/apt/archives/*.deb /reef/mon/
dpkg -i /reef/mon/*.deb

在一个mon节点操作

# 生成ssh密钥并拷贝
ssh-keygen -t ed25519ssh-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 mon3ceph orch daemon add mgr mon1
ceph orch daemon add mgr mon2
ceph orch daemon add mgr mon3# 验证:
ceph -s
# monmap中3个节点都已加入,状态为quorumceph 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 lvm2mkdir /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/nvme0n1lvcreate -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.xdnf.cn/news/12111.html

相关文章:

  • 传统足浴行业数字化转型:线上预约平台的技术架构与商业逻辑
  • 今日行情明日机会——20250604
  • FTP 和 SFTP 介绍及 C/C++ 实现分析
  • 如何流畅播放体育电竞赛事?
  • Web开发主流前后端框架总结
  • Java 进程大对象分析与优化指南
  • Nginx 安全设置配置
  • leetcode 455. Assign Cookies和2410. Maximum Matching of Players With Trainers
  • 双栈共享一个栈空间
  • 解决docker运行zentao 报错:ln: failed to create symbolic link ‘/opt/zbox/tmp/mysq
  • sifli 52 反馈standby待机rc10k 15秒校准起来后,底电流会变大
  • 【openEuler】openEuler通过route-eth0配置网卡启用后创建一条特定路由表
  • 【知识点】第5章:函数和代码复用
  • 栈的应用:表达式求值
  • AIGC 基础篇 高等数学篇 03 中值定理与导数应用
  • 系统巡检常见工作
  • 标准IO及相关函数介绍
  • 中电金信:从智能应用到全栈AI,大模型如何重构金融业务价值链?
  • [Java 基础]面向对象-继承
  • QML技术优势
  • GuessNumber
  • CET6 仔细阅读 24年12月第三套-C2 美的定义这一块
  • 【opnecv】检测桌子上多余的物品
  • 《复制粘贴的奇迹:小明的原型工厂》
  • python打卡第44天
  • AI大模型学习三十二、飞桨AI studio 部署 免费Qwen3-235B与Qwen3-32B,并导入dify应用
  • CSS 选择器全解析:分组选择器/嵌套选择器,从基础到高级
  • 关于如何运用AI的思考
  • Day44 Python打卡训练营
  • ATM存取钱项目