NetApp ONTAPSAN環境でのUNMAP

UNMAPコマンドは、T10 SCSIコマンドセットの䞀郚ずしお暙準化されおおり、SAN環境の现い月からデヌタストアにスペヌスを解攟するために䜿甚されたす。 先ほど曞いたように、SANずNASのプロトコルは次第にお互いから最高のものを借りおきたした。 昔登堎した䟿利な機胜の1぀は、以前はSANに欠けおいた薄いブロックにリモヌトブロックを「戻す」ために、ストレヌゞシステムずホスト間のフィヌドバックの可胜性です。 UNMAPがSAN環境で䜿甚されるこずはほずんどありたせんが、仮想化環境ず非仮想化環境の䞡方ず組み合わせるず非垞に䟿利です。

UNMAPチヌムのサポヌトがなければ、ストレヌゞ偎で䜜成された薄い衛星は垞にサむズが倧きくなる だけでした 。 その成長は時間の問題であり、そのような薄い月が最終的にその党量を占めるずいう事実で垞に無条件に終了したした。 圌は最終的に倪くなるでしょう。



デヌタストアに3台の仮想マシンがあり、それぞれが100GBを占有しおいるず想像しおください。 デヌタストアは、300GBを占有する现い月にありたす。 ストレヌゞ偎ずESXiからの占有スペヌスは同じで、300GBです。 VMを1぀削陀しおも、ストレヌゞ偎からの月のサむズはただ300GBであり、ハむパヌバむザヌの偎から芋るず、この月に存圚するデヌタストアの占有スペヌスは200GBです。

これは、傷がホストずストレヌゞシステムの間にフィヌドバックメカニズムを持っおいなかったためです。 ぀たり、ホストが月に情報ブロックを蚘録するず、SHDはこのブロックを䜿甚䞭ずしおマヌクしたした。 さらに、ホストはこのブロックを削陀できたすが、ストレヌゞシステムはそれをただ知りたせんでした。 UNMAPチヌムはこのフィヌドバックであり、月から䞍芁になったブロックを加熱したす。 最埌に、私たちの薄い衛星は、獲埗するだけでなく、ONTAP 8.2ファヌムりェアバヌゞョンクラスタヌデヌタから重量を枛らすこずも孊びたした。

VMware ESXiおよびUNMAP


バヌゞョン5.0では、UNMAP機胜が初めお導入され、デフォルトで有効になり、リモヌトブロックの蚭定倀に達するず自動的に起動されたした。以降のバヌゞョンでは、メカニズムはデフォルトで無効になり、手動で開始されたした。 VMFS-6vSphere 6.5以降、12時間以内にスペヌスが自動的に解攟されたす。必芁に応じお、スペヌスの再利甚を開始するための手動メカニズムも利甚できたす。 ここで説明するスペヌスのリリヌスは、ハむパヌバむザヌのレベルで行われるこずに泚意するこずが重芁です。 削陀されたブロックは、ゲストOS内ではなく、仮想マシン党䜓たたは仮想ディスクを削陀した埌にのみ解攟されたす。

UNMAPサポヌトを備えたESXiおよびONTAPストレヌゞが既にあるが、機胜が有効になっおいない堎合

ストレヌゞ偎ずハむパヌバむザヌの偎から有効にする必芁がありたす。 たず、月をオフラむンにしお、ストレヌゞシステムのスペヌス割り圓お機胜をオンにしたすVMが実行状態のたたになっおいるず、VMが誀っおシャットダりンし、砎損する可胜性があるため、䞀時的にオフにするか、䞀時的に移行する必芁がありたす。

lun modify -vserver vsm01 -volume vol2 -lun lun1_myDatastore -state offline lun modify -vserver vsm01 -volume vol2 -lun lun1_myDatastore -space-allocation enabled lun modify -vserver vsm01 -volume vol2 -lun lun1_myDatastore -state online 

その埌、ESXi偎からマップ解陀を有効にする必芁がありたす。これを行うには、ESXiがUNMAPサポヌトを怜出するようにデヌタストアをマップおよびマップする必芁がありたす

 esxcli storage filesystem unmount -l myDatastore esxcli storage filesystem mount -l myDatastore esxcli storage vmfs unmap -l myDatastore 

その埌、スペヌスを解攟するために、定期的にコマンドを実行する必芁がありたす。

 esxcli storage vmfs unmap -l myDatastore 

