コンピュータのしくみ初心者向け基本コース

LESSON 03 ・ STORAGE

ストレージってなに?

ストレージは、OS、アプリ、文書、写真などを、電源を切った後も読み出せる形で残す補助記憶装置です。

BIG PICTURE

「開く」と「保存する」は反対向き

CPUは通常、ストレージ上のデータを直接計算せず、必要な範囲を主記憶へ読み込んでから処理します。

ストレージファイルを不揮発性の媒体へ記録
主記憶へ読む開くと、必要なデータがRAMへ移る
CPUが処理RAM上の命令とデータを読み書きする
書き戻す保存すると、更新内容がストレージへ残る

保存の意味:「保存」ボタンは、主記憶にある変更内容を、電源OFFでも保持できる媒体へ書き戻すようアプリとOSへ依頼します。

FROM BITS TO FILES

物理的な記録を、ファイルとして見せる

ユーザーが見るファイル名と、装置が記録するビットの間には、いくつもの管理層があります。

  1. ビットを記録する:電荷、磁化、光学的な状態などで0と1を区別する。
  2. まとまりで読み書きする:装置はデータをセクタやページなど一定単位で扱う。
  3. 論理ブロック番号を付ける:OSからは0、1、2…と並ぶ記録場所のように見せる。
  4. ファイルシステムで割り当てる:どのブロックが、どのファイルのどの部分かを管理する。
  5. 名前とフォルダで見せる:ユーザーやアプリはパスを指定してデータを開く。

データ本体

文書の文字、画像の画素、動画、プログラムの命令などです。大きなファイルは複数の記録単位へ分かれます。

名前、サイズ、更新日時、所有者、どのブロックを使うかなど、ファイルを見つけて扱うための管理情報です。

SMALL EXPERIMENT

ファイルを固定サイズの区画へ置いてみる

ファイルシステムは、容量を一定の割り当て単位へ分けて管理します。最後の区画には未使用部分が残ることがあります。

これは考え方を観察する単純化した模型です。実際のファイルシステムにはメタデータや断片化への対策もあります。

ブロックへの割り当て

緑:データあり黄:最後のブロックの未使用部分を含む

ここでいう割り当て単位と、SSD内部のNANDフラッシュが消去に使う「ブロック」は同じとは限りません。同じ言葉でも管理層が違います。

STORAGE TYPES

記録原理と使い方の異なる装置

種類記録の考え方得意なこと注意点
SSDNANDフラッシュの電荷状態高速、静か、衝撃に比較的強い書き換え回数に限度があり、コントローラ管理が必要
HDD回転円盤表面の磁化大容量を比較的低い費用で保存機械動作があり、衝撃とランダムアクセスに弱い
光学ディスクレーザーで読める状態の違い配布、保管、交換速度と容量、書き換え方法が媒体ごとに異なる
USBメモリ・カードNANDフラッシュ小さく、持ち運びやすい紛失、品質差、書き込み中の取り外しに注意
ネットワークストレージ別のコンピュータ上の媒体共有、遠隔利用、複数装置からのアクセス通信、認証、提供側の障害に依存

INSIDE AN SSD

SSDは、半導体とコントローラで記録を管理する

は、OSが指定する論理ブロックと、NANDフラッシュ上の実際の場所を対応づけます。

NANDフラッシュ

電源を切っても状態を保てる半導体メモリです。小さなページ単位で読み書きし、より大きな消去ブロック単位で消去します。

SSDコントローラ

論理アドレスを物理位置へ対応づけ、誤り訂正、空き領域の整理、複数チップへの並列アクセスを行います。

ウェアレベリング

により、特定の場所だけが繰り返し消去されないよう書き込みを分散します。

TRIM

OSが「この論理領域はもう不要」とSSDへ知らせます。コントローラは後の書き込みに備えて内部整理を進められます。

上書きの実態:NANDフラッシュは同じ場所を磁気ディスクのように直接上書きできません。新しい場所へ書き、対応表を更新し、不要データを後でまとめて消去します。

INSIDE AN HDD

HDDは、回転する円盤の位置を探す

では、目的の位置へヘッドを動かし、円盤上の場所が通過するのを待って読み書きします。

