0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】ディスク I/O のアーキテクチャ【5分で読める】

Last updated at Posted at 2025-02-17

ディスク I/O のアーキテクチャ

理解のために小咄形式でまとめました。

登場人物

  • 太郎(後輩):入社1年目の若手エンジニア。
  • 花子(先輩):システムエンジニア歴3年の先輩。

場面:オフィスの昼休み
太郎が花子とランチを食べながら質問する

太郎:「花子先輩、ディスク I/O のアーキテクチャ についての資料を読んだのですが、まだイメージがつかめなくて…。」

花子:「なるほど、じゃあ今回は ディスク I/O のアーキテクチャ を整理してみようか。大きく分けると、以下の4つのポイントがあるわね。」

  1. ディスクのタイプ
  2. インターフェイス
  3. ストレージの種類
  4. OS のディスク I/O スタック

1. ディスクのタイプ

花子:「まず ディスクのタイプ について説明するわね。現在、よく使われているディスクには大きく2種類あるの。」

  1. 回転磁気ディスク(HDD)

    • プラッター(円盤)が回転し、磁気ヘッドがデータを読み書きする。
    • ランダムアクセスは遅いが、大容量で安価。
    • 主に バックアップコールドストレージ に適している。
  2. フラッシュメモリ(SSD)

    • 機械的な可動部分がなく、電子的にデータを保存する。
    • 高速なランダムアクセスが可能で、 OSデータベース に適している。
    • ただし、書き込み回数に制限がある(寿命問題)。

太郎:「SSD は速いけど、コストと寿命を考えると、HDD もまだまだ使いどころがあるんですね。」


2. インターフェイス

花子:「次に インターフェイス の話ね。ディスクとコンピュータの接続にはいろんな規格があるの。」

  1. SATA(シリアル ATA)

    • 主に HDD や安価な SSD に使われる。
    • 転送速度は 6Gbps くらいで、接続は簡単。
  2. SAS(シリアルアタッチド SCSI)

    • エンタープライズ向けの HDD や SSD に使われる。
    • SATA より信頼性が高く、高速
  3. NVMe(Non-Volatile Memory Express)

    • フラッシュメモリ用に最適化された PCIe ベースのインターフェイス
    • 超高速低遅延
    • 例:最新のゲーミングPC や 高速データ処理システム。

太郎:「じゃあ、普段の業務でデータベースのパフォーマンスを改善したいなら、 NVMe の SSD を選ぶのが良さそうですね!」


3. ストレージの種類

花子:「ディスクの 物理的な種類 だけじゃなく、 ストレージの運用方法 も重要よ。」

  1. ローカルストレージ

    • PC やサーバーに 直接 取り付けられたディスク。
    • 高速だが、 スケールしにくい
  2. SAN(Storage Area Network)

    • ネットワークを介して接続されたストレージ
    • 大規模システム向け(データセンターなど)。
    • Fibre ChanneliSCSI が使われる。
  3. NAS(Network Attached Storage)

    • ファイルベースのストレージ を提供するデバイス。
    • 小規模なオフィス家庭用 によく使われる。

太郎:「なるほど、 SAN大規模なサーバー環境 で、 NAS小規模な共有ストレージ って感じですね。」


4. OS のディスク I/O スタック

花子:「最後に OS のディスク I/O スタック について説明するわね。これを理解すると、 どこでボトルネックが発生しているのか を特定しやすくなるわ。」

  • アプリケーション層

    • データベースファイルシステム などが I/O を要求。
  • ファイルシステム層

    • ext4, XFS, ZFS などの ファイルシステム がデータを管理。
  • ブロックデバイス層

    • RAID コントローラバッファキャッシュ でパフォーマンスを最適化。
  • デバイスドライバ層

    • HDD や SSD実際にデータを転送

太郎:「ファイルシステムの最適化や RAID の設定も、ディスク I/O のパフォーマンスに影響するんですね!」


花子:「ここまでの話を現実の 物流システム に例えてみると、こんな感じよ。」

  1. ディスクのタイプ → 倉庫の種類

    • HDD巨大な倉庫(広いが、物を探すのに時間がかかる)。
    • SSDコンビニの在庫棚(小さいが、すぐ取り出せる)。
  2. インターフェイス → 輸送手段

    • SATA普通のトラック輸送(遅いが、安定)。
    • SAS高速バス輸送(エンタープライズ向け)。
    • NVMe新幹線輸送(超高速 & 低遅延)。
  3. ストレージの種類 → 物流の仕組み

    • ローカルストレージ社内倉庫(高速だけど、拡張性がない)。
    • SAN大規模物流センター(複数拠点で利用)。
    • NAS町の宅配ボックス(手軽に共有)。
  4. OS のディスク I/O スタック → 物流プロセス

    • アプリケーション層:お客様が商品を注文。
    • ファイルシステム層:在庫管理システムがデータを整理。
    • ブロックデバイス層:トラックが倉庫から商品を運ぶ。
    • デバイスドライバ層:倉庫の作業員が商品をピックアップ。

太郎:「なるほど!ディスク I/O の構造が、 物流の流れ に例えられるとわかりやすいですね!」


まとめ

花子:「ディスク I/O のアーキテクチャは、 どの部分がボトルネックになっているか を見極めるのに役立つわよ。」

太郎:「ありがとうございます!今度、 つーrを使ってパフォーマンスを測定してみます!」

参考リンク

システムパフォーマンス関連記事の目次

システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?