2.7. フルキャッシュ

2.7.1. フルキャッシュとは

端末が利用するディスクイメージをすべて端末に転送してから、端末を起動するモードのことをフルキャッシュと呼びます。 一旦端末側にディスクイメージをすべて転送してしまう(フルキャッシュする)と、その後端末が起動する際にはサーバへのアクセスが不要になるため、無線のみの環境などで使えるようになります。

ただし、フルキャッシュには次の大きな問題があります。

  • 端末側には大容量のドライブ(通常 512GB以上)が必要となり導入コストが高くなります。
  • フルキャッシュを貯める作業に長い時間がかかります(通常端末100台あたり1日程度)。
  • イメージ更新後にそのイメージを使えるようになるまでに各端末に大量の転送が必要となり、長い待ち時間が生じます(通常半日~1ヶ月)。
  • Cドライブのサイズを導入後に拡張しづらくなります。

そのため、フルキャッシュ技術は「有線LAN接続がない状態で利用せざるを得ない端末(貸し出し用PC等)」に限定して利用することを推奨します。

Tips

フルキャッシュ利用する端末は「特定個人向けに一定期間貸し出す」といった目的に利用されることがあります。 このような目的に使う場合、再起動してしまったときに作成途中だったデータが消えてしまうことは好ましくないと考えられます。

そのためほたてには、端末の再起動後においても WriteCache をクリアしないようにする設定があります。

詳細は、端末側での非復元設定 を参照してください。

キャッシュパーティションのサイズについて

フルキャッシュの場合、フルキャッシュするディスクイメージサイズの 2~3 倍程度の容量のキャッシュ領域が必要です。 逆にいえば、Cドライブとして利用できるサイズは端末の内蔵ドライブのサイズにより制限されます。

例として、内蔵ドライブ容量が256GBの端末において、1つのディスクイメージをフルキャッシュする場合には、ディスクイメージの C ドライブサイズは 120GB 程度(実際の消費サイズ)が推奨できる最大値となります。

内蔵ドライブの容量 推奨されるCドライブサイズ
128GB 40GB以下
256GB 120GB以下
512GB 300GB以下

メモ

フルキャッシュするイメージが1種類のみの場合に推奨されるサイズです。

フルキャッシュ配信設定

フルキャッシュされた端末がある場合には、イメージ更新を行ったあと、その差分イメージを各端末(全端末)に配信する必要があります。 この配信が終わるまでは端末は更新後のディスクを利用できません(更新前のディスクや他のディスクによる端末起動や端末利用は問題なく行えます)。

差分イメージのサイズはイメージ更新の内容(分量)によっても変わりますが、通常の更新手順を取った場合には少なくても1GB、通常は10GB程度にもなります。 そのため、イメージ更新後に端末側で更新後のディスクの動作確認をするまでに長い待ち時間が必要となります。

フルキャッシュのためのディスクイメージの配信は通常の端末起動時の配信とは異なる方式で行われ、以下の特徴があります。

  • 他のディスクやバージョンで起動中にバックグランドで行われます。
  • ユニキャストだけでなくマルチキャストやブロードキャストを用いて行うことも可能です。
  • 中継端末を用いた配信を行うこともできます。

注意

「Windows Desktop OS はサーバー(他の端末に対して機能提供すること)としての利用をしてはいけない [1]」というMicrosoft のライセンス条件があるため、Windows で起動している端末で中継配信を行わないようにしてください。

[1](1, 2) 「ファイルサーバとしての利用」「プリンタサーバとしての利用」「NATとしての利用」等、極めて限定的な目的に対してのみサーバとしての利用が許諾されています(それ以外の目的においてサーバとして利用してはいけない)。

フルキャッシュを貯める方法

フルキャッシュを貯めるには HotateSpray を利用します。 HotateSpray は HotateSpray サーバーと HotateSpray クライアントで構成されるフルキャッシュの配信に特化したモジュールです。

HotateSpray が動作することで、各端末は自動的にキャッシュを取得します。 ユニキャスト・ブロードキャスト・マルチキャストによる配信や、中継端末を使用した配信が可能です。

メモ

利用手順の詳細は HotateSpray を参照してください。

オフラインブートについて

フルキャッシュした端末をネットブートすることなく起動することをオフラインブートと呼びます。 オフラインブートするには、「ディスクイメージのフルキャッシュ」と「端末内蔵ディスクの EFI パーテイションへのオフラインブートモジュールの配置」が必要です。

メモ

詳細は オフラインブート のドキュメントを参照してください。

フルキャッシュ配信状況の確認

ほたてモニターコンソール からフルキャッシュの配信状況を確認できます。

ブラウザから https://HotateMonitorServerIP:30807 にアクセスしてフルキャッシュの項から配信状況をご確認ください。

メモ

HotateMonitorServerIP には HotateMonitorClient.ini に設定した IP を指定してください。

