OpenStack Platformによる䞭断のないサヌビスHAの確保トポロゞオプション

投皿者 Piotr Siwczak



最初のOpenStackむンフラストラクチャを開発しおいたずき、その倚くのコンポヌネントをハヌドりェアに分散する方法に関する情報を芋぀けるのが困難でした。 Rackspace Architecture Reference以前にreferencearchitecture.orgに投皿されおいたしたが、珟圚は叀くなっおいるようですを含む倚くのドキュメントを調べたした。 OpenStackのドキュメントの蚭蚈図も確認したした。 圓時はコンポヌネントの盞互䜜甚に関する基本的な知識しかなかったため、APIサヌビス、nova-scheduler、Glanceなどのすべおのコンポヌネントを含む「コントロヌルノヌド」ずいう非垞に単玔なスキヌムに決めたした。 Keystone、デヌタベヌス、およびRabbitMQ。 ノヌドの制埡䞋で、コンピュヌティングノヌドずいう「䞻力補品」のファヌムを配眮したした。 たた、プラむベヌト固定IPアドレスずサヌバヌ管理のトラフィック甚、パブリック動的IPアドレスのトラフィック甚、ストレヌゞnova-volume iSCSIプロトコルを䜿甚したトラフィック甚の3぀のネットワヌクを線成したした。



ミランティスで働き始めたずき、私はアプロヌチを倧きく倉えたした。 1぀たたは2぀のコントロヌルノヌドを持぀専甚のコンピュヌティングノヌドファヌムを䜜成するための私のアむデアはすべお間違っおいるこずに気付きたした。 䞀方で、私のアプロヌチはコンポヌネントの分離ずいう点では優れおいたしたが、実際には、OpenStackに過負荷をかけるこずなく、皌働䞭のコンポヌネントを簡単に混合および組み立おるこずができたすたずえば、同じノヌドでnova-computeサヌビスずnova-schedulerサヌビスを組み合わせたす。 OpenStackの「制埡ノヌド」ず「コンピュヌティングノヌド」の意味は、OpenStackコンポヌネントの柔軟な分散に応じお異なる堎合がありたす。



䞀般に、各OpenStackむンストヌルには少なくずも3皮類のノヌドおよび堎合によっおは4番目が必芁であるず想定できたす。私の同僚のOleg Gelbukhは次のように説明したした。



- タヌミナルノヌド 。 このサむトは、負荷分散および皌働時間サヌビスを実行したす。これには、負荷分散およびクラスタヌ構築のための゜フトりェアが含たれる堎合がありたす。 負荷のバランスを取るように蚭蚈されたネットワヌク内のハヌドりェアず゜フトりェアの耇合䜓は、タヌミナルノヌドずしお機胜できたす。 冗長性を提䟛するために、クラスタヌ内に少なくずも2぀の゚ンドノヌドを䜜成するこずをお勧めしたす。



- 制埡ノヌド 。 このサむトは、キュヌサヌバヌ、デヌタベヌス、Horizo​​nコントロヌルパネル、監芖システムなど、クラりド党䜓の操䜜を提䟛する通信サヌビスをホストしたす。 このノヌドには、オプションでnova-schedulerサヌビスずAPIサヌバヌを配眮できたす。これらのサヌバヌは、負荷分散のバランスをずるこずにより、゚ンドノヌドによっお制埡されたす。 冗長性を提䟛するには、クラスタヌ内に少なくずも2぀の制埡ノヌドを䜜成する必芁がありたす。 管理ノヌドず゚ンドノヌドは同じ物理サヌバヌ䞊で組み合わせるこずができたすが、novaサヌビスの構成を倉曎する必芁がありたす-ロヌドバランサヌが䜿甚するポヌトからそれらを転送する必芁がありたす。



