diff --git a/tempest/api/compute/admin/test_create_server.py b/tempest/api/compute/admin/test_create_server.py
index df27f74..3f68e0b 100644
--- a/tempest/api/compute/admin/test_create_server.py
+++ b/tempest/api/compute/admin/test_create_server.py
@@ -261,6 +261,33 @@
         destination_host = self.get_host_for_server(server_id)
         self.assertNotEqual(source_host, destination_host)
 
+    def _test_create_server_from_volume(self):
+        size = self._get_flavor_disc_size()
+        volume_bootable = self.create_volume(
+            image_ref=self.image_id, size=size)
+        bdm = [{
+            'uuid': volume_bootable['id'],
+            'source_type': 'volume',
+            'destination_type': 'volume',
+            'boot_index': 0}]
+        validation_resources = self.get_class_validation_resources(
+            self.os_admin)
+        self.create_test_server(
+            image_id='',
+            flavor=self.flavor_id,
+            clients=self.os_admin,
+            validatable=True,
+            validation_resources=validation_resources,
+            wait_until='PINGABLE',
+            block_device_mapping_v2=bdm
+        )
+
+    def _get_flavor_disc_size(self):
+        # Returns a disc size of a flavor
+        flavor = self.admin_flavors_client.show_flavor(self.flavor_id)[
+            'flavor']
+        return flavor['disk']
+
 
 class WindowsServers10Test(WindowsServersBaseTest):
 
@@ -285,6 +312,10 @@
     def test_cold_migration(self):
         self._test_cold_migration()
 
+    @decorators.idempotent_id('8b7ddf91-34fe-4538-8d08-2443d9968771')
+    def test_create_server_from_volume(self):
+        self._test_create_server_from_volume()
+
 
 class WindowsServers11Test(WindowsServersBaseTest):
 
@@ -310,6 +341,10 @@
     def test_cold_migration(self):
         self._test_cold_migration()
 
+    @decorators.idempotent_id('1e8a241e-29ff-4627-abd0-5be74251838b')
+    def test_create_server_from_volume(self):
+        self._test_create_server_from_volume()
+
 
 class ServersTestVGPU(base.BaseV2ComputeAdminTest):
     """Test creating server with vGPU flavor"""
