Solaris 8,9,10のアーカイブ作成方法
Solaris 8/9/10には、システムディスクの全体をフラッシュアーカイブ(Flash Archive)というイメージファイルにすることで、P2V(物理から仮想)、V2V(仮想から仮想)マイグレーションをすることができる機能があります。
この機能を用いると、Solaris 8/9はSolaris 10上のLegacy Zoneに、Solaris10はSolaris11上のZoneとして、あるいはSolaris10上のSolaris Zoneとしてマイグレーションが可能です。
参考
ここでは、フラッシュアーカイブの作成方法と、Solarisの仮想化技術であるZoneへの展開方法をご案内します。
このベストプラクティスでは、下記の手順を取ります。
- 既存システムのフラッシュアーカイブ(ルートボリュームを含む全データのバックアップ)
- フラッシュアーカイブをクラウドのLDOMインスタンス(GlobalZone)に転送。
- アーカイブサイズが大きい場合は、LDOMインスタンスからマウントできるNFS(Backup StorageのBSF)にアップロードする方法がローコストです。
- フラッシュアーカイブからZoneを作成
なお、本ページに記載の手順は参考情報であり、お客様の環境によって異なる場合がありますのでご留意ください。本作業により、お客様のオンプレミス環境に何らかの影響が発生した場合、当社では一切の責任を負いません。
1 既存システムのフラッシュアーカイブの作成
1.1 フラッシュアーカイブ作成準備
既存システムのフラッシュアーカイブ(システム全体のディスクイメージ)の作成にあたり、以下の項目を事前に確認します。
- フラッシュアーカイブが作成できるだけの十分な空きがあるか。
- 現在のディスク使用量とおおよそ同じサイズが必要となります。
- フラッシュアーカイブの作成中、サービスを停止できるどうか。
- シングルユーザモードのように、全てのシステムが停止している状態でフラッシュアーカイブを作成することで、データの一貫性を保つことができます。
- なお、書き換えが発生し、あとから同期すればよいデータなどを除外してフラッシュアーカイブを作成することもできます。
- ディスクに不要なファイルがないか。
- 必要がないデータがあると、フラッシュアーカイブのサイズが不必要に大きくなってしまいます。
- 2GBあるいは4GBを越えるファイルがないか。
- フラッシュアーカイブのフォーマットの構造上、含まれるファイルに2GBまたは4GBを越える場合、フラッシュアーカイブの作成ができないことがあります。
- 除外を行い、別途、個別に転送をしてください。
1.2 シングルユーザーモード
フラッシュアーカイブに全てのデータを含めたい時、システムが全停止した状態である方が、完全なアーカイブの作成が可能となります。そこで、シングルユーザーモードで作業します。
システムの停止が不可能な場合、つまり、通常のマルチユーザーモードでの作業となる場合は、フラッシュアーカイブの作成中にデータが書き換えられてしまう事が考えられます。データの一貫性を保てないことに注意し、そのようなデータはあとから同期するなどの方法を検討する必要があると考えられます。
作業手順
OpenBootのok promptで「boot -s」と入力します。
ok boot -s
ブート中、rootパスワードの入力を求められるので入力します。
rootログインし、シェルのプロンプトがでたらランレベルを確認します。
# who -r
問題がなければ「run-level S」と表示されます。
1.3 フラッシュアーカイブ作成
シンプルな作成方法は以下の通りとなります。
# flarcreate -n solaris10 solaris10.flar -U "content_architectures=sun4c,sun4d,sun4m,sun4u,sun4us,sun4s,sun4v"
これに、必要に応じて下記を追加します。
※Solaris 10については、下記注意点をご参照ください。
- -c でアーカイブを圧縮
- -x でファイル・ディレクトリをアーカイブに含めない
- -U "sun4v"で、当社クラウドで使われているSPARCアーキテクチャのバイナリが作られます。
1.3.1 flarcreateのオプション
- -n:name(必須)(10:○, 9:○, 8:○)
- -c:compress(1)を使って フラッシュアーカイブを圧縮
- 『アーカイブサイズの確認』の際にも圧縮をしているようなので、空き容量が十分にあるなら、圧縮せずにフラッシュアーカイブを作成した方がよい場合があります。(例えば、圧縮は別の速い環境やpigzやpbzip2などが使える環境でするなど)(10:○, 9:○, 8:○)
- -D dataset:指定したデータセットをフラッシュアーカイブに含めない。複数指定可。(10:○, 9:×, 8:×)
- -f filelist:フラッシュアーカイブに含めるファイルのリストを内容とするファイルを指定する。(10:○, 9:○, 8:○)
- ZFS root poolのフラッシュアーカイブでは非対応
- -F:「-f」で指定されたファイルリストのみ含むフラッシュアーカイブを作成する(10:○, 9:○, 8:○)
- ZFS root poolのフラッシュアーカイブでは非対応
- -L archiver:cpio(1)かpax(1)を指定可能。デフォルトはpax。(10:○, 9:×, 8:×)
- Solaris 10では paxがデフォルト
- Solaris 8、9ではcpioのみ
- ZFS send streamフラッシュアーカイブはZoneのインストールに利用できない
- -x exlude...:フラッシュアーカイブに含めないファイルやディレクトリを指定(10:○, 9:○, 8:○)
- ZFS root poolのフラッシュアーカイブでは非対応
- -X filelist...:フラッシュアーカイブに含めないファイルのリストを内容とするファイルを指定する(10:○, 9:○, 8:×)
- ZFS root poolのフラッシュアーカイブでは非対応
- -y include...:フラッシュアーカイブに含めるファイルやディレクトリを指定(10:○, 9:○, 8:×)
- ZFS root poolのフラッシュアーカイブでは非対応
- -z filelist...:+ と - で含む・含まないを示すファイルリストを指定(10:○, 9:○, 8:×)
- ZFS root poolのフラッシュアーカイブでは非対応
- -a author:フラッシュアーカイブの識別用authorを指定(10:○, 9:○, 8:○)
- -e descr:フラッシュアーカイブの識別用descriptionを指定(10:○, 9:○, 8:○)
- -E descr_file:フラッシュアーカイブの識別用descriptionをファイルから読み込む(10:○, 9:○, 8:○)
2 フラッシュアーカイブからZoneを構築
Solaris11.4のLDOMインスタンス内に、フラッシュアーカイブを使ってSolaris 10 Zone「testzone」を構築する例を示します。
2.1 Zoneを配置するPATHを用意
Zoneを設置するには、ZFSのパスを区切るのがよいでしょう。
# zfs create -o mountpoint=/zones rpool/zones
Solaris 10のバージョンによっては、以下の処理が必要な事があります。
# zfs create rpool/zones/testzone # chmod 700 /zones/testzone
2.2 zonecfg
以下のような内容のファイル「testzone.zonecfg」を作成します。
create -b set zonepath=/zones/testzone set brand=solaris10 set autoboot=true set ip-type=shared add net set address=192.0.2.11/24 set physical=vnet0 end
brandの指定は下記の通りです。
LDOMのOSバージョン | インストールするSolarisのバージョン | |||
---|---|---|---|---|
Solaris 8 | Solaris 9 | Solaris 10 | Solaris 11 | |
Solaris 11 | - | - | solaris10 | solaris / solaris-kz |
Solaris 10 | - | - | solaris | - |
Solaris 10 + Legacy Container | solaris8 | solaris9 | solaris | - |
zoneのip-typeは、sharedとexclusiveがあります。
2.3 フラッシュアーカイブを使ってZoneを構築
# zoneadm -z testzone install -a /path/to/testzone.flar
必要に応じて、以下のオプションを使用します。
- u:Run sys-unconfig(1M) on the zone after installing it.
- p:Preserve the system configuration after installing the zone.
Solaris 10のu4(8/07)以前のバージョンでは、Critical Patch Unitを当てる必要があります。下記の様にPatchディレクトリを示す必要があります。
# zoneadm -z testzone install -p -a /path/to/testzone.flar -P /data/patches/10_x86_Recommended/
3 Zoneの起動
構築が完了したら、Zoneを起動します。
# zoneadm -z testzone boot
Zoneにログインするときは、zloginコマンドを使用します。
# zlogin testzone
-Cオプションでコンソールログインが可能です。
# zlogin -C testzone