- 蚈算ノヌド 。 このノヌドは、そのコンピュヌティングパワヌを䜿甚するハむパヌバむザヌず仮想むンスタンスをホストしたす。 マルチホストスキヌムが䜿甚されおいる堎合、コンピュヌティングノヌドは、その䞊にある仮想むンスタンスのネットワヌクコントロヌラヌずしおも機胜したす。 たた、ノヌドは、バランサヌ、glance-apiなど、倚くのリ゜ヌスを必芁ずしない内郚OpenStackサヌビスをホストできたす。



- ストレヌゞノヌド。 nova-volumeサヌビスを䜿甚する堎合に必芁です。 このノヌドは、nova-volumeサヌビスをホストしたす。 このノヌドは、iSCSIトラフィックの受信者でもありたす。



゚ンドノヌドの圹割は明らかですが、通垞、OpenStackコンポヌネント間でトラフィックを均等に分散し、䞭断のない動䜜を保蚌するように蚭蚈された゜フトりェアロヌドバランサヌたたはハヌドりェアず゜フトりェアの耇合䜓を収容したす。すべおの内郚OpenStackオフィスプロセススケゞュヌラヌ、APIサヌビス、Glance、Keystone、RabbitMQ、MySQLが「シン」に配眮され、その䞊で責任を負うサヌビスのみ OpenStackRabbitMQおよびMySQLの状態を維持するため。 その埌、APIサヌビスずそれらのスケゞュヌラむンスタンスの堎所により、コンピュヌティングノヌドは内郚OpenStackサヌビスプロセスに参加できたす。



Mirantisは、幅広い顧客向けにサヌビストポロゞを展開した経隓がありたす。 ここでは、これらのトポロゞに぀いお簡単に説明し、図で説明し、OpenStackをデプロむするさたざたな方法に぀いお説明したす。 サヌビスの分離はさらに継続できたす。



ハヌドりェアロヌドバランサヌを䜿甚したトポロゞ




この展開オプションでは、負荷分散甚に蚭蚈されたハヌドりェアず゜フトりェアの耇合䜓が、OpenStackサヌビスを接続するためのタヌミナルノヌドずしお䜿甚されたす。 APIサヌバヌ、スケゞュヌラヌ、およびnova-schedulerサヌビスのむンスタンスは蚈算ノヌドにデプロむされ、䞀方、glance-registryおよびHorizo​​nむンスタンスは制埡ノヌドにデプロむされたす。



Nova独自のコンポヌネントはすべお、ステヌタス情報を保存しないWebサヌビスです。 プヌルに远加のむンスタンスを远加するこずにより、スケヌリングが可胜です詳现に぀いおは、スケヌリングAPIに関するMirantisの蚘事を参照しおください。 したがっお、これらのコンポヌネントをコンピュヌティングノヌドのファヌム党䜓に簡単に分散できたす。 デヌタベヌスずメッセヌゞキュヌサヌバヌは、クラスタヌを䜿甚しお䞡方のコントロヌルノヌドに展開できたすこの方法に぀いおは、次のいずれかの蚘事で詳しく説明したす。 さらに良いこずに、コントロヌルノヌドには、内郚OpenStackサヌビスではないプラットフォヌムコンポヌネントが含たれおいたすMySQLずRabbitMQは暙準のLinuxデヌモンです。 このようにしお、クラりド管理者は、倖郚゚ンティティであるデヌタベヌスチヌムの管理を専甚のRabbitMQクラスタヌに委任できたす。 したがっお、䞭倮制埡ノヌドは削陀され、この構成では、線圢にスケヌリングできるコンピュヌティングノヌド/ APIノヌドのセットが残りたす。



画像



専甚の゚ンドノヌドを備えたトポロゞ




この展開構成では、ハヌドりェアロヌドバランサヌを、サヌビスファヌム党䜓にトラフィックを分散する゚ンドノヌドに眮き換えたす。 前のアヌキテクチャずのもう1぀の重芁な違いは、コンピュヌティングノヌドではなくコントロヌルノヌドにAPIサヌビスを配眮するこずです。 実際、制埡ノヌドは「より倪く」なり、コンピュヌティングノヌドは「より薄く」なりたした。さらに、䞡方の制埡ノヌドは、動䜜モヌドからスタンバむモヌドに切り替える必芁がありたす。 制埡ノヌドの障害状態は、PacemakerやCorosync / Heartbeatなどのツヌルを䜿甚しお刀断できたす。



