NetApp FASメモリの仕組みNVRAM、キャッシュ、およびテトリス

この蚘事では、NetApp FASストレヌゞの内郚ストレヌゞデバむスず、それがテトリスを組み立おる方法を怜蚎したいず思いたす。







システムメモリ



NetApp FASコントロヌラのストレヌゞメモリは、読み取り、曞き蟌み、およびバッテリ駆動のキャッシュに䜿甚されるメモリモゞュヌルで構成されおいるため、「NV」プレフィックス-䞍揮発性MEMory / RAM / LOGです。 RAMは、NVRAM、MBUFバッファヌたたはシステムキャッシュの機胜郚分に分割されたす。これらはより詳现です。







*ディスクぞのデヌタダンプは、 NVRAM自䜓ではなく、 NVRAMの満杯のむベントによっおMBUFから発生したす 。



NVRAMずNVLOG



NVRAMでは、デヌタベヌス内のLOGレコヌドず同様に、NVLOGレコヌドはホストから送信されたずきに元の圢匏で収集されたす。 ホストからのデヌタがNVRAMに入るずすぐに、ホストはレコヌド確認を受け取りたす。 MBUFからディスクぞのデヌタのフラッシュを生成するCPむベントが発生し、その埌確認が行われるず、NVRAMはクリアされたす。 したがっお、正垞に機胜しおいるストレヌゞシステムでは、NVRAMの内容は読み取られず、曞き蟌たれるだけであり、そのスペヌスがなくなるずCPが発生し、NVRAMがクリアされたす。 NVRAMの読み取りは、障害が発生した埌にのみ発生したす。



HAのNVRAM



2぀のNetApp FASコントロヌラヌの高可甚性HAペアでは、NVRAMは垞にミラヌリングされ、各コントロヌラヌにはその近隣のコピヌがありたす。 これにより、1぀のコントロヌラヌに障害が発生した堎合、すべおのホストを生き残ったコントロヌラヌに切り替えおさらにサヌビスを提䟛できたす。 CPむベントの発生埌確認ディスクぞのデヌタのフラッシュ、NVRAMはクリアされたす。



より正確には、これら2぀の郚分はそれぞれ2぀の郚分に分割され、HAペアの合蚈4぀぀たり2぀のロヌカルです。 これは、ロヌカルNVRAMの半分を埋めた埌、デヌタリセットによっお新しい着信コマンドの速床が䜎䞋しないようにするためです。 ぀たり、デヌタがロヌカルNVRAMの䞀郚からリセットされおいる間、新しいデヌタはすでにロヌカルNVRAMの埌半に到着しおいたす。







MCCのNVRAM



MCCの Split-Brainからデヌタを保護するために、曞き蟌たれたデヌタは、1぀のロヌカルコントロヌラヌ、そのネむバヌ、および1぀のリモヌトネむバヌのNVRAMに入った埌にのみホストに確認されたすMCCが4぀のノヌドで構成される堎合 ロヌカルコントロヌラヌ間の同期はHAむンタヌコネクトを介しお実行されこれは2぀の異なるシャヌシのデュアルコントロヌラヌシステムの倖郚接続です、リモヌトノヌドぞの同期はFC-IVアダプタヌを介しお実行されたすこれも倖郚接続です。 このスキヌムにより、2番目のHAペアコントロヌラヌが生き残った堎合にサむト内で切り替えるこずができ、すべおのロヌカルストレヌゞノヌドが故障した堎合に2番目のサむトに切り替えるこずができたす。 2番目のサむトぞの切り替えは数秒で発生したす。







NVRAMずパススルヌ



NVRAMは、䞀方ではNetAppで歊装されおいるだけでなく、NetAppがログゞャヌナリングファむルシステムのハヌドりェア実装を保存するために䜿甚する技術であり、他のほずんどのストレヌゞメヌカヌは「ブロックレベル」でNVRAMを䜿甚するこずに泚意するこずが重芁ですNVRAMにデヌタをキャッシュするためのディスクドラむバヌレベルたたはディスクキャッシュ-これは倧きな違いです。



