I have 3 osd on 3 different hosts: host1 host2 and host3. I'm trying to force CRUSH to use osd on host1 as primary for one of my pools. I can't use primary-affinity because i don't want to set this osd as primary for all my pools. I try to create simple CRUSH rule, which should select osd on host1 first (as primary) and then get rest of acting set randomly: rule primary_on_host_1 { ruleset 1 type replicated min_size 1 max_size 10 step take host1 step choose firstn 1 type osd step emit step take default step chooseleaf firstn -1 type host step emit } unfortunately when CRUSH uses this rule sometimes returns duplicated osd in acting set like: CRUSH rule 1 x 28 [0,0,2] CRUSH rule 1 x 29 [0,2,0] CRUSH rule 1 x 30 [0,0,1] Is there any other way how can I force ceph to use one specific osd as primary? -- Szymon Zacher -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.ceph.com/pipermail/ceph-users-ceph.com/attachments/20140729/9d4fd108/attachment.htm>