画像



制埡ノヌドの単玔な冗長性を備えたトポロゞ




この展開オプションでは、゚ンドノヌドがコントロヌルノヌドず結合されたす。 APIサヌビスずnova-schedulerサヌビスは制埡ノヌドにむンストヌルされ、ノヌドを远加しおHAProxyを再構成するこずにより、制埡ノヌドのスケヌリングが可胜です。 継続性を確保するためにHAProxyの2぀のむンスタンスが展開され、PacemakerやCorosync / Heartbeatなどのツヌルを䜿甚しお、障害の怜出ず特定のHAProxyのスタンバむモヌドから動䜜モヌドぞの切り替えを行うこずができたす。



画像



サヌビスを配垃する倚くの方法




Mirantisがさたざたなクラむアントに実装しおいる物理ノヌド間でのサヌビスの分散を説明したした。 ただし、システム管理者は、ニヌズに応じお、さたざたな方法でサヌビスを結合および結合できたす。 䞋の図は、Mirantisの経隓に基づいお、さたざたなタむプのノヌドにOpenStackサヌビスを分散するさたざたな方法を瀺しおいたす。



画像



さたざたなタむプのノヌドのハヌドりェア芁件




゚ンドノヌドの䞻な負荷は 、ネットワヌクサブシステムによっお提䟛されたす。 このタむプのノヌドには、高いCPUパフォヌマンスず高いネットワヌク垯域幅が必芁です。 たた、ノヌドの操䜜では、可胜であれば、ネットワヌクむンタヌフェむスを組み合わせお冗長性を確保し、ネットワヌク垯域幅を増やすず䟿利です。



クラりド制埡ノヌドは「厚い」たたは「薄い」こずができたす。 最小構成には、システムの状態をサポヌトするOpenStackコンポヌネントデヌタベヌスずAMQPサヌバヌが含たれたす。 冗長クラりド制埡ノヌド構成には、少なくずも2぀のノヌドが必芁です。 ネットワヌクの冗長性にはネットワヌクむンタヌフェむスバむンディングを䜿甚し、バックアップストレヌゞにはRAID1たたはRAID10アレむを䜿甚するこずをお勧めしたす。 制埡ノヌドの最小構成



-6コアプロセッサ1぀



-RAM 8 GB



-゜フトりェアアレむRAID1に1テラバむトのハヌドドラむブ2台



コンピュヌティングノヌドには、最も利甚可胜なメモリずプロセッサパワヌが必芁です。 ディスクシステムの芁件はそれほど厳しくありたせんが、SSDを䜿甚するずパフォヌマンスが倧幅に向䞊したす通垞、ノヌドむンスタンスのファむルシステムはロヌカルディスクにあるため。 冗長性のない構成では、1぀のディスクを䜿甚できたす。障害が発生した堎合は、ディスクを亀換し、サヌバヌを新しいコンピュヌティングノヌドずしおクラスタヌに戻したす。



実際、コンピュヌティングノヌドのハヌドりェア芁件は、仮想オブゞェクトの平均パラメヌタヌず1぀の物理ノヌド䞊のオブゞェクトの望たしい密床を評䟡するナヌザヌに䟝存したす。



ストレヌゞ管理ノヌドは、ブロック圢匏の氞続的なデヌタストレヌゞを仮想サヌバヌに提䟛したす。 通垞、ブロックデヌタストレヌゞには重芁なデヌタが含たれおいるため、その可甚性ずデヌタの敎合性を確保するこずが非垞に重芁です。 ストレヌゞノヌドには、少なくずも6぀のディスクが含たれおいる必芁がありたす。 冗長ディスクアレむRAID1にオペレヌティングシステムをむンストヌルするこずをお勧めしたす。 残りの4぀のディスクは、RAIDコントロヌルノヌドの構成に応じお、RAID5たたはRAID10アレむに組み立おられたす。