フルキャッシュ欄に配信状況が表示されます。

ほたてモニターコンソール

例) フルキャッシュ用の領域が作成された直後

配信前のほたてモニターコンソール

例) 配信中

配信中のほたてモニターコンソール

例) 配信が完了した直後

配信完了後のほたてモニターコンソール

配信が完了後、再起動し更新後のバージョンで起動した際には、 起動ディスク欄の「フルキャッシュ起動」に✅が入ります。

ほたてモニターコンソール

メモ

フルキャッシュ欄にはいま貯める必要があるキャッシュ領域の情報が表示されます。

2.7.2. HotateSpray

HotateSpray は HotateSpray サーバーと HotateSpray クライアントで構成されるフルキャッシュの配信に特化したモジュールです。

HotateSpray が動作することで、各端末は自動的にキャッシュを取得します。 ユニキャスト・ブロードキャスト・マルチキャストによる配信や、中継端末を使用した配信が可能です。

メモ

HotateSpray を利用することで、迅速かつ効率的なイメージ配信を行えるようになります。

配信の仕組み

HotateSpray における配信では、配信管理は配信グループごとに独立して行われます。

配信グループ内の各端末は自分自身の現在のキャッシュ情報や、フルキャッシュ状態になる為に必要な情報をサーバーに通知します。 サーバーは端末からの情報をもとに、配信戦略を決定し、端末に対して何をすべきかの指示を行います。

配信方式

HotateSpray では以下のような方法で配信を行うことができます。

  • サーバーからの直接ユニキャスト配信

    サーバーから端末に対して直接ユニキャストによる配信を行います。

    メモ

    ユニキャスト配信では設定された同時転送台数を超えることがないように、一部の端末が転送待機状態になることがあります。

  • サーバーからのブロードキャスト(マルチキャスト)配信

    各端末が未受信のブロックをブロードキャスト(マルチキャスト)で一斉に配信します。 端末に対してはブロードキャスト(マルチキャスト)受信の指示を行い、一定時間経過後、サーバーからブロードキャスト(マルチキャスト)送信を開始します。 ブロードキャスト(マルチキャスト)配信終了後は、再度配信戦略の決定を行い配信を行います。

    注意

    ブロードキャスト(マルチキャスト)では UDP による通信の為、何らかの理由でパケットが欠損する可能性があります。 そのような理由により不足したデータは、次の配信戦略決定後に配信されることになります。

  • 中継端末を利用したユニキャスト配信

    サーバーからユニキャスト配信を行いつつ、同時に中継端末から通常端末へとユニキャスト配信を行います。 まず、中継端末に対してフルキャッシュ状態になるためにサーバーからのユニキャスト配信を行います。 同時に、中継端末へ転送されたデータをもとに、通常端末に対して中継端末からのユニキャストによる転送指示を行います。

    メモ

    ユニキャスト配信では設定された同時転送台数を超えることがないように、一部の端末が転送待機状態になることがあります。

  • 中継端末を利用したブロードキャスト(マルチキャスト)配信

    まず、中継端末を1台選択し、フルキャッシュ状態になるためにサーバーからのユニキャスト配信を行います。 中継端末がフルキャッシュ状態になった後、 受信側の端末に対してはブロードキャスト受信の指示を行い、 一定時間経過後、各端末が未受信のブロックをブロードキャスト(マルチキャスト)で一斉に配信します。

    ブロードキャスト配信終了後は、再度配信戦略の決定を行い、配信を行います。

注意

「Windows Desktop OS はサーバー(他の端末に対して機能提供すること)としての利用をしてはいけない [1]」というMicrosoft のライセンス条件があるため、Windows で起動している端末で中継配信を行わないようにしてください。

2.7.3. HotateSpray の準備

HotateSpray のセットアップは、次の順番で行います。

  1. HotateSpray サーバーのセットアップ
  2. HotateSprayClient のセットアップ
  3. フルキャッシュの有効化

HotateSpray サーバーのセットアップ

メモ

CO-Navi を用いてほたてサーバーのインストールを行っている場合には、HotateSpray はインストール済みです。

必要に応じて、フルキャッシュ配信の対象となる端末のグループ設定や配信方式の設定を行います。 詳細は HotateSpray の詳しい設定 を参照してください。 なお、標準では 全ての端末に対して、サーバーからの直接ユニキャストを行うことができる設定になっています。

HotateSprayClient のセットアップ

フルキャッシュするディスクイメージを更新モードで起動し、下記の設定を行ってください。

  1. HotateSprayClient スクリプトの配置
  2. タスクスケジューラの設定
  3. Windows Defender FW の設定(2021年以前のバージョンからアップデートした場合のみ)

HotateSprayClient スクリプトの配置

最新のSetupClient を ダウンロードサイト からダウンロードしてください。

