Solaris11からSolaros11.1へZoneを移設する
Solaris11.1がリリースされたついでにゾーンを新しい環境に移設したときの作業メモ、やりたいことは- 旧ホストghost1(Solaris11)で稼働中のゾーンzone1を、新ホストghost2(Solaris11.1)へ移設する
と言うことで実際にやってみる
Solaris11上のzone1をdetachする
旧サーバーにあるzone1ゾーンを取り外す、その際に以下の作業を行う- zone1(ゾーン)の停止
- zone1のゾーン設定を保存
- zone1をdetach
- zone1のzfs領域のsnapshotをとる
- snapshotからzfsのイメージを取得する
- 取得したzfsイメージと、ゾーンの設定ファイルを新サーバーghost2へ転送する
zone1(ゾーン)の停止
ゾーンを確認し、zone1を停止するghost1 ~ # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared 3 zone1 running /rpool/zones/zone1 solaris shared ghost1 ~ # zoneadm -z zone1 halt ghost1 ~ # ghost1 ~ # ghost1 ~ # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 installed /rpool/zones/zone1 solaris shared ghost1 ~ #
zone1のゾーン設定を保存
zonecfgのexportでファイルでzoneの設定を保存し場合によっては新サーバーの設定で修正を加えるghost1 ~ # zonecfg -z zone1 export > zone1.cfg ghost1 ~ # cat zone1.cfg create -b set zonepath=/rpool/zones/zone1 set brand=solaris set autoboot=false set ip-type=shared add net set address=192.168.254.123/24 set configure-allowed-address=true set physical=net0 end ghost1 ~ #
zone1をdetach
detachする、これでゾーンが切り離される、zone1のSTATUSはconfigureになるghost1 ~ # zoneadm -z zone1 detach ghost1 ~ # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 configured /rpool/zones/zone1 solaris shared ghost1 ~ #
zone1のzfs領域のsnapshotをとる
これからzone1のディスクデータをイメージとして取得するghost1 ~ # zfs list | grep iichiko rpool/zones/zone1 38.4M 22.1G 35.5K /rpool/zones/zone1 rpool/zones/zone1/rpool 38.4M 22.1G 31K /rpool rpool/zones/zone1/rpool/ROOT 38.3M 22.1G 31K legacy rpool/zones/zone1/rpool/ROOT/solaris-0 38.3M 22.1G 430M / rpool/zones/zone1/rpool/ROOT/solaris-0/var 420K 22.1G 24.6M /var rpool/zones/zone1/rpool/export 71.5K 22.1G 32K /export rpool/zones/zone1/rpool/export/home 53.5K 22.1G 32K /export/home rpool/zones/zone1/rpool/export/home/cuomo 32.5K 22.1G 32.5K /export/home/cuomo ghost1 ~ # ghost1 ~ # zfs snapshot -r rpool/zones/zone1@25do
スナップショットの確認
ghost1 ~ # zfs list -t snapshot | grep 25do rpool/zones/zone1@25do 0 - 35.5K - rpool/zones/zone1/rpool@25do 0 - 31K - rpool/zones/zone1/rpool/ROOT@25do 0 - 31K - rpool/zones/zone1/rpool/ROOT/solaris-0@25do 0 - 430M - rpool/zones/zone1/rpool/ROOT/solaris-0/var@25do 0 - 24.6M - rpool/zones/zone1/rpool/export@25do 0 - 32K - rpool/zones/zone1/rpool/export/home@25do 0 - 32K - rpool/zones/zone1/rpool/export/home/cuomo@25do 0 - 32.5K - ghost1 ~ #
snapshotからzfsのイメージを取得する
先ほど取得したスナップショットからzfsイメージを取得するghost1 ~ # zfs send -rc rpool/zones/zone1@25do | gzip > zone1.zfs.img.gz
取得したzfsイメージと、ゾーンの設定ファイルを新サーバーghost2へ転送する
以下の2ファイルをghost2サーバー(Solaris11.1)へ転送する、これは適当な方法でやってくださいghost1 ~ # ls -l | grep zone1 -rw-r--r-- 1 root root 203 2012-10-27 16:02 zone1.cfg -rw-r--r-- 1 root root 235515745 2012-10-27 16:16 zone1.zfs.img.gz ghost1 ~ #
ghost1サーバーでやることはおしまい、続いてghost2サーバーで作業をする
Solaris11.1上のzone1をattachする
ここからの作業はghost2(新サーバーSolaris11.1)で行う、zone1を起動するまでの作業は以下の順で行う- zone1のゾーン設定をファイルから作成する
- zone1をattachする
- zone1の起動
zone1のゾーン設定をファイルから作成する
zonecfgで設定ファイルを読み込ませゾーン設定を作成する、設定を修正する必要がある場合はここで修正するゾーンの確認、ない
ghost2 ~ # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared ghost2 ~ #
zone1の設定の読み込みと、ゾーンパスの作成
ghost2 ~ # zonecfg -z zone1 -f zone1.cfg ghost2 ~ # zonecfg -z zone1 create -a /rpool/zone1 Zone zone1 already exists; create anyway (y/[n])? y invalid path to detached zone ghost2 ~ #
ゾーンの確認、configureになっている
ghost2 ~ # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 configured /rpool/zones/zone1 solaris shared ghost2 ~ #
zone1をattachする
zone1へアタッチする、同時にzone1をアップデートするghost2 ~ # zoneadm -z zone1 attach -u -a /root/zone1.zfs.img.gz The following ZFS file system(s) have been created: rpool/zones rpool/zones/zone1 Warning: The -a and -d options to the attach subcommand may be removed in a future release of Solaris. Use of the install subcommand is recommended. Progress being logged to /var/log/zones/zoneadm.20121027T073929Z.zone1.attach Installing: This may take several minutes... Zone BE root dataset: rpool/zones/zone1/rpool/ROOT/solaris-0 Cache: Using /var/pkg/publisher. Updating image format イメージ形式はすでに最新です。 Updating non-global zone: Linking to image /. 処理中 linked: 1/1 done Updating non-global zone: Syncing packages (pass 1 of 2). 削除するパッケージ: 1 インストールするパッケージ: 24 更新するパッケージ: 165 変更するメディエータ: 1 変更するサービス: 5 ダウンロード パッケージ ファイル 転送 (MB) 速度 完了 190/190 14614/14614 219.2/219.2 1.4M/s フェーズ 項目 古いアクションを削除しています 8129/8129 新しいアクションをインストールしています 10875/10875 変更されたアクションを更新しています 8829/8829 パッケージ状態データベースを更新しています 完了 パッケージキャッシュを更新しています 166/166 イメージ状態を更新しています 完了 スピード検索データベースを作成しています 完了 Updating non-global zone: Syncing packages (pass 2 of 2). このイメージは更新の必要はありません。 Updating non-global zone: Zone updated. Result: Attach Succeeded. Log saved in non-global zone as /rpool/zones/zone1/root/var/log/zones/zoneadm.20121027T073929Z.zone1.attach ghost2 ~ #
ゾーンの確認、zone1はinstalledです
ghost2 ~ # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 installed /rpool/zones/zone1 solaris shared ghost2 ~ #
zone1の起動
めでたくzone1は起動、これで終了ghost2 ~ # zoneadm -z zone1 boot ghost2 ~ # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared 1 zone1 running /rpool/zones/zone1 solaris shared ghost2 ~ #
まぁ、こんなに簡単にサーバーが移設出来てしまう
でももうチョットうまい具合に、簡単に移せたらいいかと思うが、Solaris先生にお願いしておこう....
0 件のコメント:
コメントを投稿