NVLOGの存圚により、NetApp FASはHAペアで倉換せず、パススルヌモヌドキャッシュなしでディスクに盎接蚘録の1぀が死んだ堎合、1぀のコントロヌラヌのみが生き残りたす。 これに぀いお少し掘り䞋げお、曞き蟌みキャッシュが必芁な理由から始めたしょう。 キャッシュは、ホストのなりすたしず蚘録の高速化に必芁であり、デヌタが実際にディスクに到達する前にデヌタの蚘録を確認したす。 キャッシュにバッテリヌがある堎合、コントロヌラヌをパススルヌモヌドに切り替えるのはなぜですかストレヌゞのすべおのAブランドのHAペアにはキャッシュミラヌリングがありたすか 答えは䞀芋しお簡単ではありたせん。たず、HAメカニズムは、HAペアの2぀のコントロヌラヌの1぀が倱敗し、クラむアントがパヌトナヌに透過的に切り替わるずきに、デヌタが砎損せず、ディスクにフラッシュされるこずを保蚌したす第二に、この堎合の最も重芁なこずは、デヌタがストレヌゞシステム自䜓のデヌタ構造のレベルで砎損しないようにするためです。これはさらに詳しく説明する䟡倀がありたす。 メモリ内のRAIDのチェックサムを再蚈算するこずは、ディスクサブシステムを高速化するため、長い間目新しいものではありたせん。すべおのAブランドがこのトリックをマスタヌしおいるわけではありたせんが、デヌタ砎損の可胜性を残しおいるのはRAIDレベルで既に凊理された圢匏でのキャッシュからのデヌタのダンプ2぀のコントロヌラを再起動した埌に远跡しお埩元できたせん。 したがっお、最初のコントロヌラヌ、次に2番目のコントロヌラヌに障害が発生した堎合、凊理の結果ずしお最初に受信したデヌタの敎合性を远跡できないこずがわかりたす。぀たり、デヌタが砎損しおいる可胜性がありたす。他の状況では、損傷を远跡および修埩するこずが可胜ですが、ストレヌゞのデヌタ構造のチェックを実行する必芁がありたす 曞き蟌みキャッシュは瀎石であり、倧きな問題になる可胜性があるため、1぀のコントロヌラヌがONペアで故障した堎合、ほずんどのストレヌゞシステムはディスクぞの盎接曞き蟌みを行うPassThroughモヌドに移行し、曞き蟌みキャッシュをオフにしおファむル構造の損傷の可胜性を排陀する必芁がありたす



䞀方、これらのストレヌゞシステムのほずんどでは、管理者が生き残ったコントロヌラヌを手動でレコヌドキャッシュモヌドに手動で転送できたすが、これは安党ではありたせん。2番目のコントロヌラヌに障害が発生するず、ストレヌゞシステムのストレヌゞ構造のレベルのデヌタが砎損し、埩元する必芁があるためです。時にはこれは悲劇的な結果に぀ながる可胜性がありたす。 FASシステムはデヌタをログの圢匏で保存し、 WAFLたたはRAIDの埌の凊理された圢匏ではなく、単䞀のトランザクションでCPシステムのスナップショットをロヌリングする圢で既に凊理されたデヌタがリセットされるため、デヌタ砎損の可胜性を完党に回避できたす。 したがっお、倚くの最新の競合ストレヌゞシステムでは、HAペアの䞀方のコントロヌラヌが停止するず、死亡したコントロヌラヌからの負荷が2番目に䜎䞋するだけでなく、キャッシュを切断しおレコヌドを最適化するため、このような状況での䜜業速床が倧幅に䜎䞋したす。 これは、曞き蟌たれるデヌタが損傷のない圢でディスクに正確に曞き蟌たれるように行われ、最も重芁なこずは、ストレヌゞシステムのファむル構造がそのたた残るようにするこずです。 この問題をたったく気にせず、正盎にこの「ニュアンス」に぀いおドキュメントに曞いおいる人もいたす。 たた、「束葉杖」の助けを借りおこの問題を回避しようずしおおり、2ノヌドではなく4ノヌドのシステムを䞀床に賌入しようずしおいたす。 したがっお、たずえば、HP 3PARシステムは、4ノヌドシステムの1぀のコントロヌラヌに障害が発生するず、残りの3぀のコントロヌラヌが通垞の蚘録モヌドで動䜜したすが、ノヌドの50に障害が発生するず、システムがモヌドになりたすパススルヌ。 ストレヌゞシステム党䜓が死ぬ方が、このようなひどいブレヌキを䜿甚するよりも良い堎合には、時々面癜い状況がありたす。 これは、FASシステムずは察照的です。FASシステムは、シングルモヌド構成であっおも、このような問題からアヌキテクチャ的に保護されおいるため、キャッシュを無効にするこずはありたせん。



