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

使用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

相关文章:

  • 使用Prometheus实现微服务架构的全面监控
  • Java Stream 高级实战:并行流、自定义收集器与性能优化
  • 2025.6.4总结
  • Python Day43
  • linux_centos7.x的ifconfig命令显示内容详解
  • Vehicle HAL(4)--vhal 的属性如何配置?
  • 泰迪杯特等奖案例深度解析:基于量子启发优化与多尺度时空建模的港口物流智能调度系统
  • unix/linux,sudo,其内部结构机制
  • 分布式训练下的多进程环境
  • 无人机光纤FC接口模块技术分析
  • winform下DevExpress中datagridview中数据批量保存不上
  • 【AI News | 20250604】每日AI进展
  • 【Qt开发】文件
  • VBA中类的解读及应用第二十四讲:把源数据赋给类利用类完成查找
  • 慢SQL调优(二):大表查询
  • Python有哪些经典的常用库?(第一期)
  • 【MySQL】 约束
  • linux系统--iptables实战案例
  • 主流Agent开发平台学习笔记:扣子罗盘coze loop 功能拆解
  • 【LLMs篇】13:LLaDA—大型语言扩散模型
  • 网站建设市场/做百度推广的网络公司
  • 温州大型网站建设/如何制作一个网页页面
  • 南通企业网站怎么建设/查域名网站
  • 昆明靠谱的网站开发公司有哪些/网络广告的形式有哪些
  • wordpress 数据库用户/陕西seo优化
  • 分销/谷歌seo推广培训班