3.4.5. VHDX ファイルのマージと削除

ほたてコンソール上で不要なバージョンを削除しても、実体である .vhdx ファイルはストレージ上では削除されずに残り続けます。 ほたてコンソールで削除したバージョン(中間バージョン)は、CleanUpStore コマンドによるマージ処理によって1つの vhdx ファイルに統合(マージ)できます。 マージによって参照されなくなったファイルは、不要なディスクとして削除できます。

これらの一連の作業は、 HotateAdmin.exe コマンドを実行でき、マスターストアパスや他のストアパスにアクセスできる任意のサーバ上で実施できます。 サーバが複数ある場合においても、いずれか1箇所で実施すれば良く、複数のサーバ上で実施する必要はありません。

以下、「マージ処理」「不要になったファイルの削除」の手順を段階を追って述べますが、これらは マージと削除の自動化の設定例 の手順により自動化できます。

メモ

使用していない中間バージョンをマージして、ストレージの空き容量を増やすことができます。

注意

中間バージョンのマージをする作業途中においては、作業エリアとしての空き容量が必要です。 ストレージが一廃になってしまう前にマージ作業を行い空き容量を作るようにしてください。 なお、空き容量が不足しそうな場合や不足してしまった場合には、 ストレージのディスク容量が不足しそうになった場合 をご参照ください。

マージを実行するユーザーについて

HotateAdmin.exe CleanUpStore を実行する時は、ストアパスである共有フォルダ(vdisks)へアクセス権を持つユーザーで実行してください。 標準では共有フォルダ(vdisks)へのアクセス権を持つのは、ほたてのセットアップに用いたアカウント(ほたて管理アカウント)のみです。

中間バージョンのマージと削除の手順

ディスクイメージの「最新」「BASE」ラベルのついていない間のバージョンのことを中間バージョンと呼びます。 「中間バージョン」を削除するには、下記の操作を行います。

  1. ほたてコンソール上でバージョンを削除します。
バージョン削除 をご参照ください。 この操作をしただけでは、バージョンの実体である vhdx ファイルは削除されません。
  1. 削除した中間バージョンをマージします。

管理者権限でコマンドプロンプトを起動し、下記コマンドを実行してください。

> cd C:\Program Files\CO-CONV\HotateBoot\Server\Tools
> HotateAdmin.exe CleanUpStore /NoPeriodicMerge

このコマンドを実行すると、ゴミ箱からも削除されたバージョンを完全に削除するためにマージ処理を実施し、不要となった vhdx ファイルを bak フォルダに移動します。

注意

/delete オプションを付けて実行すると、bak フォルダーに移動することなく直ちに削除することもできますが、削除は不可逆な操作ですのでご注意ください。

注意

中間バージョンのマージをするためにも空き容量が必要です。 空き容量が不足する場合には、 ストレージのディスク容量が不足しそうになった場合 をご参照ください。

  1. マージ後のディスクで起動できることを確認します。
  2. マージによって不要となった vhdx ファイルを削除します。
  • マスターストアパスを持つサーバーの場合

    マージによって不要となった vhdx ファイルはバックアップフォルダ(ストアパス \bak )へ退避されています。 bak フォルダ内のディスクファイルを削除することで、サーバ上でディスクイメージを保持するドライブの空き容量を増やすことができます。

    注意

    削除は不可逆な操作ですのでご注意ください。 bak フォルダーに移動したファイルは、外部ストレージで一定期間保管することもご検討ください。

  • マスター以外のストアパスを持つサーバーの場合

    1. マスターストアパスからのディスクの同期(コピー)が完了するまで待ちます。

    通常、マスターストアパスから他のストアパスへのディスクの同期は、マスターストアパスを持つサーバーのタスクスケジューラの ReplicateDisk のタスクで実行されます。

    メモ

    ディスクの同期は標準では毎日深夜に実行するように設定されています。

    1. 管理者権限でコマンドプロンプトを起動し、下記コマンドを実行してください。
    > cd C:\Program Files\CO-CONV\HotateBoot\Server\Tools
    > HotateAdmin.exe CleanUpStore /delete /NoMerge /s \\serv2\store
    

    注意

    \\serv2\store は環境に合わせて正しいストパスを入力してください。 /delete オプションによりバックアップフォルダに移動することなくダイレクトに削除します。

