SnapMirror relationshipがあるAmazon FSx for NetApp ONTAPファイルシステムを削除する

有無を言わさずFSxNファイルシステムを削除するオプションが欲しい
2023.12.31

SnapMirror relationshipがあるAmazon FSx for NetApp ONTAPファイルシステムを削除するのは一手間必要

こんにちは、のんピ(@non____97)です。

皆さんはSnapMirror relationshipがあるAmazon FSx for NetApp ONTAP(以降FSxN)ファイルシステムを削除するのが面倒だなと思ったことはありますか? 私はあります。

SnapMirror relationshipがあるFSxNファイルシステムを削除する際、マネジメントコンソールからの操作のみで対応することはできません。

そもそも、通常でもいきなりFSxNファイルシステムを削除することはできません。削除しようとすると「SVMがあるため削除できない」と怒られます。

Cannot delete file system while it has storage virtual machines

たまに削除方法を忘れるのでまとめておきます。

いきなりまとめ

  • 以下のステップでFSxNファイルシステムを削除する
    • snapmirror deleteで転送先からSnapMirror relationshipの削除
    • snapmirror releaseで転送元からSnapMirror relationshipの情報を削除
    • ルートボリューム以外を削除
    • SVMピアリングの削除
    • SVMの削除
    • FSxNファイルシステムの削除

やってみる

検証環境

検証環境は以下のとおりです。

Amazon FSx for NetApp ONTAPにおけるSnapMirrorの同時転送数の上限を確認してみた検証環境構成図

以下記事で検証した環境を使用します。

SnapMirror relationshipの削除

先述のとおり、FSxNファイルシステムを削除する際は、事前にSVMが削除されている必要があります。

そして、SVMを削除する際はルートボリューム以外を削除する必要があります。

試しにSVMを削除しようとすると、Cannot delete storage virtual machine while it has non-root volumesと怒られます。

Cannot delete storage virtual machine while it has non-root volumes

では、ボリュームを削除しようとしてみます。今回はマネジメントコンソールから削除します。

まとめてボリュームを削除

ONTAP CLIでボリュームを削除する際はvolume deleteでボリュームを削除する前にvolume deleteでボリュームをオフラインにしてあげる必要があります。

しばらく待つと、ボリュームのステータスの作成済みが黄色い文字になっていました。

ストレージ仮想マシンの詳細___FSx___us-east-1

詳細を確認するとCannot-delete-volume-because-it-is-in-one-or-more-SnapMirror-relationships.-Delete-the-SnapMirror-relationships-and-try-again.png" alt="Cannot delete volume because it is in one or more SnapMirror relationships. Delete the SnapMirror relationships and try againと、SnapMirror relationshipがあるため削除できないと記載されていました。

Cannot delete volume because it is in one or more SnapMirror relationships. Delete the SnapMirror relationships and try again

SnapMirror relationshipの一覧を確認します。

