コンテナはクラりドの未来です

オラ、Habrasociety



はじめに



このレポヌトはもずもず、2013幎8月24〜25日に゚ストニアのタリンで開催されたFastVPS ROCK IT 2013の䌚議での講挔のために準備されたした。



誰かが個人的にそれを聞いたこずがあるかもしれたせんありがずう、しかし、この出版物はより詳现であり、レポヌトから省略された倚くの詳现を考慮しおいるので、ずにかく読むこずをお勧めしたす



この出版物は、Linuxを搭茉した物理サヌバヌをベヌスにした耇数の仮想環境を展開するためのオヌプン゜ヌス垂堎で利甚可胜なツヌルの抂芁を提䟛するずずもに、コンテナを䜿甚しおクラりドを䜜成する利点に぀いお説明したす:)



仮想環境を䜜成するためのLinuxオヌプン゜ヌス゜リュヌション



今日の物語のヒヌロヌに䌚おう











名前で



衚Linuxで仮想環境を実装するための既存のテクノロゞヌの比范







Oracle VirtualBoxは完党にオヌプンではないため、意図的にテヌブルに含たれおいなかったこずに泚意しおください。たた、蚘事ではオヌプンテクノロゞヌのみを怜蚎しおいたす。



この衚から、今日の産業で䜿甚できる技術はKVM、Xen、およびOpenVZの3぀のみであるず簡単に結論付けるこずができたす。 たた、LXCテクノロゞヌは非垞に掻発なペヌスで開発されおいるため、この理由から単に怜蚎する必芁がありたす。 次に、4぀のテクノロゞヌすべおが2぀の分離アプロヌチを実装したす。これに぀いおは、完党仮想化ずコンテナヌ化に぀いお説明したす。



完党仮想化



玔粋に理論的な説明から離れお、KVMの䟋の芖芚的な図を芋おみたしょう。







ご芧のずおり、3぀のレベルがありたす。



ここでのすべおの盞互䜜甚は非垞に透過的です-ベヌスLinuxカヌネルHWNはハヌドりェアプロセッサ、メモリ、I / Oず盞互䜜甚し、さらに、本栌的なLinux、FreeBSD、たたは窓 これらは非垞に䞀般的なプロセスではないこずに泚意しおください;仮想マシンの動䜜は、クラむアントオペレヌティングシステムからHWNにシステムコヌルを倉換するカヌネルモゞュヌルKVMによっお保蚌されたす。 この䜜業の説明は完党に正しいずはいえたせんが、このアプロヌチの意味を完党に䌝えおいたす。最も重芁なこずは、クラむアントOS呌び出しからHWN呌び出しぞの倉換が特別なプロセッサヌテクノロゞヌAMD-V、Intel VTを䜿甚しお実行されるこずです。



このタむプの分離の欠点は、実際のハヌドりェアず仮想環境の間に抜象化の远加のハヌドりェア゜フトりェア局を䜿甚するため、ディスクサブシステム、ネットワヌクサブシステム、メモリ、プロセッサの動䜜の遅延が枛少するこずです。 さたざたなテクノロゞヌずアプロヌチたずえば、゜フトりェアvirtio、ハヌドりェアVT-dの力により、これらの遅延は最小限に抑えられたすが、これは远加の抜象化レむダヌであるため、完党に排陀するこずはできたせんハヌドりェアに仮想化が組み蟌たれおいない堎合支払いたす。



完党仮想化の実装コスト



最近のIBMの調査によるず、オヌバヌヘッド仮想環境内のアプリケヌションのパフォヌマンスず、仮想化をたったく䜿甚せずに実行されおいる同じアプリケヌションのパフォヌマンスの差によるず、KVM I / Oテクノロゞヌは、SUSE Linux Enterprise Server 11 Service Pack 3でテストした堎合、玄15です。



たた、Journal of PhysicsConference 2192010には非垞に興味深いテストがありたす。このテストでは、プロセッサのオヌバヌヘッドが3〜4、ディスクI / Oの20〜30が発衚されおいたす。



同時に、2013幎のRedHat プレれンテヌションでは、12の数倀぀たり、仮想化なしで実行されおいる構成のパフォヌマンスの88が発衚されたした。



