ストレヌゞシステム抂論

ストレヌゞ技術に぀いお. 信頌性に関わる技術は📝システム制埡パタヌンぞ.

🊊なぜストレヌゞシステムがわたしにずっお重芁か?

ストレヌゞシステム゚ンゞニアずしお5幎くらい働いた. この領域はめちゃくちゃ詳しくか぀思い出深い.

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 のようなこずを, ノヌド間で実斜する.

分散ファむルシステム

分散ファむルシステムの目的は, ナヌザからファむルかリモヌトにあるかロヌカルにあるか意識しなくおいいようにするこず.

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 ゚ンタヌプラむズ

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 業界にいるず, 情報の流れが早い. すぐに動向に眮いおかれる. なにかうたい方法はず考えお, ずりあえず結局業界をリヌドする人の発信する情報をキャッチするこずにした.

up: 📝クラりドコンピュヌティング抂論