SetupClient\ExecuteHotateSprayClient フォルダー内の下記3つのファイルを C:\ProgramData\CO-CONV\HotateBoot\Tools に配置してください。

  • ExecuteHotateSprayClient.bat
  • ExecuteHotateSprayClient.ps1
  • ExecuteHotateSprayClient.config

ExecuteHotateSprayClient.config のDefaultServer に配信に使用するHotateSprayServer を設定します。

192.168.10.11 のサーバーを指定する場合は、

DefaultServer="192.168.10.11"

とします。

メモ

配信を受ける端末の拠点(ネットワーク)によって配信サーバーを分けたい場合には、Networks の設定を使用します。 記述方法は ExecuteHotateSprayClient.config 内のサンプルを参照してください。

タスクスケジューラの設定

Windows のタスクスケジューラに下記のタスクを登録します。

タブ 設定
全般
[名前]
HotateBootUpdateFullcache (任意)
[セキュリティオプション]
ユーザーアカウント:SYSTEM
☑ 最上位の特権で実行する
トリガー
スタートアップ時
操作
[操作]
プログラムの開始
[設定]
・プログラム/スクリプト
C:\ProgramData\CO-CONV\HotateBoot\Tools\ExecuteHotateSprayClient.bat
条件
[コンピュータを AC 電源で使用している場合のみタスクを開始する]
のチェックを外す
設定
デフォルトの値のまま

Windows Defender FW の設定

2021年8月版以前のバージョンから 2022年1月版へアップデートした場合には、下記コマンドを実行して HotateSprayClient.exe 用の FW 設定を行ってください。

netsh advfirewall firewall add rule name="HotateSprayClient" dir=in action=allow program="C:\Program Files\CO-CONV\HotateBoot\Client\HotateSprayClient\HotateSprayClient.exe"

フルキャッシュの有効化

フルキャッシュをする為には、フルキャッシュする端末(端末グループ)に割り当てられたブートメニューのメニューアイテムに対してフルキャッシュを有効にする設定を行う必要があります。 手順は以下の通りです。

  1. ほたてコンソールからフルキャッシュする端末のブートメニュー設定を開きます。
CO Colors ブートメニュー一覧
  1. フルキャッシュ対象ディスクのメニューアイテム名をクリックします。
CO Colors メニューアイテムの選択
  1. [フルキャッシュ設定を有効にする] にチェックを入れて [適用] ボタンを押す。
CO Colors フルキャッシュの有効化

注意

「オフラインの時のみ有効」にチェックを入れた場合は、チェックを入れたメニューは端末起動時のブートメニューに表示されません。

メニューアイテムが1つしかない場合にこのチェックを入れると、ブートメニューが割り当たってないというエラーでネットブート起動できなくなる点にご注意ください。

2.7.4. HotateSpray の詳しい設定

配信グループの設定、配信方式の設定は、設定ファイル HotateSprayServerConfig.json に記述します。 設定ファイルは、 C:\ProgramData\CO-CONV\HotateBoot フォルダ直下に配置します。 デフォルトは、サーバーからの直接ユニキャスト配信の設定になっています。 設定を変更した場合には、HotateSprayServer サービスの再起動が必要です。

HotateSprayServerConfig の設定例

以下に各配信方式の設定サンプルを記載します。 各設定項目の説明については後述する 各種パラメータの説明 を参照してください。

サーバーからの直接ユニキャスト配信

{
  // 制御サーバーに対する問い合わせ周期(秒)
  "StrategyRequestIntervalSeconds": 15,
  // 端末情報を失効させるまでの時間(秒)
  "HostInfoExpireIntervalSeconds": 120,
  // 配信管理の処理を行う周期(秒)
  "DistributionManagementIntervalSeconds": 30,
  // サーバーからの同時ユニキャスト転送数の上限
  "ServerUnicastTransferCountLimit": 20,
  // 配信に利用するディスク置き場(文字のエスケープに注意)
  "StoragePath": "\\\\192.168.10.1\\vDisks",
  // ホタテプロトコル経由でディスクを読み出す場合
  // "192.168.10.1" や "192.168.10.1:30810" のフォーマットで書ける
  //"BootMenuServerIP": "192.168.10.1:30810",
  // サーバー側で制御・配信に利用する IP アドレス
  "ServerDistributionIP": "192.168.10.1",
  // 配信グループ
  "DistributionGroups": [
  {
    // 配信グループ名
    "Name": "HostGroup-A",
    // 端末群が属するセグメント
    "HostSegments": ["192.168.10.0/24"],
    // 許可する配信モード
    "AllowedDistributionModes": [
      "ServerUnicast" // サーバーを利用したユニキャスト配信
    ],
    // 配信戦略を決定する前に端末を待機する時間(秒)
    "PreDistributionWaitingHostsSeconds": 180,
    // サーバー、中継端末からのユニキャスト転送速度 (kbps 単位)
    "UnicastSendRate": 500000,
    // 中継端末に対する最大同時接続数
    "RelayUnicastTransferCountLimit": 10,
  }
  ],
}

