diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index 83177fefc80828cb21af8155e638f9886c24c523..f069195d8a4168a352bad74486948ed1c5790c34 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -183,6 +183,15 @@ class NodeHttpServer(http.server.HttpServer):
       raise ValueError("can't unserialize data!")
     return backend.BlockdevCreate(bdev, size, owner, on_primary, info)
 
+  @staticmethod
+  def perspective_blockdev_wipe(params):
+    """Wipe a block device.
+
+    """
+    bdev_s, offset, size = params
+    bdev = objects.Disk.FromDict(bdev_s)
+    return backend.BlockdevWipe(bdev, offset, size)
+
   @staticmethod
   def perspective_blockdev_remove(params):
     """Remove a block device.
diff --git a/lib/rpc.py b/lib/rpc.py
index ffe64c3ebab2e1819c8888ded778126e69026f4a..0126642869d2ad894541214575f5d8f626f48079 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -953,6 +953,16 @@ class RpcRunner(object):
     return self._SingleNodeCall(node, "blockdev_create",
                                 [bdev.ToDict(), size, owner, on_primary, info])
 
+  @_RpcTimeout(_TMO_SLOW)
+  def call_blockdev_wipe(self, node, bdev, offset, size):
+    """Request wipe at given offset with given size of a block device.
+
+    This is a single-node call.
+
+    """
+    return self._SingleNodeCall(node, "blockdev_wipe",
+                                [bdev.ToDict(), offset, size])
+
   @_RpcTimeout(_TMO_NORMAL)
   def call_blockdev_remove(self, node, bdev):
     """Request removal of a given block device.