3. ディスク構成¶
3.1. 管理パーティション¶
ReadCache システムを利用するには、仮想ディスク上に「管理パーティション」を作成する必要があります。 以下で、このパーティションの目的や内容について説明します。
3.1.1. 管理パーティションの目的¶
vDisk 上の「管理パーティション」には次のようなデータが記録されています。
ReadCache では、これらの情報をサーバーとクライアントの両方から参照・変更するために管理パーティションを利用します。
3.1.2. 管理パーティションの作成および初期化¶
管理パーティションの作成手順および初期化手順については、「ReadCache 5.0 インストール マニュアル」を参照してください。
3.1.3. 系列¶
系列とは、「同じ内容を持つ仮想ディスク」ならびに「その仮想ディスクの履歴情報」を含む概念です。 OS の違いや、利用用途の違いによる仮想ディスクの分類を意味します。 ある仮想ディスクの中のファイルに変更を加えても系列は変化しません。
系列名は仮想ディスクの系列を識別するための識別子です。 仮想ディスクの更新や管理を最適化するために導入されています。
- 系列名に使える文字列は 、 "A" ~ "Z" , "0" ~ "9" と、 "_" , "&" , "#" , "%" , "+" , "-" , "." , "@" の 8 種類の記号です
- 文字数は 1 文字以上、27 文字以下でなければなりません
- 同じ系列のディスクは同じサイズでなければなりません
3.1.4. リビジョン¶
リビジョンは、ディスクの中身が同一であるかどうかを示す 32 ビットの符号なし整数 (0~2147483647) です。 リビジョンが同じであれば、仮想ディスクの中のファイルは完全に同一であることを示します。
つまり、仮想ディスクに変更を加えた時には、一定の頻度でリビジョンを変化させてください。 通常リビジョンは 1 からはじめ、順次増加していきます (リビジョン番号が 0 の時には ReadCache は動作しません)。
また、リビジョン 4 のディスクに対して更新作業をしたにも関わらず、まだリビジョンを更新していない状態をリビジョン 4+ と表現します。 そののちに ReadCache ディスク管理ツールでリビジョン更新をすると リビジョン 5 になります。 以下、そこからさらに更新作業をすると 5+ 、再度リビジョン更新をすると 6 になります。
仮想ディスクに変更を加えたにもかかわらずリビジョンを更新していないときには、端末側では「新たに変更された部分」についてキャッシュを行いません。 端末側でのキャッシュの動作効率を高めるためには、仮想ディスクに変更をした際にはリビジョンを更新するようにしてください。
リビジョンの確認手順は「系列名とリビジョン」、更新の手順については「リビジョンを更新する」を参照してください。
3.1.5. 管理フラグ¶
管理フラグは、端末を起動したときの ReadCache のふるまい方を指定するために利用します。
管理フラグを変更するには ReadCache ディスク管理ツール の 管理フラグを変更する ボタンを利用します。 管理フラグの一覧については 管理フラグを変更する を確認ください。
3.1.6. 変更領域マップ¶
変更領域マップには、それぞれのリビジョンごとに、仮想ディスクのどの部分が書き換えられているかが記録されます。
仮想ディスクのリビジョンが増えるたびに、変更領域マップの情報は 1 つずつ増えていきます。 端末を起動したときに「端末側のキャッシュ データのリビジョン」と「仮想ディスクのリビジョン」が食い違っている場合、変更領域マップの情報を利用して、キャッシュ データのうちのどの領域を利用し続けられるかどうかを決定します。
3.2. キャッシュ パーティション¶
ReadCache システムでは、クライアント端末の内蔵ディスク内に「キャッシュ パーティション」を作成します。 ここではキャッシュ パーティションについて説明します。
3.2.1. キャッシュ用パーティションの構造¶
ReadCache システムはクライアント端末の内蔵ディスク内の「キャッシュ パーティション」にキャッシュを貯めます。 キャッシュ パーティションは各クライアントに接続された内蔵ディスクに 1 つだけ作成されます。
キャッシュ パーティションには、系列ごとに複数のキャッシュ領域が確保され、各キャッシュ領域は異なる系列の仮想ディスクに対して利用されます。 キャッシュ領域はキャッシュ用パーティションの容量が許す範囲で最大 10 個まで作成されます。 同じ系列に対するキャッシュ領域が 2 つ以上作成されることはありません。
3.2.2. キャッシュ パーティションの作成¶
キャッシュ パーティションの作成手順については、「ReadCache 5.0 インストール マニュアル」を参照してください。
ReadCache のドライバは起動した際に、内蔵ディスクが検出される度にそのドライブにキャッシュ パーティションが既に存在するかどうかを調べます。 存在したときには最初に見つけたキャッシュ用パーティションを用いて動作します。 キャッシュ用パーティションかどうかはパーティションID により判定され、もしそのパーティションが適切に初期化されていない時には初期化処理を行います。(Release on panic フラグが有効な場合)。
内蔵ディスクは MBR 形式ないしは GPT 形式のいずれかでフォーマットされいている必要があります。 キャッシュ用パーティションのパーティション ID は次の値を利用します。
MBR の場合: | 0xF6 |
---|---|
GPT の場合: | {0C5082E9-D20C-3542-87F5-0E7052DD8D23} |
キャッシュを動作させるためには、キャッシュ用パーティションにあらかじめ適切なパーティション ID でパーティションを作成しておく必要があります。
ただ、多数の端末にキャッシュ用のパーティションを作成する際には、ReadCache システムモニターを利用することもできます。 詳しくは キャッシュ ディスク自動設定対象の指定 をご確認ください。
3.2.3. 系列用のキャッシュ領域の作成¶
ReadCache のドライバは起動しようとするディスクと系列が同じキャッシュ領域を探します。
同じ系列名のキャッシュ領域が見つからなかったときには、起動しようとするディスクの系列が用いるキャッシュ領域を作成します。
確保するキャッシュ領域のサイズは、次のように決定します。
- 動的キャッシュ サイズ よりも「キャッシュ パーティションの空き容量」が大きいときは、 動的キャッシュ サイズ で指定されたサイズをキャッシュ領域として確保します。
- 動的キャッシュサイズの最小値 よりも「キャッシュ パーティションの空き容量」が小さいときは、 キャッシュ パーティションに空き容量がないものとして扱います。
- 上記のいずれでもないときは、キャッシュ パーティションの空き領域のすべてをキャッシュ領域として確保します。
たとえば、動的キャッシュ サイズ が 40GB、動的キャッシュサイズの最小値 が 10GB とします。 キャッシュ パーティションの空き領域が変わったときに、キャッシュ領域のサイズがどのようになるかを次の表に示します。
キャッシュ パーティションの空き容量 | キャッシュ領域のサイズ |
---|---|
50GB | 40GB (動的キャッシュ サイズ の値) |
30GB | 30GB (空き領域のすべてを利用) |
5GB | 空き領域なし |
キャッシュ パーティションに空き容量がなかったときの挙動は Release on disk full フラグ の設定により異なります。
- Release on disk full フラグがセットされているとき
- 端末内のキャッシュ データをクリアします。 端末内にあるすべての系列のキャッシュが消去される点にご注意ください。
- Release on disk full フラグがセットされていないとき
- ReadCache は動作を停止します。
3.2.4. 系列用のキャッシュ領域の利用¶
ReadCache のドライバの起動時に、起動しようとするディスクと同じ系列名のキャッシュ領域が見つかったときには、そのキャッシュ領域を利用しても動作に支障がないかどうかを評価します。
仮想ディスク上の情報とキャッシュ領域の情報とを、以下の点で比較します。
- 系列名が同一かどうか
- キャッシュ対象領域のサイズや領域が同一かどうか
- リビジョンが作成された時刻とその際に生成された乱数値が同一かどうか
- キャッシュサイズが同一かどうか
もし、系列名が同一であるにもかかわらず上記の情報のいずれかが異なっている場合の挙動は、Release on panic フラグ の設定により異なります。
- Release on panic フラグがセットされているとき
- 端末内のキャッシュ データをクリアします。 端末内にあるすべての系列のキャッシュが消去される点にご注意ください。
- Release on panic フラグがセットされていないとき
- ReadCache は動作を停止します。
上記の情報が同一でありキャッシュを利用できると判断したときには、リビジョン番号が同一になるように調整をした後にそのキャッシュ領域を利用します。 この調整においては、キャッシュされているリビジョンを仮想ディスクのリビジョンと等しくなるようにキャッシュデータの内容を調整 (削除) してからキャッシュ動作を行ないます。
なお、仮想ディスク 側のリビジョンが 0 の場合には、キャッシュ動作は行いません。