設定例: サーバーからのブロードキャスト(マルチキャスト)配信

{
  // 制御サーバーに対する問い合わせ周期(秒)
  "StrategyRequestIntervalSeconds": 15,
  // 端末情報を失効させるまでの時間(秒)
  "HostInfoExpireIntervalSeconds": 120,
  // 配信管理の処理を行う周期(秒)
  "DistributionManagementIntervalSeconds": 30,
  // サーバーからの同時ユニキャスト転送数の上限
  "ServerUnicastTransferCountLimit": 20,
  // 配信に利用するディスク置き場(文字のエスケープに注意)
  "StoragePath": "\\\\192.168.10.1\\vDisks",
  // ホタテプロトコル経由でディスクを読み出す場合
  // "192.168.10.1" や "192.168.10.1:30810" のフォーマットで書ける
  //"BootMenuServerIP": "192.168.10.1:30810",
  // サーバー側で制御・配信に利用する IP アドレス
  "ServerDistributionIP": "192.168.10.1",
  // 配信グループ
  "DistributionGroups": [
  {
    // 配信グループ名
    "Name": "HostGroup-A",
    // 中継端末の IP アドレス
    //"RelayHostIPs" : ["192.168.10.104"],
    // 端末群が属するセグメント
    "HostSegments": ["192.168.10.0/24"],
    // 許可する配信モード
    "AllowedDistributionModes": [
      "ServerBroadcast", // サーバーを利用したブロードキャスト配信
      "ServerUnicast" // サーバーを利用したユニキャスト配信
    ],
    // 配信戦略を決定する前に端末を待機する時間(秒)
    "PreDistributionWaitingHostsSeconds": 180,
    // 自動で選択する中継端末の最大台数
    "RelayUnicastHostsCountLimit": 10,
    // 自動で選択する中継端末の割合
    "RelayUnicastHostsCountRatio": 0.2,
    // サーバー、中継端末からのユニキャスト転送速度 (kbps 単位)
    "UnicastSendRate": 500000,
    // 中継端末に対する最大同時接続数
    "RelayUnicastTransferCountLimit": 10,
    // ブロードキャスト配信でブロックを
    // 配信対象に含める判定での要求端末数の閾値
    "BroadcastHostCountThreshold": 10,
    // ブロードキャスト配信で配信対象のブロック数
    // による配信判定で配信対象のブロック数の閾値
    "BroadcastBlockCountThreshold": 100,
    // ブロードキャスト配信での受信準備が完了するまで待機する時間(秒)
    "BroadcastPreparingSeconds": 120,
    // ブロードキャスト配信のパラメータ
    "BroadcastParams": {
      // チャンネル ID
      "BroadcastChannelId": 1,
      // 受信タイムアウトまでの時間
      "BroadcastTimeout": 300,
      // 送信速度(kbps)
      "BroadcastRate": 100000,
      // 再送回数
      "BroadcastResendCount": 0,
      // 使用するエンコード方式
      "BroadcastEncodeType": "Fec125",
      // 使用する圧縮方式
      "BroadcastCompressionType": "RunLength",
      //"MulticastGroupIp": "224.0.100.45"
    },
  }
  ],
}

設定例: 中継端末を利用したユニキャスト配信

{
  // 制御サーバーに対する問い合わせ周期(秒)
  "StrategyRequestIntervalSeconds": 15,
  // 端末情報を失効させるまでの時間(秒)
  "HostInfoExpireIntervalSeconds": 120,
  // 配信管理の処理を行う周期(秒)
  "DistributionManagementIntervalSeconds": 30,
  // サーバーからの同時ユニキャスト転送数の上限
  "ServerUnicastTransferCountLimit": 20,
  // 配信に利用するディスク置き場(文字のエスケープに注意)
  "StoragePath": "\\\\192.168.10.1\\vDisks",
  // ホタテプロトコル経由でディスクを読み出す場合
  // "192.168.10.1" や "192.168.10.1:30810" のフォーマットで書ける
  //"BootMenuServerIP": "192.168.10.1:30810",
  // サーバー側で制御・配信に利用する IP アドレス
  "ServerDistributionIP": "192.168.10.1",
  // 配信グループ
  "DistributionGroups": [
  {
    // 配信グループ名
    "Name": "HostGroup-A",
    // 中継端末の IP アドレス
    //"RelayHostIPs" : ["192.168.10.104"],
    // 端末群が属するセグメント
    "HostSegments": ["192.168.10.0/24"],
    // 許可する配信モード
    "AllowedDistributionModes": [
      "ClientUnicast", // 中継端末を利用したユニキャスト配信
      "ServerUnicast" // サーバーを利用したユニキャスト配信
    ],
    // 配信戦略を決定する前に端末を待機する時間(秒)
    "PreDistributionWaitingHostsSeconds": 180,
    // 自動で選択する中継端末の最大台数
    "RelayUnicastHostsCountLimit": 10,
    // 自動で選択する中継端末の割合
    "RelayUnicastHostsCountRatio": 0.2,
    // サーバー、中継端末からのユニキャスト転送速度 (kbps 単位)
    "UnicastSendRate": 500000,
    // 中継端末に対する最大同時接続数
    "RelayUnicastTransferCountLimit": 10,
  }
  ],
}

