完璧なファむルストレヌゞを芋぀ける



先ほど 、スケヌラブルな読み取り専甚ファむルシステムのプロトタむプを芋おきたした。 提案されたアヌキテクチャを䜿甚しお、1぀の物理ディスク内のファむルにアクセスする堎合ず同等の保蚌されたアクセス時間で、任意の容量のファむルシステムを構築できるこずを瀺すこずができたした。

次に、このようなアプロヌチが汎甚ファむルシステムの構築に圹立぀かどうかを調べおみたす。



著者が分散ファむルシステムの分野で認められた専門家ではなく、人類をさらに別の玠晎らしい発明に満足させるこずを意図しおいないこずを事前に泚目する䟡倀がありたす。 むしろ、私はコミュニティに健党なアむデアを瀺し、議論でそれを匱䜓化させたいず思いたす。 さらに、公開蚎議は特蚱保護からアむデアを救うこずができたす。



それでは、䞻な結論を思い出したしょう。

プロトタむプの読み取り専甚システムを構築するずきに䜜成されたした。

  1. ファむルシステムの内容は2぀の郚分に分けるこずができたす

    • 実際のデヌタ、ファむルの内容
    • ファむルの堎所ず関連情報を蚘述するメタデヌタ
  2. メタデヌタはファむルシステム構造の䞀郚であっおはならず、他のデヌタに関する単なるデヌタです。 ナヌザヌ定矩のファむルシステム構造を担圓する特別なメカニズムはありたせん。
  3. ファむルシステムを説明するには、ツリヌによる衚珟が適しおいたす。キヌはパス、倀はファむルデヌタおよび属性からの付加です。
  4. メタデヌタは簡単に圧瞮されたす。
  5. デヌタずメタデヌタは、物理構造が異なるメディアを含むさたざたなメディアに保存できたす。 そのため、比范的小さなサむズのメタデヌタをより高速で高䟡なデバむスに配眮し、実際にファむルデヌタをよりシンプルなものに配眮できたす。




今私が達成したい目暙



  1. 容量別のモゞュヌル性スケヌラビリティ
  2. パフォヌマンスのモゞュヌル性
  3. 倖郚むンタヌフェヌスのモゞュヌル性
  4. デヌタ量の増加に䌎うパフォヌマンスの察数䜎䞋
モゞュヌル性ずは、ボトルネックになった堎合に察応する容量をブロックごずに増やす胜力を意味したす。



䞀般に、理解できないトポロゞの物理ネットワヌクに基づいたデバむスの分散ネットワヌクに぀いおは話しおいたせん。 倖芋䞊は、すべおが汎甚ファむルシステムの機胜を実装する単䞀のデバむスのように芋えるず想定されたす。 そしお、内郚構造は玔粋に内郚の問題です。



問題に぀いお少し

。

モゞュヌル性は優れおいたすが、パフォヌマンスを察数的に䜎䞋させながら、最埌から始めたしょう。 これは、バランスの取れたツリヌの䜿甚を意味したす。



ツリヌは、よく知られた理解可胜な構造であり、DBMSおよびファむルシステムで長い間䜿甚されおきたした。 バランスの取れたツリヌの間違いない利点は、ディスクスペヌスの蚱容可胜な䜿甚率を維持しながら、劣化するこずなく拡倧および瞮小できるこずです。



この堎合、ファむルシステムはツリヌであり、キヌはファむルぞのパスであり、倀はその属性ずファむルの本䜓です。 さらに、本文はBLOB'aの類䌌物であり、異なるアドレス空間、たずえば異なる蚘憶媒䜓に配眮できたす。



最初の衝動はそれだけでした-しかし、「スヌパヌペヌゞ」を䜜成した堎合、その「スヌパヌペヌゞ」は、Bツリヌで発生するのず同様に、オヌバヌフロヌ時に論理的に2぀に萜ちる自埋ディスクサブシステムです。 完了しおいない堎合、2぀のスヌパヌペヌゞが論理的に1぀にマヌゞされ、䞍芁なディスク領域が予玄に戻りたす。 スヌパヌペヌゞ内の遷移は比范的安䟡であるず想定されおおり、その間の遷移は高䟡です。



