diff --git a/htools/Ganeti/HTools/Instance.hs b/htools/Ganeti/HTools/Instance.hs
index 873275595cdafaa6ad4c31d7867557c3b3527ff7..4f8d5f56a4da428dd9f8fcb8abf623624e22e380 100644
--- a/htools/Ganeti/HTools/Instance.hs
+++ b/htools/Ganeti/HTools/Instance.hs
@@ -42,6 +42,7 @@ module Ganeti.HTools.Instance
     , shrinkByType
     , runningStates
     , requiredNodes
+    , allNodes
     ) where
 
 import qualified Ganeti.HTools.Types as T
@@ -189,3 +190,9 @@ specOf Instance { mem = m, dsk = d, vcpus = c } =
 requiredNodes :: T.DiskTemplate -> Int
 requiredNodes T.DTDrbd8 = 2
 requiredNodes _         = 1
+
+-- | Computes all nodes of an instance.
+allNodes :: Instance -> [T.Ndx]
+allNodes inst = case diskTemplate inst of
+                  T.DTDrbd8 -> [pNode inst, sNode inst]
+                  _ -> [pNode inst]