UNMAPは、1 MBの倍数のパヌティションオフセットでフォヌマットされた衛星に察しおのみ機胜するこずに泚意するこずが重芁です 。 これはどういう意味ですか ぀たり、䞀床VMFS3をVMFS5に倉換した堎合、UNMAPは機胜したせん。 これは簡単に確認でき、倉換されたVMFS3にはMBR内蚳テヌブルがあり、再䜜成されたVMFS5にはGPTスプリットがありたす。

 # esxcli storage core device partition showguid Example output: Device Partition Layout GUID ------------------------------------------------------------- naa.60a98000486e574f6c4a5778594e7456 0 MBR N/A naa.60a98000486e574f6c4a5778594e7456 1 MBR N/A naa.60a98000486e574f6c4a5052537a7375 0 GPT 00000000000000000000000000000000 naa.60a98000486e574f6c4a5052537a7375 1 GPT aa31e02a400f11db9590000c2911d1b8 

[レむアりト]列に泚意しおください。

オフセットの確認も難しくありたせん。セクタヌの長さを調べたす。 セクタヌが512バむトであるこずを思い出させおください。
 # esxcli storage core device partition list Example output: Device Partition Start Sector End Sector Type Size ------------------------------------------------------------------------------------- naa.60a98000486e574f6c4a5778594e7456 0 0 3221237760 0 1649273733120 naa.60a98000486e574f6c4a5778594e7456 1 128 3221225280 fb 1649267277824 naa.60a98000486e574f6c4a5052537a7375 0 0 3221237760 0 1649273733120 naa.60a98000486e574f6c4a5052537a7375 1 2048 3221237727 fb 1649272667648 

「Start Sector」列ず「End Sector」列に泚意しおください。 したがっお、最埌のデバむスnaa.60a98000486e574f6c4a5052537a7375には1MBのオフセットがありたす2048セクタヌ* 512 = 1048576バむト= 1024KB。 ただし、2番目のデバむスnaa.60a98000486e574f6c4a5778594e7456のオフセットは1MBの倍数ではなく、明らかに小さいため、UNMAPは機胜したせん。

UNMAP Delete Status がサポヌトされおいるかどうかを確認できたす

 # esxcli storage core device vaai status get -d naa Example output: naa.60a98000486e574f6c4a5052537a7375 VAAI Plugin Name: VMW_VAAIP_NETAPP ATS Status: supported Clone Status: supported Zero Status: supported Delete Status: supported 

vSphere 6.5の自動再生スペヌス


vSphere 6.5以降では、ストレヌゞ䞊の薄い月ぞのスペヌスの自動解攟がサポヌトされおいたす。 VMFS-6デヌタストアごずに、12時間以内にストアに返されるHigh / Mid / Slowスペヌスのリリヌスに優先順䜍を付けるこずができたす。 グラフィカルむンタヌフェむスたたはコマンドラむンから、スペヌスの再利甚を開始し、VMFS-6デヌタストアの優先順䜍を手動で構成するこずもできたす。

 esxcli storage vmfs reclaim config get -l DataStoreOnNetAppLUN Reclaim Granularity: 248670 Bytes Reclaim Priority: low esxcli storage vmfs reclaim config set -l DataStoreOnNetAppLUN -p high 



ゲストOSからUNMAP。


そのため、以前はデヌタストアから仮想マシンを削陀するこずを怜蚎したした。 仮想マシン党䜓たたはそのディスクではなく、ゲストOS内からデヌタブロックを削陀するずきに同じこずを行うのは論理的です。 UNMAPはONTAPでストレヌゞ偎でサポヌトされおいるため、VMDKからデヌタを削陀するずきにUNMAPメカニズムが機胜したす。 ゲストOSの内郚から、ストレヌゞ偎から、远加の実装は必芁ありたせん。UNMAPを有効にするには十分です。 ハむパヌバむザヌがこの情報を仮想マシンからストレヌゞにブロヌドキャストできるこずが必芁です。ストレヌゞは完党にSCSIレベルで実行されたす。 そのため、 ESXi 6.0以降では、ゲストOS内のリモヌトブロックに関する情報を送信できるようになりたした。

仮想マシン内からUNMAPを機胜させるには、次の条件が満たされおいる必芁がありたす。


薄くお薄い


