0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SANでのストレージに対する読み書きフロー

Posted at

SANでのストレージに対する読み書きフローを調べた。

SANで使用されるプロトコル

SANではFC/FCoE/iSCSIといったプロトコルでストレージとブロックアクセスする。
※いづれのプロトコルもSCSIコマンドをカプセル化するもの。

内臓、外付け、NW経由のストレージアレイの制御

ストレージへの読み書きが必要な際はCPUが制御装置として命令する。(メモリ↔︎ストレージ)
※内蔵ストレージ、外付けストレージの場合はただの箱であるため、
 内蔵または接続されたパソコンやサーバのCPUが制御して読み書きする。
 NW経由で接続するストレージ(ストレージアレイ)はそれ自体が通信読み書きする機能をもち、
 NW経由で流れてくるデータをドライブに書き込んだり、ドライブから読み出したデータをNW経由で送り出したりする。
 まさにサーバとして動作する。

サーバからの書き込みアクセス例

①ファイルシステム上のファイルに書き込み保存するため、サーバがHBAから書き込み命令飛ばす。
 SANストレージのLBA(論理ブロックアドレス)#10番にSCSIコマンド発行
 (LBA#10に10111001010…を書き込んで〜!)

②ストレージのコントローラがフロントエンドポートでデータを受信し
 キャッシュメモリに書き込む。

③コントローラは書き込み完了(ACK)をサーバに送信する。

④サーバはACKの受信でデータ書き込み完了を認識し、メモリないのデータを削除する。

⑤コントローラはキャッシュメモリに蓄えたデータを、サーバからのI/Oとは非同期で
 バックエンドポートを介してドライブへ書き込む。

※データフローにキャッシュメモリを解することで、
 サーバからの転送速度と物理ドライブの書き込み速度差を吸収する。

サーバからの読み込みアクセス例

①サーバが読み取り処理をHBAからネットワークへ送信する。

②コントローラはフロントエンドポートで読み取り処理を受信し、
 要求データを判別する。

③コントローラは要求されたデータをバックエンドポートを介して
 ドライブから読み取り、キャッシュメモリへ書き込む。

④コントローラはキャッシュメモリへ書き込んだデータを
 フロントエンドポートからサーバのHBAへ送信する。

※読み取り処理の過程でキャッシュメモリへデータを配置するのは
 再利用による高速化を実現するため。

・SCSIコマンド
→ストレージとコンピュータが通信/制御を行う際に利用されるコマンド群。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?