mirror of https://github.com/schoebel/mars
doc: section on cloud storage
This commit is contained in:
parent
08eb866017
commit
f155639e54
|
@ -418,6 +418,191 @@ reference "chap:LV-Football"
|
|||
with each of the fundamental models mentioned here.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Section
|
||||
What is
|
||||
\emph on
|
||||
Cloud Storage
|
||||
\begin_inset CommandInset label
|
||||
LatexCommand label
|
||||
name "sec:Requirements-for-Cloud"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
According to a popular definition from
|
||||
\begin_inset Flex URL
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
|
||||
https://en.wikipedia.org/wiki/Cloud_storage
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
(retrieved June 2018), cloud storage is
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
(1) Made up of many
|
||||
\series bold
|
||||
distributed resources
|
||||
\series default
|
||||
, but still
|
||||
\series bold
|
||||
act as one
|
||||
\series default
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
(2) Highly
|
||||
\series bold
|
||||
fault tolerant
|
||||
\series default
|
||||
through redundancy and distribution of data.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
(3) Highly
|
||||
\series bold
|
||||
durable
|
||||
\series default
|
||||
through the creation of versioned copies.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
(4) Typically
|
||||
\series bold
|
||||
eventually consistent
|
||||
\series default
|
||||
with regard to data replicas.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
There are some consequences from this definition:
|
||||
\end_layout
|
||||
|
||||
\begin_layout Enumerate
|
||||
Distributed Storage, in particular BigCluster architectures (see section
|
||||
|
||||
\begin_inset CommandInset ref
|
||||
LatexCommand ref
|
||||
reference "sec:Distributed-vs-Local:"
|
||||
|
||||
\end_inset
|
||||
|
||||
): many of them (with few exceptions) are conforming to all of these requirement
|
||||
s.
|
||||
Typical granularity are objects, or chunks, or other relatively small units
|
||||
of data.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Enumerate
|
||||
Centralized Storage: does not conform to (1) and to (4) by definition
|
||||
\begin_inset Foot
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
Notice that sharding on top of CentralStorage is no longer a CentralStorage
|
||||
model by definition, but a RemoteSharding model according to section
|
||||
\begin_inset CommandInset ref
|
||||
LatexCommand ref
|
||||
reference "subsec:Variants-of-Sharding"
|
||||
|
||||
\end_inset
|
||||
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
.
|
||||
By introduction of synchronous or asynchronous replication, it can be made
|
||||
to
|
||||
\emph on
|
||||
almost
|
||||
\emph default
|
||||
conform, except for (1) where some concept mismatches remain (probably
|
||||
resolvable by going to a RemoteSharding model on top of CentralStorage,
|
||||
where CentralStorage is only a
|
||||
\emph on
|
||||
sub-component
|
||||
\emph default
|
||||
).
|
||||
Typical granularity is replication of whole storage pools, or of LVs, or
|
||||
of filesystem data.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Enumerate
|
||||
LocalStorage, and some further models like RemoteSharding (see section
|
||||
\begin_inset CommandInset ref
|
||||
LatexCommand ref
|
||||
reference "subsec:Variants-of-Sharding"
|
||||
|
||||
\end_inset
|
||||
|
||||
):
|
||||
\end_layout
|
||||
|
||||
\begin_deeper
|
||||
\begin_layout Description
|
||||
(1) can be achieved at LV granularity with Football (see chapter
|
||||
\begin_inset CommandInset ref
|
||||
LatexCommand ref
|
||||
reference "chap:LV-Football"
|
||||
|
||||
\end_inset
|
||||
|
||||
), which creates a
|
||||
\series bold
|
||||
Big Virtual LVM Pool
|
||||
\series default
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
(2) can be achieved at disk granularity with local RAID, and at LV granularity
|
||||
with DRBD or MARS.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
(3) can be achieved at LV granularity with LVM snapshots, and/or ZFS (or
|
||||
other filesystem) snapshots, and/or above filesystem layer by addition
|
||||
of classical backup.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
(4) can be achieved by MARS, which provides two different consistency guarantees
|
||||
at different levels,
|
||||
\emph on
|
||||
both at the same time
|
||||
\emph default
|
||||
:
|
||||
\end_layout
|
||||
|
||||
\begin_deeper
|
||||
\begin_layout Description
|
||||
locally: Strict local consistency at LV granularity, also
|
||||
\emph on
|
||||
within
|
||||
\emph default
|
||||
any LV replica.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Description
|
||||
globally: Eventually consistent
|
||||
\emph on
|
||||
between
|
||||
\emph default
|
||||
different LV replicas.
|
||||
\end_layout
|
||||
|
||||
\end_deeper
|
||||
\end_deeper
|
||||
\begin_layout Section
|
||||
Local vs Centralized Storage
|
||||
\begin_inset CommandInset label
|
||||
|
|
Loading…
Reference in New Issue