RIGHT:[[Sun 関係覚え書き]]
*プールのリスト [#r9ff010f]
# zpool list
*いらない ZFS ファイルシステムを無くす [#l041a128]
Solaris 10 を ZFS でインストールした場合に
デフォルトで作成されている
/export/home, /export はいらないので消したい.
# zfs destroy rpool/export/home
# zfs destroy rpool/export
確認
# zfs list
*snapshot を作成してバックアップ(1) [#s3c68cdf]
# zfs snapshot -r rpool@YYMMDD
# zfs list
# zfs send -Rv rpool@YYMMDD > /export/Backup/rpool@YYMMDD
# zfs destroy -R rpool@YYMMDD
*snapshot を作成してバックアップ(2) [#l9874785]
バックアップ用の BE(ブート環境)を作成する.
# lucreate -n YYYYMMDD
# lustatus
# zfs list
# zfs send -Rv rpoolXXXXXX@YYYYMMDD > /export/Backup/rpoolXXXXX@YYYYMMDD
# ludelete YYYYMMDD
*snapshot 上のファイルにアクセスする [#be43ff30]
snapshot をとったファイルシステムのトップに ".zfs"という
隠しディレクトリがあるので,
その階層をたどることで snapshot 上のファイルにアクセスできる.
*snapshot を用いてパッチ適用 [#gbd4714a]
1) パッチを適用する ZFS BE(Boot Environment)を作成
# lucreate -n 20091027BE
2) 新しい BE にパッチを適用
# luupgrade -t -n 20091027BE -t -s /patchdir patch-id-02 patch-id-04
ex) for Recommended Patch
# cd /var/tmp/10_Recommended
# luupgrade -t -s . -n 20091027BE `cat patch_order`
新しい Recommended Patch なら Recommended Patch を展開したディレクトリで
# ./installcluster --apply-prereq --s10cluster (LU 自体のパッチをまずあてる)
# ./installcluster -B 20091027BE --s10cluster
もしくは 20091027BE のファイルシステムを /altBE にマウントして
# ./installcluster -R /altBE --s10cluster
でいけるかも(未確認)
3) 新しい BE をアクティブにする
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
s10s_u7wos_08 yes yes yes no -
20091027BE yes no no yes -
# BOOT_MENU_FILE="menu.lst"
# export BOOT_MENU_FILE
(上の 2行はバグ 6824589 対策.
これをしないと
/usr/sbin/luactivate: /etc/lu/DelayUpdate/: 作成できません。
と怒られる)
# luactivate 20091027BE
A Live Upgrade Sync operation will be performed on startup of boot
environment <20091027BE>.
4) 新しい BE から起動
reboot コマンドを使ってはいけない.
init か shutdown コマンドを使うこと.
# init 6
5)
もし,起動しなくなったら次の手順でフォールバックすれば,
元の BE で起動できる
5-1)
PROM モニターにする.
5-2)
インストール DVD を使って miniroot になる
ok> boot cdrom -s
5-3)
元の BE の root スライスを適当なディレクトリにマウントする
# mount -Fzfs /dev/dsk/c0t0d0s0 /mnt
って,ZFS じゃぁこれができないんだな
# zpool import -a
# zfs set mountpoint=/mnt rpool/ROOT/s10s_u7wos_08
# zfs mount rpool/ROOT/s10s_u7wos_08
# ...
# zfs umount rpool/ROOT/s10s_u7wos_08
# zfs set mountpoint=/ rpool/ROOT/s10s_u7wos_08
# init 6
将来的には以下でいけるかも
# zpool import -R /mnt -a
# zfs list (so you can see your dataset names)
# zfs mount rpool/ROOT/s10s_u7wos_08
# ...
# init 6
5-4)
luactivate 引数なしで実行する.
# /mnt/sbin/luactivate
5-5)
luactivate が元の BE をアクティブにして結果を表示する.
5-6)
miniroot を抜けて reboot する.
6) いらなくなった BE の削除
# ludelete s10s_u7wos_08
もしくは
# ludelete 20091027BE
(いらない方を削除)
**というかやり方としてはこちらでもいいかも [#zb31e260]
N.G. -> luactivate していないので,
Backup 環境からはたちあがらないだろう
1) バックアップ用の BE を作成
# lucreate -n Backup
2) 現在の BE に Recommended パッチを適用
# reboot -- -s
...
# install_cluster
# reboot
3) もし不具合があったなら 新しい BE を一時的にアクティブにする
//インストール DVD でブート
ROM プロンプトで BE のリストを出す
ok> boot -L
そうすると,ZFS プール内のブート可能なデータセットのリストが表示
される.
その後,ブート可能なデータセットの 1 つをリストで選択.
そのデータセットを起動するためのコマンドが表示される.
それに従って,選択したデータセットを起動する.
(このオプションは,起動デバイスに ZFS ストレージプールが
含まれている場合にのみ使用できる.)
もしくは
ok> boot -Z dataset
を使用して,特定の ZFS データセットを起動する.
ok> boot -L
Rebooting with command: boot -L
Boot device: /pci@8,600000/SUNW,qlc@2/fp@0,0/disk@
w500000e01082bbd1,0:a File and args: -L
1 zfs1009BE
2 zfs509BE
Select environment to boot: [ 1 - 2 ]: 2
ok> boot -Z rpool/ROOT/zfs509BE
----
*注意事項 [#be6899c9]
**ファイルスワップ [#z245cffc]
2010/10 の時点で ZFS ではファイルスワップを使用することができません.
("/var/tmp/10gswap" may contain holes - can't swap on it みたいな事を言われる)
http://docs.sun.com/app/docs/doc/819-6260/ggrln?l=ja&a=view