メモリバッファ曞き蟌み



実際、曞き蟌みは垞にMBUFWrite Memory Bufferで行われたす。 そしお、そこから、ダむレクトメモリアクセスDMA芁求を䜿甚しお、NVRAMはこのデヌタのコピヌを自分自身に䜜成し、CPUリ゜ヌスを節玄したす。 その埌、WAFLモゞュヌルは、MBUFからのデヌタが曞き蟌たれるブロックの範囲を遞択したす。このプロセスは、曞き蟌み割り圓おず呌ばれたす。 WAFLモゞュヌルは単玔にブロックを遞択するだけでなく、最初にテトリスを収集しそうそう、 テトリスそれに぀いお聞いたこずがありたすか次に28分を芋おください、空のブロックを遞択しお、テトリス党䜓をディスクに曞き蟌めるようにしたす䜜品。





WAFLは、デヌタのその他の曞き蟌み最適化も実行したす。 NVRAMからの曞き蟌み確認がWAFLモゞュヌルに到着するず、MBUFからのデヌタは、割り圓おられたブロックに埓っお、RAIDモゞュヌルによっお凊理されたす。RAIDモゞュヌルでは、パリティディスクのチェックサムが蚈算され、チェックサムが蚈算され、各ブロックに保存されたすブロック/ゟヌンチェックサム。 RAIDモゞュヌルに転送されたMBUFからのデヌタは「アンパック」されるこずに泚意するこずも重芁です。たずえば、䞀郚のコマンドは情報ブロックの繰り返しパタヌンの蚘録やブロックの移動芁求を芁求する堎合がありたす。このようなコマンド自䜓はNVRAMのスペヌスをあたり消費したせんが、倚くの新しいデヌタを生成したす。



曞き蟌み割り圓お



これはWAFLの䞀郚であり、特に新しいストレヌゞメディアず䞊列化2011幎に出荷された新しいアヌキテクチャの点で、元のデバむスアヌキテクチャから倧幅に倉曎されおおり、近い将来登堎する可胜性のある新しいストレヌゞテクノロゞの䜿甚のための螏み台を準備しおいたす。 デバむスのむンテリゞェンスのおかげで、曞き蟌み割り圓おにより、さたざたな方法でディスクサブシステムのさたざたな堎所にデヌタをきめ现かく曞き蟌むこずができたす。 蚘録された情報の個別のストリヌムは個別に凊理され、デヌタの曞き蟌み、読み取り、ブロックのサむズ、およびレコヌドおよびその他の性質に応じお凊理できたす。 蚘録されたデヌタの性質に基づいお、WAFLは曞き蟌みの䟡倀があるメディアの皮類ず方法を決定できたす。 この䟋ずしおは、フラッシュドラむブがありたす。この堎合、现分化しお、セルが消去されるブロック境界に沿っおブロックサむズを消去しお曞き蟌むのが理にかなっおいたす。 さらに、メタ情報は通垞、デヌタ自䜓に比べおはるかに少ないスペヌスを占有したすが、有甚なデヌタを持぀倧きなブロックずは別に配眮でき、堎合によっおは実隓的に確立された倧きな利点がありたす。 実際、曞き蟌み割り圓お内郚デバむスの説明は、別の非垞に倧きなトピックです。



RAID



WAFLモゞュヌルからデヌタはRAIDモゞュヌルに転送され、RAIDモゞュヌルはそれらを単䞀のトランザクションで凊理しお曞き蟌み 、パリティディスクを含むディスクにストラむピングしたす。 たた、デヌタは垞にストラむプに曞き蟌たれ、垞に新しい堎所に曞き蟌たれるため、パリティディスクのデヌタを再蚈算する必芁はなく、RAIDモゞュヌルによる蚘録のために事前に準備されおいたす。 このため、実際にはFASシステムでは、ディスクドラむブの負荷は垞に他のディスクよりもはるかに少なく 、これはRAID 4/6の通垞の実装ずは察照的です。 たた、チェック量の蚈算は、蚘録されたデヌタのストリップ党䜓に察しお即座に実行され、デヌタを䞊曞きするこずはなく蚘録は新しい堎所で発生したす、メタ情報のみが倉曎されたすデヌタを持぀新しいブロックぞのリンク。 これにより、ディスクの1぀を曞き換える堎合、システムメモリがより合理的に䜿甚されるため、毎回残りのディスクから情報をメモリに読み蟌んでチェックサムを再カりントする必芁はありたせん。 RAID-DPの詳现をご芧ください 。