長幎にわたり、すべおのストレヌゞベンダヌは、シンムヌンにシン仮想ディスクを䜜成しないず蚀っおいたした。 しかし、珟圚はこれが倉曎されおおり、仮想マシン内からブロックを解攟するには、ストレヌゞシステムにシン仮想ディスクずシンムヌンが必芁です。 vSphere 6.0では、ゲストOS内郚からリモヌトブロックを返す機胜が実装されたしたが、 UNMAPを䜿甚する堎合、Linuxマシンがサポヌトされないなど、 いく぀かの制限がありたした。 VMFSを備えたvSphere 6.0以前のバヌゞョンでは、UNMAP機胜が自動的に開始されないため 、コマンドを手動で実行する必芁がありたす。


WindowsゲストOSサポヌト

WindowsゲストOS内からスペヌスを解攟するには、NTFSファむルシステムを64KBの割り圓おナニットサむズでフォヌマットする必芁がありたす。

LinuxゲストOS SPC-4サポヌト

SPC -4をサポヌトし、vSphere 6.5で実行されおいるLinux仮想マシンも、仮想マシンの内郚から解攟されたスペヌスをストレヌゞに戻すこずができるようになりたした。
Linuxマシンがスペヌスのリリヌスをサポヌトしおいるかどうかを確認する方法は

Linux仮想マシンでのSPC-4サポヌトの確認
これを行うには、コマンドを実行したす
 sg_vpd -p lbpv Logical block provisioning VPD page (SBC): Unmap command supported (LBPU): 1 Write same (16) with unmap bit supported (LBWS): 0 Write same (10) with unmap bit supported (LBWS10): 0 

Unmap command supportedLBPUパラメヌタヌを1に蚭定するず、シンディスクが䜿甚されたす。これが必芁なこずです。 倀0は、仮想ディスクのタむプがシック熱心たたはスパヌスであるこずを意味し、UNMAPはシックディスクでは機胜したせん。

 sg_inq /dev/sdc -d standard INQUIRY: PQual=0 Device_type=0 RMB=0 version=0x02 [SCSI-2] [AERC=0] [TrmTsk=0] NormACA=0 HiSUP=0 Resp_data_format=2 SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=0 [BQue=0] EncServ=0 MultiP=0 [MChngr=0] [ACKREQQ=0] Addr16=0 [RelAdr=0] WBus16=1 Sync=1 Linked=0 [TranDis=0] CmdQue=1 length=36 (0x24) Peripheral device type: disk Vendor identification: VMware Product identification: Virtual disk Product revision level: 1.0 

バヌゞョンversion = 0x02 [SCSI-2]は、UNMAPが機胜しないこずを意味したす。バヌゞョンSPC-4が必芁です。

 sg_inq -d /dev/sdb standard INQUIRY: PQual=0 Device_type=0 RMB=0 version=0x06 [SPC-4] [AERC=0] [TrmTsk=0] NormACA=0 HiSUP=0 Resp_data_format=2 SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=0 [BQue=0] EncServ=0 MultiP=0 [MChngr=0] [ACKREQQ=0] Addr16=0 [RelAdr=0] WBus16=1 Sync=1 Linked=0 [TranDis=0] CmdQue=1 length=36 (0x24) Peripheral device type: disk Vendor identification: VMware Product identification: Virtual disk Product revision level: 2.0 


UNMAPが皌働しおいるこずを確認したしょう。
これを行うには、コマンドを実行したす
 grep . /sys/block/sdb/queue/discard_max_bytes 1 

倀1は、ゲストOSがファむルシステムから削陀されたブロックのSCSIレベルを通知するこずを瀺したす。

UNMAPを䜿甚しおスペヌスが解攟されおいるかどうかを確認したす。
 sg_unmap --lba=0 --num=2048 /dev/sdb # blkdiscard --offset 0 --length=2048 /dev/sdb 

「blkdiscard/ dev / sdbBLKDISCARD ioctl failedOperation not supported」ずいう゚ラヌが衚瀺される堎合、UNMAPは機胜しおいたせん。 ゚ラヌがなければ、 discardキヌを䜿甚しおファむルシステムをマりントしたす。
 mount /dev/sdb /mnt/netapp_unmap -o discard 


VMwareハむパヌバむザヌはUNMAPを非同期的に 、぀たり遅延しお開始するこずを芚えおおくこずが重芁です。 これは、実際には、ゲストOS内/ハむパヌバむザヌデヌタストア䞊およびストレヌゞムヌン䞊に、11の占有スペヌスがほずんどないこずを意味したす。

Vvol

vSphere 6.0以降のVVOLテクノロゞヌ、VMハヌドりェアバヌゞョン11、およびNTFSファむルシステムを備えたWindows 2012 GOSは、この仮想マシンが配眮されおいる倖郚ストレヌゞ䞊のシンムヌン内のスペヌスの自動解攟をサポヌトしおいたす。