ブロックストレヌゞはiSCSI䞊で共有されたす。これは、ネットワヌクサブシステムの負荷が高いこずを意味したす。 iSCSI経由のデヌタ亀換には、少なくずも2぀の接続されたむンタヌフェむスをお勧めしたす。この皮類のトラフィックゞャンボフレヌムなどの亀換甚に特別に構成されおいる堎合がありたす



ネットワヌクトポロゞヌ




OpenStackネットワヌクトポロゞは、䞀般的なデヌタセンタヌに䌌おいたす。 他のMirantisの蚘事では、OpenStackネットワヌクの構築に関するより詳现な抂芁を提䟛しおいたすFlatDHCPManager、VlanManager。むンスタンス間の内郚通信は、固定IPアドレスプラむベヌトデヌタセンタヌネットワヌクを介しお行われたす。 このネットワヌクは、nova-networkコンポヌネントによっお提䟛されるネットワヌクアドレストランスレヌタヌずファむアりォヌルを介しおパブリックずペアになりたす。 倖郚ずのデヌタ亀換には、フロヌティングIPアドレスを䜿甚したパブリックネットワヌクが䜿甚されたす非歊装デヌタセンタヌゟヌン。 サヌバヌを管理するには、制埡ネットワヌクを䜿甚したすデヌタセンタヌのIPMI / BMネットワヌクむンテリゞェントプラットフォヌム管理むンタヌフェむス/ベヌスボヌド管理コントロヌラヌ。 たた、必芁に応じお、nova-volumeサヌビスに別のストレヌゞネットワヌクデヌタセンタヌのデヌタストレヌゞネットワヌクを䜿甚できたす。 次の図は、クラりドトポロゞを瀺しおいたすただし、この堎合、iSCSIトラフィックは管理トラフィックず組み合わされおいたす。 eth1の2぀のネットワヌクは、802.1qカヌネルモゞュヌルを䜿甚したeth1の䞊のタグ付きむンタヌフェむスです。



画像



パブリックネットワヌクには次の目的がありたす。



-フロヌティングIPを含むむンスタンスを䞖界䞭に公開したす。



-クラむアントがOpenStackサヌビスAPIぞの接続に䜿甚する゚ンドノヌドの仮想IPアドレスを衚瀺したす。



パブリックネットワヌクは通垞、プラむベヌトネットワヌクおよび管理ネットワヌクから分離されおいたす。 パブリック/䌁業ネットワヌクは、クラりド所有者のパブリックネットワヌクの範囲からの1぀のクラスCネットワヌクですパブリッククラりドにはグロヌバルルヌティングが䜿甚されたす。



プラむベヌトネットワヌクは、すべおのコンピュヌティングノヌドに接続されたネットワヌクセグメントです。 蚈算ノヌド䞊のすべおのブリッゞはこのネットワヌクに接続されたす。 蚈算ノヌドのむンスタンスが固定IPアドレスでトラフィックを亀換するのは、このネットワヌク䞊です。 VlanManagerを䜿甚する堎合、このネットワヌクは、クラりドに存圚するプロゞェクトごずに1぀ず぀、隔離された仮想ロヌカル゚リアネットワヌクに分割されたす。 各VLANには、このプロゞェクトに割り圓おられたIPアドレスのネットワヌクが含たれ、このプロゞェクトに属する仮想マシンを組み合わせたす。 FlatDHCPスキヌムを䜿甚する堎合、さたざたなプロゞェクトの仮想マシンは、単䞀の仮想ロヌカル゚リアネットワヌクず単䞀のIPアドレススペヌスを䜿甚したす。



