コンピュータのリソースを操作. OSの機能のひとつ.

📁ファイル(OS)

OSなどの情報システムからみた, データの管理単位.

  • 名前, 拡張子, idなどの識別子をもつ.

  • size, 作成日などの属性をもつ.

  • 所有権などのパーミッションをもつ.

  • read/write, または両方の機能をもつ.

  • 🔖データ

📂ディレクトリ

💡フォルダはGUI/WindowsでディレクトリはCLI/Linuxの文化

フォルダとディレクトリの名前の違いは文化の違い.

📂フォルダ

パーティション

A partition is a logical part of the disk.

冷蔵庫に棚があるように, Disk にはパーティションがある.

WindowsLinux
PartitionDisk1/dev/sda1
Filesystem typeNTFS/FAT32EXT3/EXT4/XFS…
Mounting ParametersDriveLetterMountPoint
Base Folder where OS is storedC drive/

分散ファイルシステム

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

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

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

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

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

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

NFS

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

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

smbTorture

smbtorture は Samba サーバが想定されたように動作しているかを確かめる, テスト用クライアントツール.

ref. CentOS 上で SAMBA サーバを立ちあげて Windows からアクセスするためのメモ

Storage との関係

CIFS 対応の Storage 製品

  • Software-Defined Storage

    決められたポリシーに従って動的にストレージサービスを構築する製品.

    仮想 NAS がポリシーによって生成されて, NFS や CIFS などのプロトコルを介して生成されたファイルサービスにアクセスする.

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

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

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

Storage Developer Conference Archives | Storage Networking Industry Association

🔗References

ファイルシステム - Wikipedia

💿ストレージシステム