随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。华云数据本期“智汇华云”专栏将针对“Ceph的正确玩法之Ceph双副本如何保证宕机数据的安全性”技术,与大家共同分享云计算领域的最新技术与解决方案。
该文章为本系列的第六篇文章,我们将在之后继续推出本系列的其他文章,敬请关注!
场景一:生产环境一般都是三副本存储,但一些场景为了节省资源,将副本调整为2副本。两副本要求将数据分布在不同的机器上,防止集群故障时数据丢失。
我们为此添加Rack级的Bucket,分别包含两个存储节点(以Host的Bucket),然后以Rack为隔离域,保证两个副本分别落在不同的Rack上。
示意图如下:
1、修改操作
修改前数据备份,以防万一。crushmap备份
# ceph osd getcrushmap -o backup.txt
恢复:
# ceph osd setcrushmap -i backup.txt
2、理论与实践相结合
1)、创建机柜
ceph osd crush add-bucket rack1 rack
ceph osd crush add-bucket rack2 rack
2)、将rack移动到root下
# ceph osd crush move rack1 root=default
# ceph osd crush move rack2 root=default
3)、将主机移动到机柜中
# ceph osd crush move node1 rack=rack1
# ceph osd crush move node2 rack=rack2
4)、创建rule
# ceph osd crush rule create-simpletestrule default rack firstn
5)、修改已经创建pool的rule
luminus 以后版本设置pool规则的语法是
# ceph osd pool set demo crush_ruletestrule
luminus以前版本设置pool规则的语法是
查看rule的ID
# ceph osd crush rule dump | grep testrule
# ceph osd pool set demo crush_ruleset 1
此处1是指在rule里rule_ id设置的值
6)、创建pool
# ceph osd pool create demo 64 64replicated testrule
7)、在ceph.conf中加入防止集群重启crush map被重置
osd crush update on start = false
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。