diff --git a/data/grid5000/sites/lille/servers/granche-srv1.json b/data/grid5000/sites/lille/servers/granche-srv1.json
index 768a220bcc63f26d985998f16602499b54b3da6c..3961e0e5dc6178451254562e46f4999e0cd9fe82 100644
--- a/data/grid5000/sites/lille/servers/granche-srv1.json
+++ b/data/grid5000/sites/lille/servers/granche-srv1.json
@@ -2,6 +2,11 @@
   "alias": [
     "storage1"
   ],
+  "group_storage": {
+    "name": "storage1",
+    "rate": 50000000000,
+    "size": 90000000000000
+  },
   "kind": "physical",
   "monitoring": {
     "metric": "power",
diff --git a/data/grid5000/sites/lille/servers/granche-srv2.json b/data/grid5000/sites/lille/servers/granche-srv2.json
index cc31db11167adc127c27bfffe2835192fe706b82..3523ee383c0a8a47905ff61d37ecb012847777c4 100644
--- a/data/grid5000/sites/lille/servers/granche-srv2.json
+++ b/data/grid5000/sites/lille/servers/granche-srv2.json
@@ -3,6 +3,11 @@
     "storage2",
     "modules"
   ],
+  "group_storage": {
+    "name": "storage2",
+    "rate": 50000000000,
+    "size": 90000000000000
+  },
   "kind": "physical",
   "monitoring": {
     "metric": "power",
diff --git a/data/grid5000/sites/luxembourg/servers/srv-data.json b/data/grid5000/sites/luxembourg/servers/srv-data.json
index b444fe6480ad01793f280c33db27dde32425466f..8877b9842a4f83bf8094ee6346230724807f4f49 100644
--- a/data/grid5000/sites/luxembourg/servers/srv-data.json
+++ b/data/grid5000/sites/luxembourg/servers/srv-data.json
@@ -7,6 +7,11 @@
     "storage1",
     "modules"
   ],
