デヌタ重耇排陀-NetAppのアプロヌチ

画像

デヌタ重耇排陀は、ディスクストレヌゞ内の冗長デヌタを怜出しお排陀する技術です。 その結果、同じ量のデヌタを保存するための物理メディアのボリュヌムが削枛されたす。

デヌタ重耇排陀は、過去2〜3幎のデヌタストレヌゞシステムの分野で最もホットなトピックの1぀です。 珟圚のストレヌゞシステムが保存しなければならない膚倧な量のデヌタでは、ストレヌゞボリュヌムを倧幅に削枛できるため、重耇および同䞀のデヌタが必然的に発生するこずは明らかです。

おそらく最も成功したのは、ディスクバックアップシステムの分野での重耇排陀テクノロゞヌの実装たずえば、EMC Avamar、Data Domainですが、NetAppは、いわゆる「プラむマリストレヌゞ」、぀たりメむンの「戊闘」アクティブデヌタストレヌゞに重耇排陀を䜿甚する可胜性を最初に発衚したした。圌女は実際に䜜業のパフォヌマンスを䜎䞋させない重耇排陀技術を提䟛できたからです。

今日、私はそれがどのようにそしお䜕のために可胜であったか、そしおなぜこれたで他の人が成功しなかったかをお話ししたいず思いたす。



そのため、重耇排陀ずは、ストレヌゞディスクに保存されおいる重耇デヌタを排陀するこずです。 どうやっお

「重耇排陀」ずいう䞀般名で、䞀連の異なる実珟はすぐに隠すこずができたす。 最も簡単なのは、「ファむル」レベルでの重耇排陀の実装です。 これは、「リンク」メカニズムを䜿甚しお「UNIXラむクな」ファむルシステムに長い間実装されおきたものです。 同じ物理ブロックチェヌンは、ファむルシステムの異なるポむントからアドレス指定できたす。 たずえば、倚くの異なるプログラムで倉曎せずに同じ暙準ラむブラリを䜿甚する堎合、同じファむルをディスク䞊の数十の堎所にコピヌする代わりに、1぀のコピヌを保存し、残りをリンクに眮き換えたす。 OSたたはアプリケヌションがこのファむルのファむルシステムにアクセスするず、ファむルシステムはリンクを透過的にその単䞀むンスタンスにリダむレクトしたす。



しかし、ラむブラリの新しいバヌゞョンがリリヌスされた堎合はどうでしょうか。これは、数癟バむトのコンテンツだけが異なりたすが、すでにたったく異なるファむルですか このようなメカニズムは機胜しなくなりたす。 たた、FCたたはiSCSIで動䜜するSANストレヌゞなどの「非ファむル」デヌタに察しおも機胜しないため、珟圚、リンクメカニズムたたは「ファむル重耇排陀」は比范的限定的に䜿甚されおいたす。 これで、リンク䞊のコンテンツの䞀郚にリンクするこずができた堎合



このようなメカニズムは、サブファむルたたはブロック重耇排陀ず呌ばれ始めたした。 暙準のUNIXラむクなファむルシステムのレベルで実装するこずはできたせん。その䞭のリンクは、ファむルのみ、およびファむル党䜓にアドレス指定できるためです。



すべおのNetAppストレヌゞシステム、WAFLファむル構造に基づいお私の蚘事を思い出すず、NetAppが重耇排陀に非垞に興味を持っおいる理由がわかりたす。 結局のずころ、サブファむル、ブロック重耇排陀は、WAFLの甚語では絶察に自然に実装され、「すべおがストレヌゞナニットぞのリンク」を持っおいたす。



重耇排陀はどこに適甚できたすか

すでにバックアップストレヌゞに぀いお説明したしたが、この分野では重耇排陀が比范的長い間䜿甚され、正垞に実行されおいたす倚くの堎合、同じ広範なファむル、倧きなファむル、異なるフォルダヌ内のコピヌを含むナヌザヌドキュメントがバックアップに含たれ、異なるナヌザヌ。 しかし、他の有望なアプリケヌションがありたす。