端末への影響についての注意

中間バージョンのマージ後、マージ前のファイル(今後参照されなくなる vhdx ファイル)を削除または移動するために、Stream Server に対してディスクの開きなおしがリクエストされます。 この処理により、端末のセッションが作り直しになる際に一瞬(数秒程度)の切断が発生します。 起動中の端末への影響はありませんが、もしこの挙動を防ぎたい場合には、/NoReopen オプションを指定してください。 但し、このオプションを指定するとマージ前のファイルの一部が移動されずにストアパス内に残る可能性があります。 マージ前の状態で起動した端末が停止した後、再度 CleanupStore を実施してください。 なお、/NoReopen オプションを指定していないときにおいても、ディスクの開きなおしのリクエストに失敗したときには、マージ前のファイルの一部が移動されないことがあります。

ディスクイメージを個別にマージする

CleanUpStore コマンドの /DiskName オプションを使用することで、特定のディスクイメージのみマージを行うことができます。 /DiskName オプションを指定しない場合は、全てのディスクを対象とするため、空き容量が多く必要であったり処理に時間がかかる可能性があります。

メモ

特定のディスクイメージのみを対象とすることで必要最小限の容量での実施や処理時間の短縮が期待できます。

CleanUpStore コマンドの対象となるディスクイメージは、ディスク名またはディスクIDのどちらかで指定します。

  • ディスク名で指定する場合

    1. [ほたて管理コンソール] → [ディスク一覧] から指定するディスク名を確認します。
    2. 以下のコマンドに確認したディスク名を入力して実行します。
    HotateAdmin CleanUpStore /NoPeriodicMerge /DiskName ディスク名
    
  • ディスクIDで指定する場合

    1. [ほたて管理コンソール] → [ディスク一覧] から指定するディスクをクリックします。
    2. ディスクの詳細画面で右上の・・・から [ディスクのプロパティ] をクリックします。
    3. GUIDに書かれているディスクIDをコピーします。
    4. 以下のコマンドにコピーしたディスクIDを入力して実行します。
    HotateAdmin CleanUpStore /NoPeriodicMerge /DiskID ディスクID
    

マージと削除の自動化の設定例

次のような bat を作成し、タスクスケジューラから実行するように設定します。 bat は以下のような動作をします。

  1. マスターストアパスで削除されたバージョンをマージします。
  2. マージにより不要になった vhdx ファイルをバックアップに移動します。
  3. マスターストアパスからスレーブストアパスへのレプリケートします。
  4. スレーブ ストアパスで不要になった vhdx ファイルを削除します。

注意

ReplicateDisk.ps1 は「2024年8月版」以降のものを必ずご利用ください

set HOTATE_ADMIN="C:\Program Files\CO-CONV\HotateBoot\Server\Tools\HotateAdmin"

REM マスターストアパスでマージして、不要な vhdx を外部メディアに移動する
%HOTATE_ADMIN% CleanUpStore /q /NoPeriodicMerge /b 外部メディア

REM マージ後のファイルをマスターストアパスからスレーブストアパスに同期する
powershell -ExecutionPolicy RemoteSigned path\to\ReplicateDisk.ps1

REM スレーブストアパスで不要になったファイルは削除する
%HOTATE_ADMIN% CleanUpStore /q /delete /NoMerge /s \\serv2\store
%HOTATE_ADMIN% CleanUpStore /q /delete /NoMerge /s \\serv3\store

注意

  • bat の実行権限は StreamServer や ManageServer サービスのログオンアカウントに使用しているユーザーを用います。
  • 外部メディア内のファイルは定期的に、別の場所にバックアップして取り出すことを想定しています。
  • マスターストアパスからスレーブストアパスへのレプリケーションにおいて、ストレージ容量が枯渇してエラーになる場合は、次の処理で不要な vhdx が削除されて容量が空くことが期待されます。