コンピュータのリソースを操作. OSの機能のひとつ.
📁ファイル(OS)
OSなどの情報システムからみた, データの管理単位.
-
名前, 拡張子, idなどの識別子をもつ.
-
size, 作成日などの属性をもつ.
-
所有権などのパーミッションをもつ.
-
read/write, または両方の機能をもつ.
📂ディレクトリ
💡フォルダはGUI/WindowsでディレクトリはCLI/Linuxの文化
フォルダとディレクトリの名前の違いは文化の違い.
パーティション
A partition is a logical part of the disk.
冷蔵庫に棚があるように, Disk にはパーティションがある.
| Windows | Linux | |
|---|---|---|
| Partition | Disk1 | /dev/sda1 |
| Filesystem type | NTFS/FAT32 | EXT3/EXT4/XFS… |
| Mounting Parameters | DriveLetter | MountPoint |
| Base Folder where OS is stored | C drive | / |
分散ファイルシステム
分散ファイルシステムの目的は, ユーザからファイルかリモートにあるかローカルにあるか意識しなくていいようにすること.
2 つのアクセスモデルがある.
- 遠隔アクセスモデル … リモートサーバにあるファイルを読み書き
- アップロードダウンロードモデル … 一旦ローカルにダウンロードして編集してからアップロード.
ローカルファイルにアクセスするときは, file discripter を指定する. file discripter には, read/write に必要な pointer が保持されているので,ユーザは, offset を指定しない.
リモートファイルにアクセスするときは file id と offset を指定する.
クライアント・サーバ間の通信には RPC が利用される. NFSv4 では, 複合手続き (compound procedure) をサポートする.
NFS
Unix 系の分散ファイルファイルシステム.
- AFS
- Coda: AFS の後継, Coda - Wikipedia
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 が返ってくるまで, 送信側は次のデータを送信しない.
ファイル共有のスループットは同様には計算できない. なぜなら, 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 のファイルサーバやプリントサービス, ドメインコントローラ機能, ドメイン参加機能を提供する.
smbTorture
smbtorture は Samba サーバが想定されたように動作しているかを確かめる, テスト用クライアントツール.
ref. CentOS 上で SAMBA サーバを立ちあげて Windows からアクセスするためのメモ
Storage との関係
CIFS 対応の Storage 製品
-
NAS (ETERNUS NR)
NAS では, 装置内にファイルシステムを持っており, サーバは NFS あるいは CIFS プロトコルにより, ファイルとしてアクセスする.
-
Unified Storage (ETERNUS DX S3)
ユニファイドストレージとは, 1 台で SAN と NAS の両方に対応するストレージ製品. NAS は, ネットワークに直接接続するストレージです. LAN (Ethernet) に接続し, NFS や CIFS などのプロトコルを介してファイル単位でのアクセスを行う.
-
Software-Defined Storage
決められたポリシーに従って動的にストレージサービスを構築する製品.
仮想 NAS がポリシーによって生成されて, NFS や CIFS などのプロトコルを介して生成されたファイルサービスにアクセスする.
SNIA は CIFS に関する情報がたくさんある
SNIA はそもそも Storage Networking Industory Association. というくらいなので, ストレージネットワーキングの促進団体だったことが判明!
SDC の資料が公開されていて, そのなかに CIFS の資料がたくさんあった.
Storage Developer Conference Archives | Storage Networking Industry Association