@@ -106,27 +106,6 @@ def proposal_dependencies(role)
106106 answer
107107 end
108108
109- # Helper to find a suitable node for ceph-mds role.
110- # ceph-mds conflicts with ceph-osd, and should not be assigned to the cluster node
111- def select_node_for_mds_role ( nodes )
112- # do not modify array given by caller
113- mds_nodes = nodes . dup
114- mds_nodes . delete_if ( &:nil? )
115- mds_nodes . reject! do |n |
116- node_is_valid_for_role ( n . name , "ceph-mds" )
117- end
118-
119- mds_node = mds_nodes . find { |n | n . intended_role != "controller" }
120- if mds_node . nil? && !mds_nodes . empty?
121- mds_node = mds_nodes . first
122- @logger . debug ( "Not enough nodes: putting ceph-mds on controller node (unsupported scenario)" )
123- end
124- if mds_node . nil?
125- @logger . warn ( "Not enough nodes: there seems to be no node for ceph-mds role!" )
126- end
127- mds_node
128- end
129-
130109 def create_proposal
131110 @logger . debug ( "Ceph create_proposal: entering" )
132111 base = super
@@ -142,9 +121,11 @@ def create_proposal
142121 n . roles . include? ( "pacemaker-cluster-member" )
143122 end
144123
145- osd_nodes = select_nodes_for_role ( nodes , "ceph-osd" , "storage" )
124+ mds_node = select_nodes_for_role ( nodes , "ceph-mds" ) . first
125+
126+ osd_nodes = select_nodes_for_role ( nodes - [ mds_node ] , "ceph-osd" , "storage" )
146127 if osd_nodes . size < 2
147- osd_nodes_all = select_nodes_for_role ( nodes , "ceph-osd" )
128+ osd_nodes_all = select_nodes_for_role ( nodes - [ mds_node ] , "ceph-osd" )
148129 # avoid controllers if possible (ceph should not be used with openstack roles)
149130 osd_nodes_no_controller = osd_nodes_all . reject do |n |
150131 n . intended_role == "controller"
@@ -163,8 +144,6 @@ def create_proposal
163144 end
164145 mon_nodes = mon_nodes . take ( mon_nodes . length > 2 ? 3 : 1 )
165146
166- mds_node = select_node_for_mds_role ( nodes - osd_nodes )
167-
168147 radosgw_node = select_nodes_for_role ( nodes , "ceph-radosgw" , "storage" ) . first
169148
170149 # Any spare node after allocating mons and osds is fair game
0 commit comments