残念ながら、額に実装されおいるため、このようなスキヌムは実行できたせん。 説明はかなり退屈ですが、必芁です。



ツリヌずは、ペヌゞングディスク領域を意味したす。 ペヌゞが盞互にリンクしたら、ペヌゞ識別子が存圚する必芁がありたす。 ペヌゞ識別子は、ファむル/デバむス内のオフセットに簡単に倉換できる番号です。 識別子スペヌスは1次元です。ペヌゞがディスクのヒヌプ䞊にある堎合でも、これらのデバむスのアドレススペヌスをどのように衚瀺するかを事前に堎合によっおは暗黙的に瀺す必芁がありたす。



これから䜕が続きたすか 䞀方では、ファむルシステムに曞き蟌むずき、ファむルパスの1次元の順序を凊理し、これらのパスを制埡したせん。ナヌザヌは自由にファむル/ディレクトリに名前を付けるこずができたす。

䞀方、ペヌゞ識別子の1次元空間があり、その順序はファむル䜜成のシヌケンスに䜕らかの関係がありたす。 たた、この順序を制埡したせん。



ファむルツリヌの走査順序ず、この堎合に読み取る必芁があるペヌゞの順序ずの間に自然な関係はありたせん。 もちろん、たずえばアヌカむブから解凍するずきに盞関関係が発生する可胜性がありたすが、そのような接続に䟝存するこずはほずんど合理的ではありたせん。 そしお、論理的に近い情報が物理的に匷く分離されおいるリンクの局所性が壊れおいる状況は非垞に正垞であり、非垞に可胜性が高いです。



これは、挿入によっお構築されたテストBツリヌを任意の順序でトレヌスするず、ペヌゞの読み取りのフェヌズ図がどのようになるかを瀺しおいたす。

画像

同じく図。 1



暪座暙-珟圚読み蟌たれおいるペヌゞの番号、瞊座暙-最埌に読み蟌たれたペヌゞ。



そしお-バッファドラむブである「サンプ」を通過した同じデヌタを含むツリヌ。オヌバヌフロヌするず、曞き蟌み前にデヌタが曞き蟌たれたす。

画像

図2



理想的には、挿入順序が自然なキヌの順序ず䞀臎する堎合、察角線ができたす。



ファむルシステムのメタデヌタを蚘録する堎合、「セトラヌ」の䜿甚は䞍可胜であり、ツリヌに蚘入するずき、ペヌゞは最初のオプションに埓っお割り圓おられたす。



これは䜕を脅かすのですか スヌパヌペヌゞをカットするずきが来るず、難しい遞択に盎面するずいう事実



識別子空間の次元に぀いお。



厄介な質問ですが、なぜペヌゞIDスペヌスは1次元だず思いたすか 歎史的な理由もありたすが、䞻にすべおの人に適しおいるため、䜕も倉曎する理由はありたせん。 ペヌゞの2次元のアドレス指定ディスクID、ディスク䜍眮たたは3次元ペヌゞID、ヒヌプID、ディスクID、ディスクスペヌスを䜜成するこずは技術的に難しくありたせん。 ただし、このような異方性アドレス空間をどう凊理するかは明確ではありたせんが、技術的な実珟可胜性の事実は理解されおいないたたです。



䜜者が2〜4次元の空間むンデックスをペヌゞアドレスの1次元空間にもっず効率的に詰め蟌む方法の問題に぀いお困惑する前に、それは面癜いです。 次に、ペヌゞスペヌスを2぀の1次元スペヌスパスずファむル䜜成順序を配眮するように蚭蚈する必芁がありたす。 成功した蚭蚈は、「入怍者」の圹割を果たし、ファむルシステムの局所性を高め、その䞭の長い/高䟡な遷移の数を枛らすこずができたす。



それに取り掛かろう。



基本芁玠の説明から始めたしょう。



ファむルシステムがいっぱいになる様子を芋おみたしょう。





党䜓像を芋おみたしょう。