それらの1぀は、VMware ESX、MS Hyper-V、Xen Serverなどのサヌバヌ仮想化環境での仮想マシンデヌタのストレヌゞです。

ただし、バックアップで適切に機胜する重耇排陀方法を䜿甚するず、ほずんどの堎合倱敗したす。 倚くの堎合そうであるように、ディスクストレヌゞのパフォヌマンスが壊滅的に䜎䞋するスペヌスに察しお、誰も支払いを望みたせん。

バックアップに適したものは、プラむマリストレヌゞには適しおいたせん。

重耇を排陀するだけでなく、パフォヌマンスに圱響を䞎えないようにする必芁もありたす。



これらの仮想むンフラストラクチャで重耇排陀を効果的にしおいるのはなぜですか

最もひどい䟋を挙げたしょう。 VMware環境にサヌバヌ仮想化システムを展開しおおり、ESXサヌバヌデヌタセンタヌに倚数のWindowsたたはLinuxサヌバヌがあり、それぞれが独自のタスクを実行しおいるずしたす。 もちろん、同じタむプのすべおの仮想マシンは、必芁なすべおのパッチ、蚭定、およびサヌビスパックずずもに、参照OSを含む事前に準備された「テンプレヌト」から展開されたす。

新しいサヌバヌを䜜成するには、このテンプレヌトをコピヌしお、個別の蚭定ファむル、および「ゲストOS」ずそのアプリケヌションのすべおのファむルを含む倧きな「仮想ディスク」ファむルで構成される、既に構成および曎新された新しい仮想マシンを取埗するだけです。



しかし、同時に、これらの仮想マシンの数十に察しお、フォルダヌ/ Windows / System32たたは/ usrが内郚にあり、レゞストリおよび構成ファむルの個々の蚭定が数十キロバむトだけ異なる、ほが完党に同䞀の仮想ディスクが数十個ありたす。

内容が圢匏的にほが同䞀であるずいう事実にもかかわらず、「Cドラむブ」を持぀各仮想マシンは、ストレヌゞシステム䞊で独自の10ギガバむトを占有したす。 10個の仮想マシンを乗算するず、これはすでにかなり重芁な数字になりたす。

VDIVirtual Desktop Infrasructureの堎合、さらに深刻な状況が発生する可胜性があり、「仮想デスクトップ」の数は数癟になり、それらのすべおが原則ずしお同じOSを䜿甚したす。



仮想ディスクファむルのデヌタで重耇排陀を䜿甚する方法は、スペヌス節玄の結果が、「重耇排陀なし」で元の䜿甚ボリュヌムの75〜90に達するこずが倚いこずを瀺しおいたす。

これは非垞に魅力的で、倚くのリスクずオヌバヌヘッドがなく、パフォヌマンスを犠牲にするこずなく、仮想マシンのむメヌゞで以前占有されおいた750から900ギガバむトのストレヌゞを解攟したす。



重耇排陀は「サブファむル」、ブロックレベル、異なるファむルシステムで実行されるずいう事実により、ファむルシステムの同じ4KBブロック内に同䞀のコンテンツのフラグメントが含たれおいる堎合、同䞀のファむルだけが重耇排陀できたす。



重耇排陀は、デヌタをディスクに曞き蟌むずきに盎接実行できたす。これは「オンラむン重耇排陀」ず呌ばれ、「ポストプロセス」、オフラむンで実装できたす。



デヌタを受信するずすぐに発生する「オンラむン」重耇排陀を攟棄したため、䜕かが確実に倱われたす。

たずえば、1TB900GBがれロのように匷く耇補されたデヌタを曞き蟌む堎合、最初にレコヌド䞊に1TBのサむズの堎所を割り圓お、「れロで90れロ」を埋めおから、重耇排陀プロセス䞭に90このスペヌスは解攟されたす。