設定例: 中継端末を利用したブロードキャスト(マルチキャスト)配信

{
  // 制御サーバーに対する問い合わせ周期(秒)
  "StrategyRequestIntervalSeconds": 15,
  // 端末情報を失効させるまでの時間(秒)
  "HostInfoExpireIntervalSeconds": 120,
  // 配信管理の処理を行う周期(秒)
  "DistributionManagementIntervalSeconds": 30,
  // サーバーからの同時ユニキャスト転送数の上限
  "ServerUnicastTransferCountLimit": 20,
  // 配信に利用するディスク置き場(文字のエスケープに注意)
  "StoragePath": "\\\\192.168.10.1\\vDisks",
  // ホタテプロトコル経由でディスクを読み出す場合
  // "192.168.10.1" や "192.168.10.1:30810" のフォーマットで書ける
  //"BootMenuServerIP": "192.168.10.1:30810",
  // サーバー側で制御・配信に利用する IP アドレス
  "ServerDistributionIP": "192.168.10.1",
  // 配信グループ
  "DistributionGroups": [
  {
    // 配信グループ名
    "Name": "HostGroup-A",
    // 中継端末の IP アドレス
    //"RelayHostIPs" : ["192.168.10.104"],
    // 端末群が属するセグメント
    "HostSegments": ["192.168.10.0/24"],
    // 許可する配信モード
    "AllowedDistributionModes": [
      "ClientUnicast", // 中継端末を利用したユニキャスト配信
      "ClientBroadcast", // 中継端末を利用したブロードキャスト配信
      "ServerUnicast" // サーバーを利用したユニキャスト配信
    ],
    // 配信戦略を決定する前に端末を待機する時間(秒)
    "PreDistributionWaitingHostsSeconds": 180,
    // 自動で選択する中継端末の最大台数
    "RelayUnicastHostsCountLimit": 10,
    // 自動で選択する中継端末の割合
    "RelayUnicastHostsCountRatio": 0.2,
    // サーバー、中継端末からのユニキャスト転送速度 (kbps 単位)
    "UnicastSendRate": 500000,
    // 中継端末に対する最大同時接続数
    "RelayUnicastTransferCountLimit": 10,
    // ブロードキャスト配信でブロックを
    // 配信対象に含める判定での要求端末数の閾値
    "BroadcastHostCountThreshold": 10,
    // ブロードキャスト配信で配信対象のブロック数
    // による配信判定で配信対象のブロック数の閾値
    "BroadcastBlockCountThreshold": 100,
    // ブロードキャスト配信での受信準備が完了するまで待機する時間(秒)
    "BroadcastPreparingSeconds": 120,
    // ブロードキャスト配信のパラメータ
    "BroadcastParams": {
      // チャンネル ID
      "BroadcastChannelId": 1,
      // 受信タイムアウトまでの時間
      "BroadcastTimeout": 300,
      // 送信速度(kbps)
      "BroadcastRate": 100000,
      // 再送回数
      "BroadcastResendCount": 0,
      // 使用するエンコード方式
      "BroadcastEncodeType": "Fec125",
      // 使用する圧縮方式
      "BroadcastCompressionType": "RunLength",
      //"MulticastGroupIp": "224.0.100.45"
    },
  }
  ],
}

各種パラメータの説明

最上位

  • StrategyRequestIntervalSeconds

    サーバーとクライアント間でストラテジーを交換する通信の時間間隔(秒)を指定します。

    デフォルト値は 15 秒です。

  • HostInfoExpireIntervalSeconds

    端末からのストラテジー要求が途切れた後、端末情報を削除するまでの時間を指定します。

    デフォルト値は 120 秒です。

  • DistributionManagementIntervalSeconds

    配信管理で処理を行う周期を指定します。

    デフォルト値は 30 秒です。

  • ServerUnicastTransferCountLimit

    サーバーからのユニキャスト配信で同時に転送できる台数の最大値を指定します。 サーバーは指定した台数を超えない範囲の通常端末に対してユニキャスト配信を行います。

    デフォルト値は 20 台です。

  • StoragePath

    ディスクイメージのストレージへのパスを指定します。 ServerUnicast か ServerBroadcast を利用する場合、StoragePath かBootMenuServerIP のいずれかを指定する必要があります。

  • BootMenuServerIP

    Hotate プロトコル経由でディスクを読み出す場合の BootMenuServer を指定します。 192.168.10.1192.168.10.1:30810 のフォーマットで指定できます。 ServerUnicast か ServerBroadcast を利用する場合、 StoragePath か BootMenuServerIP のいずれかを指定する必要があります。

  • ServerDistributionIP

    ストラテジーサーバーが Listen する IP アドレスを指定します。 指定した IP アドレスで ServerUnicast や ServerBroadcast の配信も行われます。

  • DistributionGroups

    配信グループです。詳細は後述のとおりです。

