当前位置: 首页 > 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
http://www.lqws.cn/news/141697.html

相关文章:

  • C语言-指针基础概念
  • Vue 生命周期全解析:从创建到销毁的完整旅程
  • OD 算法题 B卷【查找舆情热词】
  • el-amap-bezier-curve运用及线弧度设置
  • 构建高效可靠的电商 API:设计原则与实践指南
  • Oracle数据库笔记
  • 智能合约安全漏洞解析:从 Reentrancy 到 Integer Overflow
  • 嵌入式系统中常用的开源协议
  • LeetCode 热题 100 739. 每日温度
  • 修复与升级suse linux
  • Viggle:开启视频人物替换新纪元
  • 滑动智能降级:Glide优化加载性能的黑科技
  • 用布局管理器grid实现计算机界面
  • Win11系统输入时首字母丢失 - 解决方案
  • 11. 试学内容-如何理解隔离性2(原理)
  • 题海拾贝:P2347 [NOIP 1996 提高组] 砝码称重
  • 【计网】SW、GBN、SR、TCP
  • 【无人机】无人机UAV、穿越机FPV的概念介绍,机型与工具,证书与规定
  • 【算法题】最长回文子串
  • RAG-Gym:一个用于优化带过程监督的代理型RAG的统一框架
  • C++语法系列之IO流
  • 重温经典算法——希尔排序
  • C语言数组初始化方法大全(附带实例)
  • 高速PCB设计中圆弧布线是否必要
  • ApacheSuperset CVE-2023-27524
  • L1-019 谁先倒 (15 分)
  • 慢SQL调优(二):大表查询
  • 《Offer来了:Java面试核心知识点精讲》大纲
  • 10. MySQL索引
  • Android apk装机编译类型: verify、speed-profile, speed与启动耗时