linux - 重启所有服务器不完整的 pgs 时的 Ceph 擦除编码
问题描述
我有一个 7 服务器
服务器 1:mon,mgr,mds
服务器 2:mon,mgr,mds
服务器 3:mon,mgr,mds
服务器4:osd.0,osd.1
服务器5:osd.2,osd.3
服务器6osd.4,osd.5
服务器 7:mon,mgr,mds
每个osd大小4T
和 :
ceph osd树
ID 类别 重量 类型 名称 状态 重新称重 PRI-AFF
-1 21.83098 根默认
-3 7.27699 主机 cephnode01
0 硬盘 3.63899 osd.0 向上 1.00000 1.00000
1 硬盘 3.63899 osd.1 向上 1.00000 1.00000
-5 7.27699 主机 cephnode02
2 硬盘 3.63899 osd.2 向上 1.00000 1.00000
3 硬盘 3.63899 osd.3 向上 1.00000 1.00000
-7 7.27699 主机 cephnode03
4 硬盘 3.63899 osd.4 向上 1.00000 1.00000
5 硬盘 3.63899 osd.5 向上 1.00000 1.00000
每2.0s:ceph -s
2018 年 8 月 14 日星期二 09:52:47
簇:
id: 6b28cabd-b94a-4a74-8d9e-00b8c9a61de4
health: HEALTH_WARN
Reduced data availability: 128 pgs inactive, 128 pgs incomplete
服务:
mon: 5 daemons, quorum
cephnode01,cephmon01,cephnode02,cephnode03,cephmon03
mgr: cephmds01(active), standbys: cephmon03, cephmon02, cephmon01
mds: cephfs-1/1/1 up {0=cephmon03=up:active}, 3 up:standby
osd: 6 osds: 6 up, 6 in
数据:
pools: 2 pools, 256 pgs
objects: 279 objects, 1.0 GiB
usage: 8.1 GiB used, 22 TiB / 22 TiB avail
pgs: 50.000% pgs not active
128 incomplete
128 active+clean
停电时
健康:HEALTH_WARN
Reduced data availability: 128 pgs inactive, 128 pgs incomplete
当我重新启动所有服务器时丢失所有数据,我必须删除池并重新创建池
显示以下错误
健康:HEALTH_WARN
Reduced data availability: 128 pgs inactive, 128 pgs incomplete
当我将粉碎地图#rule从主机更改为osd时,健康状况良好。
但我需要主机。
我使用打击命令创建池。
我使用了擦除编码。
ceph osd pool create ECtemppool 128 128 擦除默认
ceph osd 擦除代码配置文件设置默认粉碎失败域 = osd 粉碎-
根=默认 k=4 m=2 --force
rados -p ECtemppool ls
ceph osd 池创建 cephfs_metadata 128
ceph osd 池设置 ECtemppool allow_ec_overwrites true
ceph fs 新 cephfs cephfs_metadata ECtemppool
最好的祝福
解决方案
我想要一个问题:下面的命令是工作!:
ceph osd 擦除代码配置文件集 EC-temp-pool
ceph osd 擦除代码配置文件集 EC-temp-pool 规则集-故障域=主机 k=4 m=2 --force
ceph osd pool create ECtemppool 128 128 擦除 EC-temp-pool
ceph osd 池创建 cephfs_metadata 128
ceph osd 池设置 ECtemppool allow_ec_overwrites true
ceph fs 新 cephfs cephfs_metadata ECtemppool
推荐阅读
- for-loop - 根据 URL 结构在 Jekyll 中显示兄弟页面而不使用自定义前端变量?
- typescript - 打字稿有没有办法推断参数对象或为参数对象定义类型?
- docusignapi - 将 Docusign UI 与基本 API 计划一起使用
- python - 如何用python刮掉嵌套的两个元素
- c++ - 我在 qt 应用程序中的实际代码的百分比是多少
- python - 避免在浏览页面时复制某些内容
- python - 如何从 python 字典中删除 None 值?
- python - ValueError:np.nan 是无效文档
- python - 在 Python 中创建对象的副本而不使用 deepcopy
- reactjs - Map 组件中 `google` 属性的值