DistributionGroup

  • Name

    配信グループの名前を指定します。

  • RelayHostIPs

    中継端末の IP アドレスを指定します。 IP アドレスが指定されていない場合は、自動的に中継端末が選択されます。

  • NormalHostIPs

    通常端末の IP アドレスを指定します。

    NormalHostIPs か HostSegment のいずれかを必ず選択してください。 いずれも設定されている場合、 NormalHostIPs の設定が優先されます。

  • HostSegments

    端末が属するセグメント(192.168.X.Y/Z の記法)を指定します。 下記のように記述することで複数指定することが出来ます。

    HostSegments": ["192.168.10.0/24","192.168.20.0/24"],
    

    注意

    NormalHostIPs か HostSegment のいずれかを必ず選択してください。 いずれも設定されている場合、 NormalHostIPs の設定が優先されます。

  • AllowedDistributionModes

    配信に利用できるモードを指定します。 モードとしては以下が存在します。

    • ClientUnicast (中継端末からのユニキャスト配信)
    • ClientBroadcast (中継端末からのブロードキャスト、マルチキャスト配信)
    • ServerUnicast (サーバーからのユニキャスト配信)
    • ServerBroadcast (サーバーからのブロードキャスト、マルチキャスト配信)
    • StoreSecondaryCache (StreamServer を利用した配信)

    注意

    ServerUnicast または StoreSecondaryCache のいずれかは必ず含めるようにしてください。

  • PreDistributionWaitingHostsSeonds

    配信戦略を決定する前に、十分な端末がサーバーに接続するまで待機する時間(秒)を指定します。

    デフォルト値は 180 秒です。

  • RelayUnicastHostsCountLimit

    RelayHostIPs が指定されておらず、自動的に中継端末を選択する場合、 選択する中継端末の台数の最大値を設定します。

    デフォルト値は 5 台です。

  • RelayUnicastHostsCountRatio

    RelayHostIPs が指定されておらず、自動的に中継端末を選択する場合、 選択する中継端末の台数の配信対象端末台数に対する割合を設定します。

    デフォルト値は 0.2 (20%) です。

    中継端末台数は次の式で決定します。

    Min(RelayUnicastHostsCountLimit, Ceil(配信対象端末台数 * RelayUnicastHostsCountRatio))
    

    メモ

    例えば、RelayUnicastHostsCountLimit = 5、RelayUnicastHostsCountRatio = 0.2 のとき、中継端末の台数は次のようになります。

    • 配信対象端末台数が 1 台のとき: 中継端末は 1 台
    • 配信対象端末台数が 5 台のとき: 中継端末は 1 台
    • 配信対象端末台数が 6 台のとき: 中継端末は 2 台
    • 配信対象端末台数が 10 台のとき: 中継端末は 2 台
    • 配信対象端末台数が 11 台のとき: 中継端末は 3 台
    • 配信対象端末台数が 30 台のとき: 中継端末は 5 台 (RelayUnicastHostsCountLimit = 5 のため)
  • UnicastSendRate

    サーバー及び中継端末からのユニキャスト配信での転送速度(kbps)を指定します。

    デフォルト値は 500000 kbps(500Mbps) です。

  • RelayUnicastTransferCountLimit

    中継端末からのユニキャスト配信で同時に転送できる台数の最大値を指定します。 中継端末は指定した台数を超えない範囲の通常端末に対してユニキャスト配信を行います。

    デフォルト値は 10 台です。

  • BroadcastHostCountThreshold

    ブロードキャスト配信実行の判定で、 あるブロックを要求する端末の台数が指定した値以上の時、ブロックをブロードキャストの配信対象に含めます。

    デフォルト値は 10 です。

  • BroadcastBlockCountThreshold

    ブロードキャスト配信の対象になっているブロックの数が指定した値以上の時、 ブロードキャスト配信を実行します。

    デフォルト値は 100 です。

  • BroadcastPreparingSeonds

    ブロードキャスト配信を行う前に、端末が準備完了状態になるまで待機する時間(秒)を指定します。

    デフォルト値は 120 秒です。

  • BroadcastParams

    ブロードキャスト配信のパラメータです。詳細は後述のとおりです。