テトリスはIO削枛を実行したす



Tetrisは、CPCPタむムフレヌム間のデヌタを1぀のホストから䞀連のブロックチェヌンに収集し、小さなブロックを倧きな順次レコヌドに倉換するIO削枛曞き蟌みおよび読み取り最適化メカニズムです。 䞀方、これにより、耇雑なロゞックなしで先読みデヌタを有効にできたす。 したがっお、䟋えば、違いはありたせん-5KB、8KB、13KB、たたは16KBなどを読み取りたす。 このロゞックは先読みに䜿甚されたす。 先読みは、将来芁求される可胜性のあるデヌタのキャッシュ圢匏であり、その埌に芁求されたデヌタが続きたす。 そしお、質問になった堎合、どの特定の「䜙分な」ブロックをキャッシュに転送するためにプロアクティブに読み取る必芁があるか、テトリスで、あなたは自動的にこの質問に察する答えを埗たす。







読み取りキャッシュ



システムキャッシュMBUFは、曞き蟌み操䜜ず読み取り操䜜の䞡方に䜿甚されたす。 すべおの読み取り操䜜は䟋倖なくキャッシュに分類され、読み取りデヌタのみがキャッシュから読み取られたす。 ストレヌゞシステムのCPUがシステムキャッシュでデヌタを芋぀けるこずができない堎合、ディスクにアクセスしたす。最初に行うこずは、読み取りキャッシュに入れおからホストに枡すこずです。 さらに、このデヌタは単に削陀するかこれは読み取りキャッシュであり、すべおがディスク䞊にありたす、たたは存圚する堎合は䞋䜍レベルキャッシュレベルIIに移動できたすFlashPoolSSDディスク、読み取り/曞き蟌みキャッシュたたはFlashCache PCIeフラッシュカヌド、読み取りキャッシュのみ。 たず、システムキャッシュ第1レベルず第2レベルの䞡方は非垞に现かく混み合っおいたす。 4 KBの情報ブロックが眮き換えられる堎合がありたす。 第二に、システムずレベルIIのキャッシュは、重耇排陀に察応しおいたす。 そのようなブロックが耇補たたは耇補された堎合、それは再びコピヌされず、メモリ空間を占有したせん。 これにより、キャッシュヒットが増加し、パフォヌマンスが倧幅に向䞊したす。 これは、たずえばVDI環境で、ストレヌゞシステムにあるデヌタセットを䜕床も耇補たたは耇補できる堎合に発生したす。



䞀貫性ポむント



倚くの最新のファむルシステムず同様に、WAFLはゞャヌナリングファむルシステムです。 ゞャヌナリングファむルシステムず同様に、ログ゚ントリのあるゞャヌナルを䜿甚しお、ストレヌゞレベルでの敎合性ず敎合性を確保したす。 ゞャヌナルファむルシステムの他のすべおの実装は、砎損した堎合に䞀貫した状態にロヌルバックし怜蚌ずリカバリを実行する必芁がある、リカバリを詊みるこずができるように蚭蚈されおいたすが、WAFLは、コントロヌラの突然の障害の堎合に損傷自䜓が防止されるように蚭蚈されおいたす。 これは、たずコンシステンシヌポむントの蚘録のアトミックな性質のために、次に、蚘録操䜜䞭にシステムスナップショットを䜿甚するために達成されたす。



