智汇华云 | Ceph的正确玩法之Ceph双副本如何保证宕机数据的安全性

来源:华云公众号 更新时间:2019-02-22
随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。华云数据本期“智汇华云”专栏将针对“Ceph的正确玩法之Ceph双副本如何保证宕机数据的安全性”技术,与大家共同分享云计算领域的最新技术与解决方案。

随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。华云数据本期“智汇华云”专栏将针对“Ceph的正确玩法之Ceph双副本如何保证宕机数据的安全性”技术,与大家共同分享云计算领域的最新技术与解决方案。

该文章为本系列的第六篇文章,我们将在之后继续推出本系列的其他文章,敬请关注!

场景一:生产环境一般都是三副本存储,但一些场景为了节省资源,将副本调整为2副本。两副本要求将数据分布在不同的机器上,防止集群故障时数据丢失。

我们为此添加Rack级的Bucket,分别包含两个存储节点(以Host的Bucket),然后以Rack为隔离域,保证两个副本分别落在不同的Rack上。

示意图如下:

1550798028816682.png

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


在线咨询
400-808-4000
免费试用