BroadcastParams

  • BroadcastChannelId

    ブロードキャスト配信で利用するチャネル ID を指定します。

    デフォルト値は 1 です。

  • BroadcastTimeout

    ブロードキャスト配信で受信のタイムアウトまでの時間(秒)を指定します。

    デフォルト値は 300 秒です。

  • BroadcastRate

    ブロードキャスト配信で送信する速度(kbps)を指定します。

    デフォルト値は 100000 kbs(100Mbps) です。

  • BroadcastResendCount

    ブロードキャスト配信で再送する回数を指定します。

    デフォルト値は 0 です。

  • BroadcastEncodeType

    ブロードキャスト配信でブロックのエンコード方式を指定します。

    指定可能なエンコード方式は以下の通りです。 * Raw (無変換)

    • Fec125 (FEC をかけて 10/8 にするエンコード方式)
    • Fec200 (FEC をかけて 16/8 にするエンコード方式)
    • FecBigInteger200 (FecBigInteger200 で 16/8 にするエンコード方式)

    デフォルト値は Fec125 です。

  • BroadcastCompressionType

    ブロードキャスト配信でブロックの圧縮方式を指定します。

    指定可能な圧縮方式は以下の通りです。

    • Raw (無圧縮)
    • Zip (ZIP圧縮)
    • RunLength (ランレングス圧縮)

    デフォルト値は RunLength です。

  • MulticastGroupIp

    マルチキャスト配信を利用する場合、マルチキャスト IP アドレスを指定します。

2.7.5. 初回配信

初回の配信は端末をネットブートで起動して行う必要があります。

初回配信は以下のように行います。

  1. PC を有線LANでネットワークに接続します。
ネットブート起動できるネットワークに接続してください。
  1. 配信が完了されるのを待ちます。
配信状況は HotateMonitor コンソールで確認できます。 詳しくは フルキャッシュ配信状況の確認 を参照してください。
  1. キャッシュ率が 100% になるのを待ちます。
100% になった後 HDD にデータを反映する為に 70秒ほど待機が必要です。
  1. 端末をシャットダウンします。

2.7.6. オフラインブート

オフラインブートについて

CO-Colors ほたて環境では、通常はネットブート(端末をネットワークに接続して、サーバ上のディスクを用いて起動すること)を利用して端末を起動します。 その一方で、「一般に無線環境で利用される貸し出し用端末」や「試験を実施するためにネットワークへのアクセスを禁止した状態で端末を利用したいとき」などでは、端末をネットワークに接続していない状態で起動したいこともあります。

この目的のために利用するのが「オフラインブート機能」で、オフラインブート機能を使うと端末をネットワークに接続することなく起動できます。 オフラインブートするには、起動したいディスクイメージを各端末の内蔵ディスクにフルキャッシュするとともに、端末内蔵ディスクにオフラインブート用のモジュールを配置して、そのモジュールから起動する必要があります。

オフラインブートの条件

端末をオフライン起動するために、以下のことをご確認ください。

  • 端末のBIOSにおいて、「ローカルディスクからブート」する設定が有効になっていること

    Tips

    ネットブートの次にローカルディスクを優先する設定にしておくことで、ネットブートできないときにはオフラインブートするように構成できます。

  • 端末内のディスクが (最近の)HotateFormatterでフォーマットされていること

    メモ

    HotateFormatterにより端末内のディスクに EFIパーティションが作られ、その内部に CO-BooterMenu.efi 等のオフラインブートに必要なファイル群がコピーされます。

  • 端末内のディスクのキャッシュ領域にフルキャッシュされたディスクがたまっていること

  • 端末が前回起動したときに HotateClient.exe updatebootmenu が実行されていて、端末のブートメニューが端末内のキャッシュ領域に記録されていること

端末内蔵ディスクの構成について

オフラインブートでは、端末内蔵ディスクにある EFI パーティションから起動します。 そのため、端末内蔵ディスクにEFIパーティションがあることが必須です。 また、オフラインブート用のモジュールや設定ファイル群は、端末内蔵ディスクの EFI パーティション内に配置します。

通常、各端末を展開する際にはほたての標準手順に従い、内蔵ディスクを HotateFormatter を用いて初期化しますが、その時に自動的に EFI パーティションが作成、同時にオフラインブート用のモジュールがEFIパーティション内に配置されます。

オフラインブートモジュールの構成と初期展開について

オフラインブートモジュールのファイル・フォルダ構成は下記の通りです。 これらのモジュールは端末内蔵ドライブをHotateFormatter [2] で初期化する際に、TFTPサーバ上の HFextra.tgz ファイルを展開することで配置されます。 オフラインブートした際に表示されるブートメニューのデザイン等をカスタマイズしたい際には、このファイルを適宜編集してください。