::> snapmirror show -fields source-path, destination-path
source-path destination-path
----------- -------------------
svm:vol01   svm_fsxn2:vol01_dst
svm:vol02   svm_fsxn2:vol02_dst
svm:vol03   svm_fsxn2:vol03_dst
svm:vol04   svm_fsxn2:vol04_dst
svm:vol05   svm_fsxn2:vol05_dst
svm:vol06   svm_fsxn2:vol06_dst
svm:vol07   svm_fsxn2:vol07_dst
svm:vol08   svm_fsxn2:vol08_dst
svm:vol09   svm_fsxn2:vol09_dst
svm:vol1    svm_fsxn2:vol1_dst07
svm:vol1    svm_fsxn2:vol1_dst06
svm:vol1    svm_fsxn2:vol1_dst05
svm:vol1    svm_fsxn2:vol1_dst08
svm:vol1    svm_fsxn2:vol1_dst01
svm:vol1    svm_fsxn2:vol1_dst03
svm:vol1    svm_fsxn2:vol1_dst04
svm:vol1    svm_fsxn2:vol1_dst02
svm:vol1    svm_fsxn2:vol1_dst14
svm:vol1    svm_fsxn2:vol1_dst16
svm:vol1    svm_fsxn2:vol1_dst15
svm:vol1    svm_fsxn2:vol1_dst13
svm:vol1    svm_fsxn2:vol1_dst09
svm:vol1    svm_fsxn2:vol1_dst11
svm:vol1    svm_fsxn2:vol1_dst10
svm:vol1    svm_fsxn2:vol1_dst12
svm:vol1    svm_fsxn2:vol1_dst20
svm:vol1    svm_fsxn2:vol1_dst21
svm:vol1    svm_fsxn2:vol1_dst23
svm:vol1    svm_fsxn2:vol1_dst22
svm:vol1    svm_fsxn2:vol1_dst25
svm:vol1    svm_fsxn2:vol1_dst26
svm:vol1    svm_fsxn2:vol1_dst24
svm:vol1    svm_fsxn2:vol1_dst18
svm:vol1    svm_fsxn2:vol1_dst27
svm:vol1    svm_fsxn2:vol1_dst17
svm:vol1    svm_fsxn2:vol1_dst19
svm:vol1    svm_fsxn2:vol1_dst29
svm:vol1    svm_fsxn2:vol1_dst31
svm:vol1    svm_fsxn2:vol1_dst30
svm:vol1    svm_fsxn2:vol1_dst32
svm:vol1    svm_fsxn2:vol1_dst37
svm:vol1    svm_fsxn2:vol1_dst39
svm:vol1    svm_fsxn2:vol1_dst38
svm:vol1    svm_fsxn2:vol1_dst33
svm:vol1    svm_fsxn2:vol1_dst28

source-path destination-path
----------- -------------------
svm:vol1    svm_fsxn2:vol1_dst34
svm:vol1    svm_fsxn2:vol1_dst40
svm:vol1    svm_fsxn2:vol1_dst35
svm:vol1    svm_fsxn2:vol1_dst36
svm:vol1    svm_fsxn2:vol1_dst41
svm:vol1    svm_fsxn2:vol1_dst42
svm:vol1    svm_fsxn2:vol1_dst43
svm:vol1    svm_fsxn2:vol1_dst45
svm:vol1    svm_fsxn2:vol1_dst44
svm:vol1    svm_fsxn2:vol1_dst46
svm:vol1    svm_fsxn2:vol1_dst48
svm:vol1    svm_fsxn2:vol1_dst49
svm:vol1    svm_fsxn2:vol1_dst47
svm:vol1    svm_fsxn2:vol1_dst51
svm:vol1    svm_fsxn2:vol1_dst50
svm:vol1    svm_fsxn2:vol1_dst53
svm:vol1    svm_fsxn2:vol1_dst52
svm:vol1    svm_fsxn2:vol1_dst57
svm:vol1    svm_fsxn2:vol1_dst56
svm:vol1    svm_fsxn2:vol1_dst54
svm:vol1    svm_fsxn2:vol1_dst55
svm:vol1    svm_fsxn2:vol1_dst58
svm:vol1    svm_fsxn2:vol1_dst60
svm:vol1    svm_fsxn2:vol1_dst61
svm:vol1    svm_fsxn2:vol1_dst59
svm:vol1    svm_fsxn2:vol1_dst62
svm:vol1    svm_fsxn2:vol1_dst64
svm:vol1    svm_fsxn2:vol1_dst65
svm:vol1    svm_fsxn2:vol1_dst63
svm:vol10   svm_fsxn2:vol10_dst
svm:vol11   svm_fsxn2:vol11_dst
svm:vol12   svm_fsxn2:vol12_dst
svm:vol13   svm_fsxn2:vol13_dst
svm:vol14   svm_fsxn2:vol14_dst
svm:vol15   svm_fsxn2:vol15_dst
svm:vol16   svm_fsxn2:vol16_dst
svm:vol17   svm_fsxn2:vol17_dst
svm:vol18   svm_fsxn2:vol18_dst
svm:vol19   svm_fsxn2:vol19_dst
svm:vol20   svm_fsxn2:vol20_dst
svm:vol21   svm_fsxn2:vol21_dst
svm:vol22   svm_fsxn2:vol22_dst
svm:vol23   svm_fsxn2:vol23_dst
svm:vol24   svm_fsxn2:vol24_dst

