この節では、ゲストドメインにエクスポートされる仮想ディスクバックエンドを格納するために ZFS (Zettabyte File System) を使用する方法について説明します。ZFS は、仮想ディスクバックエンドを作成および管理するための便利で強力なソリューションです。ZFS では次のことを実行できます。
ZFS ボリュームまたは ZFS ファイルにディスクイメージを格納する
ディスクイメージのバックアップにスナップショットを使用する
ディスクイメージの複製と、追加ドメインのプロビジョニングに複製を使用する
ZFS の使用法の詳細は、『Solaris ZFS 管理ガイド』 を参照してください。
次の説明および例で示す primary ドメインは、ディスクイメージが格納されるサービスドメインでもあります。
ディスクイメージを格納するには、まずサービスドメインに ZFS ストレージプールを作成します。たとえば、次のコマンドでは、primary ドメインにディスク c1t50d0 が格納された ZFS ストレージプール ldmpool が作成されます。
primary# zpool create ldmpool c1t50d0 |
次のコマンドは、ゲストドメイン ldg1 にディスクイメージを作成します。このゲストドメイン用に ZFS ファイルシステムを作成し、このゲストドメインのすべてのディスクイメージをそのファイルシステムに格納します。
primary# zfs create ldmpool/ldg1 |
ディスクイメージは、ZFS ボリュームまたは ZFS ファイルに格納できます。ZFS ボリュームは、サイズにかかわらず、zfs create -V コマンドを使用すると迅速に作成できます。一方、ZFS ファイルは、mkfile コマンドを使用して作成する必要があります。このコマンドの完了まで少し時間がかかることがあります。特に、作成するファイルが非常に大きいときに時間がかかり、多くはディスクイメージの作成時に該当します。
ZFS ボリュームと ZFS ファイルはいずれも、スナップショットや複製など、ZFS 機能の利点を利用できますが、ZFS ボリュームは疑似デバイス、ZFS ファイルは通常のファイルです。
ディスクイメージを、Solaris OS のインストール先の仮想ディスクとして使用する場合は、次のものを収容できる容量を確保してください。
インストールされるソフトウェア - 約 6G バイト
スワップパーティション - 約 1G バイト
システムデータを格納するための特別なスペース - 1G バイト以上
したがって、Solaris OS 全体をインストールするためのディスクイメージのサイズは、8G バイト以上になります。
次の手順を実行します。
ZFS ボリュームまたは ZFS ファイルに 10G バイトのイメージを作成します。
ZFS ボリュームまたは ZFS ファイルを仮想ディスクとしてエクスポートします。ZFS ボリュームまたは ZFS ファイルをエクスポートする構文は同じですが、バックエンドへのパスは異なります。
エクスポートされた ZFS ボリュームまたは ZFS ファイルをゲストドメインに割り当てます。
ゲストドメインが起動すると、ZFS ボリュームまたは ZFS ファイルは、Solaris OS のインストールが可能な仮想ディスクとして表示されます。
たとえば、ZFS ボリュームに 10G バイトのディスクイメージを作成します。
primary# zfs create ldmpool/ldg1/disk0 primary# mkfile 10g /ldmpool/ldg1/disk0/file |
ZFS ボリュームを仮想ディスクとしてエクスポートします。
primary# ldm add-vdsdev /dev/zvol/dsk/ldmpool/ldg1/disk0 ldg1_disk0@primary-vds0 |
ZFS ファイルを仮想ディスクとしてエクスポートします。
primary# ldm add-vdsdev /ldmpool/ldg1/disk0/file ldg1_disk0@primary-vds0 |
ZFS ボリュームまたは ZFS ファイルをゲストドメイン (次の例では ldg1) に割り当てます。
primary# ldm add-vdisk disk0 ldg1_disk0@primary-vds0 ldg1 |
ディスクイメージが ZFS ボリュームまたは ZFS ファイルに格納されている場合は、ZFS スナップショットコマンドを使用して、このディスクイメージのスナップショットを作成できます。
ディスクイメージに現在格納されているデータの一貫性を確保するため、ディスクイメージのスナップショットを作成する前に、ゲストドメインでそのディスクが現在使用されていないことを確認してください。ゲストドメインで確実にディスクが使用中ではない状態にするには、いくつかの方法があります。次のいずれかの手順を実行します。
ゲストドメインを停止し、バインドを解除します。これはもっとも安全な対処方法であり、また、ゲストドメインの起動ディスクとして使用されているディスクイメージのスナップショットを作成する場合に実行可能な唯一の方法です。
ゲストドメインで使用されていて、スナップショットの対象になるディスクのスライスのマウントを解除し、ゲストドメインで使用中のスライスがない状態にすることもできます。
この例では、ZFS レイアウトのため、ディスクイメージの格納場所が ZFS ボリュームまたは ZFS ファイルのどちらであっても、ディスクイメージのスナップショットを作成するコマンドは同じです。
ディスクイメージのスナップショットを作成したら、ZFS 複製コマンドを使用してこのディスクイメージを複製できます。そのあと、複製されたイメージを別のドメインに割り当てることができます。起動ディスクイメージを複製することによって、新規ゲストドメイン用の起動ディスクが迅速に作成され、Solaris OS インストールプロセス全体を実行する必要はなくなります。
たとえば、作成された disk0 がドメイン ldg1 の起動ディスクである場合、次の手順を実行してこのディスクを複製し、ドメイン ldg2 の起動ディスクを作成します。
primary# zfs create ldmpool/ldg2 primary# zfs clone ldmpool/ldg1/disk0@version_1 ldmpool/ldg2/disk0 |
ldompool/ldg2/disk0 は、仮想ディスクとしてエクスポートして、新規の ldg2 ドメインに割り当てることができます。ドメイン ldg2 は、OS のインストールプロセスを実行しなくても、この仮想ディスクから直接起動することができます。
起動ディスクを複製した場合、新しいイメージは元の起動ディスクと全く同一であり、イメージの複製前に起動ディスクに格納されていたホスト名、IP アドレス、マウントされているファイルシステムテーブル、システム構成、チューニングなどの情報が含まれています。
マウントされているファイルシステムテーブルは、元の起動ディスクイメージ上と複製されたディスクイメージ上で同じであるため、複製されたディスクイメージは、元のドメインの場合と同じ順序で新規ドメインに割り当てる必要があります。たとえば、起動ディスクイメージが元のドメインの 1 番めのディスクとして割り当てられていた場合は、複製されたディスクイメージを新規ドメインの 1 番めのディスクとして割り当てる必要があります。このようにしない場合、新規ドメインは起動できなくなります。
元のドメインが静的 IP アドレスで構成されていた場合、複製されたイメージを使用する新規ドメインは、同じ IP アドレスで始まります。この場合は、sys-unconfig(1M) コマンドを使用すると、新規ドメインのネットワーク構成を変更できます。この問題を回避するために、未構成のシステムのディスクイメージのスナップショットを作成することもできます。
元のドメインが動的ホスト構成プロトコル (DHCP) で構成されていた場合は、複製されたイメージを使用する新規ドメインも、DHCP を使用します。この場合、新規ドメインの起動時に、IP アドレスとそのネットワーク構成を自動的に受け取るため、新規ドメインのネットワーク構成を変更する必要はありません。
ドメインのホスト ID は起動ディスクには格納されませんが、ドメインの作成時に Logical Domains Manager によって割り当てられます。このため、ディスクイメージを複製した場合、その新規ドメインは元のドメインのホスト ID を保持しません。
元のドメインをバインドし、起動します。
sys-unconfig コマンドを実行します。
sys-unconfig コマンドが完了すると、このドメインは停止します。
ドメインを停止し、バインドを解除します。ドメインを再起動しないでください。
ドメインの起動ディスクイメージのスナップショットを作成します。
次に例を示します。
primary# zfs snapshot ldmpool/ldg1/disk0@unconfigured |
この時点でのスナップショットは、未構成システムの起動ディスクイメージです。
このイメージを複製して新規ドメインを作成します。このドメインの最初の起動時に、システムを構成するように求められます。