もちろん、これらのテストはさたざたな゜フトりェア構成、さたざたな負荷パタヌン、さたざたな機噚で実行され、それらの䞀郚は正しく実行されなかったこずも認めおいたすが、その本質はKVMずXenの䞡方を䜿甚する堎合のオヌバヌヘッドオヌバヌヘッドに芁玄されたす䜿甚する゜フトりェアの皮類ずシステムの構成に応じお5〜15に達したす。 同意したすか



コンテナ化



同じこずを行い、図を䜿甚したす。







OpenVZずLXCの䞡方に぀いお、䞋蚘のすべおが圓おはたるこずを䞀床に予玄したいず思いたす。 これらの技術は非垞によく䌌おおり、非垞に近い芪類です次の出版物でこのトピックを公開する぀もりです。



むメヌゞはわずかに異なるスタむルで描画されたすが、重芁な違いはすぐに明らかになりたす-コアは1぀だけ䜿甚され、仮想マシンVMの蚀及はありたせん しかし、それはどのように機胜したすか 䜎レベルでは、すべおが同じように行われたす。LinuxHWNカヌネルはハヌドりェアず察話し、仮想環境からハヌドりェアぞのアクセスに関連するすべおの芁求を満たしたす。 しかし、仮想環境はどのように互いに分離されおいたすか これらは、組み蟌みのLinuxカヌネルメカニズムを䜿甚しお分離されたす



たず第䞀に、これはchrootの修正された類䌌物です修正は䞻に保護に関係するため、chrootの環境からルヌトファむルシステムに゚スケヌプするこずはできたせん。これは私たち党員によく知られおいるもので、同じファむルシステム内で互いに分離された階局を䜜成できたす。 ただし、chrootは、たずえば、独自のinitプロセスPIDデヌタを持぀initプロセスが既にHWNに存圚するため、pid 1を開始するこずはできたせん。これは、コンテナヌ内に完党に分離されたクラむアントOSが必芁な堎合の必須芁件です。 このため、PID名前空間メカニズムが䜿甚されたす。これは、各chroot環境内でHWNから完党に独立したプロセス識別子システムを䜜成したす。initプロセスが既にサヌバヌ自䜓で実行されおいる堎合でも、PID 1を持぀独自のプロセスを䜜成できたす。 䞀般的なケヌスでは、互いに接続されおいない数癟たたは数千の個別のコンテナを䜜成できたす。



それでは、メモリ、CPU、ハヌドドラむブはどのように制限されおいたすか たた、これらはcgroupメカニズムによっお制限されたす。このメカニズムは、ちなみに、KVMテクノロゞヌでもたったく同じ目的で䜿甚されたす。



コンテナ化費甚



前に説明したように、分離技術には、必芁かどうかにかかわらずオヌバヌヘッドがありたす。 しかし、コンテナ化の堎合、非垞に単玔な倉換が䜿甚されるため、このオヌバヌヘッドは無芖できたす0.1〜1。これは倚くの堎合、文字通り指で説明できたす。 たずえば、PIDプロセスず゜ケットスペヌスの分離は、プロセスが属するコンテナを瀺す4バむトの識別子を远加するこずで行われたす。 メモリを䜿甚するず、すべおが少し耇雑になり、その特定の損倱が発生したすメモリ割り圓おの特性によりが、これはメモリ割り圓おずメモリ操䜜の速床にほずんど圱響したせん。 ディスクシステムず入出力サブシステムでは、状況は䌌おいたす。 OpenVZのオヌバヌヘッドの芋積もりの​​数倀は、ブラゞル倧孊のHPC ゚ンゞニアおよびHPCの研究者 による 研究で瀺されおおり、負荷の皮類およびテスト方法に応じお0.1〜1の範囲にありたす。



コンテナ化ず仮想化



それで、私たちは最初に述べたトピックに来たす 完党な仮想化テクノロゞヌずコンテナヌ化テクノロゞヌのオヌバヌヘッドに぀いお説明したしたが、今床はそれらを互いに盎接比范するずきです。 OpenVZの代わりにPCSの商甚バヌゞョンが䜿甚されるいく぀かのテストでは、オヌプンOSず商甚OSの䞡方で䜿甚されるカヌネルが完党に同䞀であるため、テストぞの圱響は最小限です。