source-path destination-path
----------- -------------------
svm:vol25   svm_fsxn2:vol25_dst
svm:vol26   svm_fsxn2:vol26_dst
svm:vol27   svm_fsxn2:vol27_dst
svm:vol28   svm_fsxn2:vol28_dst
svm:vol29   svm_fsxn2:vol29_dst
svm:vol30   svm_fsxn2:vol30_dst
svm:vol31   svm_fsxn2:vol31_dst
svm:vol32   svm_fsxn2:vol32_dst
svm:vol33   svm_fsxn2:vol33_dst
svm:vol34   svm_fsxn2:vol34_dst
svm:vol35   svm_fsxn2:vol35_dst
svm:vol36   svm_fsxn2:vol36_dst
svm:vol37   svm_fsxn2:vol37_dst
svm:vol38   svm_fsxn2:vol38_dst
svm:vol39   svm_fsxn2:vol39_dst
svm:vol40   svm_fsxn2:vol40_dst
105 entries were displayed.

105個のSnapMirror relationshipがありました。

snapmirror deleteでSnapMirror relationshipを削除します。

::> snapmirror delete -destination-path svm_fsxn2:* -force
Operation succeeded: snapmirror delete for the relationship with destination "svm_fsxn2:vol01_dst".
Operation succeeded: snapmirror delete for the relationship with destination "svm_fsxn2:vol02_dst".
Operation succeeded: snapmirror delete for the relationship with destination "svm_fsxn2:vol03_dst".
.
.
(中略)
.
.
Operation succeeded: snapmirror delete for the relationship with destination "svm_fsxn2:vol38_dst".
Operation succeeded: snapmirror delete for the relationship with destination "svm_fsxn2:vol39_dst".
Operation succeeded: snapmirror delete for the relationship with destination "svm_fsxn2:vol40_dst".
105 entries were acted on.

::> snapmirror show -fields source-path, destination-path
There are no entries matching your query.

削除が完了しました。

なお、本来はSnapMirror relationshipを削除する際は、snapmirror breakでカットオーバーしてから行うのが正しいです。

今回はボリュームごと削除するので、いきなり削除しています。

ボリュームの削除

もう一度ボリューム削除をトライします。

次は問題なくルートボリューム以外削除できました。

全てのボリュームを削除

SnapMirrorの転送元でSnapMirror relasionshipの情報を削除

それではSVMを削除しましょう。

Amazon FSx is unable to delete the storage virtual machine because it is part of a SVM peer or transition peer relationship

Amazon FSx is unable to delete the storage virtual machine because it is part of a SVM peer or transition peer relationshipとSVMピアリングがあるため削除できないと表示されました。

SVMピアリングを削除しましょう。

::> vserver peer show -vserver svm_fsxn2
            Peer        Peer                           Peering        Remote
Vserver     Vserver     State        Peer Cluster      Applications   Vserver
----------- ----------- ------------ ----------------- -------------- ---------
svm_fsxn2   svm         peered       FsxId0ab6f9b00824a187c
                                                       snapmirror     svm

FsxId058fb0d9773b79e09::> vserver peer delete -vserver svm_fsxn2 -peer-vserver svm

Info: [Job 397] 'vserver peer delete' job queued

FsxId058fb0d9773b79e09::> vserver peer show -vserver svm_fsxn2
            Peer        Peer                           Peering        Remote
Vserver     Vserver     State        Peer Cluster      Applications   Vserver
----------- ----------- ------------ ----------------- -------------- ---------
svm_fsxn2   svm         peered       FsxId0ab6f9b00824a187c
                                                       snapmirror     svm

FsxId058fb0d9773b79e09::> vserver peer show -vserver svm_fsxn2
            Peer        Peer                           Peering        Remote
Vserver     Vserver     State        Peer Cluster      Applications   Vserver
----------- ----------- ------------ ----------------- -------------- ---------
svm_fsxn2   svm         peered       FsxId0ab6f9b00824a187c
                                                       snapmirror     svm