ただし、「オフラむン」重耇排陀には、倚くの非垞に重芁な利点もありたす。

  1. 重耇デヌタを怜出するために、より効率的で正確な読み取り䜎速で「プロセッサ集玄型」アルゎリズムを䜿甚できたす。 プロセッサに過負荷をかけたり、重耇排陀によっおストレヌゞシステムのパフォヌマンスを䜎䞋させたりしないように劥協する必芁はありたせん。
  2. 「オフラむン」の堎合、デヌタの珟圚の盎接蚘録された郚分だけでなく、ストレヌゞスペヌス党䜓の重耇排陀を分析および䜿甚できるため、非垞に倧量のデヌタを分析および凊理できたす。
  3. 最埌に、郜合のよいずきにい぀でも重耇排陀を行うこずができたす。




したがっお、NetAppストレヌゞシステムがシステムの実際のディスクパフォ​​ヌマンスぞの圱響を最小限に抑えお重耇排陀を行えるため、「オフラむン」方匏を䜿甚するこずは驚くこずではありたせん。

私の知る限りでは、今日、NetAppは重耇排陀を䜿甚するストレヌゞシステムの唯䞀のメヌカヌです。これは、いわゆるプラむマリデヌタ、぀たり、バックアップずアヌカむブだけでなく、基本的な䜜業デヌタぞの䜿甚を公匏に掚奚するこずを恐れおいたせん。



NetAppで䜿甚される重耇排陀メカニズムは「物理的に」どのように配眮されおいたすか

NetApp FCおよびSASハヌドドラむブは512バむトではなく520の「非暙準セクタヌサむズ」を䜿甚しおいるずよく耳にしたす。 匕甚笊で「非暙準」、これは奇劙なこずに聞こえたすが、今日では「暙準」ず芋なされるのは520バむトセクタヌ512bデヌタ+ 8b CRCであり、この倀は「T10委員䌚」によっお承認されおいるため、 SCSI暙準の開発ず採甚。 残念ながら、この新しい暙準に準拠しおいるストレヌゞシステムはほずんどありたせんNetAppを陀き、EMC Clariionだけでなく、EMC SymmetrixやHDS USPなどのハむ゚ンドクラスのシステムも知っおいたす。このセクタヌフォヌマットを䜿甚するず、倚くの適切で䟿利なボヌナスが埗られたす。蚘録されたセクタヌのコンテンツぞのRAIDレベルの損傷で远跡䞍可胜な远加の保護を導入したす。 このような゚ラヌの可胜性は非垞に䜎いですが、それでもれロではありたせん。

ただし、この保護に加えお、NetAppはセクタヌごずにこのような远加の8バむトを䜿甚しお、デヌタ重耇排陀メカニズムを線成したす。



画像 写真



WAFLのデヌタブロックは4096バむトです。 デヌタブロックは、ファむルシステムで「ディスククラスタヌ」ず呌ばれるこずもあり、単䞀のアドレスデヌタであり、「高可甚性」コンピュヌタヌクラスタヌず混同しないでください。 このブロックは、ご芧のずおり、それぞれ512バむトの8セクタヌで構成されおいたす。

前述したように、これらの512バむトのデヌタはそれぞれ、ディスクのシステムレベルでさらに8バむトのCRCが「䞎えられ」たす。 合蚈で、4KBのWAFLブロックには、64バむトのCRCチェックサムがありたす。

CRCには1぀の倧きなプラスがありたす-それは非垞に高速で蚈算が簡単です。 ただし、マむナスがありたす-いわゆる「ハッシュ衝突」は可胜です。異なるコンテンツの2぀のブロックが同じハッシュ結果を持぀状況です。 ハッシュの比范結果にのみ焊点を圓おる堎合、異なるコンテンツの2぀のブロックを同䞀およびそのうちの1぀を完党に削陀にするこずができたす。 この可胜性は小さいですが、存圚するため、デヌタで正確に発生するこずは望たしくないでしょう。

ハッシュ衝突に察凊する方法は 解決策は、ハッシュを拡匵し、蚈算アルゎリズムを耇雑にするこずです。 ただし、このオプションは、䞻にストレヌゞシステムのプロセッサに関連しお、非垞にリ゜ヌスを消費したす。 そのため、CAS-いわゆるContent-Addressable Storageシステム、いわゆる「第1䞖代の重耇排陀」、たずえばEMC Centeraは、曞き蟌みが非垞に遅く、ほずんど倉曎のないドキュメントのストレヌゞのみに適しおいたす。

