NetApp ONTAPファイルサーバを置き換える際、snapmirrorでボリューム転送して行う、というのがよくある。
で、置き換えた後、新旧NetAppを結ぶsnapmirrorで使用していたvolume snapshotについては自動削除されないので、それを特定して削除する、という必要があるので、その手法のメモ書き。
1 いまあるsnapshotの確認
「volume snapshot show -volume ボリューム名」で該当するボリューム内にあるsnapshotを確認
snapmirrorで作成されたsnapshotは「snapmirror.<UUID>_ID.日時」で作成されている。
2 snapmirrorで使用しているsnapshotの確認
「snapmirror show -destination-volume ボリューム名 -field exported-snapshot」でsnapmirrorが使用しているsnapshot名が表示される
つまり、1で確認したsnapmirrorと名前がついているsnapshotで、exported-snapshotに表示されないものが不要なものとなる。
3 snapshotの依存を確認
通常ONTAPのCLIでは-fields で表示させたい項目を入力する場合、タブ補完機能があるのだが、そこに表示されない裏オプション的なものがある。
それが、snapshotの依存が存在するかを表示する「dependency」である。(タブ補完がきかないので、すべて手動で入力する必要がある)
「volume snapshot show -volume ボリューム名 -fields dependency」を実行して確認する
表示される値は以下の意味がある。
空欄: 依存関係なし
snapmirror: snapmirrorの送り側
busy: snapmirrorの受け側
2で不要なsnapshotは確定しているが、そのsnapshotに対して「snapmirror」も「busy」もついてない、ということを確認する
4 snapshotの削除
不要なsnapshotを削除する
「volume snapshot delete -volume ボリューム名 -snapshot snapshot名」で削除する。
ちゃんとsnapmirror関係の削除処理が行われていれば削除しますかy/nの確認をしたのちに削除が行える。
なんらかの事情でロックがかかっている状態となっていて、それでも削除したい場合は、「set adv」でadvanced権限に移行し
「volume snapshot delete -volume ボリューム名 -snapshot snapshot名 -force true -ignore-owners true」オプションで強制削除する