Hello all, 

At this moment we have a scenario where i would like your opinion on. 

Scenario: 
Currently we have a ceph environment with 1 rack of hardware, this rack 
contains a couple of OSD nodes with 4T disks. In a few months time we will 
deploy 2 more racks with OSD nodes, these nodes have 6T disks and 1 node more 
per rack. 

Short overview: 
rack1: 4T OSD
rack2: 6T OSD
rack3: 6T OSD

At this moment we are playing around with the idea to use the CRUSH map to make 
ceph 'rack aware' and ensure to have data replicated between racks. However 
from documentation i gathered i found that when you enforce data replication 
between buckets then your max storage size will be the lowest bucket value. My 
understanding: enforce the objects (size=3) to be replicated to 3 racks, the 
moment the rack with 4T OSD's is full we cannot store data anymore. 

Is this assumption correct?

The current idea we play with: 

- Create 2 rack buckets
- Create a ruleset to create 2 object replica’s for the 2x 6T buckets
- Create a ruleset to create 1 object replica over all the hosts.

This would result in 3 replicas of the object. Where we are sure that 2 objects 
at least are in different racks. In the unlikely event of a rack failure we 
would have at least 1 or 2 replica’s left.

Our idea is to have a crush rule with config that looks like: 
device 0 osd.0
device 1 osd.1
device 2 osd.2
device 3 osd.3
device 4 osd.4
device 5 osd.5
device 6 osd.6
device 7 osd.7
device 8 osd.8
device 9 osd.9


      host r01-cn01 {
              id -1
              alg straw
              hash 0
              item osd.0 weight 4.00
      }

      host r01-cn02 {
              id -2
              alg straw
              hash 0
              item osd.1 weight 4.00
      }

      host r01-cn03 {
              id -3
              alg straw
              hash 0
              item osd.3 weight 4.00
      }

      host r02-cn04 {
              id -4
              alg straw
              hash 0
              item osd.4 weight 6.00
      }

      host r02-cn05 {
              id -5
              alg straw
              hash 0
              item osd.5 weight 6.00
      }

      host r02-cn06 {
              id -6
              alg straw
              hash 0
              item osd.6 weight 6.00
      }

      host r03-cn07 {
              id -7
              alg straw
              hash 0
              item osd.7 weight 6.00
      }

      host r03-cn08 {
              id -8
              alg straw
              hash 0
              item osd.8 weight 6.00
      }

      host r03-cn09 {
              id -9
              alg straw
              hash 0
              item osd.9 weight 6.00
      }

      rack r02 {
              id -10
              alg straw
              hash 0
              item r02-cn04 weight 6.00
              item r02-cn05 weight 6.00
              item r02-cn06 weight 6.00
      }      

      rack r03 {
              id -11
              alg straw
              hash 0
              item r03-cn07 weight 6.00
              item r03-cn08 weight 6.00
              item r03-cn09 weight 6.00
      }

      root 6t {
              id -12
              alg straw
              hash 0
              item r02 weight 18.00
              item r03 weight 18.00
      }

      rule one {
              ruleset 1
              type replicated
              min_size 1
              max_size 10
              step take 6t
              step chooseleaf firstn 2 type rack
              step chooseleaf firstn 1 type host
              step emit
      }
Is this the right approach and would this cause limitations in regards of 
performance or usability? Do you have suggestions? 

Another interesting situation we have now is: We are going to move the hardware 
to new locations next year, the rack layout will change and thus the crush map 
will be altered. When changing a CRUSH map that theoretically would change the 
2x 6T racks into 4 racks, would we need to take any special actions into 
consideration?

Thank you for your answers, they are much appreciated! 

Rogier Dikkes
System Programmer Hadoop & HPC Cloud
SURFsara | Science Park 140 | 1098 XG Amsterdam

_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to