Merge "Removal of passive voice from chap 4, arch guide"

This commit is contained in:
Jenkins 2015-02-27 07:33:25 +00:00 committed by Gerrit Code Review
commit ca9eab16ec

View File

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