::> job show 397 -instance

                      Job ID: 397
              Owning Vserver: svm_fsxn2
                        Name: 'vserver peer delete'
                 Description: Deleting a Vserver peer relationship between svm_fsxn2 and svm
                    Priority: Medium
                        Node: FsxId058fb0d9773b79e09-02
                    Affinity: Cluster
                    Schedule: @now
                  Queue Time: 12/28 17:51:35
                  Start Time: 12/28 17:51:35
                    End Time: 12/28 17:51:35
              Drop-dead Time: -
                  Restarted?: false
                       State: Failure
                 Status Code: 1263361
           Completion String: Relationship is in use by SnapMirror in peer cluster. Use the "snapmirror list-destinations" command to view the relationships. Use the "snapmirror release" command to release the application, then try the command again.
                    Job Type: vserver peer delete
                Job Category: vserver peer
          Execution Progress: Complete: Relationship is in use by SnapMirror in peer cluster. Use the "snapmirror list-destinations" command to view the relationships. Use the "snapmirror release" command to release the application, then try the command again. [1263361]
                   User Name: fsxadmin
Restart Is Delayed by Module: -

vserver peer deleteでSVMピアリングを削除しようとしましたが、SnapMirrorの対向でSVMピアリングが使用されているため削除できないようです。

対向のFSxNファイルシステムに接続して、SnapMirrorの転送先の情報を確認します。

::> snapmirror list-destinations -fields source-path, destination-path
source-path destination-path
----------- -------------------
svm:vol01   svm_fsxn2:vol01_dst
svm:vol02   svm_fsxn2:vol02_dst
svm:vol03   svm_fsxn2:vol03_dst
svm:vol04   svm_fsxn2:vol04_dst
svm:vol05   svm_fsxn2:vol05_dst
svm:vol06   svm_fsxn2:vol06_dst
svm:vol07   svm_fsxn2:vol07_dst
svm:vol08   svm_fsxn2:vol08_dst
svm:vol09   svm_fsxn2:vol09_dst
svm:vol1    svm2:vol1_dst2
svm:vol1    svm_fsxn2:vol1_dst12
svm:vol1    svm_fsxn2:vol1_dst10
svm:vol1    svm_fsxn2:vol1_dst15
svm:vol1    svm_fsxn2:vol1_dst14
svm:vol1    svm_fsxn2:vol1_dst16
svm:vol1    svm_fsxn2:vol1_dst09
svm:vol1    svm_fsxn2:vol1_dst13
svm:vol1    svm_fsxn2:vol1_dst11
svm:vol1    svm_fsxn2:vol1_dst20
svm:vol1    svm_fsxn2:vol1_dst21
svm:vol1    svm_fsxn2:vol1_dst23
svm:vol1    svm_fsxn2:vol1_dst22
svm:vol1    svm_fsxn2:vol1_dst25
svm:vol1    svm_fsxn2:vol1_dst26
svm:vol1    svm_fsxn2:vol1_dst17
svm:vol1    svm3:vol1_dst_dst
svm:vol1    svm_fsxn2:vol1_dst32
svm:vol1    svm_fsxn2:vol1_dst30
svm:vol1    svm_fsxn2:vol1_dst31
svm:vol1    svm_fsxn2:vol1_dst24
svm:vol1    svm_fsxn2:vol1_dst27
svm:vol1    svm_fsxn2:vol1_dst18
svm:vol1    svm_fsxn2:vol1_dst19
svm:vol1    svm_fsxn2:vol1_dst29
svm:vol1    svm_fsxn2:vol1_dst34
svm:vol1    svm_fsxn2:vol1_dst28
svm:vol1    svm_fsxn2:vol1_dst33
svm:vol1    svm_fsxn2:vol1_dst38
svm:vol1    svm_fsxn2:vol1_dst40
svm:vol1    svm_fsxn2:vol1_dst39
svm:vol1    svm_fsxn2:vol1_dst37
svm:vol1    svm_fsxn2:vol1_dst35
svm:vol1    svm_fsxn2:vol1_dst36
svm:vol1    svm2:vol1_dst
svm:vol1    svm_fsxn2:vol1_dst41

