ディスク関連の用語
理解のために小咄形式でまとめました。
システムパフォーマンス関連記事の目次
登場人物
- 太郎(後輩):入社1年目の若手エンジニア。
- 花子(先輩):システムエンジニア歴3年の先輩。
場面:オフィスの会議室
太郎が ディスク I/O
に関するドキュメントを見ながら、花子に質問する。
太郎:「花子先輩、ディスク I/O
について学んでいるんですが、 用語の定義
が多すぎて混乱しています…。基本的な用語を整理したいんですが、教えてもらえませんか?」
花子:「確かに、 ストレージやディスク I/O
の話をするときは、 基本用語
を押さえておかないと話が進みにくいわね。じゃあ、 重要な用語
を順番に説明していくわ。」
用語の解説
花子:「ディスクに関連する 基本用語
は、 6つ
あるわ。」
- 仮想ディスク(Virtual Disk)
- トランスポート(Transport)
- セクター(Sector)
- I/O(Input/Output)
- ディスクコマンド(Disk Command)
- スループット & 帯域幅(Throughput & Bandwidth)
1. 仮想ディスク(Virtual Disk)
花子:「まず 仮想ディスク
だけど、これは エミュレートされたストレージデバイス
のことよ。」
- 実際には複数のディスクや、単一ディスクの一部で構成される。
- OS からは
1つの物理ディスクのように見える
。 - 仮想マシン(VM)やクラウド環境でよく使われる。
「例えば VMware
や KVM
の 仮想ディスクイメージ(VMDK, QCOW2)
は、この 仮想ディスク
の一例ね。」
太郎:「なるほど、 1台の物理マシンを複数の仮想マシンで共有する
ときに使われるんですね!」
2. トランスポート(Transport)
花子:「トランスポート
とは、 データ転送(I/O)やディスクコマンドのやり取り
に使われる 物理バス
のことよ。」
- 代表的な
ストレージトランスポート
には以下がある:- SATA(シリアル ATA): 一般的な HDD/SSD 向け
- SAS(シリアルアタッチド SCSI): 高速 & エンタープライズ向け
- NVMe(PCIe 経由): 高速 SSD 用の最新プロトコル
- iSCSI(Ethernet 経由): ネットワークストレージ向け
太郎:「つまり、 ストレージと CPU がどうやって通信するか?
を決める仕組みですね!」
3. セクター(Sector)
花子:「セクター
は ディスク上の最小のストレージ単位
のことよ。」
- 昔は 512 バイトが標準 だったが、最近は 4KB(4096バイト) が一般的。
-
4Kセクターは
先読み性能
やエラー訂正
に有利。 - HDD も SSD も 内部的には 4K 単位でデータを管理している。
太郎:「ってことは、 ファイルシステムのブロックサイズ
も 4K にすると効率的
ってことですね!」
4. I/O(Input/Output)
花子:「I/O
とは、 ディスクの読み書き
のことよ。」
I/O
は、ディスクのリード(読み込み)
とライト(書き込み)
の操作。サイズ
やアドレス
を指定して実行される。- I/O の
頻度(IOPS)
やスループット
がパフォーマンス指標
になる。
太郎:「じゃあ、 1秒間にどれくらい I/O が発生しているか
が IOPS
なんですね!」
5. ディスクコマンド(Disk Command)
花子:「ディスクコマンド
には データ転送
以外の 制御コマンド
も含まれるの。」
リード/ライト(読み書き)
は基本的なディスクコマンドキャッシュフラッシュ(sync)
やSMART診断
もディスクコマンド- ディスクには
特権コマンド
もあり、ファームウェア更新や低レベルフォーマットができる
太郎:「ってことは、 ディスクの健康状態をチェックする smartctl
も ディスクコマンド
の一種なんですね!」
6. スループット & 帯域幅(Throughput & Bandwidth)
花子:「スループット
と 帯域幅
は ディスク I/O の速度
を示す指標よ。」
- スループット(Throughput): 実際に転送されたデータ量(bps, MB/s)
-
帯域幅(Bandwidth): そのトランスポートが
理論上転送可能な最大速度
「例えば SATA3(6Gbps)
なら 帯域幅は 600MB/s
だけど、 実際のスループットは 550MB/s
くらいなの。」
太郎:「理論値と実測値が違うのは、 プロトコルのオーバーヘッド
があるからなんですね!」
花子:「これらの ディスク用語
を 宅配便の仕組み
に例えると、こんな感じね。」
-
仮想ディスク →
宅配便の荷物ロッカー(実際には複数の荷物を管理している)
-
トランスポート →
トラックやバイク便(データの運搬手段)
-
セクター →
1つの荷物の最小単位(小包のサイズ)
-
I/O →
荷物の受け取りや発送(データのやり取り)
-
ディスクコマンド →
荷物の配送状況の問い合わせ(ディスクの制御)
-
スループット & 帯域幅 →
1時間あたりの配送可能な荷物量(データ転送速度)
太郎:「なるほど! トラックの最大積載量
と 実際の荷物の配送速度
が違うのと同じで、 帯域幅とスループット
も違うんですね!」
まとめ
花子:「ディスク I/O を理解するには、 基本用語をしっかり押さえること
が大事よ。特に I/O の概念
や スループットと帯域幅の違い
は、パフォーマンス分析でもよく出てくるわ。」
太郎:「ありがとうございます!たしかに抑えておきたい用語ですね!」
参考リンク
システムパフォーマンス関連記事の目次
システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。