vSphere 6.5のVMハヌドりェアバヌゞョン11にむンストヌルされたSPC -4をサポヌトするLinux GOSは、仮想マシン内からストレヌゞの薄いスペヌスにスペヌスを戻すこずもできたす。

これにより、Thing Provisioningずハヌドりェアアシスタントスナップショットを䜿甚しお、SANむンフラストラクチャで䜿甚可胜なスペヌスの䜿甚率が倧幅に向䞊したす。

ONTAP甚のESXi 6.xのチュヌニングの詳现。

Windowsベアメタル


このOSファミリのUNMAPコマンドのサポヌトは、NTFSファむルシステムを備えたWindows Server 2012から始たりたした。 自動UNMAPを有効にするには、Windows Host Utility 6.0.2以降たたはONTAP DSM 4.0以降を䜿甚したす。 UNMAPが有効になっおいるかどうかを確認するには、 fsutil behavior query disabledeletenotify 。 DisableDeleteNotify = 0の状態は、 UNMAPがむンバンドでブロックを返すこずを意味したす。 ホストに耇数のストレヌゞシステムから接続された耇数の衛星があり、そのうちのいく぀かがUNMAPをサポヌトしおいない堎合は、オフにするこずをお勧めしたす。

Windows Server for ONTAPのチュヌニングの詳现をご芧ください。

Linuxベアメタル


LinuxディストリビュヌションはUNMAPをサポヌトしおいたす。 NetAppは、 mountコマンドの-o discardスむッチずfstrimナヌティリティを䜿甚しお、RHELバヌゞョン6.2以降を公匏にサポヌトしおいたす。 詳现に぀いおは、 RHEL6 Storage Admin Guideを参照しおください 。

Linux Server for ONTAPのチュヌニングの詳现をご芧ください。

ゟンビ


ONTAP 9より前のファむル削陀操䜜では、いわゆるゟンビメッセヌゞが生成されおいたした。
ONTAP 8およびゟンビメッセヌゞ
削陀されたブロックを解攟するず、ディスク領域を倧幅に節玄できたすが、䞀方で、ホストがストレヌゞシステムにさらに倚くのブロックたずえばテラバむトのデヌタを解攟するように芁求した堎合、ストレヌゞシステムはこれを行い、完了するたで萜ち着きたせん。これはストレヌゞシステムでの远加アクティビティです。 テラバむトのデヌタのリリヌスは、ディスクたたはハむブリッドオヌルフラッシュではないシステムで特に顕著になりたす。 したがっお、このようなシステムテラバむトで䞀気にデヌタを削陀する堎合は泚意が必芁です。

この状況にある堎合は、テクニカルサポヌトにご盞談ください。wafl_zombie_ack_limitおよびwafl_zombie_msg_cntの倀を増やす䟡倀がある堎合がありたす 。 月のすべおのデヌタを削陀する必芁がある堎合は、ストレヌゞシステムの月党䜓を削陀するこずをお勧めしたす。 䞀方、すべおのFlashシステムは、このような芁求の圱響を受けにくく、原則ずしお、こうしたタスクに迅速か぀楜に察凊したす。


ONTAP 9でのファむルの削陀ず優先順䜍付け

ONTAP 9は2016幎5月にリリヌスされたこずを思い出しおください。このバヌゞョンのZombie゜フトりェアでは、スペヌスを解攟するためのメッセヌゞは生成されなくなり、代わりにファむルに削陀のマヌクが付けられたす。 これに関連しお、スペヌスを解攟する䜜業のロゞックが倧幅に倉曎されたした。


結論


ゲストOS、ホスト、およびNetAppストレヌゞ偎の䞡方でUNMAPサポヌトが実装されおいるため、シンプロビゞョニングを䜿甚しおSAN環境のスペヌスをより合理的に䜿甚でき、その結果、ハヌドりェアスナップショットでストレヌゞスペヌスをより合理的に䜿甚できたす。 ハむパヌバむザヌレベルでのUNMAPのサポヌト、およびゲストOS内でのサポヌトは、これら2぀の䞀般的なテクノロゞヌの䜿甚を倧幅に促進したす。

テキストの゚ラヌに関するメッセヌゞをLANに送っおください。 反察の蚘事に関するコメント、远加、質問はコメントしおください。

Source: https://habr.com/ru/post/J271959/


All Articles