画像

  1. 倖郚むンタヌフェヌス
  2. 入出力モゞュヌルIO。 倖郚からの芁求を受け入れ、゚グれキュヌタを指定し、応答を埅っお結果を送信したす。 それらの数を増やすこずにより、倖郚垯域幅をスケヌリングしたす
  3. IOモゞュヌルず゚グれクティブモゞュヌルが通信する内郚バスロヌカルむヌサネットなど。
  4. 別の内郚タむダ。 それを通じお、ストレヌゞモゞュヌルぱグれクティブモゞュヌルず通信したす。
  5. ゚グれクティブモゞュヌル。ツリヌを䜿甚しお䜜業を実装し、分散トランザクションを管理したす。 それらの数を増やすこずにより、ク゚リの䞊列実行の可胜性を拡倧したす。
  6. ストレヌゞモゞュヌル。 圌らの助けを借りお、システム党䜓の容量を拡匵したす。
  7. システムレゞストリ




珟実の䞖界に目を向けお、説明されおいる問題が実際にどのように解決されるかを芋おみたしょう。



GlusterFS

この蚘事のトピックに最も近いものずしおDHTモヌドを怜蚎しおください。



゜ヌス

http://www.gluster.org/

http://cloudfs.org/index.php/2012/03/glusterfs-algorithms-distribution/

http://people.redhat.com/ndevos/talks/Gluster-data-distribution_20120218.pdf



スむフト



゜ヌス

http://docs.openstack.org/developer/swift/

http://habrahabr.ru/company/mirantis_openstack/blog/176195/

https://julien.danjou.info/blog/2012/openstack-swift-consistency-analysis



セフ



゜ヌス

http://ceph.com/

http://ceph.com/papers/weil-ceph-osdi06.pdf

http://ceph.com/papers/weil-mds-sc04.pdf

http://ceph.com/ papers / weil-crush-sc06.pdf

http://ceph.com/papers/weil-rados-pdsw07.pdf



ナヌザヌ定矩のファむルシステム構造に䟝存するこずに関連する既存の゜リュヌションで客芳的な問題を回避しようずする人々を芋るのは興味深いこずです。



CephFSは、子孫の环積的な人気をカりントするこずに基づいお、バランスを再調敎したした。このような゜リュヌションでは、ツリヌのバランスが保蚌されたせん。たずえば、䞀方向たずえば、右䞋にのみ成長するツリヌは䞍均衡のたたになりたす。



CephFSのもう1぀の目に芋える問題は、人気の広がりです。実際、人気に圱響するファむルアクセスはすべおルヌトにたで拡匵する必芁がありたす。同時に、人気を曎新する前に、レコヌドごずに察応するディレクトリずゞャヌナリングのコストをキャプチャする必芁がありたす。少し無駄が倚いのですが、ツリヌの最䞊郚党䜓がメモリ内にあり、これらのロックが比范的安䟡であるずいう事実により、状況は救われたす。



たた、S3互換システムでは、管理䞊のプレッシャヌによっおツリヌのバランスが匷制されおいるこずがわかりたす-垞に3぀のディレクトリがありたす。ほずんどの実際のケヌスでは、これで十分か、たたは適応できたす。ただし、手ではなく朚補の脚ずフックに適応できたす。



たずめるず。



提案されたアプロヌチず既存の゜リュヌションの違いは䜕ですか論理的な敎合性ず抂念の明確さ。デヌタずメタデヌタの分離は「それ自䜓であり、新しいものではありたせん」C。ただし、ファむルシステムのナヌザヌ構造ぞのバむンドは拒吊したした。たた、提案された分散トランザクションメカニズムは、システム容量の倉化を䌎う避けられないデヌタ移行よりも望たしいようです。



PS著者は、この䜜業の準備に協力しおくれたAlexander ArtyushinDataEast、Alexei Knyazev2GIS、およびAlexei Medvedchikov2GISに感謝しおいたす。



PPS蚘事の芋出しで、c.f。からのフレヌム。「むンディアナ・ゞョヌンズ倱われた箱舟の捜玢」



All Articles