メインコンテンツへスキップ

ONTAPとWindows SCSIのunmapおよびスペース再生

Views:
2,184
Visibility:
Public
Votes:
0
Category:
flexpod-with-infrastructure-automation
Specialty:
san
Last Updated:

 

環境

  • ONTAP 9
  • Windows Server 2012、2012 Core、2012 Hyper-V ゲスト
  • Windows Server 2012R2、2012R2 Core、2012R2 Hyper-V ゲスト
  • Windows Server 2016
  • SnapDrive for Windows(SDW)
  • SnapCenter Plug-in for Windows(SCW)

回答

SCSI UNMAPとは何ですか?
  • UNMAP コマンドは、T10 SCSIコマンドセット内で標準化されたアドバイザリSCSIコマンドであり、ホストOS、アプリケーション、または仮想マシンによって削除されたブロックから領域を再利用するために使用されます。現在のコンピュータ業界で広く採用されているT10シンプロビジョニング技術は、UNMAP コマンドを使用して、ストレージ利用率の向上、柔軟な容量計画、およびノンストップのストレージ プロビジョニング サービスを実現します。
    • SCSI UNMAP コマンドは、Windows 2012以降でインバンド操作として使用されます。
    • Windows 2008以前には、ネイティブのインバンドUNMAPサポートがありません。ただし、ベンダー固有のアウトオブバンドスペース再利用は、SnapDrive for WindowsやData ONTAP PowerShell Toolkitなどのアプリケーションを介してWindowsで利用できます。SnapDrive Space Reclaimer機能は、ベンダー固有のホールパンチングコマンドを使用してスペースを削除します。
  • UNMAPは勧告コマンドであるため、SCSI仕様では、ターゲット側が指定された範囲内のすべてのブロックを再利用せずに、コマンドに対して成功応答を返すオプションが認められています。通常、これはシステム負荷のためにストレージアレイによって実行され、そのためUNMAP操作中に、期待されるすべてのブロックを必ずしも再利用できるとは限りません。
Windows および ONTAP のどのバージョンがインバンド SCSI UNMAP と適切に連携しますか
  • Data ONTAPは、以下のバージョンでSCSIインバンドUNMAPを使用します:
    • Data ONTAP 7-Mode 8.1.3以降
    • Clustered Data ONTAP 8.2以降
    • ONTAP 9
  • Windowsオペレーティングシステムは、以下のバージョンでインバンドUNMAPを使用します:
    • Windows Server 2012
    • Windows Server 2012 Core
    • Windows Server 2012 Hyper-V ゲスト
    • Windows Server 2012 R2
    • Windows Server 2012 R2 Core
    • Windows Server 2012 R2 Hyper-V ゲスト
    • Windows Server 2016
Data ONTAPで機能を有効/無効にする方法
  • Data ONTAP 7-Mode(8.1リリースファミリー)では、SCSI UNMAPを有効にするための設定変更は必要ありませんでした。Data ONTAP 8.2 7-Modeからは、SCSI UNMAPコマンドのサポートをアドバタイズし受け入れるために、LUN上でspace_alloc オプションを有効にする必要があるという変更が実装されました。Data ONTAP 8.2より前のバージョンでは、オプションが設定されていない限り、すべてのT10 Thin Provisioning機能が有効になっていなくても、 space_alloc を有効にしなくてもSCSI UNMAPは完全に機能していました。
  • クラスタ化Data ONTAPの場合、SCSI UNMAPのサポートは8.2リリースファミリーから開始されます。LUNがSCSI UNMAPコマンドのサポートをアドバタイズし受け入れるためには、この機能を使用する予定のLUNで space-allocation オプションを有効にしてください。
  • 注意: LUNをWindowsホストにプロビジョニングした後に space_alloc または space-allocation 設定を変更した場合、Windowsホストを再起動して、変更された設定を認識させてください。
