📝ストレージシステム概論

📝ストレージシステム概論

ストレージ技術について. この領域はめちゃくちゃ詳しい, プロ.

ストレージシステムとは #

信頼性に関わる技術は📝システム制御パターンへ.

Block-Based Storage #

ブロックストレージ.

NFS や CIFS で OS からドライブやマウントポイントとして見ることができる.

基本的な設定手順 #

RAID グループ作成 #

RAID 構成を行うと, まず複数のディスクは RAID グループとして管理されます. ここで複数の物理ディスクは論理的にグループ化され, それぞれのパフォーマンスや冗長化要件に合わせ RAID レベルを設定いたします.

LUN (論理ボリューム) 作成 #

RAID グループを設定した後は, グループ内にあるディスクを論理的に分けて使います. この論理的に分けられたものを LUN (Logical Number of Unit) といい, Windows や Linux などの OS から物理的なディスクとして認識される単位となります.

パーティション作成 #

LUN で設定されたディスク容量を論理的に切り分けて使う単位をパーティションと呼びます. OS が作成するファイルシステムはこの単位で設定され, OS やユーザ領域などの目的に合わせ一つのパーティションの中から複数のドライブを作ることが可能です.

マウント #

ファイルシステムフォーマット #

Object-Based Storage #

オブジェクトストレージ.

クラウドストレージ (分散ストレージ) とは似ているが, 異なる.

特徴 #

  • HTTPS 上の REST (Representational State Transfer) を利用
  • OS やファイルシステムに依存することなく, データの格納や格納したオブジェクトへのアクセスが可能
  • 例外を除き, ファイルシステムは使われない
  • 固有の名前 (UUID のような文字列) が付与され,ストレージ内において, データとデータを管理するためのメタデータが関連づけられる.
  • ディレクトリ構造がない, フラットなアクセス.
  • RAID やファイルシステムに必要な, ボリューム設計や複雑な運用管理,スペアディスクの設定が不要

分散 KVS #

分散 Key-Value ストア. スケールアウト技術の基幹技術.

同じデータを複数のコンピューターに複製して保存し, それぞれのコンピューター上のデータに変更が起きていないかどうかを随時チェックすることによって整合性を確保. リアルタイム性はない.

Key で担当サーバを分ける.

たいていはいくつかのサーバ上に複製 (replica) を作成することによって耐故障性を高めている.

Replication #

レプリケーション. 複製.

データ複製.オブジェクトをコピーし, ノード間で複製を保持することで冗長性を高める手法.

システム障害時の継続運用が目的となります. 災害時に接続しているシステムが壊れてしまったとき, 遠隔地にある複製データを利用し事業継続を実現する DR (ディザスタリカバリ) に有効.

ref. データ保全手法~バックアップ, レプリケーション, アーカイブの相違点 : 富士通

コンテンツ配信する方法は二つある.

  • Passive Replicatoin .. Master Replica だけを更新
  • Active Replicatoin .. id ごとにすべてを更新.

2 相コミット #

分散システム内の全ノードがトランザクションのコミットに合意するための分散アルゴリズム.

ref. 2 相コミット - Wikipedia

これがわかりやすい. Ready? Action!!

Erasure Coding #

イレージャーコーディング RAID のような, データ保護技術.誤り訂正, 検出技術.

QR コードと同じ, リード・ソロモン符号アルゴリズムを利用している.

Erasure Coding はオジェクトを分割して消失訂正符号を付加し, 物理的に異なるノードに分散して格納することで, その分割したデータのいくつかが消失した場合でも, 元のオブジェクトを復元することができる手法.

RAID5 のようなことを, ノード間で実施する.

Links #

分散ファイルシステム #

分散ファイルシステムの目的は, ユーザからファイルかリモートにあるかローカルにあるか意識しなくていいようにすること.

2 つのアクセスモデルがある.

  • 遠隔アクセスモデル … リモートサーバにあるファイルを読み書き
  • アップロードダウンロードモデル … 一旦ローカルにダウンロードして編集してからアップロード.

ローカルファイルにアクセスするときは, file discripter を指定する. file discripter には, read/write に必要な pointer が保持されているので,ユーザは, offset を指定しない.

リモートファイルにアクセスするときは file id と offset を指定する.

クライアント・サーバ間の通信には RPC が利用される. NFSv4 では, 複合手続き (compound procedure) をサポートする.

NFS #

Unix 系の分散ファイルファイルシステム.

AFS #

Coda #

AFS の後継

RPC2 #

UDP プロトコルを利用. 呼び出しがあるたびに新しいスレッドを起動する. そのスレッドは, サーバに大して呼び出し要求を送信し, その応答があるまでブロックする.

処理の要求には完了するのに任意の時間がかかることから, 通常サーバはクライアントにまだ動作していることを知らせるメッセージを返答する.