+  "group_storage": {
+    "name": "storage1",
+    "rate": 20000000000,
+    "size": 40000000000000
+  },
   "kind": "physical",
   "network_adapters": {
     "bmc": {
diff --git a/data/grid5000/sites/lyon/servers/alcor.json b/data/grid5000/sites/lyon/servers/alcor.json
index 84243d23c7a91312f2d8036f9258c6e1e728f093..330165a58a34bdbdda2e169b6ff4608ad8d26ef4 100644
--- a/data/grid5000/sites/lyon/servers/alcor.json
+++ b/data/grid5000/sites/lyon/servers/alcor.json
@@ -2,6 +2,11 @@
   "alias": [
     "storage1"
   ],
+  "group_storage": {
+    "name": "storage1",
+    "rate": 10000000000,
+    "size": 75000000000000
+  },
   "kind": "physical",
   "network_adapters": {
     "bmc": {
diff --git a/data/grid5000/sites/nancy/servers/talc-data2.json b/data/grid5000/sites/nancy/servers/talc-data2.json
index 1a7e3bd073cd24593868e89059c43e4755cfa9d7..803939d91b50952bd25022031d1af7d54674d2ee 100644
--- a/data/grid5000/sites/nancy/servers/talc-data2.json
+++ b/data/grid5000/sites/nancy/servers/talc-data2.json
@@ -2,6 +2,11 @@
   "alias": [
 
   ],
+  "group_storage": {
+    "name": "talc-data2",
+    "rate": 10000000000,
+    "size": 200000000000000
+  },
   "kind": "physical",
   "network_adapters": {
     "bmc": {
diff --git a/data/grid5000/sites/rennes/servers/srv-bigdata.json b/data/grid5000/sites/rennes/servers/srv-bigdata.json
index 77e3c0b8b6e74113f7c02bff24f589db46d36220..b3d464a7a1397de3d65b9c5da01989f1ba06f040 100644
--- a/data/grid5000/sites/rennes/servers/srv-bigdata.json
+++ b/data/grid5000/sites/rennes/servers/srv-bigdata.json
@@ -4,6 +4,11 @@
     "storage1",
     "modules"
   ],
+  "group_storage": {
+    "name": "storage1",
+    "rate": 10000000000,
+    "size": 100000000000000
+  },
   "kind": "physical",
   "network_adapters": {
     "bmc": {
diff --git a/data/grid5000/sites/sophia/servers/srv-data.json b/data/grid5000/sites/sophia/servers/srv-data.json
index beb860de5c574f097e8f9249d3faef534549a645..8c7fe0a1ca409ca75596a5cac00fa066bf11b72b 100644
--- a/data/grid5000/sites/sophia/servers/srv-data.json
+++ b/data/grid5000/sites/sophia/servers/srv-data.json
@@ -5,6 +5,11 @@
     "storage1",
     "modules"
   ],
+  "group_storage": {
+    "name": "storage1",
+    "rate": 1000000000,
+    "size": 30000000000000
+  },
   "kind": "physical",
   "network_adapters": {
     "bmc": {
diff --git a/input/grid5000/sites/lille/servers/physical.yaml b/input/grid5000/sites/lille/servers/physical.yaml
index fb98d4d0ad18b81f2bd5895aa5b549fff46192c8..341549b3242e556bdb63869ae4e29204a4ed56f3 100644
--- a/input/grid5000/sites/lille/servers/physical.yaml
+++ b/input/grid5000/sites/lille/servers/physical.yaml
@@ -322,6 +322,10 @@ granche-srv1:
             port: 11
           - uid: pdu-b2p2
             port: 11
+  group_storage:
+    name: storage1
+    size: 90000000000000
+    rate: 50000000000
 
 granche-srv2:
   kind: physical
@@ -353,3 +357,7 @@ granche-srv2:
             port: 10
           - uid: pdu-b2p2
             port: 10
+  group_storage:
+    name: storage2
+    size: 90000000000000
+    rate: 50000000000
diff --git a/input/grid5000/sites/luxembourg/servers/servers.yaml b/input/grid5000/sites/luxembourg/servers/servers.yaml
index 4dea6d97426f26d23fa24ac18880c2741200830b..90389a479876799486a1b2cd9c7cb0de068ef87e 100644
--- a/input/grid5000/sites/luxembourg/servers/servers.yaml
+++ b/input/grid5000/sites/luxembourg/servers/servers.yaml
@@ -35,6 +35,10 @@ srv-data:
     bmc:
       ip: 172.17.190.70
       mac: D0:94:66:92:94:C1
+  group_storage:
+    name: storage1
+    size: 40000000000000
+    rate: 20000000000
 
 petitprince-cmc:
   kind: physical
diff --git a/input/grid5000/sites/lyon/servers/servers.yaml b/input/grid5000/sites/lyon/servers/servers.yaml
index 1487083ff63c7eed61ca965d47bddbd5f47b54df..e3c3d50baf3304ced5a3d4319509f5f4c0b983b9 100644
--- a/input/grid5000/sites/lyon/servers/servers.yaml
+++ b/input/grid5000/sites/lyon/servers/servers.yaml
@@ -51,6 +51,10 @@ alcor:
     bmc:
       ip: 172.17.62.11
       mac: 4C:D9:8F:6E:26:89
+  group_storage:
+    name: storage1
+    size: 75000000000000
+    rate: 10000000000
 
 nebula:
   kind: physical
diff --git a/input/grid5000/sites/nancy/servers/servers.yaml b/input/grid5000/sites/nancy/servers/servers.yaml
index a3cc45d04236c227111481e79545dfb39a94f6a0..8d1bda4ac6231fb9a4742447c0ad6106858c762f 100644
--- a/input/grid5000/sites/nancy/servers/servers.yaml
+++ b/input/grid5000/sites/nancy/servers/servers.yaml
@@ -279,6 +279,10 @@ talc-data2:
     bmc:
       ip: 172.17.79.30
       mac: 4c:d9:8f:63:31:d3
+  group_storage:
+    name: talc-data2
+    size: 200000000000000
+    rate: 10000000000
 
 srv3:
   kind: physical
diff --git a/input/grid5000/sites/rennes/servers/servers.yaml b/input/grid5000/sites/rennes/servers/servers.yaml
index eff1ccb8f6fc59ef5e21a768be03e3b76d3d2265..8bae81bc6497f936a12b167bf33736cd6b8d6fe5 100644
--- a/input/grid5000/sites/rennes/servers/servers.yaml
+++ b/input/grid5000/sites/rennes/servers/servers.yaml
@@ -69,6 +69,10 @@ srv-bigdata:
       ip: 172.16.111.7
     bmc:
       ip: 172.17.111.7
+  group_storage:
+    name: storage1
+    size: 100000000000000
+    rate: 10000000000
 
 rook-storage0:
   kind: physical
diff --git a/input/grid5000/sites/sophia/servers/physical.yaml b/input/grid5000/sites/sophia/servers/physical.yaml
index 705ee6bbf3f401a89195a5a7ab1979d81f11a57d..0131199199033dc08ebb7efa3e96ef042dc00287 100644
--- a/input/grid5000/sites/sophia/servers/physical.yaml
+++ b/input/grid5000/sites/sophia/servers/physical.yaml
@@ -105,6 +105,10 @@ srv-data:
       mounted: true
       ip: 172.17.143.5
       mac: 14:18:77:45:b8:63
+  group_storage:
+    name: storage1
+    size: 30000000000000
+    rate: 1000000000
 
 gwol-south:
   kind: physical
diff --git a/lib/refrepo/gen/wiki.rb b/lib/refrepo/gen/wiki.rb
index 1ecb98f30689f0e69ca3847746bc2649ff733da2..d6a39f5ee14209f1084353589225ba43d4e6e9df 100644
--- a/lib/refrepo/gen/wiki.rb
+++ b/lib/refrepo/gen/wiki.rb
@@ -7,6 +7,7 @@ require 'refrepo/gen/wiki/generators/oar_properties'
 require 'refrepo/gen/wiki/generators/site_hardware'
 require 'refrepo/gen/wiki/generators/site_network'
 require 'refrepo/gen/wiki/generators/status'
+require 'refrepo/gen/wiki/generators/group_storage'
 
 module RefRepo::Gen::Wiki
 
@@ -30,6 +31,10 @@ module RefRepo::Gen::Wiki
     'oar_properties' => {
       :gen => OarPropertiesGenerator,
       :page => 'OAR_Properties'
+    },
+    'group_storage' => {
+      :gen => GroupStorageGenerator,
+      :page => 'Group_Storage'
     }
   }
   SITE_GENERATORS = {
diff --git a/lib/refrepo/gen/wiki/generators/group_storage.rb b/lib/refrepo/gen/wiki/generators/group_storage.rb
new file mode 100644
index 0000000000000000000000000000000000000000..9e6f9d6422cac7bae88a0f8db58ca8b9423c3e0d
--- /dev/null
+++ b/lib/refrepo/gen/wiki/generators/group_storage.rb
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+class GroupStorageGenerator < WikiGenerator
+
+  def initialize(page_name)
+    super(page_name)
+  end
+
+  def generate_content
+    table_columns = ["Site", "Server Name", "Size", "Link Speed", "Notes"]
+    table_data = []
+    global_hash = get_global_hash
+
+    # Loop over Grid'5000 sites
+    global_hash["sites"].sort.to_h.each { |site_uid, site_hash|
+      site_hash.fetch("servers").sort.to_h.each_value { |server_hash|
+        next unless server_hash['group_storage']
+        group_storage = server_hash['group_storage']
+        table_data << [
+          "[[#{site_uid.capitalize}:Hardware|#{site_uid.capitalize}]]",
+          "#{group_storage['name']}.#{site_uid}.grid5000.fr",
+          G5K.get_size(group_storage['size'], 'metric'),
+          G5K.get_rate(group_storage['rate']),
+          group_storage["comment"] || ""
+        ]
+      }
+    }
+    # Sort by site and server name
+    table_data.sort_by! { |row|
+      [row[0], row[1]]
+    }
+
+    # Table construction
+    table_options = 'class="wikitable sortable" style="text-align: center;"'
+    @generated_content = MW.generate_table(table_options, table_columns, table_data)
+    @generated_content += MW.italic(MW.small(generated_date_string))
+    @generated_content += MW::LINE_FEED
+  end
+end
diff --git a/lib/refrepo/valid/input/schemas/schema-site.yaml b/lib/refrepo/valid/input/schemas/schema-site.yaml
index 3413ce21fa7d32b7c6e5d20fd4ded4e131698630..2cafc7c077fd6e216b33c6d639c774a0b257336a 100644
--- a/lib/refrepo/valid/input/schemas/schema-site.yaml
+++ b/lib/refrepo/valid/input/schemas/schema-site.yaml
@@ -31,6 +31,13 @@ servers:
               available: boolean
               resolution: optional_integer
               via: optional
+      group_storage:
+        <optional_hash>:
+          name: string
+          size: integer
+          rate: integer
+          comment: optional_string
+
 name: string
 location: string
 web: string