BOOK Preview インサイドMicrosoft Windows 第4版 下 第10章 ストレージ管理 10.3 ボリューム管理 書籍情報のページ 2005/11/08 |
|
本コーナーは、Windowsシステム管理者向けの書籍から、主要なチャプターをそのまま転載し、その内容を紹介するものです。 今回ご紹介する『インサイドWindows 第4版』は、Windowsオペレーティング・システムの内部を詳細に解説した決定版です。Windowsカーネルの内部について、ここまで詳しく解説した情報はほかにありません。 著者の1人であるデビット・ソロモン氏は、Windows NTの開発リーダーだったデビット・カトラー氏とは旧知の仲で、本書の前々版(『インサイドWindows NT 第2版』)を執筆するにあたり、Windowsカーネルのソースコードにアクセスする許可をカトラー氏から与えられました。それだけでなく、デビッド・カトラー氏は、本書の一部(プロセス管理の部分)について、技術校閲も担当しています。 またもう1人の筆者であるマーク・ルシノビッチ氏は、Windowsオペレーティング・システムの機能を縦横に駆使したツール開発者として著名で、前出のカトラー氏も一目置く存在です。「かゆいところに手が届く」彼のツールは、多くのWindowsエンジニアにとって不可欠な存在となっています(フリー・ツールの入手先はこちら:SysInternals)。 つまり本書は、Windowsコア・システムの開発責任者と、OS解説のエキスパートが、二人三脚で執筆し、Windowsの歴史とともに改版を重ねてきた希有な書籍なのです。今回の第4版では、Windows XPとWindows Server 2003に加えられたカーネルの変更点や、Windowsの64bitサポートなどについて加筆されています。情報システムの設計者やシステム管理者など、作り手や管理者としてWindowsシステムに接する必要があるなら、本書にまとめられた情報が仕事の随所で役立つはずです。 本稿は、Windowsの内部構造や仕組みを解説した名著で最新の第4版です。Windows 2000、Windows XP、そしてWindows Server 2003に対応し、マルチプロセッサ、64ビットWindowsまで網羅しています。下巻は、Windowsのセキュリティ構造、I/Oシステムのコンポーネント、ストレージ管理、キャッシュマネージャの主な特徴について、さらにWindowsのファイルシステムとネットワーク構造、クラッシュダンプ解析について詳細に解説しています。 なお、書籍の詳細については書籍情報のページをご覧ください。 |
|
10.3 ボリューム管理
Windowsは、「基本」と「ダイナミック」というディスクの概念を導入しています。MBRやGPTスタイルのパーティショニングスキームを「基本ディスク」と言います。一方、「ダイナミックディスク」という概念はWindows 2000から導入され、パーティショニングの柔軟性の点で基本ディスクより優れています。2つのディスクの間の相違は、ダイナミックディスクがマルチパーティションボリュームをサポートしていることです。マルチパーティションボリュームは、単純なボリュームにはないパフォーマンス、サイジング、および信頼性を向上させる機能を提供しています。Windowsは、すべてのディスクを基本ディスクとして管理しています。このため、ダイナミックディスクの利点を活用したい場合には、手動で作成するか、(十分な空きスペースを持つ)既存基本ディスクをダイナミックディスクに変換する必要があります。Microsoftは、マルチパーティション機能を使用する必要がある場合を除き、基本ディスクの使用を推奨しています。
注
|
|||||
|
|
10.3.1 基本ディスク
この節では、MBRスタイルとGPTという2つのタイプのパーティショニングと、FtDiskというボリュームマネージャを取り上げます。Windowsは、内部で2つのパーティショニングタイプを使用し、基本ディスク上のボリュームを定義しています。FtDiskボリュームドライバは、ボリュームをファイルシステムドライバに提示します。Windows 2000ディスクマネージャは、パーティションのないディスクをダイナミックディスクにするように推奨していますが、Windows XPやWindows 2000 Professionalと同じように、Windows Server 2003はすべてのディスクを基本ディスクとして暗黙のうちに定義しています。
■MBRスタイルパーティショニング
x86ハードウェアが使用する標準BIOSは、Windowsでは1つのパーティショニングフォーマットを使用することを前提として実装されています。そのフォーマット条件は、プライマリディスクの第1セクタにマスタブートレコード(MBR)を含めるようになっています。x86プロセッサがブートするときに、コンピュータのBIOSはMBRを読み込み、MBR内容の一部を実行コードとして扱いします。BIOSは、コンピュータハードウェアの基本的な構成値を設定後、MBRコードを呼び出し、オペレーティングシステムのブートプロセスを開始します。Windowsを含むMicrosoftのオペレーティングシステムでは、MBRは「パーティションテーブル」というものも含んでいます。1つのパーティションテーブルには、ディスク上の4つのプライマリパーティションを定義する、4個のエントリが含まれています。パーティションテーブルはまた、パーティションのタイプも記録しています。多くのパーティションタイプが事前定義されています。それぞれのパーティションタイプは、パーティションに含まれるファイルシステムを指定しています。たとえば、FAT32やNTFS用のパーティションタイプなどがあります。「拡張パーティション」と呼ばれる特殊なパーティションタイプは、独自のパーティションテーブルを持つ、もう1つのMBRを持っています。拡張パーティション内で、プライマリパーティションに相当するのは、「論理ドライブ」です。Microsoftのオペレーティングシステムは、拡張パーティションを採用することにより、ディスクあたり最大4個のパーティションを持てるという制限を克服しています。一般論としては、拡張パーティションは再帰的に際限なく作成できます。つまり、ディスク上のパーティション数に制限がなくなったわけです。Windowsブートプロセスは、プライマリドライブと論理ドライブを明確に区別しています。システムは、プライマリディスクのプライマリパーティションをアクティブとみなします。MBR内のWindowsコードは、アクティブパーティション内の第1セクタに格納されているコードをメモリにロードし、そのコードに制御を渡します。プライマリパーティション内の第1セクタは、ブートプロセスで重要な役割を果たしているため、Windowsはすべてのパーティションの第1セクタをブートセクタとみなします。第4章で触れたように、何らかのファイルシステムでフォーマットされたすべてのパーティションは、ブートセクタを持っています。それぞれのブートセクタは、パーティションのファイルシステム構造に関する情報を保持しています。
■GUIDパーティションテーブルパーティショニング(GPT)
オペレーティングシステムがブートプロセス時に使用するファームウェアは標準化され、拡張性に富んでいることが望まれています。この目標を実現するため、IntelはEFI(Extensible Firmware Interface:拡張ファームウェアインターフェイス)仕様を作成し、一般公開しました。EFIは、ファームウェア内(通常はROM)にミニオペレーティングシステム環境を実装しています。オペレーティングシステムは、システムブートプロセスの初期の段階でそのコードを呼び出し、診断コードとブートコードをメモリにロードします。EFIの最初のターゲットの1つは、IA64であるため、IA64版WindowsはEFIを採用します(ただし、従来のMBRパーティショニングを持つディスクを作成するオプションは用意されます)。EFIの詳細については、developer.intel.com/technology/efiを参照してください。
EFIは、GUIDパーティションテーブル(GPT)を呼ばれるパーティショニングスキームを定義しています。このスキームは、MBRスタイルパーティショニングのいくつかの欠点を解決しています。たとえば、GPTパーティション構造が使用するセクタアドレスは、32ビットではなく、64ビットとなっています。32ビットのセクタアドレスは、2テラバイト(TB)の記憶域をアクセスだけでしたら十分ですが、GPTはそれ以上の記憶域へのアクセスを可能としています(将来必要と予想される大きさの記憶域)。GPTはさらに、CRCを使ってパーティションテーブルの健全性を保障し、パーティションテーブルのバックアップコピーを作成管理しています。GPTという名前は、36バイトのUnicodeパーティション名を使えることに加え、個々のパーティションにGUIDを割り当てることに由来しています。
図10-4は、GPTパーティションレイアウトの1つの例を示しています。MBRパーティションと同じように、GPTディスクの第1セクタは、MBRとなっています。これは、GPT未対応オペレーティングシステムからのディスクアクセスに備えるための処置です。しかし、ディスクの第2と最終セクタは、第2セクタから最終セクタまでの実際のパーティションテーブルへのアクセス情報を持つ、GPTパーティションテーブルヘッダーを記憶しています。GPTパーティショニングは、拡張パーティションリストを使用するため、MBRパーティショニングのようなパーティションのネストを必要としません。
図10-4 GPTパーティションレイアウトサンプル |
注
|
|||||
|
■基本ディスクボリュームマネージャ
FtDiskドライバ(\Windows\System32\Drivers\Ftdisk.sys)は、基本ディスク上のボリュームを表現するディスクデバイスオブジェクトを作成し、シンプルボリュームを含む、すべての基本ディスクボリュームの管理を担当します。FtDiskは、すべてのボリュームに対して、\Device\HarddiskVolumeX形式のデバイスオブジェクトを作成します(Xの部分には、ボリュームを識別する1から始まる数値が入ります)。
FtDiskは、基本ディスクを列挙し、基本ボリュームの存在を検出しています。検出した基本ボリュームは、Windows PnPマネージャに報告されます。この事実は、FtDiskが実際にはバスドライバであることを示しています。この列挙機能を実装するために、FtDiskはパーティションマネージャ(Partmgr.sys)とPnPマネージャの機能を活用し、どのような基本ディスクパーティションが存在するのかを判断しています。パーティションマネージャは、PnPマネージャに自分自身を登録し、ディスククラスドライバがパーティションデバイスオブジェクトを作成したときに、その旨の通知をWindowsから受け取っています。パーティションマネージャは、プライベートインターフェイス経由で新規パーティションオブジェクトに関する情報をFtDiskに通知し、フィルタデバイスオブジェクトを作成します。作成されたフィルタデバイスオブジェクトは、パーティションオブジェクトにアタッチされます。Windowsは、フィルタオブジェクトを参照しながら、パーティションデバイスオブジェクトの削除タイミングを検出し、パーティションマネージャにその旨を通知します。通知を受けたパーティションマネージャは、FtDiskを更新します。ディスククラスドライバは、ディスク管理Microsoft管理コンソール(MMC)スナップインからパーティションが削除されると、パーティションデバイスオブジェクトを削除します。FtDiskがパーティションを認識すると、基本ディスク構成情報を頼りに、パーティションとボリュームの対応関係を決定し、ボリュームの説明情報内のすべてのパーティションの存在が通知された時点で、ボリュームデバイスオブジェクトを作成します。
この後に説明するWindowsボリュームドライブ文字の割り当て時には、\Global??(Windows 2000では\??)オブジェクト名前空間ディレクトリ内にドライブ文字シンボルリンクが作成されます。そのリンクは、FtDiskが作成するボリュームデバイスオブジェクトを指しています。システムやアプリケーションが最初にボリュームにアクセスすると、Windowsはマウント処理を行います。このマウント処理により、ファイルシステムドライバは自分が管理できるフォーマットを持つボリュームを認識し、そのボリュームの所有者となることができます(マウント処理の詳細については、「10.3.4 ボリューム名前空間」の「ボリュームのマウント」を参照してください)。
INDEX | ||
インサイドMicrosoft Windows 第4版 下 | ||
第10章 ストレージ管理 | ||
10.1 ストレージ関連用語/10.2 ディスクドライバ/10.2.1 Ntldr | ||
10.2.2 ディスククラス、ポート、およびミニポートドライバ/10.2.3 ディスクデバイスオブジェクト/10.2.4 パーティションマネージャ | ||
10.3 ボリューム管理/10.3.1 基本ディスク | ||
10.3.2 ダイナミックディスク | ||
10.3.3 マルチパーティションボリューム管理 | ||
10.3.4 ボリューム名前空間NEW! | ||
10.3.5 ボリュームI/O処理/10.3.6 仮想ディスクサービス(VDS)/10.3.7 ボリュームシャドウコピーサービス/まとめNEW! | ||
「BOOK Preview」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|