diff --git a/doc/arch-design/storage_focus/section_prescriptive_examples_storage_focus.xml b/doc/arch-design/storage_focus/section_prescriptive_examples_storage_focus.xml index 57a3c0d401..68030d123d 100644 --- a/doc/arch-design/storage_focus/section_prescriptive_examples_storage_focus.xml +++ b/doc/arch-design/storage_focus/section_prescriptive_examples_storage_focus.xml @@ -8,24 +8,39 @@ Prescriptive examples Storage-focused architectures are highly dependent on the specific use case. Three specific example use cases are - discussed in this section: an object store with a RESTful - interface, compute analytics with parallel file systems, and a - high performance database. - This example describes a REST interface without a high - performance requirement, so the presented REST interface does - not require a high performance caching tier, and is presented - as a traditional Object store running on traditional - spindles. + discussed in this section: + + + + An object store with a RESTful interface + + + + + Compute analytics with parallel file systems + + + + + High performance database + + + + The example below shows a REST interface without a high + performance requirement. Swift is a highly scalable object store that is part of the - OpenStack project. This is a diagram to explain the example + OpenStack project. This diagram explains the example architecture: - - - - - + + + + + + + The presented REST interface does not require a high performance + caching tier, and is presented as a traditional Object store running + on traditional spindles. This example uses the following components: Network: @@ -37,8 +52,8 @@ Storage hardware: - 10 storage servers each with 12x4 TB disks which - equals 480 TB total space with approximately 160 Tb of + 10 storage servers each with 12x4 TB disks equalling + 480 TB total space with approximately 160 Tb of usable space after replicas. @@ -58,77 +73,80 @@ back end storage cluster - For some applications, it may be necessary to - implement a 3rd-party caching layer to achieve suitable - performance. -
- Compute analytics with Data processing service for - OpenStack - Analytics of large data sets can be highly dependent on the - performance of the storage system. Some clouds using storage - systems such as HDFS have inefficiencies which can cause - performance issues. A potential solution to this is to - implement a storage system designed with performance in mind. - Traditionally, parallel file systems have filled this need in - the HPC space and could be a consideration, when applicable, - for large scale performance-oriented systems. - This example discusses an OpenStack Object Store with a high - performance requirement. OpenStack has integration with Hadoop - through the Data processing project (Sahara), which is leveraged - to manage the Hadoop cluster within the cloud. + + It may be necessary to implement a 3rd-party caching layer + for some applications to achieve suitable performance. + + +
+ Compute analytics with Data processing service + Analytics of large data sets are highly dependent on the performance + of the storage system. Clouds using storage systems such as + Hadoop Distributed File System (HDFS) have inefficiencies which can + cause performance issues. + + One potential solution to this problem is the implentation of storage + systems designed for performance. Parallel file systems have previously + filled this need in the HPC space and as a result could be considered + for large scale performance-orientated systems. + OpenStack has integration with Hadoop to manage the Hadoop cluster + within the cloud. This diagram shows an OpenStack store with a high + performance requirement: + fileref="../figures/Storage_Hadoop3.png"/> - - The actual hardware requirements and configuration are - similar to those of the High Performance Database example - below. In this case, the architecture uses Ceph's - Swift-compatible REST interface, features that allow for - connecting a caching pool to allow for acceleration of the - presented pool.
-
- High performance database with Database service for OpenStack - Databases are a common workload that can greatly benefit - from a high performance storage back end. Although enterprise - storage is not a requirement, many environments have existing - storage that can be used as back ends for an OpenStack cloud. - As shown in the following diagram, a storage pool can be - carved up to provide block devices with OpenStack Block - Storage to instances as well as an object interface. In this - example the database I-O requirements were high and demanded - storage presented from a fast SSD pool. - A storage system is used to present a LUN that is backed by - a set of SSDs using a traditional storage array with OpenStack - Block Storage integration or a storage platform such as Ceph - or Gluster. - This kind of system can also provide additional performance - in other situations. For example, in the database example - below, a portion of the SSD pool can act as a block device to - the Database server. In the high performance analytics - example, the REST interface would be accelerated by the inline - SSD cache layer. + + + The hardware requirements and configuration are + similar to those of the High Performance Database example + below. In this case, the architecture uses Ceph's + Swift-compatible REST interface, features that allow for + connecting a caching pool to allow for acceleration of the + presented pool. + +
+ +
+ High performance database with Database service + Databases are a common workload that benefit from high performance + storage back ends. Although enterprise storage is not a requirement, + many environments have existing storage that can be used as back ends for + OpenStack cloud. A storage pool can be created to provide block devices + with OpenStack Block Storage for instances as well as object interfaces. + In this example, the database I-O requirements were high and demanded + storage presented from a fast SSD pool. + A storage system is used to present a LUN that is backed by + a set of SSDs using a traditional storage array with OpenStack + Block Storage integration or a storage platform such as Ceph + or Gluster. + This system can provide additional performance. For example, + in the database example below, a portion of the SSD pool can act + as a block device to the Database server. In the high performance analytics + example, the REST interface would be accelerated by the inline + SSD cache layer. + fileref="../figures/Storage_Database_+_Object5.png"/> Ceph was selected to present a Swift-compatible REST interface, as well as a block level storage from a distributed storage cluster. It is highly flexible and has features that allow to reduce cost of operations such as self healing and - auto balancing. Erasure coded pools are used to maximize the - amount of usable space. Note that there are special - considerations around erasure coded pools, for example, higher - computational requirements and limitations on the operations - allowed on an object. For example, partial writes are not - supported in an erasure coded pool. - A potential architecture for Ceph, as it relates to the - examples above, would entail the following: + auto balancing. Using erasure coded pools are a suitable way of + maximizing the amount of usable space. + + There are special considerations around erasure coded pools. + For example, higher computational requirements and limitations on + the operations allowed on an object; partial writes are not + supported in an erasure coded pool. + + + Using Ceph as an applicable example, a potential architecture + would have the following requirements: Network: @@ -164,8 +182,9 @@ back end storage cluster - The SSD cache layer is used to present block devices + Using an SSD cache layer, you can present block devices directly to Hypervisors or instances. The SSD cache systems can also be used as an inline cache for the REST interface. -
+
+