EFI\Boot
    |- bootx64.efi
    |- HotateNbp.efi
    |- CO-Booter.efi
    |- CO-BooterMenu.efi
    |- CO-BooterEFI.ini
    |- mouse_cursor.ini
    |- CO-BooterMenu.ini
    |- hotkey.ini
    |- CO-BooterMenu_admin.ini
    |- options.ini
    |- design.ini
    |- images
    |         |- cursor.png
    |
    |- 1024x768
    |         |- CentOS_active.png
    |         |- design_sub_1024x768.ini
    |         |- Windows10_active.png
    |         |- Linux_inactive.png
    |         |- windows_active.png
    |         |- banner.png
    |         |- numbers.png
    |         |- CentOS_inactive.png
    |         |- Windows11_active.png
    |         |- Windows10_inactive.png
    |         |- Linux_active.png
    |         |- banner-admin.png
    |         |- Windows11_inactive.png
    |         |- Ubuntu_active.png
    |         |- Ubuntu_inactive.png
    |         |- background.png
    |         |- banner-localboot.png
    |
    |- 1920x1080
    |         |- banner.png
    |         |- numbers.png
    |         |- banner-admin.png
    |         |- design_sub_1920x1080.ini
    |         |- background.png
    |         |- banner-localboot.png

メモ

端末を起動し HotateFormatter を実行した際の最初の選択肢で、 2: Execute addtional commands 又は 3: Both を選択しているときを想定しています。

Which work do you want ? (default:3)
  1:  Format Internal drive
  2:  Execute addtional commands
  3:  Both
>>>
[2]2022年1月版以降のバージョンでこの機能が追加されました。

2.7.7. 差分配信

イメージ更新により発生した差分をフルキャッシュ端末に配信します。

差分配信の流れ

差分配信は、端末をネットブート起動する場合とオフラインブートで起動する場合で動作が異なります。 多くの場合においてフルキャッシュ端末はオフラインで起動(ローカル起動)するように設定される為、ここではオフライン起動の場合における差分配信の流れを説明します。

メモ

HotateSpray サーバーと通信できる環境で端末を起動してください。

  1. 1回目の起動
差分キャッシュ領域の作成が行われます。
  1. 2回目の起動
差分の配信が行われます。

注意

ディスクイメージの更新後、更新差分の配信は2回目の起動時に行われます。

メモ

ネットブート起動する場合には 1回目の起動は不要です。

2.7.8. 端末側での非復元設定

HotateClient.exe writecache コマンドを使用した非復元設定の方法を示します。

コマンドの構文

HotateClient.exe WriteCache
HotateClient.exe WriteCache persistent [on|off|clear]

各オプションについては下記を参照ください。

Writecache 現在の書き込みキャッシュの状態を表示します。
WriteCache persistent 書き込みキャッシュを永続化するかどうかを指定します (未設定時は off) 。
on

永続化を有効にします。起動中にディスクに書き込ん だデータは シャットダウン後も維持されます。ただ し、次のようなケースでは書きこまれたデータが消え てしまう点に注意してください。

  • 端末が強制終了した場合
  • 同一ディスクの別バージョンで起動した場合
  • 更新モードで起動した場合
  • 復元ありの設定に変わった場合
off 永続化を無効にします。起動中にディスクに書き込ん だデータはシャットダウン後に消えて、再起動するた びにサーバー側のディスクと同じ状態で起動します。
clear いまの書き込みキャッシュは消えますが、それ以後は 永続化が有効になります。一度サーバー側のディスク と同じ状態で起動して、そのあとは書き込んだデータ はシャットダウン後も維持されます。

実行例

  • 現在の書き込みキャッシュの状態を確認する

    C:\Windows\system32>cd "c:\Program Files\CO-CONV\HotateBoot\client"
    
    c:\Program Files\CO-CONV\HotateBoot\client>HotateClient.exe writecache
    
    書き込みキャッシュの永続化: 無効 (再起動するとデータは元に戻る)
    
  • 復元なしの設定する

    c:\Program Files\CO-CONV\HotateBoot\client>HotateClient.exe writecache persistent on
    
    書き込みキャッシュの永続化設定を変更しました。
      変更前: 無効 (再起動するとデータは元に戻る)
      変更後: 有効 (再起動してもデータは維持される)
    
  • 復元ありの設定にする

    c:\Program Files\CO-CONV\HotateBoot\client>HotateClient.exe writecache persistent off
    
    書き込みキャッシュの永続化設定を変更しました。
      変更前: 有効 (再起動してもデータは維持される)
      変更後: 無効 (再起動するとデータは元に戻る)
    
  • 復元なしの設定且つ、次回起動時に書き込みキャッシュをクリアするように設定する。

    c:\Program Files\CO-CONV\HotateBoot\client>HotateClient.exe writecache persistent clear
    
    書き込みキャッシュの永続化設定を変更しました。
      変更前: 有効 (再起動してもデータは維持される)
      変更後: 次から有効 (再起動時にデータは元に戻るが、それ以後は維持される)