diff --git a/README.rst b/README.rst
index 34b4dab..97d0d98 100644
--- a/README.rst
+++ b/README.rst
@@ -13,7 +13,17 @@
 ``glusterfs.server``
 --------------------
 
-Setup GlusterFS server
+Setup GlusterFS server (including both service and setup)
+
+``glusterfs.server.service``
+----------------------------
+
+Setup and start GlusterFS server service
+
+``glusterfs.server.setup``
+----------------------------
+
+Setup GlusterFS peers and volumes
 
 ``glusterfs.client``
 --------------------
diff --git a/glusterfs/server.sls b/glusterfs/server.sls
deleted file mode 100644
index 7cb8d6e..0000000
--- a/glusterfs/server.sls
+++ /dev/null
@@ -1,73 +0,0 @@
-{% from "glusterfs/map.jinja" import server with context %}
-
-{%- if server.enabled %}
-
-glusterfs_packages:
-  pkg.installed:
-    - names: {{ server.pkgs }}
-
-glusterfs_service:
-  service.running:
-    - name: {{ server.service }}
-    - require:
-      - pkg: glusterfs_packages
-
-{%- if server.peers is defined %}
-
-glusterfs_peers:
-    glusterfs.peered:
-      - names: {{ server.peers }}
-      - require:
-        - service: glusterfs_service
-
-{%- endif %}
-
-{%- if server.volumes is defined %}
-{%- for name, volume in server.volumes.iteritems() %}
-
-{{ volume.storage }}:
-  file.directory:
-    - makedirs: true
-
-glusterfs_vol_{{ name }}:
-  glusterfs.created:
-    - name: {{ name }}
-    {%- if volume.replica is defined %}
-    - replica: {{ volume.replica }}
-    {%- endif %}
-    {%- if volume.stripe is defined %}
-    - stripe: {{ volume.stripe }}
-    {%- endif %}
-    - bricks: {{ volume.bricks }}
-    {# Parameter force doesn't exist in Salt 2015.5.2 and without it creation
-    will fail when brick is on root disk #}
-    - force: true
-    - require:
-      - glusterfs: glusterfs_peers
-      - file: {{ volume.storage }}
-
-glusterfs_vol_{{ name }}_start:
-  glusterfs.started:
-    - name: {{ name }}
-    - require:
-      - glusterfs: glusterfs_vol_{{ name }}
-
-{%- if volume.options is defined %}
-{%- for key, value in volume.options.iteritems() %}
-
-glusterfs_vol_{{ name }}_{{ key }}:
-  cmd.run:
-    - name: "gluster volume set '{{ name }}' '{{ key }}' '{{ value }}'"
-    - unless: "gluster volume info '{{ name }}' | grep '{{ key }}: {{ value }}'"
-    - require:
-      - glusterfs: glusterfs_vol_{{ name }}
-    - require_in:
-      - glusterfs: glusterfs_vol_{{ name }}_start
-
-{%- endfor %}
-{%- endif %}
-
-{%- endfor %}
-{%- endif %}
-
-{%- endif %}
diff --git a/glusterfs/server/init.sls b/glusterfs/server/init.sls
new file mode 100644
index 0000000..695008c
--- /dev/null
+++ b/glusterfs/server/init.sls
@@ -0,0 +1,3 @@
+include:
+- glusterfs.server.service
+- glusterfs.server.setup
diff --git a/glusterfs/server/service.sls b/glusterfs/server/service.sls
new file mode 100644
index 0000000..1e39540
--- /dev/null
+++ b/glusterfs/server/service.sls
@@ -0,0 +1,25 @@
+{% from "glusterfs/map.jinja" import server with context %}
+
+{%- if server.enabled %}
+
+glusterfs_packages:
+  pkg.installed:
+    - names: {{ server.pkgs }}
+
+glusterfs_service:
+  service.running:
+    - name: {{ server.service }}
+    - require:
+      - pkg: glusterfs_packages
+
+{%- if server.volumes is defined %}
+{%- for name, volume in server.volumes.iteritems() %}
+
+{{ volume.storage }}:
+  file.directory:
+    - makedirs: true
+
+{%- endfor %}
+{%- endif %}
+
+{%- endif %}
diff --git a/glusterfs/server/setup.sls b/glusterfs/server/setup.sls
new file mode 100644
index 0000000..93af261
--- /dev/null
+++ b/glusterfs/server/setup.sls
@@ -0,0 +1,91 @@
+{% from "glusterfs/map.jinja" import server with context %}
+
+{%- if grains['saltversion'] < "2015.5.4" %}
+{# Parameter force doesn't exist in Salt 2015.5.3 and without it volume
+creation will fail when brick is on root partition #}
+{% set force_compatibility = True %}
+{%- else %}
+{% set force_compatibility = False %}
+{%- endif %}
+
+{%- if server.enabled %}
+
+include:
+- glusterfs.server.service
+
+{%- if server.peers is defined %}
+
+glusterfs_peers:
+    glusterfs.peered:
+      - names: {{ server.peers }}
+      - require:
+        - service: glusterfs_service
+
+{%- endif %}
+
+{%- if server.volumes is defined %}
+{%- for name, volume in server.volumes.iteritems() %}
+
+{%- if force_compatibility %}
+
+glusterfs_vol_{{ name }}:
+  cmd.run:
+    - name: |
+        gluster volume create {{ name }}
+        {%- if volume.replica is defined %} replica {{ volume.replica }} \{% endif %}
+        {%- if volume.stripe is defined %} stripe {{ volume.stripe }} \{% endif %}
+        {{ volume.bricks|join(' ') }} force
+    - unless: "gluster volume info {{ name }}"
+
+{%- else %}
+
+glusterfs_vol_{{ name }}:
+  glusterfs.created:
+    - name: {{ name }}
+    {%- if volume.replica is defined %}
+    - replica: {{ volume.replica }}
+    {%- endif %}
+    {%- if volume.stripe is defined %}
+    - stripe: {{ volume.stripe }}
+    {%- endif %}
+    - bricks: {{ volume.bricks }}
+    - force: true
+    - require:
+      - glusterfs: glusterfs_peers
+      - file: {{ volume.storage }}
+
+{%- endif %}
+
+glusterfs_vol_{{ name }}_start:
+  glusterfs.started:
+    - name: {{ name }}
+    - require:
+      {%- if force_compatibility %}
+      - cmd: glusterfs_vol_{{ name }}
+      {%- else %}
+      - glusterfs: glusterfs_vol_{{ name }}
+      {%- endif %}
+
+{%- if volume.options is defined %}
+{%- for key, value in volume.options.iteritems() %}
+
+glusterfs_vol_{{ name }}_{{ key }}:
+  cmd.run:
+    - name: "gluster volume set '{{ name }}' '{{ key }}' '{{ value }}'"
+    - unless: "gluster volume info '{{ name }}' | grep '{{ key }}: {{ value }}'"
+    - require:
+      {%- if force_compatibility %}
+      - cmd: glusterfs_vol_{{ name }}
+      {%- else %}
+      - glusterfs: glusterfs_vol_{{ name }}
+      {%- endif %}
+    - require_in:
+      - glusterfs: glusterfs_vol_{{ name }}_start
+
+{%- endfor %}
+{%- endif %}
+
+{%- endfor %}
+{%- endif %}
+
+{%- endif %}