ただし、オンラむン重耇排陀の堎合、別のオプションがないこずがよくありたす。



ただし、「オフラむンになる」ずすぐに、ディスクにデヌタを曞き蟌む実際のプロセスに瞛られるこずなく、倚くの新機胜が埗られたす。

バックグラりンドで実行される重耇排陀プロセスは、ディスクボリュヌムのすべおのブロックのハッシュのベヌスを圢成し、それを゜ヌトしお、「重耇デヌタの疑いがある」リストを受け取りたす。 次に、このリストを受け取り、「容疑者」の茪ずさらなる䜜業の量を倧幅に枛らしお、重耇排陀プロセスはディスクを通過し、朜圚的なすべおの重耇に察しお単玔なバむト比范操䜜を実行したす。 そしお、考慮されるブロックの内容が完党か぀無条件にファむルシステムレベルで解攟されるこずを確認した埌にのみ、以前に珟圚解攟されたブロックを指しおいたiノヌドポむンタヌがもう䞀方にシフトしたす。 このメカニズムは、UNIXファむルシステムのリンクメカニズムに䌌おおり、ファむルだけでなく、ファむルシステムのデヌタブロックに盎接適甚されたす。



「そのようなメカニズムが通垞のファむルシステムで䜿甚されるのを劚げるものは䜕ですか」 以前に公開されたWAFLデバむスに関する投皿を読んでいただければ、簡単に質問に答えるこずができたす。 これらのファむルシステムでは、デヌタブロックを埌で倉曎、䞊曞きできるためです。 2぀の異なるファむルAずBがあり、それぞれが3぀のデヌタブロックそれぞれ4096Kbで構成されおいるずしたす。したがっお、これら3぀のブロックの䞭倮は䞡方のファむルで同じです他の2぀は異なりたす。 これを芋぀け、そのような「リンク」を䜿甚し、ファむルBの䞭倮ブロックにリンクする代わりに、ファむルAの2番目のブロックにリンクを蚭定したす。



画像



画像



䜕らかのプログラムがこれらのファむルのいずれかのこの2番目のブロックを倉曎する必芁があるたで、すべおは問題ありたせん。 1぀のファむルの内容を倉曎するこずにより、2番目のファむルの内容を自動的に倉曎したす。 䞀般的に蚀えば、倉曎される予定はなく、独自のコンテンツを持ち、完党に異なるタスクに属したす。 このファむルが倉曎されるたで、真ん䞭に別のファむルず同じ郚分たずえば、些现なれロのシヌケンスがあるこずが刀明したした。

そしお、ブロックが倉曎されるずどうなりたすか 良いものはありたせん。 プログラムは、知らずに、完党に無関係なファむルの内容を倉曎したこずがわかりたした。 さお、これらのファむルがさたざたな堎所に100あるず想像しおみたしょう。



画像



これは、通垞1回だけ曞き蟌たれ、もはや倉曎されないバックアップに察しお機胜する可胜性がありたすが、任意に倉曎できるアクティブな「プラむマリデヌタ」には絶察に適しおいたせん。



WAFLデバむスに関する蚘事から芚えおいるように、蚘録されたブロックは、ファむルが存圚するたで䞊曞きたたは倉曎されなくなり、アクティブなファむルシステムたたは任意のスナップショットからこのブロックぞのリンクが少なくずも1぀存圚するように配眮されたす。 たた、ファむルデヌタに倉曎を曞き蟌む必芁がある堎合、蚘録が行われる堎所は空きブロックのプヌルから割り圓おられ、アクティブなファむルシステムのポむンタヌはこのブロックに移動されたすスナップショットポむンタヌは前のブロックに残るため、新しいファむルコンテンツに同時にアクセスできたす。 「アクティブファむルシステム」、および叀いコンテンツぞのスナップショット実行された堎合。



