ストレージとI/Oシステム
ストレージとI/Oシステムは、プロセッサとメモリを外部世界および永続データに接続するものであり、バスと相互接続、ディスクとフラッシュストレージ、信頼性のための冗長性、およびデバイスとメモリ間でデータを効率的に移動させるメカニズムを含みます。
Definition
ストレージとI/Oシステムは、コンピュータが周辺機器との間でデータを転送し、永続的に保存するためのハードウェアおよびアーキテクチャメカニズムであり、相互接続、コントローラ、ストレージメディア、および関連する信頼性および仮想化技術を含みます。
Scope
この分野は、コンピュータが周辺機器と通信し、データを永続的に保存する方法を扱います。具体的には、I/Oアーキテクチャとバス、割り込み駆動およびDMA駆動転送、二次記憶装置(磁気ディスクとソリッドステートドライブ)、RAIDなどの冗長性によるストレージの信頼性、およびI/O仮想化です。入出力と永続性のハードウェアおよびアーキテクチャメカニズムを扱います。ファイルシステムソフトウェアの抽象化(オペレーティングシステム)やオンチップキャッシュおよびメインメモリ(メモリ階層とキャッシュ)は除外されますが、これらとは密接に連携します。
Sub-topics
Core questions
- バスと相互接続を介して、デバイスはどのようにプロセッサとメモリに接続されるのでしょうか?
- ビジーポーリングではなく、割り込みとダイレクトメモリアクセスを使用して、データはどのように効率的に転送されるのでしょうか?
- 磁気ストレージとソリッドステートストレージのパフォーマンスと信頼性の特性は何でしょうか?
- RAIDのような冗長性は、信頼性とパフォーマンスのために容量をどのようにトレードオフするのでしょうか?
- I/Oはどのように仮想化され、仮想マシンやプロセス間で安全に共有されるのでしょうか?
Key concepts
- I/Oバスと相互接続
- 割り込み駆動I/O
- ダイレクトメモリアクセス (DMA)
- 磁気ディスクとSSD
- デバイスコントローラ
- RAIDと冗長性
- ストレージの信頼性とMTTF
- I/O仮想化
- スループットとレイテンシ
- メモリマップドI/O
Key theories
- 安価なディスクの冗長アレイ (RAID)
- 多数の汎用ディスクをデータストライピングとパリティまたはミラーリングと組み合わせることで、単一ディスクよりも大容量、高速、高信頼性のストレージが得られます。RAIDレベルは、容量、パフォーマンス、および耐障害性の間のトレードオフを形式化します。
- 分離型I/O転送
- ダイレクトメモリアクセスと割り込み駆動I/Oにより、デバイスはプロセッサの継続的な関与なしにメモリとの間でデータを転送でき、I/Oと計算をオーバーラップさせ、システム全体のスループットを向上させます。
Mechanisms
周辺機器はバスとコントローラを介してシステムに接続され、割り込みによってプロセッサに信号を送ります。大量のデータはダイレクトメモリアクセスによって移動され、これによりデバイスとメモリ間でブロックが転送され、ワードごとのプロセッサの関与は不要です。二次記憶装置は磁気ディスクまたはフラッシュにデータを永続的に保存し、デバイスのアレイはストライピング、ミラーリング、およびパリティ(RAID)を使用してパフォーマンスを向上させ、障害を許容します。仮想化レイヤーは、これらのデバイスをゲスト間で多重化します。
Clinical relevance
ストレージとI/Oは、エンドツーエンドのシステムパフォーマンスと耐久性を決定することが多く、データベース、ファイルサーバー、データ集約型アプリケーションは、計算よりもストレージのスループットとレイテンシによって制約されることが頻繁にあります。RAIDおよび関連する冗長性スキームは、データセンターにおけるデバイス障害から保護し、効率的なI/O仮想化は、多くのテナントが物理ハードウェアを共有するクラウドコンピューティングにおいて不可欠です。
History
初期の機械はプログラムI/Oと専用チャネルを使用していましたが、I/Oと計算をオーバーラップさせるために割り込み駆動I/Oとダイレクトメモリアクセスが登場しました。磁気ディスクは何十年もの間、二次記憶装置の主流であり、1988年のPatterson、Gibson、KatzによるRAIDの提案は、冗長性を標準的な信頼性技術として確立しました。その後、フラッシュベースのソリッドステートドライブがストレージ階層を再構築し、クラウドコンピューティングの台頭とともにI/O仮想化が中心的な役割を果たすようになりました。
Debates
- 非集約型ストレージ対ローカルストレージ
- ストレージを計算機にローカルに接続すべきか、高速ネットワークを介して非集約化すべきかについて議論が続いています。非集約化はデータセンターにおける利用率と柔軟性を向上させますが、レイテンシが増加し、高性能な相互接続に依存します。
Key figures
- David A. Patterson
- Garth Gibson
- Randy H. Katz
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- patterson1988raid
- silberschatz2018
Frequently asked questions
- ダイレクトメモリアクセスとは何ですか、またなぜ有用なのですか?
- ダイレクトメモリアクセス (DMA) は、デバイスがメインメモリとの間でデータブロックを転送する際に、プロセッサが各ワードをコピーすることなく行えるようにするものです。これにより、転送中にプロセッサが他の作業を行うことが可能になり、I/Oと計算がオーバーラップし、大量のデータ移動のスループットが大幅に向上します。
- RAIDは私のデータが安全であることを保証しますか?
- いいえ。RAIDは冗長な情報を保存することで可用性を向上させ、特定のデバイス障害を許容しますが、バックアップではありません。偶発的な削除、破損、許容範囲を超える複数デバイスの障害、またはサイトレベルの災害から保護するものではないため、別途バックアップが必要です。