source-path destination-path
----------- -------------------
svm:vol1    svm_fsxn2:vol1_dst42
svm:vol1    svm_fsxn2:vol1_dst43
svm:vol1    svm_fsxn2:vol1_dst45
svm:vol1    svm_fsxn2:vol1_dst44
svm:vol1    svm_fsxn2:vol1_dst48
svm:vol1    svm_fsxn2:vol1_dst46
svm:vol1    svm_fsxn2:vol1_dst49
svm:vol1    svm_fsxn2:vol1_dst47
svm:vol1    svm_fsxn2:vol1_dst50
svm:vol1    svm_fsxn2:vol1_dst51
svm:vol1    svm_fsxn2:vol1_dst53
svm:vol1    svm_fsxn2:vol1_dst52
svm:vol1    svm_fsxn2:vol1_dst57
svm:vol1    svm_fsxn2:vol1_dst54
svm:vol1    svm_fsxn2:vol1_dst55
svm:vol1    svm_fsxn2:vol1_dst56
svm:vol1    svm_fsxn2:vol1_dst58
svm:vol1    svm_fsxn2:vol1_dst60
svm:vol1    svm_fsxn2:vol1_dst61
svm:vol1    svm_fsxn2:vol1_dst59
svm:vol1    svm_fsxn2:vol1_dst64
svm:vol1    svm_fsxn2:vol1_dst62
svm:vol1    svm_fsxn2:vol1_dst65
svm:vol1    svm_fsxn2:vol1_dst63
svm:vol1    svm2:vol1_dst3
svm:vol1    svm_fsxn2:vol1_dst07
svm:vol1    svm_fsxn2:vol1_dst06
svm:vol1    svm_fsxn2:vol1_dst03
svm:vol1    svm_fsxn2:vol1_dst05
svm:vol1    svm_fsxn2:vol1_dst08
svm:vol1    svm_fsxn2:vol1_dst01
svm:vol1    svm_fsxn2:vol1_dst02
svm:vol1    svm_fsxn2:vol1_dst04
svm:vol10   svm_fsxn2:vol10_dst
svm:vol11   svm_fsxn2:vol11_dst
svm:vol12   svm_fsxn2:vol12_dst
svm:vol13   svm_fsxn2:vol13_dst
svm:vol14   svm_fsxn2:vol14_dst
svm:vol15   svm_fsxn2:vol15_dst
svm:vol16   svm_fsxn2:vol16_dst
svm:vol17   svm_fsxn2:vol17_dst
svm:vol18   svm_fsxn2:vol18_dst
svm:vol19   svm_fsxn2:vol19_dst
svm:vol20   svm_fsxn2:vol20_dst

source-path destination-path
----------- -------------------
svm:vol21   svm_fsxn2:vol21_dst
svm:vol22   svm_fsxn2:vol22_dst
svm:vol23   svm_fsxn2:vol23_dst
svm:vol24   svm_fsxn2:vol24_dst
svm:vol25   svm_fsxn2:vol25_dst
svm:vol26   svm_fsxn2:vol26_dst
svm:vol27   svm_fsxn2:vol27_dst
svm:vol28   svm_fsxn2:vol28_dst
svm:vol29   svm_fsxn2:vol29_dst
svm:vol30   svm_fsxn2:vol30_dst
svm:vol31   svm_fsxn2:vol31_dst
svm:vol32   svm_fsxn2:vol32_dst
svm:vol33   svm_fsxn2:vol33_dst
svm:vol34   svm_fsxn2:vol34_dst
svm:vol35   svm_fsxn2:vol35_dst
svm:vol36   svm_fsxn2:vol36_dst
svm:vol37   svm_fsxn2:vol37_dst
svm:vol38   svm_fsxn2:vol38_dst
svm:vol39   svm_fsxn2:vol39_dst
svm:vol40   svm_fsxn2:vol40_dst
svm2:vol1_dst
            svm3:vol1_dst2_dst
svm2:vol1_dst
            svm3:vol1_dst_dst
svm2:vol1_dst2
            svm3:vol1_dst2_dst
112 entries were displayed.

112個のSnapMirrorの転送先が定義されていました。

