首页
LocalNetwork分享
磁盘空间分析器SpaceSniffer
OMV 免费NAS系统
收藏的网页
TrueNas开源存储
磁盘相关&映像写入工具
再生龙(Clonezilla)
Proxmox 虚拟化
PVE-集群中删除节点
pve中测试ceph集群的IOPS和带宽
pve8.1安装ceph
pve中ceph配置
pve使用指定OSD创建pool
ceph按hdd和ssd创建不同ceph pool
PVE虚拟机模板
PVE运维
PVE集群下线宿主机节点-下线ceph节点
ceph运维
ceph运维-pve磁盘
PVE运维-虚拟机管理
PVE备份服务器 Proxmox Backup Server
好用的网页端在线工具
App Inventor谷歌开发的android(可视化)编程工具
图形化IP监视器Quick Ping Monitor
ocserv (OpenConnect server)开源ssl vpn服务器
Jupyter Notebook_网页上运行python代码
获取win中进程的网络流量_TCPView
http文件共享工具_HFS
Typecho导航主题WebStack_钻芒二开版
ESXI虚拟化
ESXI上复制虚拟机
ESXI中的网络
ESXI 配置虚拟机开机自启动
ESXI导出虚拟机 - 网络错误
云萌 Windows 10 绿色激活工具
Spug_开源运维平台
U盘启动盘工具_Ventoy
HFish蜜罐
好用的工具软件
代替xshell的SSH连接工具
jumpserver开源堡垒机
nextcloud网盘
Cloudreve网盘
Seafile网盘
觅道文档Mrdoc-云笔记、云文档、知识管理
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
pve使用指定OSD创建pool
ceph 指定OSD创建pool,ssd创建一个ceph pool,机械硬盘创建另一个ceph pool 参考:https://zhuanlan.zhihu.com/p/572166693?utm_id=0 Proxmox版本8.1 Ceph版本Reef 18.2.0 web网页上创建osd后,按如下配置 rule,最后创建ceph pool时引用本文章创建的rule即可实现不同ceph pool池使用指定的osd节点。 利用crush来对不同数据指定不同设备的osd存储,假设osd0,1,2为ssd设备,osd 3,4,5为sata hdd设备。 ## 获取当前Crush Map并反编译他 ``` ceph osd getcrushmap -o crushmapdump crushtool -d crushmapdump -o crushmapdump-decompiled ``` 详解: 1. `ceph osd getcrushmap -o crushmapdump` 命令是用于从Ceph集群中获取当前的CRUSH映射,并将映射保存到名为`crushmapdump`的文件中。 CRUSH(Controlled Replication Under Scalable Hashing)是Ceph中用于数据布局和数据复制的算法和映射规则。CRUSH映射决定了数据对象应该如何被分配到存储设备(例如磁盘和服务器)上。 通过运行`ceph osd getcrushmap`命令,可以将CRUSH映射导出到一个文件中,以便后续分析、备份或还原。 导出的CRUSH映射文件可以使用其他命令进行CRUSH的修改或加载。 2. `crushtool -d crushmapdump -o crushmapdump-decompiled` 命令是用于对一个CRUSH映射文件进行反编译,将其输出为可读性高的文本格式的命令。 该命令使用了Ceph中的crushtool程序。通过反编译一个CRUSH映射文件,我们可以查看它包含的基础算法、数据存储设备的编号、数据对象的位置和复制规则等信息。这对于我们了解Ceph的数据布局和数据复制方式是非常有用的。 具体地,上述命令中,`-d`选项指定要反编译的CRUSH映射文件的名称为`crushmapdump`,`-o`选项指定反编译后的输出文件名称为`crushmapdump-decompiled`。 查看输出文件文件 `ls -lh crushmapdump-decompiled` `cat crushmapdump-decompiled` ## 编辑crushmapdump文件 ``` # devices #所有osd硬盘都在这里记录着 device 0 osd.0 class ssd device 1 osd.1 class ssd device 2 osd.2 class ssd device 3 osd.3 class hdd device 4 osd.4 class hdd device 5 osd.5 class hdd ``` 在root default配置之后添加以下部分,分别创建ssd和sata两个bucket,将osd [0,1,2]作为ssd bucket,osd[3,4,5]作为sata bucket。 `vim crushmapdump-decompiled` ``` root ssd { id -9 alg straw hash 0 item osd.0 weight 0.010 item osd.1 weight 0.010 item osd.2 weight 0.010 } root sata { id -10 alg straw hash 0 item osd.3 weight 0.010 item osd.4 weight 0.010 item osd.5 weight 0.010 } ``` 如果osd没创建时, item osd.* 这行可以先不写空着,web网页上创建后再补也行。 ### 创建crush rule 方法一 crush map包含crush rule的概念。每个池都有自己的crush ruleset和rule ``` # rules #replicated_rule是默认就有的,ssd-pool和sata-pool为本次添加的 rule replicated_rule { id 0 type replicated step take default step chooseleaf firstn 0 type host step emit } rule ssd-pool { id 1 type replicated step take ssd step chooseleaf firstn 0 type osd step emit } rule sata-pool { id 2 type replicated step take sata step chooseleaf firstn 0 type osd step emit } ``` ### 创建crush rule 方法二 ``` rule rule-ssd { id 3 type replicated step take default class ssd step chooseleaf firstn 0 type host step emit } rule rule-hdd { id 4 type replicated step take default class hdd step chooseleaf firstn 0 type host step emit } ``` 这是 Ceph 存储集群中的一个 CRUSH 规则。CRUSH 是一种数据定位算法,用于在 Ceph 存储集群中定位数据在 OSD 上的位置。CRUSH 规则定义了一组如何定位数据的算法,可以根据存储池的不同特点进行配置,以满足不同的数据定位和负载均衡需求。 在这个 CRUSH 规则中,rule-hdd 是规则的名称或 ID。 type replicated 表示数据备份采用的是副本模式。 step take default class hdd 是 CRUSH 算法执行的第一个步骤,它选择存储池中默认数据分类为 hdd 的 OSD 设备作为备份目标。这个步骤的作用是从存储池中选择一组 OSD,用于存储数据的备份副本。 step chooseleaf firstn 0 type host 是 CRUSH 算法执行的第二个步骤,它从当前可用的 OSD 设备中选择一些 OSD 来存放数据,使用了 firstn 策略,根据阈值 0 来选择 OSD,即选择所有可用的 OSD。这个步骤的作用是从已有的 OSD 中选择出一组 OSD 来存放数据的备份副本。 step emit 表示最后一步,它只用于输出日志或信息,在数据定位过程中不产生实际的影响。在这个 CRUSH 规则中,emit 命令输出了一个信息,用于指示本次数据定位操作已经完成。 ## 生成新的crush map 在ceph集群中编译并注入新的crush map。 ``` crushtool -c crushmapdump-decompiled -o crushmapdump-compiled ceph osd setcrushmap -i crushmapdump-compiled ``` 添加下列参数到ceph.conf配置文件中,防止下次重启时crush恢复回默认配置 `osd_crush_update_on_start=false` ``` `osd_crush_update_on_start`是Ceph OSD的一个配置选项,它表示是否在OSD启动时更新CRUSH映射,其作用是控制OSD是否向CRUSH Map发送更新请求。 如果将`osd_crush_update_on_start`配置为`true`,则在OSD启动时会自动向CRUSH Map发送更新请求,以获取最新的CRUSH Map。这可能会导致在启动期间网络或存储系统出现问题时出现启动失败或蓝屏的情况,因为Ceph OSD会等待连接CRUSH Map并获取更新的响应。 如果将`osd_crush_update_on_start`配置为`false`,则在启动期间不会自动向CRUSH Map发送更新请求。这可以加快OSD的启动速度,但可能会导致OSD使用过时的CRUSH Map,从而影响数据的正确性和平衡性。 Ceph官方建议将`osd_crush_update_on_start`配置为`false`,并通过手动或自动方式定期更新CRUSH Map,以确保CRUSH Map的正确性和预期的性能和可靠性。 ``` 将crushmap映射到ceph集群后,查看osd tree分布 `ceph osd tree` ## 使用指定OSD创建pool 最后创建ceph pool时引用crush rule,使其使用特定的osd节点。 ![](/media/202401/2024-01-02_195217.png)
local
2024年1月3日 21:02
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码