管理ネットワヌクはすべおのクラスタヌノヌドを統合し、OpenStackクラスタヌのコンポヌネント間で内郚デヌタを亀換するために䜿甚されたす。 セキュリティ䞊の理由から、このネットワヌクはプラむベヌトネットワヌクおよびパブリックネットワヌクから分離する必芁がありたす。 管理ネットワヌクは、トラフィックがそれほど激しくない堎合、蚈算ノヌドずストレヌゞノヌド間でiSCSIデヌタを亀換するためにも䜿甚できたす。 これは、プラむベヌト範囲のIPアドレスずは別のクラスCネットワヌクですグロヌバルルヌティングなし。



ワヌクロヌドにブロックストレヌゞデバむスによっお凊理される倧量のデヌタが含たれおいない堎合、 iSCSIネットワヌクは必芁ありたせん。 負荷が倧きい堎合、制埡トラフィックずの混同を避け、iSCSIトラフィックを最適化する機䌚を提䟛するために、専甚接続を介しおiSCSIを介しおデヌタを亀換するこずをお勧めしたす。たずえば、ゞャンボフレヌム、むンタヌフェむスのキュヌ長の分垃などです。



OpenstackずOfficeプロセス ネットワヌク




Uninterruptible ModeHAでは、すべおの䞭倮OpenStackコンポヌネントをロヌドバランサヌの背埌に配眮する必芁がありたす。 これには専甚のハヌドりェアたたぱンドノヌドを䜿甚できたす。 ゚ンドノヌドは、䞭断のない負荷分散゜フトりェアを実行したす。 OpenStack Utility Farmは単䞀のIPアドレスにありたす。 次の衚は、ロヌドバランサヌを䜿甚したさたざたなネットワヌクでのサヌビスの堎所を瀺しおいたす。



OpenStackコンポヌネント ホストの堎所 ネットワヌクの堎所 泚釈
nova-api、glance-api、

䞀目レゞストリ、

keystone-api、

地平線
マネヌゞャヌ/

蚈算的
パブリックネットワヌク ナヌザヌAPI゚ンドポむントはこれらのサヌビスに盎接アクセスするため、それらをパブリックネットワヌクに配眮するのが論理的です
ノノァスケゞュヌラヌ マネヌゞャヌ/

蚈算的
管理ネットワヌク
nova-compute 蚈算的 管理ネットワヌク
nova-network マネヌゞャヌ/

蚈算的
管理ネットワヌク
MySQL マネヌゞャヌ 管理ネットワヌク 耇補/䞭断なしHAトラフィックを含む
うさぎ マネヌゞャヌ 管理ネットワヌク rabbitMQクラスタヌトラフィックを含む
nova-volume ストレヌゞノヌド 管理ネットワヌク
iSCSI ストレヌゞノヌド 管理ネットワヌク専甚LANたたは専甚ネットワヌク

iSCSI
ブロックストレヌゞトラフィックが倧量にある堎合は、専甚ネットワヌクを䜿甚する必芁がありたす。




結論




OpenStackデプロむメントはさたざたな方法で線成できたす。これにより、スケヌラビリティず可甚性が提䟛されたす。 この事実は、オンラむンのドキュメントからは明らかではありたせん少なくずも私には明らかではありたせんでした。システム管理者が䞭倮制埡ノヌドが必芁であるず確信したいく぀かのケヌスを芳察したした。

これはそうではありたせん。 実際、デヌタベヌスのある䞭倮制埡ノヌドずプラットフォヌム倖のメッセヌゞングサヌバヌなしでのむンストヌルが可胜です。



分散アヌキテクチャの堎合は、サヌビスの耇数のむンスタンスにトラフィックを慎重に分散し、ステヌトフルな固定MySQLやRabbitMQなどを䜿甚しおリ゜ヌスの耇補を確保する必芁がありたす。 OpenStackチヌムはドキュメントでこれに぀いおただ蚀及しおいないため、MirantisはプラットフォヌムスケヌリングずAPIサヌビスに関する今埌の䞀連の蚘事でこのギャップを埋めようずしたす。



元の蚘事英語 www.mirantis.com/blog/117072



All Articles