snapmirror releaseで対向のFSxNファイルシステムからSnapMirror relationshipの情報を削除します。

::> snapmirror release -destination-path svm_fsxn2:* -force
[Job 233] Job is queued: snapmirror release for destination "svm_fsxn2:vol01_dst".

Warning: Snapshot copies on source volume "svm:vol01" generated by SnapMirror for the purpose of mirroring to destination volume "svm_fsxn2:vol01_dst" will be
         deleted. Once these Snapshot copies are deleted, it will not be possible to re-establish a mirroring relationship between these two volumes unless there
         are other common Snapshot copies between the source and the destination volumes.
[Job 233] Job succeeded: SnapMirror Release Succeeded
[Job 234] Job is queued: snapmirror release for destination "svm_fsxn2:vol02_dst".

Warning: Snapshot copies on source volume "svm:vol02" generated by SnapMirror for the purpose of mirroring to destination volume "svm_fsxn2:vol02_dst" will be
         deleted. Once these Snapshot copies are deleted, it will not be possible to re-establish a mirroring relationship between these two volumes unless there
         are other common Snapshot copies between the source and the destination volumes.
[Job 234] Job succeeded: SnapMirror Release Succeeded
[Job 235] Job is queued: snapmirror release for destination "svm_fsxn2:vol03_dst".
.
.
(中略)
.
.
Warning: Snapshot copies on source volume "svm:vol39" generated by SnapMirror for the purpose of mirroring to destination volume "svm_fsxn2:vol39_dst" will be
         deleted. Once these Snapshot copies are deleted, it will not be possible to re-establish a mirroring relationship between these two volumes unless there
         are other common Snapshot copies between the source and the destination volumes.
[Job 336] Job succeeded: SnapMirror Release Succeeded
[Job 337] Job is queued: snapmirror release for destination "svm_fsxn2:vol40_dst".

Warning: Snapshot copies on source volume "svm:vol40" generated by SnapMirror for the purpose of mirroring to destination volume "svm_fsxn2:vol40_dst" will be
         deleted. Once these Snapshot copies are deleted, it will not be possible to re-establish a mirroring relationship between these two volumes unless there
         are other common Snapshot copies between the source and the destination volumes.
[Job 337] Job succeeded: SnapMirror Release Succeeded
105 entries were acted on.

::> snapmirror list-destinations -fields source-path, destination-path
source-path destination-path
----------- ----------------
svm:vol1    svm2:vol1_dst2
svm:vol1    svm3:vol1_dst_dst
svm:vol1    svm2:vol1_dst
svm:vol1    svm2:vol1_dst3
svm2:vol1_dst
            svm3:vol1_dst2_dst
svm2:vol1_dst
            svm3:vol1_dst_dst
svm2:vol1_dst2
            svm3:vol1_dst2_dst
7 entries were displayed.

105個の転送情報が削除されました。

転送情報削除後、SVMピアリングを削除します。

::*> vserver peer delete -vserver svm2 -peer-vserver svm

Info: [Job 340] 'vserver peer delete' job queued

::*> vserver peer show
There are no Vserver peer relationships.

SVMの削除

SVMを削除します。

問題なくSVMの削除が完了しました。削除完了後、SVMが表示できなくなっていることを確認します。

SVM削除完了

FSxNファイルシステムの削除

FSxNファイルシステムの削除をします。

問題なくFSxNファイルシステムの削除が完了しました。削除完了後、FSxNファイルシステムが表示できなくなっていることを確認します。

FSxNファイルシステム削除完了

クラスターピアリングを削除する必要はないようです。

有無を言わさずFSxNファイルシステムを削除するオプションが欲しい

SnapMirror relationshipがあるAmazon FSx for NetApp ONTAPファイルシステムを削除する方法を紹介しました。

紹介したとおり少し手間がかかります。他にもONTAP S3を使用している場合は、ONTAP S3のS3バケット内の全てのオブジェクト、バージョンを削除する必要があるので結構面倒です。

有無を言わさずFSxNファイルシステムを削除するオプションが欲しいですね。

また、そもそもFSxNファイルシステムやSVM、ボリュームの削除保護オプションも存在しないので、そちらも欲しいです。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!