CIFS #

SMB プロトコルを正式にドキュメント化して仕様を公開することで, Windows 以外のオペレーティングシステム (OS) やインターネット上を介してファイル共有サービス等を利用できるように拡張したものが CIFS.

Server Message Block - Wikipedia

  • 主な特徴

    • CIFS はインターネットで標準的に利用される TCP/IP を基盤としている.
    • CIFS を使用するアプリケーションとして Samba が知られている.
    • CIFS を実装したファイル共有ソフトウェアは Windows に内蔵されている
    • UNIX 系 OS では, Samba を利用する. Windows のファイル共有機能を使ってアクセスできるようになっている.
    • CIFS は, NetBIOS インターフェイスを経由せず, ただ 1 つの TCP のポート (445 番) だけでサービスできるように改良されたプロトコル. 使用するポートが 1 つだけでよいので, ファイアウォールなどでの管理も容易.
    • CIFS defines a series of commands used to pass information between networked computers.

CIFS が WAN で遅い理由 #

1 つの Ack に対し, 最大で 1514 バイト× 2 (=3K バイト) のデータしか送信できない. CIFS の通信では, 送信したデータに対する Ack が返ってくるまで, 送信側は次のデータを送信しない.

ネット設計を激変させる WAN 高速化装置

ファイル共有のスループットは同様には計算できない. なぜなら, Windows ファイル共有が SMB のブロックサイズを使用して通信しているから

エクスプローラ: コアモードという転送方式で, 使用されるブロックサイズが 4KB コマンドプロンプト: Raw モードという転送方式で, 使用されるブロックサイズが 60~64KB

ref. 最適化から始まる, WAN 高速化への道:「アプリケーションが遅い」をなくす仕組み (2) (1/3) - ITmedia エンタープライズ

Links #

Microsoft CIFS ドキュメント

Microsoft SMB ドキュメント

これがとてもよい入門記事

SNIA の出しているリファレンス

CIFS のパケットキャプチャについて

この本の SMB の章が大変わかりやすい

唯一の? CIFS の本. Web で読める. C 言語での実装例が掲載されている.

SMB #

Server Message Block (SMB) は, 主に Windows で使用されているOSI 参照モデル第 7 層アプリケーション層部分の独自通信プロトコルの総称.

Server Message Block - Wikipedia

SMB は Microsoft 社独自のプロトコルで仕様も正式には公開されていなかった.

SAMBA #

マイクロソフトの Windows ネットワークを実装したフリーソフトウェア. Linux, Solaris, BSD, Mac OS X などの Unix 系 OS を用いて, Windows のファイルサーバやプリントサービス, ドメインコントローラ機能, ドメイン参加機能を提供する.

Samba - Wikipedia

Storage との関係 #

  • SNIA は CIFS に関する情報がたくさんある

    SNIA はそもそも Storage Networking Industory Association. というくらいなので, ストレージネットワーキングの促進団体だったことが判明!

    SDC の資料が公開されていて, そのなかに CIFS の資料がたくさんあった.

    Storage Developer Conference Archives | Storage Networking Industry Association

Software Defined Storage #

EMC のとなえる戦略. ストレージにおける Software Defined.

Software-defined storage (SDS) is a term for computer data storage technologies which separate storage hardware from the software that manages the storage infrastructure

SDN は OpenFlow という共通技術によって浸透したが, ストレージ分野では共通技術となるようなものがないとか.

Chuck’s blog #

Chuck 氏の連載が熱い.

Software-Defined Storage: Choices #

Software-Defined Storage: Choices Ahead - Chuck’s Blog

たしか自力で翻訳.

UNIX が未来の道標を築き上げてきたように, Cloud もこれからの未来を築く.

For years, I had that wall-sized chart that showed how UNIX evolved over the years. I’m sure one could create a similar wall-sized infographic showing the evolution of “cloud”.

Software-Defined Storage に適応するために, 様々なアイデアが競合しあう.

We’re going to see something very similar when it comes to software-defined storage. Many flavors of the same idea will compete for adoption.

よい選択をするために, 過去に学ぼう.

Learning To Make Good Choices

  • #1 – Familiar - Or Evolved?

似たものになるか? それとも, 進化するか?

私はこのように Software-Defined Storage という単語を使っている.

アプリケーションの境界と提携して動的にストレージを構築できる能力

ability to dynamically compose storage services aligned on application boundaries.

この定義は重大な変化を運用モデルにもたらす.

This particular definition mandates a serious change to the operational model: using application-centric policies, just-in-time provisioning, etc. And I would argue that the chief goal of software-defined anything is to evolve the model, and not simply recreate the familiar past using new technology.

ドキュメントエディタは単にタイプライタをよくしたものではない.