プラッタ

高速回転する磁気ディスクです。同心円状のトラックと、その中のセクタへデータを記録します。

磁気ヘッド

円盤表面すれすれを移動し、磁化の違いを読み、書き換えます。機械的な移動時間がかかります。

キャッシュと制御回路

読み書きを一時的にまとめ、誤り訂正とコンピュータ側のインターフェースを担当します。

連続アクセスとランダムアクセス

隣り合うデータを続けて読む場合はヘッド移動が少なく効率的です。離れた場所を次々に読む場合は、位置決めと回転待ちが繰り返されます。SSDは機械的な位置決めがないため、この差が小さくなります。

FILE SYSTEM

装置の番号を、ファイル名とフォルダへ変える

は、ストレージの論理ブロックを人やアプリが扱えるファイルへ整理します。

名前とパス
フォルダ階層とファイル名を使って目的のデータを指定します。
割り当て
空いている領域から必要な単位を選び、ファイルの各部分と対応づけます。
空き領域
どの場所が未使用かを管理し、新しいファイルや追記に使います。
属性と権限
サイズ、日時、所有者、誰が読み書きできるかなどを記録します。
障害からの回復
更新途中で電源が切れても管理情報の矛盾を減らすため、変更履歴を先に記録する方式などがあります。

Windowsで使われるNTFS、macOSで使われるAPFS、Linuxで使われるext4などはファイルシステムの例です。同じSSDでも、どのファイルシステムで初期化するかにより管理方法が変わります。

SAVE A DOCUMENT

文書の「上書き保存」を追う

  1. アプリが変更内容をまとめる編集中の文書は主にRAM上にあり、保存するデータとファイル名をOSへ渡します。
  2. ファイルシステムが保存場所を決める必要な空きブロックを確保し、ファイルのデータとメタデータを更新します。
  3. デバイスドライバが要求を送る論理ブロック番号とデータを、SSDまたはHDDのコントローラへ渡します。
  4. 装置が物理媒体へ記録するSSDならフラッシュ上の位置、HDDなら磁気ディスク上の位置へ書き込みます。
  5. 完了を返す各層が完了を上へ返します。ただしキャッシュの利用により、アプリへの完了通知と媒体への最終記録に時間差がある場合もあります。

CAPACITY, SPEED, SAFETY

容量や速さと、データを失わないことは別

容量保存できる総量。GBやTBで表す。空き領域も確認する。
レイテンシ読み書き要求から処理が始まるまでの待ち時間。
転送速度連続して1秒間に読み書きできるデータ量。
IOPS小さな読み書きを1秒間に何回処理できるか。

削除は、ただちに全ビットを消すとは限らない

多くのファイルシステムでは、まず「その領域は再利用可能」と管理情報を変えます。新しいデータで上書きされるまで一部を復元できる場合があるため、機密データの消去には専用の方法が必要です。

同期はバックアップとは限らない

1台の故障、誤削除、マルウェア、災害へ備えるには、別の媒体や場所へ複製し、過去の版へ戻せるバックアップを用意します。RAIDも単独ではバックアップではありません。

よくある誤解

「クラウド」は空中に保存する仕組みではありません。ネットワークの先にある事業者のコンピュータとストレージを利用します。また、SSDやHDDを交換・増設しても、主記憶RAMの容量そのものは増えません。

CHECK

確かめてみよう

ファイルを「開く」と「保存する」では、データの主な向きはどう違いますか?

開くときはストレージから主記憶へ読み、保存するときは主記憶上の変更をストレージへ書き戻します。

ファイルシステムは何を管理しますか?

ファイル名とフォルダ、保存に使うブロック、空き領域、サイズや日時、アクセス権などを管理します。

SSDが同じ物理場所へ単純に上書きしないのはなぜですか?

NANDフラッシュは、ページへ書く前により大きなブロック単位で消去する必要があるためです。コントローラが別の場所へ書いて対応表を更新します。

同期やRAIDがあればバックアップは不要ですか?

いいえ。誤削除や破損も同期されることがあり、RAIDは装置故障への継続運転を主目的とします。別媒体・別場所・過去版を持つバックアップが必要です。