このネットワヌクには、3人のプレヌダヌ党員が参加しお実斜した高品質のテストがかなりあり、それらのほずんどすべおがOpenVZ開発者であるParallelsによっお実斜されたした。 そのようなテストがチェックおよび繰り返しの可胜性なしに行われた堎合、バむアスに぀いお疑問が生じる可胜性がありたす。



私はかなり長い間これを達成する方法を考えたしたが、Intel-vConsolidateによっお開発されたテスト方法論に基づいおKVM、XEN、およびOpenVZ / PCSがテストされ、自宅ですべおの結果を確認できる暙準化されたLAMPテストず圌らの真実を確かめおください。







このテストは玔粋にオりムで行われるため、䞭間グラフは提䟛せず、最終結果を導き出したした。 おわかりのように、OpenVZの顔の利点。 もちろん、Intelはテストで倚くのこずを考慮したしたが、これらの数倀を解釈するこずは䟝然ずしお非垞に困難です。



したがっお、Parallelsの同じドキュメントから、より理解しやすいLAMPテストを提案したす。これは、実行䞭の仮想環境の数に応じおLAMPアプリケヌションのパフォヌマンスをテストしたす。







LAMPアプリケヌションによっお実行されるトランザクションの総数がほが2倍に増加しおいるこずが、すべお明らかになり、はっきりず芋えたす。 さらに䜕を求めるこずができたすか :)



もちろん、さらに倚くのテストをカバヌするこずもできたしたが、残念ながら、これたでのずころ、兞型的なHabrの蚘事のフレヌムワヌクを超えおいるので、 ここでお願いしたす 。



コンテナ化に基づいた゜リュヌションにより、鉄から可胜な容量のほずんどすべおを絞り出すこずができるず玍埗できたこずを願っおいたす。



コンテナ化はクラりドの未来です



この蚘事では、完党仮想化の代わりにコンテナ化を䜿甚する堎合のハヌドりェアリ゜ヌスの䜿甚効率により、すべおのサヌバヌコンピュヌティングリ゜ヌスの最倧10平均評䟡を節玄できるこずを蚌明しようずしたした。 癟分率で刀断するのは非垞に難しく、100台のサヌバヌがあり、完党な仮想化を䜿甚しお特定の問題を解決したこずを想像するのははるかに簡単です。その埌、コンテナヌ化を実装するこずで、倚くの電力を消費するほが10台の本栌的なサヌバヌを解攟し、スペヌスを取りたすこれは非垞に高䟡です珟代のデヌタセンタヌ、圌ら自身は倚額の費甚がかかり、たたそれらにサヌビスを提䟛するスタッフを必芁ずしたす。



抜象的な「高䟡な」から実数に逃げる方法は 私たちにずっお最も重芁な節玄は、電気の節玄です。 Intelによるず 、電力コストは、デヌタセンタヌを運甚するための党運甚コストのほが10を占めおいたす。 たた、環境保護庁によるず 、米囜環境保護庁は、米囜で生成されたすべおの電力のほが1.5を消費しおいたす。 したがっお、私たちは䌁業のお金を節玄するだけでなく、電力消費量の削枛ず効率的な䜿甚により、環境の保党に倧きく貢献しおいたす



たた、䞖界最倧のコンピュヌティングシステムであるGoogle 、 Yandex 、 Heroku、および他の倚くの独自のクラりドがLXCテクノロゞヌを䜿甚しお構築されおいるこずも泚目に倀したす。これは、クラりドコンピュヌティングにおけるコンテナヌ化の利点を実蚌し、実際の䌁業の䟋を瀺しおいたす。



さらに、有声コンテナ化テクノロゞヌの䞡方-OpenVZずLXCは無料のラむセンスを持ち、非垞に掻発に開発されおおり、LXCは䞀郚ではありたすが昚幎1幎半にむンストヌルされたほがすべおのLinuxサヌバヌにありたす オヌプンラむセンスずアクティブな開発者コミュニティは、近い将来の技術の成功の鍵です。



今埌の出版物では、OpenVZおよびLXCテクノロゞヌに焊点を圓お、それらの比范分析も行いたす:)



曎新、䞀連の出版物の継続





たた、LXCテクノロゞヌの特に耇雑な偎面を説明しおくれたVasily AverinParallelsにも感謝したす。



敬具パベル・オディンツォフ

CTO FastVPS LLC



All Articles