diff --git a/circle/fabfile.py b/circle/fabfile.py
index 5b07898..ba614b1 100644
--- a/circle/fabfile.py
+++ b/circle/fabfile.py
@@ -15,8 +15,10 @@ env.roledefs['storage'] = [DataStore.objects.get().hostname]
 
 
 def update_all():
+    "Update and restart portal+manager, nodes and storage"
     execute(stop_portal)
     execute(update_node)
+    execute(update_storage)
     execute(update_portal)
 
 
@@ -94,6 +96,7 @@ def update_portal(test=False):
 
 @roles('portal')
 def stop_portal(test=False):
+    "Stop portal and manager"
     _stop_services("portal", "mancelery")
 
 
@@ -107,6 +110,14 @@ def update_node():
 
 
 @parallel
+@roles('storage')
+def update_storage():
+    "Update and restart storagedriver"
+    with _stopped("storage"):
+        pull("~/storagedriver")
+
+
+@parallel
 @roles('node')
 def checkout(vmdriver="master", agent="master"):
     """Checkout specific branch on nodes"""