Revision 673f0f00 Ganeti/HTools/Cluster.hs

b/Ganeti/HTools/Cluster.hs
180 180
                  , "n1_score"
181 181
                  , "reserved_mem_cv"
182 182
                  , "offline_all_cnt"
183
                  , "offline_pri_cnt"
183 184
                  , "vcpu_ratio_cv"
184 185
                  , "cpu_load_cv"
185 186
                  , "mem_load_cv"
......
212 213
        offline_isec = sum . map (length . Node.sList) $ offline
213 214
        -- metric: count of instances on offline nodes
214 215
        off_score = fromIntegral (offline_ipri + offline_isec)::Double
216
        -- metric: count of primary instances on offline nodes (this
217
        -- helps with evacuation/failover of primary instances on
218
        -- 2-node clusters with one node offline)
219
        off_pri_score = fromIntegral offline_ipri::Double
215 220
        cpu_l = map Node.pCpu nodes
216 221
        -- metric: covariance of vcpu/pcpu ratio
217 222
        cpu_cv = varianceCoeff cpu_l
......
225 230
        -- metric: conflicting instance count
226 231
        pri_tags_inst = sum $ map Node.conflictingPrimaries nodes
227 232
        pri_tags_score = fromIntegral pri_tags_inst::Double
228
    in [ mem_cv, dsk_cv, n1_score, res_cv, off_score, cpu_cv
233
    in [ mem_cv, dsk_cv, n1_score, res_cv, off_score, off_pri_score, cpu_cv
229 234
       , varianceCoeff c_load, varianceCoeff m_load
230 235
       , varianceCoeff d_load, varianceCoeff n_load
231 236
       , pri_tags_score ]

Also available in: Unified diff