Windows ホストでこの機能を有効 / 無効にする方法
  • Data ONTAP DSM 4.0以降はData ONTAPバージョンをチェックし、インバンドUNMAPを適応的に設定します。  Windows MMCから、ストレージセクションData ONTAP DSM Managementを探し、右クリックして Refreshを選択します。
  • Server Coreエディションの場合、これは PowerShell cmdlet 'get-sandisk' コマンドを実行することで実行されます。
  • WindowsネイティブDSM(MSDSM)を使用する場合は、以下から対応するWindows Host Utilities(WHU)バージョンを使用してください:
    • Data ONTAP 8.0.x-->WHU 6.0.1
    • Clustered Data ONTAP 8.1.x-->WHU 6.0.1
    • Data ONTAP 8.1.0〜8.1.2(7-Mode)-->WHU 6.0.1
    • Data ONTAP 8.1.3(7-Mode)-->WHU 6.0.2
    • Data ONTAP 8.2.x(7-Modeおよびclustered Data ONTAP)-->WUHU 7.1
  • Interoperability Matrix Tool でお使いの構成に合わせた推奨事項を参照してください。
  • *** WHU 6.0.1 --> turns in-band UNMAP off

    fsutil behavior query disabledeletenotify
    DisableDeleteNotify = 1

    *** WHU 6.0.2 --> turns in-band UNMAP on

    fsutil behavior query disabledeletenotify
    DisableDeleteNotify = 0

Windows ホストで SCSI UNMAP が有効か無効かを確認する方法
  • コマンドプロンプトから以下のコマンドを実行して設定を確認します:> fsutil behavior query disabledeletenotify
  • 返された値(DisableDeleteNotify = 1)は、ホストに対してインバンド UNMAP が無効になっていることを意味します。
  • DisableDeleteNotify = 0 は、ホストに対してインバンド UNMAP が有効になっていることを意味します。
検証方法と統計情報の収集
  • SCSI UNMAP設定が異なる複数のData ONTAPコントローラに接続している場合は、インバンドUNMAPを無効にすることを推奨します。
    クラスタ化されたData ONTAPがUNMAPコマンドを受信していることを確認するには、クラスタシェルCLIからstatisticsコマンドを実行し、 unmap_reqs カウンタを検索します。
  • 例:clustername::*> statistics start -object lun -instance /vol/lun1/win2012-lun -vserver svm_name
  • Sample-idの統計情報の収集が開始されます: sample_60
  • この時点で、WindowsホストからテストSCSI UNMAPコマンドを生成します:
    • clustername::*> statistics stop -sample-id sample_60
  • Sample-id: sample_60の統計情報の収集が停止されています
    • clustername::*> statistics show -sample-id sample_60

      Object: lun

      Instance: /vol/lun1/win2012-lun

      Start-time: 3/21/2016 14:23:18

      End-time: 3/21/2016 14:23:56

      Vserver: MySVM

      Number of Constituents: 2 (complete_aggregation)

         Counter                            Value

         -------------------------------- --------------------------------

      {SNIP}

         unmap_reqs                           100

 

  • ストレージがブロックが解放されたことを認識するには、クライアントからUNMAPリクエストを取得する必要があります。
  • データが削除されるLUNが非常に大きいにもかかわらず、ストレージにそれほど多くのUNMAPリクエストが届かない場合、期待どおりに領域解放が行われない可能性があります。
  • ストレージに解放すべき大きなデータがある場合、NetAppは大量のUNMAPリクエストを受信しているはずです。
  • このような場合、ホストがUNMAPリクエストの送信数を減らしている理由を理解するために、ホストベンダーとの連携が必要となります。

追加情報

  • この機能により、オペレーティングシステムのファイルシステムは、既知の仮想ディスクが仮想ディスクスパースファイル内で過剰なブロックを使用することを防ぎ、ONTAPボリューム上の領域を解放します。
  • これは以前、Windows上ではSnapDrive for Windows Space Reclaimer、またはSnapCenter Plug-in for Windowsの領域再利用機能を通じて実装されていましたが、SCSI UNMAPの互換性により、Windows 2008R2以前では依然として必要となります。
  • さらなる分析のために、system node autosupport invoke-performance-archiveを収集して提供してください。

WARNING:  Resilient File System (ReFS) を検討する際には、シンプロビジョニング、TRIM/UNMAP、Offloaded Data Transfer(ODX)などの機能が必要な場合は、NTFSを使用する必要があります。

 

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.