diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index 21227facf362dbf6a72671cc6c9d989ee9c08716..881e4dd2b06fc1f21d9bf469106d170767889ab0 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -361,6 +361,13 @@ class NodeHttpServer(http.server.HttpServer):
     disks = [objects.Disk.FromDict(cf) for cf in disks]
     return backend.DrbdWaitSync(nodes_ip, disks)
 
+  @staticmethod
+  def perspective_drbd_helper(params):
+    """Query drbd helper.
+
+    """
+    return backend.GetDrbdUsermodeHelper()
+
   # export/import  --------------------------
 
   @staticmethod
diff --git a/lib/backend.py b/lib/backend.py
index c6e5c30c4c90a72e28de17aeafd1cd958fb8a567..9584ef9adf0c55a4ebf9bdcece90d888158b1596 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -3055,6 +3055,16 @@ def DrbdWaitSync(nodes_ip, disks):
   return (alldone, min_resync)
 
 
+def GetDrbdUsermodeHelper():
+  """Returns DRBD usermode helper currently configured.
+
+  """
+  try:
+    return bdev.BaseDRBD.GetUsermodeHelper()
+  except errors.BlockDeviceError, err:
+    _Fail(str(err))
+
+
 def PowercycleNode(hypervisor_type):
   """Hard-powercycle the node.
 
diff --git a/lib/rpc.py b/lib/rpc.py
index 57dd960e4f1a2ecb6ad17e95d297435111712fa9..83a88cdf112ec65d018240d68fd7749040b30469 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -993,6 +993,15 @@ class RpcRunner(object):
     return self._MultiNodeCall(node_list, "drbd_wait_sync",
                                [nodes_ip, [cf.ToDict() for cf in disks]])
 
+  @_RpcTimeout(_TMO_URGENT)
+  def call_drbd_helper(self, node_list):
+    """Gets drbd helper.
+
+    This is a multi-node call.
+
+    """
+    return self._MultiNodeCall(node_list, "drbd_helper", [])
+
   @classmethod
   @_RpcTimeout(_TMO_NORMAL)
   def call_upload_file(cls, node_list, file_name, address_list=None):