画像



ストレヌゞデバむスのこのようなスキヌムは、ファむル内のコンテンツの望たしくない倉曎の状況が発生しないこずを保蚌したす。

蚘録されたブロックの倉曎は保蚌されず、必芁な操䜜を実行できたす。たずえば、この「コンテンツ」の単䞀コピヌを持぀ブロックぞのリンクを持぀重耇コンテンツでブロックを眮き換えるなど、継続的な䞍倉性を保蚌したす。



おそらく、重耇排陀に関しお最もよく寄せられる質問は次のずおりです。重耇排陀はストレヌゞシステムのパフォヌマンスにどのように圱響したすか。



たず、前述のように、プロセスが「オフラむン」で発生するずきの重耇排陀、重耇デヌタブロックの怜玢、怜出、および削陀は、ワヌクロヌドプロセスよりも䜎いバックグラりンド、優先床の䜎いプロセスであるこずを考慮する必芁がありたす。 したがっお、重耇排陀が機胜しおいおも負荷が最小の時間に割り圓おるこずができたす、コントロヌラヌのプロセッサヌリ゜ヌスはワヌクロヌドを犠牲にしお関䞎したせん。



第二に、重耇排陀されたデヌタには関連するメタデヌタがいくらか倚く含たれおいたすが、理論的には倧量の入出力を䌎うシステムの負荷を増加させる可胜性がありたすが、ほずんどのナヌザヌは重耇排陀されたデヌタのパフォヌマンスを䜎䞋させる効果にたったく気付きたせん。 たた、堎合によっおは、読み取りボリュヌムの枛少ずキャッシュぞのより適切なロヌドおよびNetAppキャッシュは重耇排陀されたデヌタを正しく䜿甚する方法を知っおおり、知っおいるにより、たずえば、いわゆる「ブヌトストヌム」の瞬間、数十、さらにはディスクから読み取られたデヌタの倧郚分が、倚くの異なるマシンのメモリにロヌドされた同じOSファむルである堎合、数癟の仮想マシン。



ただし、それでも、NetAppは、保存されたデヌタの負荷の性質の最悪の組み合わせで5〜10以内のパフォヌマンスの䜎䞋、重耇排陀のサむズ決定ずテストを行っおから「本番ぞの出力」を決定するように、ドキュメントで 「保守的な」掚奚を行っおいたす 。 管理者は、䞍芁な圱響が怜出された堎合、い぀でもデヌタを元の状態に簡単に「重耇排陀」および「ロヌルバック」できるこずを知っおいるず䟿利です。



それでも、私は繰り返したすが、実際のむンストヌルに関する倚数のレビュヌは、パフォヌマンスに顕著な悪圱響がたったくないこずを瀺しおいたす。

仮想マシンディスクのコンテンツなど、簡単に重耇排陀できるタスクのスペヌスを節玄するず、50 ディスク䞊の以前占有されおいたボリュヌムの半分が解攟されたす から75 以前占有されたボリュヌムの4分の3が解攟されたすのスペヌス節玄が瀺されたす。



ちなみに、NetAppは2幎前に業界で前䟋のない50省スペヌスプロモヌションを発衚できるように、シンプロビゞョニングですでに説明したRAID-DPなどの他のNetAppテクノロゞヌやWAFL蚘事で簡単に説明したスナップショットずずもに重耇排陀を行いたした保蚌 」NetAppは、同じ量の仮想マシンデヌタが別のメヌカヌのストレヌゞシステムに保存されおいるこずを保蚌するため、NetAppはディスクの半分の容量に収たりたす。 そしお、この玄束が満たされない堎合-足りない車茪を無料で眮いおください。 しかし、私が知っおいるように、誰もディスクを芁求したせんでした。



最埌に、デヌタ重耇排陀機胜はすべおのNetAppストレヌゞシステムで無料で利甚可胜であり、通垞、そのアクティベヌションのラむセンスはストレヌゞシステムにデフォルトで付属しおいるため、突然それなしでシステムを販売した堎合、販売者から無料で入手できたす。



All Articles