Merge "Removal of passive voice from chap 4, arch guide"
This commit is contained in:
commit
ca9eab16ec
@ -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></para>
|
</mediaobject>
|
||||||
|
</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>
|
||||||
|
</note>
|
||||||
|
|
||||||
<section xml:id="compute-analytics-with-sahara">
|
<section xml:id="compute-analytics-with-sahara">
|
||||||
<title>Compute analytics with Data processing service for
|
<title>Compute analytics with Data processing service</title>
|
||||||
OpenStack</title>
|
<para>Analytics of large data sets are highly dependent on the performance
|
||||||
<para>Analytics of large data sets can be highly dependent on the
|
of the storage system. Clouds using storage systems such as
|
||||||
performance of the storage system. Some clouds using storage
|
Hadoop Distributed File System (HDFS) have inefficiencies which can
|
||||||
systems such as HDFS have inefficiencies which can cause
|
cause performance issues.
|
||||||
performance issues. A potential solution to this is to
|
</para>
|
||||||
implement a storage system designed with performance in mind.
|
<para>One potential solution to this problem is the implentation of storage
|
||||||
Traditionally, parallel file systems have filled this need in
|
systems designed for performance. Parallel file systems have previously
|
||||||
the HPC space and could be a consideration, when applicable,
|
filled this need in the HPC space and as a result could be considered
|
||||||
for large scale performance-oriented systems.</para>
|
for large scale performance-orientated systems.</para>
|
||||||
<para>This example discusses an OpenStack Object Store with a high
|
<para>OpenStack has integration with Hadoop to manage the Hadoop cluster
|
||||||
performance requirement. OpenStack has integration with Hadoop
|
within the cloud. This diagram shows an OpenStack store with a high
|
||||||
through the Data processing project (Sahara), which is leveraged
|
performance requirement:
|
||||||
to manage the Hadoop cluster within the cloud.
|
|
||||||
<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>
|
||||||
|
<para>The hardware requirements and configuration are
|
||||||
similar to those of the High Performance Database example
|
similar to those of the High Performance Database example
|
||||||
below. In this case, the architecture uses Ceph's
|
below. In this case, the architecture uses Ceph's
|
||||||
Swift-compatible REST interface, features that allow for
|
Swift-compatible REST interface, features that allow for
|
||||||
connecting a caching pool to allow for acceleration of the
|
connecting a caching pool to allow for acceleration of the
|
||||||
presented pool.</para></section>
|
presented pool.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section xml:id="high-performance-database-with-trove">
|
<section xml:id="high-performance-database-with-trove">
|
||||||
<title>High performance database with Database service for OpenStack</title>
|
<title>High performance database with Database service</title>
|
||||||
<para>Databases are a common workload that can greatly benefit
|
<para>Databases are a common workload that benefit from high performance
|
||||||
from a high performance storage back end. Although enterprise
|
storage back ends. Although enterprise storage is not a requirement,
|
||||||
storage is not a requirement, many environments have existing
|
many environments have existing storage that can be used as back ends for
|
||||||
storage that can be used as back ends for an OpenStack cloud.
|
OpenStack cloud. A storage pool can be created to provide block devices
|
||||||
As shown in the following diagram, a storage pool can be
|
with OpenStack Block Storage for instances as well as object interfaces.
|
||||||
carved up to provide block devices with OpenStack Block
|
In this example, the database I-O requirements were high and demanded
|
||||||
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.</para>
|
storage presented from a fast SSD pool.</para>
|
||||||
<para>A storage system is used to present a LUN that is backed by
|
<para>A storage system is used to present a LUN that is backed by
|
||||||
a set of SSDs using a traditional storage array with OpenStack
|
a set of SSDs using a traditional storage array with OpenStack
|
||||||
Block Storage integration or a storage platform such as Ceph
|
Block Storage integration or a storage platform such as Ceph
|
||||||
or Gluster.</para>
|
or Gluster.</para>
|
||||||
<para>This kind of system can also provide additional performance
|
<para>This system can provide additional performance. For example,
|
||||||
in other situations. For example, in the database example
|
in the database example below, a portion of the SSD pool can act
|
||||||
below, a portion of the SSD pool can act as a block device to
|
as a block device to the Database server. In the high performance analytics
|
||||||
the Database server. In the high performance analytics
|
|
||||||
example, the REST interface would be accelerated by the inline
|
example, the REST interface would be accelerated by the inline
|
||||||
SSD cache layer.</para>
|
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>
|
||||||
|
Loading…
Reference in New Issue
Block a user