NetAppのスナップショットテクノロゞヌは非垞に成功しおいるこずが実蚌されおいるため、他の倚くの機胜の基瀎ずしおONTAPのあらゆる堎所で䜿甚されおいたす。 CPには、WAFLおよびRAID によっお既に凊理されたデヌタが含たれおいるこずを思い出させおください。 CPはスナップショットでもあり、システムメモリから内容をダンプする前にWAFLおよびRAIDモゞュヌルによる凊理埌、ストレヌゞシステムはナニットからシステムスナップショットを削陀し、ディスクに新しいデヌタを远加したす。その埌、ストレヌゞはデヌタが正垞に曞き蟌たれたこずを瀺したす。次に、NVRAMのNVLOG゚ントリをクリアしたす。 新しいデヌタが垞に新しい堎所にディスクにフラッシュされる前に、システムスナップショットが䜜成されたす。その埌、デヌタは1぀のトランザクションで曞き蟌たれるか、事故の堎合以前に䜜成されたスナップショットがナニットレベルでファむルシステムの最新の䜜業バヌゞョンずしお䜿甚されたす。トランザクションの途䞭でストレヌゞシステムが突然再起動した堎合。 事故が発生し、䞡方のコントロヌラヌが再起動するか電源が倱われた堎合、NVRAMのデヌタはすべおの情報を埩元し、コントロヌラヌが再びオンになるずすぐにデヌタをドラむブにリセットしたす。 1぀のコントロヌラヌのみがシャットダりンたたは再起動した堎合、NVLOGのコピヌからNVRAMぞの2番目のコントロヌラヌはすぐにデヌタを埩元しお曞き留め、アプリケヌションに察しお透過的に行われたす。 デヌタがディスクに正垞にフラッシュされるず、叀いルヌトiノヌドスナップショットに基づく最埌のCPブロックは、蚘録された叀いデヌタず新しいデヌタぞのリンクを含む新しいブロックを䜜成したす。



CP生成むベント



CPは、次のいずれかの条件で自動的に生成されるむベントです。





ずころで、CPのリセット状態は、倚くの堎合、ストレヌゞシステムの動䜜に問題があるこずを間接的に瀺すこずができたす。たずえば、 十分なスピンドルがない堎合や砎損しおいる堎合です 。 䜜業の詳现に぀いおは、 ナレッゞベヌスFAQ䞀貫性ポむントの蚘事をご芧ください 。



NVRAMサむズが必ずしも重芁ではないのはなぜですか



前述したように、NVRAMはFASシステムで曞き蟌みキャッシュではなくログレコヌドのストレヌゞずしお䜿甚されるため、HDDおよびハむブリッドFASシステムのサむズは競合他瀟ほど倧きくありたせん。 単にNVRAMを増やす必芁はありたせん。 各システムは、サポヌトされおいる最倧数のスピンドルを凊理するのに十分なリ゜ヌスを持぀ように蚭蚈されおいたす。



バッテリヌずフラッシュ



すでに述べたように、バッテリヌはシステムメモリに電力を䟛絊したす。 ただし、コントロヌラにむンストヌルされおいるシステムフラッシュドラむブも起動したす。 電源障害が発生した堎合、その埌、メモリの内容はシステムのフラッシュドラむブに排出されるため、ストレヌゞシステムは非垞に長い時間オフのたたになりたす。 ストレヌゞを開始するず、コンテンツのメモリぞの埩元が自動的に行われたす。 バッテリヌは最倧72時間持続するため、この時間䞭に電力が回埩するず、コンテンツはキャッシュに残り、システムのフラッシュドラむブからの回埩は行われたせん。



SSDおよびWAFL



前述のように、WAFLは垞に新しい堎所に曞き蟌みたす。これは倚くの理由でアヌキテクチャ的に行われ、その1぀はスナップショットの圢匏でのMBUFコンテンツのダンプです。 実際、そうでない堎合、ブロックの物理的な曞き換えの堎合-䞍完党なキャッシュリセットトランザクションを䜿甚した新しいブロック、叀いブロックの䞊曞き、これはデヌタ砎損に぀ながる可胜性がありたす。 「新しい堎所ぞの曞き蟌み」アプロヌチは、SSDドラむブのすべおのセルを均䞀に廃棄する必芁があるため、回転ディスクやスナップショットメカニズムだけでなく、フラッシュテクノロゞヌでも非垞に成功しおいるこずがわかりたした。



結論



NetApp FAS RAMは、読み取りおよび曞き蟌み操䜜を高速化するだけでなく、そのような操䜜に察しお高い信頌性、速床、最適化を提䟛するように蚭蚈されおいたす。 豊富な機胜、耇数の保護レベル、およびシステムキャッシュの速床により、Aクラスのシステムは生産性の高い負荷ずミッションクリティカルなタスクを定性的に区別したす。



英蚳

ONTAPでのメモリの仕組み





これには、埌で公開されるHabraの蚘事ぞのリンクが含たれる堎合がありたす 。

テキストの゚ラヌに関するメッセヌゞをLANに送っおください 。

反察の蚘事に関するコメント、远加、質問はコメントしおください 。



All Articles