A document editor is not just a better typewriter.

  • #2 – Bottoms Up, Or Top Down?

ボトムアップか? それとも, トップダウンか?

それぞれのグループが自分たちのテクノロジをつくっている. 積極的な M&A が結果的にそれらを整理することになった.

Every group making their own technology choices independently. Aggressive M&A resulting in a cluttered toy box to be sorted out.

それらの人々は, ベンダ間の差異を標準化するストレージ抽象レイヤに大変関心を持っている.

These folks are quite interested in a storage abstraction layer that normalizes all the differences, and provides a standardized consumption and operational model.

EMC ViPR こそがベストな選択だ.

I believe that EMC’s ViPR controller is the best example of a technology that meets this need.

今日, 多くのプロダクトが Software-Defined Storage の攻略対象としてあげられている.

And - yes - today there are many products being marketed as “software-defined storage” that only have rudimentary northbound APIs at best.

  • #3 – Managed Separately, Or Converged?

別々で管理するか? それとも統合するか?

サーバ, ストレージ, ネットワーク, それぞれのチームが思い描くクラウドのイメージが違う.

The server team reported out what they planned to do, the network team, the storage team, etc. Each team had a plan to implement “cloud” after their own image.

3 者のレポートがバラバラなのは明らか.

After the third report-out, it was clear that the teams hadn’t done much collaboration :)

  • #4 – Static – Or Dynamic?

静的か? それとも動的か?

私たちは, 過去数年で手工芸的にそれぞれの要求に答えることから, あらかじめ確保されたサービスの選択が出来るようにした.

We spent the last few years moving IT from hand-carving every request, to having pre-allocated service choices.

私たちは, この先数年で要求に応じて動的に構成されたサービスを目指す.

We’ll spend the next few years moving from pre-allocated services to dynamic composition of services from resources as demanded.

  • #5 - Start To Invest Now - Or Wait Until The Dust Settles?

いまから投資するか? 安定するまでまつか?

SDS が最大な勝利を収める領域は, 運用モデルだ. 新しい運用モデルは深く理解され, 実装され, 満足されるまで時間がかかる.

The biggest win with SDS is the operational model - and it’s brand new. New operational models can take a lot of time to fully understand, implement and become comfortable with.

個人的な意見としては, 今が, 新しい運用モデルに慣れ親しむことに投資するのによいときだ.

Personally, I’m telling people that now is a good time to modestly invest in becoming familiar with the new operational model

  • The Key Question

Software-Defined Anything が進むにつれて, 私たちはここからなににすればいいんだ?

When it gets down to software-defined anything, the real question is - what the heck are we trying to do here?

私たちのゴールは, 今していることを継続的によりよくしていくことか? それとも, 新しいモデルを再発明することか?

Is our goal simply to do what we’re doing today, only do it incrementally better? Or is our goal to re-invent the model of how things get done?

製品 #

  • EMC ViPR
  • IBM Elastic Storage

SMI-S #

ストレージ"管理"のための API.

2003 にはじまったのに, なぜ 10 年以上たった今でもいまいちな知名度なのか?

CDMI #

クラウドデータ管理インターフェイス (CDMI)

SCM #

Storage Class Memory.

ストレージ業界にいることもあって, アプリが性能のボトルネックになるというはなしはよくきく.

以前, 次世代メモリと呼ばれている ストレージ・クラス・メモリ (SCM)の技術動向の話をきいたときにも同じはなしが出た. アプリがストレージの性能のボトルネックになるとわかったとき, 我々開発者はなにをすればいいのか? という質問がでたが, 答えは,

関数型言語をつかうこと

All SCM Array が数年後に実現したときにはじめて, プログラミングの パラダイムシフト が起こるかもしれない.

ハードディスク #

BAD Data #

ハードディスクに記録されたユーザデータは, 磁性の劣化等が原因で不正なデータとなり, CRC (Cyclic Redundancy Check) やブロック ID の検査により不正なデータとして検出される場合がある.このため, ストレージデバイスには書き込まれているものの, 不正なデータとなってしまったデータを BAD Data という.

信頼性・寿命 #

RAID レベルの話: 1+0 と 6 はどっちが安全か? - tagomoris のメモ置き場

用語 #

アドバンスド・コピー #

アドバンスト・コピー機能は, サーバの CPU を使用せずにストレージだけ(筺体内) で高速にコピーを作成する機能.

オンライン中の高速バックアップ アドバンスト・コピー機能 (EC, OPC) : 富士通

References #

ストレージ開発者が今すぐ登録すべき RSS まとめ #

IT 業界にいると, 情報の流れが早い. すぐに動向に置いてかれる. なにかうまい方法はと考えて, とりあえず結局業界をリードする人の発信する情報をキャッチすることにした.