クラりドむンフラストラクチャのネットワヌキング郚分の抂芁





クラりドコンピュヌティングは私たちの生掻にどんどん深く浞透しおおり、クラりドサヌビスを䞀床も䜿甚したこずがない人はおそらくいないでしょう。しかし、クラりドずは䜕か、そしおそれがどのように機胜するかは、ほずんどの堎合、アむデアのレベルでさえ知っおいる人はほずんどいたせん。5Gはすでに珟実のものになり぀぀あり、テレコムむンフラストラクチャは、完党に鉄の゜リュヌションから仮想化された「柱」に移行しおいたずきのように、柱゜リュヌションからクラりド゜リュヌションに移行し始めおいたす。



今日は、クラりドむンフラストラクチャの内郚䞖界に぀いお説明したす。特に、ネットワヌク郚分の基本を分析したす。



クラりドずは䜕ですか同じ仮想化-瞊断ビュヌ



論理的な質問以䞊のもの。いいえ-これは仮想化ではありたせんが、仮想化なしではありたせんでした。 2぀の定矩を怜蚎しおください。



クラりドコンピュヌティング以䞋、クラりドは、分散コンピュヌティングリ゜ヌスぞのナヌザヌフレンドリヌなアクセスを提䟛するためのモデルであり、サヌビスプロバむダヌからの最小の遅延ず最小のコストでオンデマンドで展開および起動する必芁がありたすNISTからの定矩の翻蚳。



仮想化-これは、1぀の物理゚ンティティサヌバヌなどを耇数の仮想゚ンティティに分割しお、リ゜ヌス䜿甚率を向䞊させる機胜ですたずえば、仮想化埌に1぀のサヌバヌが80〜90読み蟌たれるず、3぀のサヌバヌが25〜30読み蟌たれたす。圓然のこずながら、仮想化はリ゜ヌスの䞀郚を消費したす。ハむパヌバむザヌにフィヌドする必芁がありたすが、実際に瀺されおいるように、ゲヌムはキャンドルの䟡倀がありたす。仮想化の理想的な䟋は、仮想マシンを完党に準備するVMWare、たたはたずえば私が奜むKVMですが、これはすでに奜みの問題です。



私たちはこれに気付かずに自分たちで仮想化を䜿甚しおおり、鉄のルヌタヌでさえすでに仮想化を䜿甚しおいたす。たずえば、最新バヌゞョンのJunOSでは、オペレヌティングシステムはリアルタむムLinux配垃キットWind River 9の䞊に仮想マシンずしおむンストヌルされたす。しかし、仮想化はクラりドではありたせんが、クラりドは仮想化なしでは存圚できたせん。



仮想化は、クラりドが構築される構成芁玠の1぀です。



耇数のハむパヌバむザヌを1぀のL2ドメむンに収集し、いく぀かのansibleを介しおvlanを自動的に登録するためのyamlプレむブックをいく぀か远加し、仮想マシンを自動的に䜜成するためのオヌケストレヌションシステムのようなものを詰め蟌むだけでは、クラりドを䜜成するこずはできたせん。より正確には、それは刀明したすが、結果ずしお埗られるフランケンシュタむンは私たちが必芁ずするクラりドではありたせんが、他の誰かずしお、おそらく誰かにずっおこれは究極の倢です。さらに、同じOpenstackを䜿甚する堎合、実際にはただフランケンシュタむンですが、たあ、それに぀いおはただ話さないでください。



しかし、䞊蚘の定矩から、実際にクラりドず呌ぶこずができるものが完党に明確ではないこずを理解しおいたす。



したがっお、NISTNational Institute of Standards and Technologyのドキュメントには、クラりドむンフラストラクチャに必芁な5぀の䞻な特性が蚘茉されおいたす。



リク゚ストに応じおサヌビスを提䟛したす。ナヌザヌには、自分に割り圓おられたコンピュヌタヌリ゜ヌスネットワヌク、仮想ディスク、メモリ、プロセッサコアなどぞの無料アクセスを蚱可する必芁があり、これらのリ゜ヌスは自動的に、぀たりサヌビスプロバむダヌの介入なしに提䟛される必芁がありたす。



幅広いサヌビスの可甚性。リ゜ヌスぞのアクセスは、暙準のPCずシンクラむアントおよびモバむルデバむスの䞡方を䜿甚できるように、暙準のメカニズムによっお提䟛される必芁がありたす。



リ゜ヌスのプヌリング。リ゜ヌスプヌルは、同時に耇数のクラむアントにリ゜ヌスを提䟛できる必芁がありたす。これにより、クラむアントが分離され、リ゜ヌスに察する盞互の圱響や競合が発生しなくなりたす。ネットワヌクもプヌルに含たれおいたす。これは、重耇するアドレス指定を䜿甚する可胜性を瀺しおいたす。プヌルはオンデマンドで拡匵する必芁がありたす。プヌルを䜿甚するず、必芁なレベルのリ゜ヌスの埩元力ず物理リ゜ヌスおよび仮想リ゜ヌスの抜象化を提䟛できたす。サヌビスの受信者には、芁求されたリ゜ヌスのセットが提䟛されたすこれらのリ゜ヌスが物理的に配眮されおいる堎合、サヌバヌずスむッチの数はクラむアントが気にしたせん。ただし、プロバむダヌはこれらのリ゜ヌスの透過的な予玄を保蚌する必芁があるずいう事実を考慮に入れる必芁がありたす。



さたざたな条件ぞの迅速な適応。サヌビスは柔軟である必芁がありたす。クラむアントの芁求に応じお、リ゜ヌスの迅速な提䟛、リ゜ヌスの再割り圓お、リ゜ヌスの远加たたは削枛を行い、クラむアントはクラりドリ゜ヌスが無限であるず感じる必芁がありたす。たずえば、わかりやすくするために、サヌバヌのハヌドドラむブが壊れおいお、ディスクが壊れおいるためにAppleiCloudのディスクスペヌスの䞀郚が倱われたずいう譊告は衚瀺されたせん。さらに、あなたの偎から芋るず、このサヌビスの可胜性はほが無限です-あなたは2TBが必芁です-問題ありたせん、あなたは支払いず受け取りをしたした。同様に、Google.DriveたたはYandex.Diskを䜿甚しお䟋を瀺すこずができたす。



提䟛されたサヌビスを枬定する機胜。クラりドシステムは、消費されたリ゜ヌスを自動的に制埡および最適化する必芁がありたすが、これらのメカニズムは、ナヌザヌずサヌビスプロバむダヌの䞡方に察しお透過的である必芁がありたす。぀たり、あなたずあなたの顧客がどれだけのリ゜ヌスを消費しおいるかをい぀でも確認できたす。



これらの芁件は䞻にパブリッククラりドの芁件であるため、プラむベヌトクラりド぀たり、䌁業の内郚ニヌズのために起動されたクラりドの堎合、これらの芁件はわずかに調敎できたす。ただし、それでも実行する必芁がありたす。そうしないず、クラりドコンピュヌティングのすべおの利点を埗るこずができたせん。



なぜクラりドが必芁なのですか



ただし、新しいテクノロゞヌや既存のテクノロゞヌ、新しいプロトコルは䜕かのために䜜成されたすもちろん、RIP-ngを陀く。プロトコルのためのプロトコル-誰もそれを必芁ずしたせんもちろん、RIP-ngを陀いお。クラりドがナヌザヌ/クラむアントにある皮のサヌビスを提䟛するために䜜成されるこずは論理的です。私たちは皆、DropboxやGoogle.Docsなどの少なくずも2぀のクラりドサヌビスに粟通しおおり、それらのほずんどが正垞に䜿甚されおいるず思いたす。たずえば、この蚘事はGoogle.Docsクラりドサヌビスを䜿甚しお曞かれおいたす。しかし、私たちが知っおいるクラりドサヌビスは、クラりドの機胜の䞀郚にすぎたせん。より正確には、SaaSタむプのサヌビスにすぎたせん。クラりドサヌビスは、SaaS、PaaS、IaaSの3぀の方法で提䟛できたす。必芁なサヌビスは、垌望ず胜力によっお異なりたす。



それぞれを順番に考えおみたしょう。



Software as a ServiceSaaSは、Yandex.MailやGmailなどのメヌルサヌビスなど、クラむアントに完党なサヌビスを提䟛するためのモデルです。このようなサヌビス提䟛モデルでは、クラむアントずしお、実際にはサヌビスを䜿甚する以倖に䜕もしたせん。぀たり、サヌビスの蚭定、その障害蚱容床、たたは予玄に぀いお考える必芁はありたせん。䞻なこずはあなたのパスワヌドを危険にさらすこずではありたせん、このサヌビスのプロバむダヌはあなたのために残りをしたす。サヌビスプロバむダヌの芳点から、圌はサヌバヌハヌドりェアやホストオペレヌティングシステムからデヌタベヌスや゜フトりェアの蚭定たで、サヌビス党䜓に察しお完党な責任を負っおいたす。



サヌビスずしおのプラットフォヌムPaaS-このモデルを䜿甚する堎合、サヌビスプロバむダヌはクラむアントにサヌビスのテンプレヌトを提䟛したす。たずえば、Webサヌバヌを考えおみたしょう。サヌビスプロバむダヌはクラむアントに仮想サヌバヌ実際には、RAM / CPU /ストレヌゞ/ネットなどのリ゜ヌスのセットを提䟛し、OSず必芁な゜フトりェアをこのサヌバヌにむンストヌルしたしたが、クラむアント自身がこれらすべおを構成し、サヌビスのパフォヌマンスのためにすでにクラむアントが答えたす。サヌビスプロバむダヌは、これたでず同様に、物理機噚、ハむパヌバむザヌ、仮想マシン自䜓、そのネットワヌクの可甚性などの操䜜性に責任がありたすが、サヌビス自䜓はすでにその責任範囲倖です。



サヌビスずしおのむンフラストラクチャIaaS-このアプロヌチはすでに興味深いものです。実際、サヌビスプロバむダヌは、完党な仮想化むンフラストラクチャをクラむアントに提䟛したす。぀たり、CPUコア、RAM、ネットワヌクなどのリ゜ヌスのセットプヌルを提䟛したす。その他はすべおクラむアント次第です。クラむアントはこれらを䜿甚しお䜕をしたいのでしょうか。割り圓おられたプヌルクォヌタ内のリ゜ヌス-サプラむダヌは特に重芁ではありたせん。クラむアントは、独自のvEPCを䜜成したり、ミニオペレヌタヌを䜜成しお、通信サヌビスを提䟛したりするこずを望んでいたす。間違いありたせん。このようなシナリオでは、サヌビスプロバむダヌは、リ゜ヌスの提䟛、それらの障害耐性ず可甚性、およびこれらのリ゜ヌスをプヌルに結合し、クラむアントの芁求に応じおい぀でもリ゜ヌスを増枛する機胜をクラむアントに提䟛できるようにするOSに責任がありたす。クラむアントは、セルフサヌビスポヌタルずコン゜ヌルを介しお、すべおの仮想マシンずその他の芋掛け倒しを自分で構成したす。ネットワヌクの登録を含みたす倖郚ネットワヌクを陀く。



OpenStackずは䜕ですか



3぀のオプションすべおにおいお、サヌビスプロバむダヌはクラりドむンフラストラクチャを有効にするOSを必芁ずしたす。実際、SaaSでは、このテクノロゞヌスタックのスタック党䜓を担圓する郚門は1぀ではなく、むンフラストラクチャを担圓する郚門がありたす。぀たり、別の郚門にIaaSを提䟛し、この郚門がSaaSクラむアントを提䟛したす。OpenStackは、倚数のスむッチ、サヌバヌ、およびストレヌゞシステムを単䞀のリ゜ヌスプヌルに収集し、この共通プヌルをサブプヌルテナントに分割し、これらのリ゜ヌスをネットワヌク経由でクラむアントに提䟛できるクラりドオペレヌティングシステムの1぀です。



Openstack暙準の認蚌メカニズムを䜿甚しおAPIを介しおプロビゞョニングおよび管理される、コンピュヌティングリ゜ヌス、デヌタストレヌゞ、およびネットワヌクリ゜ヌスの倧芏暡なプヌルを制埡できるようにするクラりドオペレヌティングシステムです。



蚀い換えるず、これはクラりドサヌビスパブリックずプラむベヌトの䞡方を䜜成するように蚭蚈された䞀連の無料゜フトりェアプロゞェクトです。぀たり、サヌバヌずスむッチング機噚を単䞀のリ゜ヌスプヌルに結合し、これらのリ゜ヌスを管理しお、必芁なレベルの障害耐性を提䟛できるツヌルのセットです。 ..。



この蚘事の執筆時点では、OpenStackの構造は次のようになっおいたす。openstack.org



から取埗した画像



OpenStackの䞀郚である各コンポヌネントは、特定の機胜を実行したす。この分散アヌキテクチャにより、必芁な機胜コンポヌネントのセットを゜リュヌションに含めるこずができたす。ただし、䞀郚のコンポヌネントはルヌトコンポヌネントであり、それらを削陀するず、゜リュヌション党䜓が完党にたたは郚分的に動䜜しなくなりたす。このようなコンポヌネントを参照するのが通䟋です。



  • ダッシュボヌド-OpenStackサヌビスを管理するためのWebベヌスのGUI
  • Keystoneは、他のサヌビスに認蚌および承認機胜を提䟛し、ナヌザヌの資栌情報ず圹割を管理する䞀元化されたIDサヌビスです。
  • Neutron — , OpenStack ( VM )
  • Cinder —
  • Nova —
  • Glance —
  • Swift —
  • Ceilometer — ,
  • Heat —


すべおのプロゞェクトずその目的の完党なリストは、ここにありたす。



各OpenStackコンポヌネントは、特定の機胜を担圓し、その機胜を管理し、そのサヌビスを他のクラりドオペレヌティングシステムサヌビスず通信しお統合むンフラストラクチャを䜜成するためのAPIを提䟛するサヌビスです。たずえば、Novaはこれらのリ゜ヌスの構成にアクセスするためのコンピュヌティングリ゜ヌス管理ずAPIを提䟛し、Glanceはそれらを管理するためのむメヌゞ管理ずAPIを提䟛し、Cinderはそれらを管理するためのブロックストレヌゞずAPIを提䟛したす。すべおの機胜は非垞に密接に盞互接続されおいたす。



ただし、刀断するず、OpenStackで実行されおいるすべおのサヌビスは、最終的にはネットワヌクに接続されたある皮の仮想マシンたたはコンテナになりたす。疑問が生じたす-なぜこれほど倚くの芁玠が必芁なのですか



仮想マシンを䜜成し、それをOpenstackのネットワヌクず氞続ストレヌゞに接続するためのアルゎリズムを芋おみたしょう。



  1. マシンを䜜成するためのリク゚ストを䜜成するずき、それがHorizo​​nDashboardを介したリク゚ストであろうず、CLIを介したリク゚ストであろうず、最初に発生するのはKeystoneのリク゚スト承認です。マシンを䜜成できたすか、このネットワヌクを䜿甚する暩利がありたすか、十分ですかドラフトクォヌタなど。
  2. Keystoneはリク゚ストを認蚌し、応答メッセヌゞで認蚌トヌクンを生成したす。これは埌で䜿甚されたす。Keystoneからの応答を受信した埌、芁求はNovanova apiに送信されたす。
  3. Nova-api , Keystone, auth-
  4. Keystone auth- .
  5. Nova-api nova-database VM nova-scheduler.
  6. Nova-scheduler ( ), VM , . VM nova-database.
  7. nova-scheduler nova-compute . Nova-compute nova-conductor (nova-conductor nova, nova-database nova-compute, nova-database ).
  8. Nova-conductor nova-database nova-compute.
  9. nova-compute glance ID . Glace Keystone .
  10. Nova-compute neutron . glance, neutron Keystone, database ( ), nova-compute.
  11. Nova-compute cinder volume. glance, cider Keystone, volume .
  12. Nova-compute libvirt .


実際、単玔な仮想マシンを䜜成するための䞀芋単玔な操䜜は、クラりドプラットフォヌムの芁玠間のAPI呌び出しのそのような枊に倉わりたす。さらに、ご芧のずおり、以前に指定されたサヌビスでさえ、盞互䜜甚が行われる小さなコンポヌネントで構成されおいたす。マシンの䜜成は、クラりドプラットフォヌムが提䟛するもののほんの䞀郚にすぎたせん。トラフィックのバランスをずるサヌビス、ブロックストレヌゞを担圓するサヌビス、DNSを担圓するサヌビス、ベアメタルサヌバヌのプロビゞョニングを担圓するサヌビスなどがありたす。仮想マシンを仮想化ではなく矊の矀れのように扱いたす。仮想環境でマシンに䜕かが発生した堎合バックアップなどから埩元した堎合、クラりドアプリケヌションはこのように構築されたす。仮想マシンがそのような重芁な圹割を果たさないように-仮想マシンが「死んだ」-それは問題ではありたせん-新しいマシンはテンプレヌトに基づいお単玔に䜜成され、圌らが蚀うように、チヌムは兵士の喪倱に気づきたせんでした。圓然、これによりオヌケストレヌションメカニズムが提䟛されたす。Heatテンプレヌトを䜿甚するず、数十のネットワヌクず仮想マシンで構成される耇雑な機胜を問題なく簡単に展開できたす。



ネットワヌクなしではクラりドむンフラストラクチャは存圚しないこずを垞に芚えおおく䟡倀がありたす。各芁玠は、䜕らかの方法でネットワヌクを介しお他の芁玠ず盞互䜜甚したす。さらに、クラりドには完党に非静的なネットワヌクがありたす。圓然、アンダヌレむネットワヌクは倚かれ少なかれ静的です-新しいノヌドずスむッチは毎日远加されたせんが、オヌバヌレむコンポヌネントは絶えず倉曎される可胜性があり、必然的に倉曎されたす-新しいネットワヌクが远加たたは削陀され、新しい仮想マシンが衚瀺され、叀い仮想マシンは消滅したす。たた、蚘事の冒頭で説明したクラりドの定矩から芚えおいるように、リ゜ヌスはナヌザヌに自動的に割り圓おられ、サヌビスプロバむダヌの介入は最小限たたはそれ以䞊である必芁がありたす。぀たり、ネットワヌクリ゜ヌスの提䟛の皮類、これは珟圚、http / httpsからアクセスできる個人アカりントの圢匏のフロント゚ンドの圢匏であり、バック゚ンドずしおVasilyを担圓するネットワヌク゚ンゞニアです。これは、Vasilyに8぀のハンドがある堎合でも、クラりドではありたせん。



ネットワヌクサヌビスであるNeutronは、クラりドむンフラストラクチャのネットワヌク郚分を管理するためのAPIを提䟛したす。このサヌビスは、Network-as-a-ServiceNaaSず呌ばれる抜象化レむダヌを提䟛するこずにより、Openstackネットワヌク郚分の正垞性ず管理を提䟛したす。぀たり、ネットワヌクは、たずえばCPU仮想コアやRAMず同じ仮想枬定可胜ナニットです。



ただし、OpenStackネットワヌキングアヌキテクチャに移る前に、OpenStackネットワヌキングがどのように機胜するか、およびネットワヌクがクラ​​りドの重芁か぀䞍可欠な郚分である理由を芋おみたしょう。



したがっお、2぀のREDクラむアント仮想マシンず2぀のGREENクラむアント仮想マシンがありたす。これらのマシンが次のような2぀のハむパヌバむザヌに配眮されおいるずしたす。







珟時点では、これは4台のサヌバヌの仮想化に過ぎず、これたでに行ったのは4台のサヌバヌを仮想化しお、2台の物理サヌバヌに配眮するこずだけです。そしお今のずころ、圌らはネットワヌクにさえ接続されおいたせん。



クラりドを取埗するには、いく぀かのコンポヌネントを远加する必芁がありたす。たず、ネットワヌク郚分を仮想化したす。これら4台のマシンをペアで接続する必芁があり、クラむアントは正確にL2接続を望んでいたす。スむッチを䜿甚しおその方向にトランクを蚭定し、linuxブリッゞを䜿甚しおすべおを管理するか、より高床なopenvswitchナヌザヌの堎合これに戻りたす。ただし、ネットワヌクは倚数存圚する可胜性があり、スむッチを介しおL2を垞にプッシュするこずは最善の方法ではありたせん。そのため、さたざたな郚門、サヌビスデスク、アプリケヌションの実行を数か月埅぀、トラブルシュヌティングを数週間行うなど、このアプロヌチは珟代の䞖界では機胜しなくなりたした。そしお、䌚瀟がこれに気付くのが早ければ早いほど、前進しやすくなりたす。したがっお、ハむパヌバむザヌ間で、仮想マシンが通信するL3ネットワヌクを遞択し、すでにこのL3ネットワヌクの䞊に、仮想の重ね合わせたL2オヌバヌレむネットワヌクを構築したす。仮想マシンのトラフィックが実行される堎所。 GRE、Geneve、たたはVxLANをカプセル化ずしお䜿甚できたす。特に重芁ではありたせんが、ここでは埌者に぀いお詳しく芋おいきたしょう。



VTEPをどこかに配眮する必芁がありたすVxLANの甚語に誰もが粟通しおいるこずを願っおいたす。 L3ネットワヌクはすぐにサヌバヌを離れるので、サヌバヌ自䜓にVTEPを配眮するこずを劚げるものは䜕もなく、OVSOpenvSwitchはこれを完党に行うこずができたす。その結果、次のようになりたした







。VM間のトラフィックを分割する必芁があるため、仮想マシンぞのポヌトのvlan番号は異なりたす。タグ番号は、1぀の仮想スむッチ内でのみ圹割を果たしたす。VxLANにカプセル化する堎合、VNIがあるため、問題なくタグ番号を削陀できるためです。







これで、問題なくマシンず仮想ネットワヌクを䜜成できたす。



ただし、クラむアントに別のマシンがあり、別のネットワヌク䞊にある堎合はどうなりたすかネットワヌク間のルヌト化が必芁です。集䞭ルヌトを䜿甚する堎合の簡単なオプションを分析したす。぀たり、トラフィックは特別な専甚ネットワヌクノヌドを介しおルヌティングされたす通垞、これらは制埡ノヌドず組み合わされるため、同じこずができたす。



耇雑なこずではないようです。制埡ノヌドにブリッゞむンタヌフェむスを䜜成し、そこにトラフィックを送り、そこから必芁な堎所にルヌティングしたす。しかし、問題は、REDクラむアントが10.0.0.0/24ネットワヌクを䜿甚したいのに察し、GREENクラむアントが10.0.0.0/24ネットワヌクを䜿甚したいずいうこずです。぀たり、アドレススペヌスの亀差が始たりたす。さらに、クラむアントは、他のクラむアントが内郚ネットワヌクにルヌティングされるこずを望んでいたせん。これは論理的です。ネットワヌクず顧客デヌタのトラフィックを分離するために、それぞれに個別の名前を割り圓おたす。実際、ネヌムスペヌスはLinuxネットワヌクスタックのコピヌです。぀たり、ネヌムスペヌスREDのクラむアントは、ネヌムスペヌスGREENのクラむアントから完党に分離されおいたすこれらのクラむアントネットワヌク間のルヌティングは、デフォルトのネヌムスペヌスを介しお蚱可されるか、すでにアップストリヌムトランスポヌト機噚で蚱可されたす。



぀たり、次のスキヌムが埗られたす。







L2トンネルは、すべおの蚈算ノヌドから制埡ノヌドに収束したす。これらのネットワヌクのL3むンタヌフェむスが配眮されおいるノヌドで、それぞれが分離専甚の名前空間にありたす。



しかし、私たちは最も重芁なこずを忘れおしたいたした。仮想マシンは、クラむアントにサヌビスを提䟛する必芁がありたす。぀たり、仮想マシンには、アクセスできる倖郚むンタヌフェむスが少なくずも1぀必芁です。぀たり、私たちは倖の䞖界に出かける必芁がありたす。ここにはさたざたなオプションがありたす。最も簡単なオプションを䜜成したしょう。 1぀のネットワヌクにクラむアントを远加したしょう。これは、プロバむダヌのネットワヌクで有効であり、他のネットワヌクず重耇したせん。ネットワヌクは重耇しおいお、プロバむダヌネットワヌク偎のさたざたなVRFを調べるこずもできたす。これらのネットワヌクは、各クラむアントの名前名にも存圚したす。ただし、それらは1぀の物理的たたはより論理的な結合むンタヌフェむスを介しお倖界に入りたす。クラむアントトラフィックを分離するために、倖郚に向かうトラフィックは、クラむアントに割り圓おられたVLANタグでタグ付けされたす。



その結果、次のスキヌムが埗られたした。







合理的な質問-蚈算ノヌド自䜓にゲヌトりェむを䜜成しおみたせんかこれは倧きな問題ではありたせん。さらに、分散ルヌタヌDVRをオンにするず、そのように機胜したす。このシナリオでは、Openstackのデフォルトである集䞭型ゲヌトりェむを䜿甚した最も単玔なオプションを怜蚎したす。高負荷機胜の堎合、分散ルヌタヌずSR-IOVやパススルヌなどの高速化テクノロゞヌの䞡方を䜿甚したすが、圌らが蚀うように、これはたったく別の話です。たず、基本的な郚分を扱い、次に詳现を芋おいきたしょう。



実際、私たちのスキヌムはすでに機胜しおいたすが、いく぀かのニュアンスがありたす。



  • どういうわけかマシンを保護する必芁がありたす。぀たり、クラむアントに向けおスむッチむンタヌフェむスにフィルタヌを掛ける必芁がありたす。
  • 仮想マシンが自動的にIPアドレスを取埗できるようにするこずで、毎回コン゜ヌルから入力しおアドレスを登録する必芁がなくなりたす。


マシンの保護から始めたしょう。このために、平凡なiptablesを䜿甚できたす。



぀たり、トポロゞがもう少し耇雑になりたした







。さらに進んでみたしょう。DHCPサヌバヌを远加する必芁がありたす。各クラむアントのDHCPサヌバヌの堎所ずしお最も理想的な堎所は、名前名が配眮されおいる、前述の制埡ノヌドです。







ただし、小さな問題がありたす。すべおが再起動し、すべおのDHCPアドレスリヌス情報が消えた堎合はどうなりたすか。新しいアドレスがマシンに発行されるこずは論理的ですが、これはあたり䟿利ではありたせん。ドメむン名を䜿甚しおクラむアントごずにDNSサヌバヌを远加する方法は、2぀ありたすk8sのネットワヌク郚分ず同様にアドレスはそれほど重芁ではありたせんが、倖郚ネットワヌクでもアドレスを発行できるため、倖郚ネットワヌクに問題がありたす。 DHCP経由-クラりドプラットフォヌムのDNSサヌバヌおよび倖郚DNSサヌバヌずの同期が必芁です。これは、私の意芋ではあたり柔軟ではありたせんが、かなり可胜です。たたは、2番目のオプションは、メタデヌタを䜿甚するこずです。぀たり、マシンに発行されたアドレスに関する情報を保存しお、マシンがすでにアドレスを受信しお​​いる堎合にDHCPサヌバヌがマシンに発行するアドレスを認識できるようにしたす。 2番目のオプションは、車に関する远加情報を保存できるため、よりシンプルで柔軟性がありたす。次に、゚ヌゞェントのメタデヌタをスキヌマに远加したす。







倖郚ネットワヌクがネットワヌク党䜓で有効である堎合、耇雑になるため、すべおのクラむアントに1぀の倖郚ネットワヌクを䜿甚できるこずも問題になりたす。これらのネットワヌクの割り圓おを垞に割り圓おお制埡する必芁がありたす。すべおのクラむアントに単䞀の倖郚事前構成枈みネットワヌクを䜿甚する機胜は、パブリッククラりドを䜜成するずきに非垞に圹立ちたす。これにより、アドレスデヌタベヌスを確認したり、クラむアントの倖郚ネットワヌクごずに䞀意のアドレススペヌスを遞択したりする必芁がなくなるため、マシンの展開が容易になりたす。さらに、事前に倖郚ネットワヌクを登録するこずができ、展開時に倖郚アドレスをクラむアントマシンに関連付けるだけで枈みたす。



そしお、ここでNATが助けになりたす。NAT倉換を䜿甚しお、デフォルトの名前名を介しおクラむアントが倖の䞖界に出かけるこずを可胜にしたす。さお、ここに少し問題がありたす。クラむアントサヌバヌがサヌバヌずしおではなくクラむアントずしお機胜する堎合、぀たり、接続を受け入れるのではなく開始する堎合に適しおいたす。しかし、私たちず䞀緒にそれは逆になりたす。この堎合、宛先NATを実行しお、トラフィックを受信するずきに、このトラフィックがクラむアントAの仮想マシンAを察象ずしおいるこずを制埡ノヌドが理解できるようにする必芁がありたす。぀たり、倖郚アドレス100.1.1.1などから内郚アドレス10.0.0.1にNAT倉換を行う必芁がありたす。この堎合、すべおのクラむアントが同じネットワヌクを䜿甚したすが、内郚の分離は完党に保持されたす。぀たり、制埡ノヌドでdNATずsNATを䜜成する必芁がありたす。クラりドにドラッグする必芁があるため、フロヌティングアドレスたたは倖郚ネットワヌク、あるいはその䞡方を同時に割り圓おた単䞀のネットワヌクを䜿甚したす。フロヌティングアドレスは図に远加したせんが、倖郚ネットワヌクは以前に远加したたたにしおおきたす。各クラむアントには独自の倖郚ネットワヌクがありたす図では、倖郚むンタヌフェむスでvlan 100および200ずしお指定されおいたす。



その結果、ある皋床の柔軟性を備えた、興味深いず同時によく考えられた゜リュヌションが埗られたしたが、これたでのずころ、障害耐性メカニズムはありたせん。



たず、制埡ノヌドが1぀しかないため、その障害によりすべおのシステムが厩壊したす。この問題を修正するには、少なくずも3ノヌドのクォヌラムを䜜成する必芁がありたす。これを図に远加したしょう。







圓然、すべおのノヌドが同期され、アクティブノヌドが終了するず、別のノヌドがその責任を匕き継ぎたす。



次の問題は仮想マシンディスクです。珟時点では、それらはハむパヌバむザヌ自䜓に保存されおおり、ハむパヌバむザヌに問題が発生した堎合、すべおのデヌタが倱われたす。ディスクではなくサヌバヌ党䜓が倱われた堎合、レむドの存圚はたったく圹に立ちたせん。これを行うには、䞀郚のストレヌゞのフロント゚ンドずしお機胜するサヌビスを䜜成する必芁がありたす。どのような皮類のストレヌゞになるかは私たちにずっお特に重芁ではありたせんが、ディスクずノヌドの䞡方、堎合によっおはキャビネット党䜓の障害からデヌタを保護する必芁がありたす。ここにはいく぀かのオプションがありたす-もちろんファむバヌチャネルを備えたSANネットワヌクがありたすが、正盎に蚀うず-FCはすでに過去の遺物です-茞送䞭のE1のアナログ-はい、私は同意したす、それはただ䜿甚されおいたすが、それなしでは絶察に䞍可胜な堎合に限りたす。したがっお、他にも興味深い代替案があるこずを知っお、2020幎にFCネットワヌクを自䞻的に展開するこずはしたせん。それぞれに、そしおおそらくすべおの制限を備えたFCが私たちに必芁なすべおであるず信じおいる人々がいたすが、私は䞻匵したせんが、誰もが独自の意芋を持っおいたす。ただし、私の意芋で最も興味深い解決策は、CephなどのSDSを䜿甚するこずです。



セファロは、冗長性のためのオプションの束ずビルドvyskodostupnoeストレヌゞ゜リュヌションにあなたを可胜にするディスクのロケヌションサヌバ、およびサヌバキャビネット内などに基づいお、耇数のディスクにデヌタの完党な耇補で終わる笊号パリティアナログRAID 5たたは6以来。



のためにCephアセンブリにはさらに3぀のノヌドが必芁です。ストレヌゞずの察話も、ブロック、オブゞェクト、およびファむルストレヌゞサヌビスを䜿甚しおネットワヌク経由で実行されたす。スキヌマにストレヌゞを远加したす。





: compute — — storage+compute — ceph storage. — SDS . — — storage ( ) — CPU SDS ( , , ). compute storage.
これらすべおを䜕らかの方法で管理する必芁がありたす。マシン、ネットワヌク、仮想ルヌタヌなどを䜜成できるものが必芁です。これを行うには、ダッシュボヌドずしお機胜するサヌビスを制埡ノヌドに远加したす。クラむアントはhttp /を介しおこのポヌタルに接続できたす。 httpsずそれが必芁なこずは䜕でもしたすたあ、ほずんど。



その結果、珟圚、フォヌルトトレラントシステムがありたす。このむンフラストラクチャのすべおの芁玠を䜕らかの方法で管理する必芁がありたす。Openstackはプロゞェクトのセットであり、それぞれが特定の機胜を提䟛するこずは前に説明したした。ご芧のずおり、構成および制埡する必芁のある芁玠は十分にありたす。今日はネットワヌク郚分に぀いおお話したす。



䞭性子アヌキテクチャ



OpenStackはNeutronであり、仮想マシンのポヌトを、異なるL2ネットワヌクにあるVM間の共通のL2ネットワヌクトラフィックルヌティング゜フトりェアに接続し、倖郚にルヌティングしお、NAT、フロヌティングIP、DHCPなどのサヌビスを提䟛したす。



高レベルのネットワヌクサヌビス基本郚分は次のように説明できたす。



VMを起動するず、ネットワヌクサヌビスは次のようになりたす。



  1. このVMたたは耇数のポヌトのポヌトを䜜成し、DHCPサヌビスに通知したす。
  2. 新しい仮想ネットワヌクデバむスがlibvirtを介しお䜜成されたす。
  3. VMは、手順1で䜜成した1぀耇数のポヌトに接続したす。


奇劙なこずに、Neutronの仕事の䞭心には、Linuxに飛び蟌んだこずのある人なら誰でも知っおいる暙準的なメカニズムがありたす。これらは、名前名、iptables、linuxブリッゞ、openvswitch、conntrackなどです。



NeutronはSDNコントロヌラヌではないこずをすぐに明らかにする必芁がありたす。



Neutronは、盞互接続されたいく぀かのコンポヌネントで構成されおいたす







。Openstack-neutron-serverは、APIを介しおナヌザヌの芁求を凊理するデヌモンです。このデヌモンはネットワヌク接続を芏定しおいたせんが、プラグむンに必芁な情報を提䟛し、プラグむンは必芁なネットワヌク芁玠を構成したす。OpenStackノヌド䞊のNeutron゚ヌゞェントはNeutronサヌバヌに登録したす。



Neutron-serverは、実際にはpythonで蚘述されたアプリケヌションであり、次の2぀の郚分で構成されおいたす。



  • RESTサヌビス
  • Neutronプラグむンコア/サヌビス


RESTサヌビスは、他のコンポヌネントからのAPI呌び出したずえば、情報を提䟛する芁求などを受信するように蚭蚈されおいたす。



プラグむンは、API芁求で呌び出されるプラグむン゜フトりェアコンポヌネント/モゞュヌルです。぀たり、サヌビスの割り圓おはそれらを介しお行われたす。プラグむンは、サヌビスずルヌトの2぀のタむプに分けられたす。原則ずしお、horseプラグむンは䞻にVM間のアドレススペヌスずL2接続の管理を担圓し、サヌビスプラグむンはすでにVPNやFWなどの远加機胜を提䟛しおいたす。



今日利甚可胜なプラグむンのリストは、たずえばここで衚瀺できたす。



サヌビスプラグむンは耇数ある堎合がありたすが、ホヌスプラグむンは1぀しかありたせん。



Openstack-neutron-ml2暙準のOpenstackルヌトプラグむンです。このプラグむンは以前のプラグむンずは異なりモゞュラヌアヌキテクチャを備えおおり、接続されおいるドラむバヌを介しおネットワヌクサヌビスを構成したす。プラグむン自䜓に぀いおは少し埌で怜蚎したす。実際、OpenStackがネットワヌク郚分に持぀柔軟性を提䟛するからです。ルヌトプラグむンは眮き換えるこずができたすたずえば、Contrail Networkingがそのような眮き換えを行いたす。



RPCサヌビスrabbitmq-server -キュヌ管理ず他のOpenStackサヌビスずの通信、およびネットワヌクサヌビス゚ヌゞェント間の通信を提䟛するサヌビス。



ネットワヌク゚ヌゞェント-ネットワヌクサヌビスが構成されおいる各ノヌドに配眮されおいる゚ヌゞェント。



゚ヌゞェントにはいく぀かの皮類がありたす。



䞻な゚ヌゞェントはL2゚ヌゞェント。これらの゚ヌゞェントは、制埡ノヌドより正確には、テナントにサヌビスを提䟛するすべおのノヌドを含む各ハむパヌバむザヌで実行され、その䞻な機胜は、仮想マシンを共通のL2ネットワヌクに接続し、むベントが発生したずきにアラヌトを生成するこずですたずえば、ポヌトを無効/有効にしたす。



次の、それほど重芁ではない゚ヌゞェントはL3゚ヌゞェントです..。デフォルトでは、この゚ヌゞェントはネットワヌクノヌド䞊で排他的に実行され倚くの堎合、ネットワヌクノヌドは制埡ノヌドず組み合わされたす、テナントネットワヌク間ネットワヌクず他のテナントのネットワヌク間の䞡方で、NATおよびDHCPサヌビスを提䟛する倖郚で利甚可胜のルヌティングを提䟛したす。ただし、DVR分散ルヌタヌを䜿甚する堎合、L3プラグむンの必芁性は蚈算ノヌドにも珟れたす。



L3゚ヌゞェントは、Linuxネヌムスペヌスを䜿甚しお、各テナントに独自の分離されたネットワヌクのセットず、トラフィックをルヌティングし、レむダヌ2ネットワヌクにゲヌトりェむサヌビスを提䟛する仮想ルヌタヌの機胜を提䟛したす。



デヌタベヌス-ネットワヌク、サブネット、ポヌト、プヌルなどの識別子のデヌタベヌス。



実際、Neutronは任意のネットワヌク゚ンティティの䜜成からAPI芁求を受け入れ、芁求を認蚌し、RPCプラグむンたたぱヌゞェントにアドレス指定する堎合たたはREST APISDNで通信する堎合を介しお、芁求されたサヌビスを線成するために必芁な指瀺を゚ヌゞェントに送信したすプラグむンを介しお ..。



次に、テストむンストヌル展開方法ず、実際の郚分の埌半に含たれるものに目を向けお、どのコンポヌネントが配眮されおいるかを確認したしょう。

(overcloud) [stack@undercloud ~]$ openstack network agent list  
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host                                | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| 10495de9-ba4b-41fe-b30a-b90ec3f8728b | Open vSwitch agent | overcloud-novacompute-1.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| 1515ad4a-5972-46c3-af5f-e5446dff7ac7 | L3 agent           | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-l3-agent          |
| 322e62ca-1e5a-479e-9a96-4f26d09abdd7 | DHCP agent         | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-dhcp-agent        |
| 9c1de2f9-bac5-400e-998d-4360f04fc533 | Open vSwitch agent | overcloud-novacompute-0.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| d99c5657-851e-4d3c-bef6-f1e3bb1acfb0 | Open vSwitch agent | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-openvswitch-agent |
| ff85fae6-5543-45fb-a301-19c57b62d836 | Metadata agent     | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-metadata-agent    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
(overcloud) [stack@undercloud ~]$ 








実際、それがNeutronの党䜓的な構造です。ここで、ML2プラグむンに少し時間をかける䟡倀がありたす。



モゞュラヌレむダヌ2



䞊蚘のように、プラグむンは暙準のOpenStackルヌトプラグむンであり、モゞュラヌアヌキテクチャを備えおいたす。



ML2プラグむンの前身はモノリシック構造であり、たずえば、1぀のむンストヌルで耇数のテクノロゞヌを組み合わせお䜿甚​​するこずはできたせんでした。たずえば、openvswitchずlinuxbridgeの䞡方を同時に䜿甚するこずはできたせん最初たたは2番目のいずれか。このため、そのアヌキテクチャを備えたML2プラグむンが䜜成されたした。



ML2には、2぀のコンポヌネントがありたす。2぀のタむプのドラむバヌタむプドラむバヌずメカニズムドラむバヌです。



タむプドラむバは、VxLAN、VLAN、GREなど、ネットワヌク接続を敎理するために䜿甚されるテクノロゞを定矩したす。同時に、ドラむバヌを䜿甚するず、さたざたなテクノロゞヌを䜿甚できたす。暙準テクノロゞは、オヌバヌレむネットワヌクおよびvlan倖郚ネットワヌク甚のVxLANカプセル化です。



タむプドラむバには、次のタむプのネットワヌクが含たれたす。



フラット-タグ付けされおいない

VLANのネットワヌク-タグ付けされたネットワヌク

ロヌカル-オヌルむンワンむンストヌル甚の特別なタむプのネットワヌクこのようなむンストヌルは開発者たたはトレヌニングのいずれかに必芁です

GRE -

GREVxLANトンネルを䜿甚したオヌバヌレむネットワヌク-VxLANトンネルを䜿甚したオヌバヌレむネットワヌク



メカニズムドラむバヌは、タむプドラむバヌで指定されたテクノロゞヌの線成を提䟛する手段を定矩したす-たずえば、openvswitch、sr-iov、opendaylight、OVNなど。



このドラむバヌの実装に応じお、Neutronによっお制埡される゚ヌゞェントが䜿甚されるか、倖郚SDNコントロヌラヌずの接続が䜿甚され、L2ネットワヌクの線成、ルヌティングなどのすべおの問題が凊理されたす。



䟋ML2をOVSず䞀緒に䜿甚する堎合は、各蚈算ノヌドには、OVSを管理するL2゚ヌゞェントが蚭定されおいたす。ただし、たずえばOVNやOpenDayLightを䜿甚する堎合、OVSコントロヌルがその管蜄䞋にありたす。Neutronはルヌトプラグむンを介しおコントロヌラヌにコマンドを提䟛し、圌はすでに蚀われたこずを実行したす。



OpenvSwitchの曎新



珟圚、OpenStackの䞻芁コンポヌネントの1぀はOpenvSwitchです。

JuniperContrailやNokiaNuageなどの远加ベンダヌSDNを䜿甚せずにOpenStackをむンストヌルする堎合、OVSはクラりドネットワヌクのメむンネットワヌクコンポヌネントであり、iptables、conntrack、namespacesずずもに、マルチテナンシヌを備えた本栌的なオヌバヌレむネットワヌクを線成できたす。圓然、このコンポヌネントは、たずえば、サヌドパヌティ独自のベンダヌSDN゜リュヌションを䜿甚する堎合に眮き換えるこずができたす。



OVSは、仮想トラフィックフォワヌダヌずしお仮想環境で䜿甚するために蚭蚈されたオヌプン゜ヌス゜フトりェアスむッチです。



珟圚、OVSには、QoS、LACP、VLAN、VxLAN、GENEVE、OpenFlow、DPDKなどのテクノロゞヌを含む非垞に優れた機胜がありたす。

泚圓初、OVSは、高負荷のテレコム機胜の゜フトスむッチずしおは考えられおおらず、WEBサヌバヌやメヌルサヌバヌなど、垯域幅をあたり䜿甚しないIT機胜向けに蚭蚈されおいたした。ただし、OVSは最終決定䞭であり、珟圚のOVS実装ではパフォヌマンスず機胜が倧幅に向䞊しおいるため、高負荷機胜を備えた通信事業者が䜿甚できたす。たずえば、DPDKアクセラレヌションをサポヌトするOVS実装がありたす。


知っおおくべき3぀の重芁なOVSコンポヌネントがありたす。



  • カヌネルモゞュヌル-コントロヌルから受信したルヌルに基づいおトラフィックを凊理する、カヌネルスペヌスにあるコンポヌネント。
  • vSwitch daemon (ovs-vswitchd) — , user space, kernel —
  • Database server — , , OVS, . OVSDB SDN .


これらすべおには、ovs-vsctl、ovs-appctl、ovs-ofctlなどの䞀連の蚺断および管理ナヌティリティも付属しおいたす。



珟圚、Openstackは、EPC、SBC、HLRなどのネットワヌク機胜を移行するために通信事業者によっお広く䜿甚されおいたす。䞀郚の機胜は、OVSの圢匏で問題なく動䜜できたすが、たずえば、EPCはサブスクラむバヌトラフィックを凊理したす。぀たり、EPCはそれ自䜓を介しお倧量のトラフィックを通過させたす珟圚、トラフィック量は毎秒数癟ギガビットに達したす。圓然、カヌネルスペヌスを介しおそのようなトラフィックを駆動するこずはフォワヌダヌはデフォルトでそこにあるため、良い考えではありたせん。したがっお、OVSは、倚くの堎合、DPDKアクセラレヌションテクノロゞヌを䜿甚しおナヌザヌスペヌスに完党にデプロむされ、NICからカヌネルをバむパスしおナヌザヌスペヌスにトラフィックを転送したす。

泚テレコム機胜甚に展開されたクラりドの堎合、OVSをバむパスする蚈算ノヌドからスむッチング機噚に盎接トラフィックを出力するこずができたす。SR-IOVおよびパススルヌメカニズムは、この目的で䜿甚されたす。

実際のレむアりトではどのように機胜したすか



それでは、実際の郚分に移り、すべおが実際にどのように機胜するかを芋おみたしょう。



簡単なOpenstackむンストヌルを展開するこずから始めたしょう。実隓甚のサヌバヌのセットが手元にないため、仮想マシンから1぀の物理サヌバヌにレむアりトをアセンブルしたす。はい、もちろん、そのような゜リュヌションは商甚目的には適しおいたせんが、Openstackでネットワヌクがどのように機胜するかの䟋を芋るず、そのようなむンストヌルで十分です。さらに、トレヌニング目的のこのようなむンストヌルは、トラフィックなどをキャッチできるため、さらに興味深いものです。



基本的な郚分だけを芋る必芁があるため、耇数のネットワヌクを䜿甚するこずはできたせんが、2぀のネットワヌクのみを䜿甚しおすべおをレむズしたす。このレむアりトの2番目のネットワヌクは、アンダヌクラりドずdnsサヌバヌぞのアクセス専甚に䜿甚されたす。今のずころ、倖郚ネットワヌクに぀いおは觊れたせん。これは、別の倧きな蚘事のトピックです。



それでは、順番に始めたしょう。たず、少し理論。 TripleOOpenstack䞊のOpenstackを䜿甚しおOpenstackをむンストヌルしたす。 TripleOの本質は、アンダヌクラりドず呌ばれるOpenstackオヌルむンワン぀たり、1぀のノヌドをむンストヌルし、展開されたOpenstackの機胜を䜿甚しお、オヌバヌクラりドず呌ばれる悪甚を目的ずしたOpenstackをむンストヌルするこずです。 Undercloudは、コンピュヌティング、制埡、ストレヌゞノヌドずしお機胜するハむパヌバむザヌをプロビゞョニングするために、物理サヌバヌベアメタルを管理する固有の機胜皮肉なプロゞェクトを䜿甚したす。぀たり、Openstackのデプロむにサヌドパヌティのツヌルを䜿甚しおいたせん。OpenstackをOpenstackずずもにデプロむしたす。むンストヌルが進むに぀れお、それははるかに明確になるので、そこで止たっお先に進むこずはしたせん。

: Openstack, . — , , . . ceph ( ) (Storage management Storage) , , QoS , . .
泚仮想マシンに基づく仮想環境で仮想マシンを実行するため、最初にネストされた仮想化を有効にする必芁がありたす。



ネストされた仮想化が有効になっおいるかどうかは、次のように確認できたす。




[root@hp-gen9 bormoglotx]# cat /sys/module/kvm_intel/parameters/nested
N
[root@hp-gen9 bormoglotx]# 


文字Nが衚瀺されおいる堎合は、ネットワヌク䞊にあるガむドたずえば、このガむドに埓っお、ネストされた仮想化のサポヌトを有効にしたす。


仮想マシンから次のスキヌムを組み立おる必芁がありたす。







私の堎合、将来のむンストヌルの䞀郚である仮想マシンの接続性のために7぀ありたすが、リ゜ヌスがあたりない堎合は4぀で枈たせるこずができたす、OpenvSwitchを䜿甚したした。1぀のovsブリッゞを䜜成し、ポヌトグルヌプを介しお仮想マシンをそれに接続したした。これを行うために、次の圢匏のxmlファむルを䜜成したした。




[root@hp-gen9 ~]# virsh net-dumpxml ovs-network-1        
<network>
  <name>ovs-network-1</name>
  <uuid>7a2e7de7-fc16-4e00-b1ed-4d190133af67</uuid>
  <forward mode='bridge'/>
  <bridge name='ovs-br1'/>
  <virtualport type='openvswitch'/>
  <portgroup name='trunk-1'>
    <vlan trunk='yes'>
      <tag id='100'/>
      <tag id='101'/>
      <tag id='102'/>
    </vlan>
  </portgroup>
  <portgroup name='access-100'>
    <vlan>
      <tag id='100'/>
    </vlan>
  </portgroup>
  <portgroup name='access-101'>
    <vlan>
      <tag id='101'/>
    </vlan>
  </portgroup>
</network>


ここでは、グルヌプの3぀のポヌト2぀のアクセスず1぀のトランクが宣蚀されおいたす埌者はDNSサヌバヌに必芁でしたが、それなしで実行するこずも、ホストマシンで起動するこずもできたす-それはあなたにずっおより䟿利な方法です。次に、このテンプレヌトを䜿甚しお、virshnet-defineを介しおであるこずを宣蚀したす。




virsh net-define ovs-network-1.xml 
virsh net-start ovs-network-1 
virsh net-autostart ovs-network-1 


次に、ハむパヌバむザヌのポヌトの構成を線集したしょう。


[root@hp-gen9 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens1f0   
TYPE=Ethernet
NAME=ens1f0
DEVICE=ens1f0
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=ovs-br1
ONBOOT=yes
OVS_OPTIONS="trunk=100,101,102"
[root@hp-gen9 ~]
[root@hp-gen9 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ovs-br1 
DEVICE=ovs-br1
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.255.200
PREFIX=24
[root@hp-gen9 ~]# 


泚このシナリオでは、ポヌトovs-br1のアドレスはvlanタグがないため、䜿甚できたせん。これを修正するには、コマンドsudo ovs-vsctl set port ovs-br1 tag = 100を発行したす。ただし、再起動するず、このタグは衚瀺されなくなりたすタグを所定の䜍眮に保持する方法を誰かが知っおいる堎合は、非垞に感謝したす。ただし、これはそれほど重芁ではありたせん。このアドレスはむンストヌル時にのみ必芁であり、Openstackが完党に展開されおいるずきには必芁ないためです。
次に、アンダヌクラりドカヌを䜜成したす。




virt-install  -n undercloud --description "undercloud"  --os-type=Linux  --os-variant=centos7.0  --ram=8192  --vcpus=8  --disk path=/var/lib/libvirt/images/undercloud.qcow2,bus=virtio,size=40,format=qcow2 --network network:ovs-network-1,model=virtio,portgroup=access-100 --network network:ovs-network-1,model=virtio,portgroup=access-101 --graphics none  --location /var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-2003.iso --extra-args console=ttyS0


むンストヌル䞭に、マシン名、パスワヌド、ナヌザヌ、ntpサヌバヌなど、必芁なすべおのパラメヌタヌを蚭定するず、すぐにポヌトを構成できたすが、むンストヌル埌は、コン゜ヌルからマシンにアクセスしお必芁なファむルを修正する方が簡単です。既補のむメヌゞが既にある堎合は、それを䜿甚するか、私ず同じように実行できたす。Centos7の最小むメヌゞをダりンロヌドし、それを䜿甚しおVMをむンストヌルしたす。



むンストヌルが正垞に完了するず、アンダヌクラりドを配眮できる仮想マシンができあがりたす。




[root@hp-gen9 bormoglotx]# virsh list
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 62    undercloud                     running


たず、むンストヌルプロセス䞭に必芁なツヌルをむンストヌルしたす。

sudo yum update -y
sudo yum install -y net-tools
sudo yum install -y wget
sudo yum install -y ipmitool


Undercloudのむンストヌル



スタックナヌザヌを䜜成し、パスワヌドを蚭定しおsudoerに远加し、パスワヌドを入力せずにsudoを介しおrootコマンドを実行できるようにしたす。




useradd stack
passwd stack

echo “stack ALL=(root) NOPASSWD:ALL” > /etc/sudoers.d/stack
chmod 0440 /etc/sudoers.d/stack


ここで、hostsファむルでフルネヌムundercloudを指定したす。


vi /etc/hosts

127.0.0.1   undercloud.openstack.rnd localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


次に、リポゞトリを远加し、必芁な゜フトりェアをむンストヌルしたす。




sudo yum install -y https://trunk.rdoproject.org/centos7/current/python2-tripleo-repos-0.0.1-0.20200409224957.8bac392.el7.noarch.rpm
sudo -E tripleo-repos -b queens current
sudo -E tripleo-repos -b queens current ceph
sudo yum install -y python-tripleoclient
sudo yum install -y ceph-ansible


泚cephをむンストヌルする予定がない堎合は、ceph関連のコマンドを入力する必芁はありたせん。クむヌンズリリヌスを䜿甚したしたが、奜きなものを䜿甚できたす。
次に、アンダヌクラりド構成ファむルをナヌザヌのスタックホヌムディレクトリにコピヌしたす。




cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf


次に、このファむルをむンストヌルに合わせお調敎しお修正する必芁がありたす。



次の行をファむルの先頭に远加したす。



vi undercloud.conf
[DEFAULT]
undercloud_hostname = undercloud.openstack.rnd
local_ip = 192.168.255.1/24
network_gateway = 192.168.255.1
undercloud_public_host = 192.168.255.2
undercloud_admin_host = 192.168.255.3
undercloud_nameservers = 192.168.255.253
generate_service_certificate = false
local_interface = eth0
local_mtu = 1450
network_cidr = 192.168.255.0/24
masquerade = true
masquerade_network = 192.168.255.0/24
dhcp_start = 192.168.255.11
dhcp_end = 192.168.255.50
inspection_iprange = 192.168.255.51,192.168.255.100
scheduler_max_attempts = 10


だから、蚭定を経る



undercloud_hostname -完党undercloudサヌバヌ名は、DNSサヌバの゚ントリず䞀臎しなければなりたせん



local_ipをprovizheningネットワヌクぞのロヌカルアドレスundercloud -



network_gateway -同じロヌカルアドレス、むンストヌル時に倖の䞖界にアクセスするためのゲヌトりェむずしお機胜したすovercloudノヌドは、たた、ロヌカルIPず䞀臎する



undercloud_public_hostプロビゞョニングネットワヌクから任意のフリヌアドレス割り圓お、倖郚APIの䜏所-



undercloud_admin_hostプロビゞョニングネットワヌクから任意のフリヌアドレスを割り圓おられた内郚APIアドレス、



undercloud_nameserversをDNSサヌバ-



generate_service_certificate-この行は珟圚の䟋では非垞に重芁です



。falseに蚭定されおいない堎合、むンストヌル䞭に゚ラヌが発生するため、問題はネットワヌクプロビゞョニングのRedHatバグトラッカヌlocal_interfaceむンタヌフェむスに蚘述されおいたす。このむンタヌフェむスはアンダヌクラりドの展開䞭に再構成されるため、アンダヌ



クラりドに2぀のむンタヌフェむスが必芁です。1぀はアクセス甚、もう1぀はlocal_mtuのプロビゞョニング甚です。MTU。私たちは1500ポヌトOVS Svichaを持っおテストラボずMTU私を持っおいるので、1450幎の倀に眮くこずが必芁である、VXLANパッケヌゞにカプセル化されおいたであろうその



network_cidr -プロビゞョニングネットワヌク



マスカレヌド-倖郚ネットワヌクにアクセスするためのNATの䜿甚



masquerade_network -ネットワヌクずいう意志をNAT -sya



dhcp_start-展開オヌバヌ



クラりド䞭にノヌドにアドレスが割り圓おられるアドレスプヌルの開始アドレスdhcp_end-展開オヌバヌクラりド䞭にノヌドにアドレスが割り圓おられるアドレスプヌルの最終アドレス



inspection_iprange-むントロスペクションに必芁なアドレスのプヌル䞊蚘のプヌルず亀差しおはなりたせん 



scheduler_max_attempts-オヌバヌクラりドのむンストヌルの最倧詊行回数ノヌドの数以䞊である必芁がありたす



ファむルが蚘述された埌、アンダヌクラりドをデプロむするコマンドを䞎えるこずができたす。




openstack undercloud install


アむロンにもよりたすが、手順は10分から30分かかりたす。最終的には、次のような出力が衚瀺されたす。



vi undercloud.conf
2020-08-13 23:13:12,668 INFO: 
#############################################################################
Undercloud install complete.

The file containing this installation's passwords is at
/home/stack/undercloud-passwords.conf.

There is also a stackrc file at /home/stack/stackrc.

These files are needed to interact with the OpenStack services, and should be
secured.

#############################################################################


この出力は、アンダヌクラりドが正垞にむンストヌルされたこずを瀺しおいたす。これで、アンダヌクラりドのステヌタスを確認しお、オヌバヌクラりドのむンストヌルに進むこずができたす。



ifconfigの出力を芋るず、新しいブリッゞむンタヌフェむスがあるこずがわかりたす。



[stack@undercloud ~]$ ifconfig
br-ctlplane: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 192.168.255.1  netmask 255.255.255.0  broadcast 192.168.255.255
        inet6 fe80::5054:ff:fe2c:89e  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:2c:08:9e  txqueuelen 1000  (Ethernet)
        RX packets 14  bytes 1095 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1292 (1.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


オヌバヌクラりドの展開は、このむンタヌフェむスを介しお実行されたす。



以䞋の出力から、1぀のノヌドにすべおのサヌビスがあるこずがわかりたす。



(undercloud) [stack@undercloud ~]$ openstack host list
+--------------------------+-----------+----------+
| Host Name                | Service   | Zone     |
+--------------------------+-----------+----------+
| undercloud.openstack.rnd | conductor | internal |
| undercloud.openstack.rnd | scheduler | internal |
| undercloud.openstack.rnd | compute   | nova     |
+--------------------------+-----------+----------+


以䞋は、アンダヌクラりドネットワヌク郚分の構成です。




(undercloud) [stack@undercloud ~]$ python -m json.tool /etc/os-net-config/config.json 
{
    "network_config": [
        {
            "addresses": [
                {
                    "ip_netmask": "192.168.255.1/24"
                }
            ],
            "members": [
                {
                    "dns_servers": [
                        "192.168.255.253"
                    ],
                    "mtu": 1450,
                    "name": "eth0",
                    "primary": "true",
                    "type": "interface"
                }
            ],
            "mtu": 1450,
            "name": "br-ctlplane",
            "ovs_extra": [
                "br-set-external-id br-ctlplane bridge-id br-ctlplane"
            ],
            "routes": [],
            "type": "ovs_bridge"
        }
    ]
}
(undercloud) [stack@undercloud ~]$




オヌバヌクラりドむンストヌル



珟時点では、アンダヌクラりドしかなく、オヌバヌクラりドを構築するための十分なノヌドがありたせん。したがっお、たず、必芁な仮想マシンを展開したす。展開䞭に、アンダヌクラりド自䜓がオヌバヌクラりドマシンにOSず必芁な゜フトりェアをむンストヌルしたす-぀たり、マシンを完党に展開する必芁はありたせんが、そのためのディスクを䜜成しおそのパラメヌタを決定するだけです-実際には、OSがむンストヌルされおいないベアサヌバヌを取埗したす..。



仮想マシンのディスクが入っおいるフォルダヌに移動し、必芁なサむズのディスクを䜜成したす。




cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -o preallocation=metadata control-1.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata compute-1.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata compute-2.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata storage-1.qcow2 160G
qemu-img create -f qcow2 -o preallocation=metadata storage-2.qcow2 160G


ルヌトから操䜜しおいるため、暩限に問題が発生しないように、これらのディスクの所有者を倉曎する必芁がありたす。




[root@hp-gen9 images]# ls -lh
total 5.8G
drwxr-xr-x. 2 qemu qemu 4.0K Aug 13 16:15 backups
-rw-r--r--. 1 root root  61G Aug 14 03:07 compute-1.qcow2
-rw-r--r--. 1 root root  61G Aug 14 03:07 compute-2.qcow2
-rw-r--r--. 1 root root  61G Aug 14 03:07 control-1.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:03 dns-server.qcow2
-rw-r--r--. 1 root root 161G Aug 14 03:07 storage-1.qcow2
-rw-r--r--. 1 root root 161G Aug 14 03:07 storage-2.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:07 undercloud.qcow2
[root@hp-gen9 images]# 
[root@hp-gen9 images]# 
[root@hp-gen9 images]# chown qemu:qemu /var/lib/libvirt/images/*qcow2
[root@hp-gen9 images]# ls -lh
total 5.8G
drwxr-xr-x. 2 qemu qemu 4.0K Aug 13 16:15 backups
-rw-r--r--. 1 qemu qemu  61G Aug 14 03:07 compute-1.qcow2
-rw-r--r--. 1 qemu qemu  61G Aug 14 03:07 compute-2.qcow2
-rw-r--r--. 1 qemu qemu  61G Aug 14 03:07 control-1.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:03 dns-server.qcow2
-rw-r--r--. 1 qemu qemu 161G Aug 14 03:07 storage-1.qcow2
-rw-r--r--. 1 qemu qemu 161G Aug 14 03:07 storage-2.qcow2
-rw-------. 1 qemu qemu  41G Aug 14 03:08 undercloud.qcow2
[root@hp-gen9 images]# 


泚cephを調査するためにむンストヌルする堎合は、少なくずも2぀のディスクで少なくずも3぀のノヌドを䜜成し、テンプレヌトで仮想ディスクvda、vdbなどが䜿甚されるこずを瀺したす。
これで、これらすべおのマシンを定矩する必芁がありたす。




virt-install --name control-1 --ram 32768 --vcpus 8 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/control-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --network network:ovs-network-1,model=virtio,portgroup=trunk-1 --dry-run --print-xml > /tmp/control-1.xml  

virt-install --name storage-1 --ram 16384 --vcpus 4 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/storage-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/storage-1.xml  

virt-install --name storage-2 --ram 16384 --vcpus 4 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/storage-2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/storage-2.xml  

virt-install --name compute-1 --ram 32768 --vcpus 12 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/compute-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/compute-1.xml  

virt-install --name compute-2 --ram 32768 --vcpus 12 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/compute-2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc  --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/compute-2.xml 


最埌に、コマンド--print-xml> /tmp/storage-1.xmlがありたす。これは、/ tmp /フォルダヌ内の各マシンの説明を含むxmlファむルを䜜成したす。远加しないず、仮想マシンを定矩できたせん。



次に、これらすべおのマシンをvirshで定矩する必芁がありたす。




virsh define --file /tmp/control-1.xml
virsh define --file /tmp/compute-1.xml
virsh define --file /tmp/compute-2.xml
virsh define --file /tmp/storage-1.xml
virsh define --file /tmp/storage-2.xml

[root@hp-gen9 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 64    undercloud                     running
 -     compute-1                      shut off
 -     compute-2                      shut off
 -     control-1                      shut off
 -     storage-1                      shut off
 -     storage-2                      shut off

[root@hp-gen9 ~]#


今や小さなニュアンス-tripleOは、むンストヌルおよびむントロスペクション䞭にサヌバヌを管理するためにIPMIを䜿甚したす。



むントロスペクションは、ノヌドのさらなるプロビゞョニングに必芁なパラメヌタを取埗するためにハヌドりェアを怜査するプロセスです。むントロスペクションは、ベアメタルサヌバヌで動䜜するように蚭蚈されたサヌビスであるironicを䜿甚しお実行されたす。



しかし、ここに問題がありたす。IPMIアむアンサヌバヌに個別のポヌトたたは共有ポヌトがありたすが、これは重芁ではありたせんがある堎合、仮想マシンにはそのようなポヌトがありたせん。ここで、vbmcず呌ばれるクラッチが助けになりたす。これは、IPMIポヌトを゚ミュレヌトできるナヌティリティです。このニュアンスは、ESXIハむパヌバむザヌでそのようなラボを立ち䞊げたい人には特に泚意を払う䟡倀がありたす。もちろん、vbmcの類䌌物があるかどうかわからない堎合は、すべおを展開する前にこの質問に戞惑う必芁がありたす。



vbmcをむンストヌルしたす。




yum install yum install python2-virtualbmc


OSがパッケヌゞを芋぀けられない堎合は、リポゞトリを远加したす。

yum install -y https://www.rdoproject.org/repos/rdo-release.rpm


次に、ナヌティリティを構成したす。ここではすべおが恥ずべきこずです。これで、vbmcリストにサヌバヌがないこずは論理的です。




[root@hp-gen9 ~]# vbmc list

[root@hp-gen9 ~]# 


それらを衚瀺するには、次のように手動で宣蚀する必芁がありたす。




[root@hp-gen9 ~]# vbmc add control-1 --port 7001 --username admin --password admin
[root@hp-gen9 ~]# vbmc add storage-1 --port 7002 --username admin --password admin
[root@hp-gen9 ~]# vbmc add storage-2 --port 7003 --username admin --password admin
[root@hp-gen9 ~]# vbmc add compute-1 --port 7004 --username admin --password admin
[root@hp-gen9 ~]# vbmc add compute-2 --port 7005 --username admin --password admin
[root@hp-gen9 ~]#
[root@hp-gen9 ~]# vbmc list
+-------------+--------+---------+------+
| Domain name | Status | Address | Port |
+-------------+--------+---------+------+
| compute-1   | down   | ::      | 7004 |
| compute-2   | down   | ::      | 7005 |
| control-1   | down   | ::      | 7001 |
| storage-1   | down   | ::      | 7002 |
| storage-2   | down   | ::      | 7003 |
+-------------+--------+---------+------+
[root@hp-gen9 ~]#


コマンドの構文は明確で説明がないず思いたす。ただし、珟時点では、すべおのセッションがDOWNステヌタスになっおいたす。それらをUPステヌタスにするには、以䞋を有効にする必芁がありたす。




[root@hp-gen9 ~]# vbmc start control-1
2020-08-14 03:15:57,826.826 13149 INFO VirtualBMC [-] Started vBMC instance for domain control-1
[root@hp-gen9 ~]# vbmc start storage-1 
2020-08-14 03:15:58,316.316 13149 INFO VirtualBMC [-] Started vBMC instance for domain storage-1
[root@hp-gen9 ~]# vbmc start storage-2
2020-08-14 03:15:58,851.851 13149 INFO VirtualBMC [-] Started vBMC instance for domain storage-2
[root@hp-gen9 ~]# vbmc start compute-1
2020-08-14 03:15:59,307.307 13149 INFO VirtualBMC [-] Started vBMC instance for domain compute-1
[root@hp-gen9 ~]# vbmc start compute-2
2020-08-14 03:15:59,712.712 13149 INFO VirtualBMC [-] Started vBMC instance for domain compute-2
[root@hp-gen9 ~]# 
[root@hp-gen9 ~]# 
[root@hp-gen9 ~]# vbmc list
+-------------+---------+---------+------+
| Domain name | Status  | Address | Port |
+-------------+---------+---------+------+
| compute-1   | running | ::      | 7004 |
| compute-2   | running | ::      | 7005 |
| control-1   | running | ::      | 7001 |
| storage-1   | running | ::      | 7002 |
| storage-2   | running | ::      | 7003 |
+-------------+---------+---------+------+
[root@hp-gen9 ~]#


そしお最埌の仕䞊げ-ファむアりォヌルルヌルを修正する必芁がありたすたあ、たたは完党にオフにする




firewall-cmd --zone=public --add-port=7001/udp --permanent
firewall-cmd --zone=public --add-port=7002/udp --permanent
firewall-cmd --zone=public --add-port=7003/udp --permanent
firewall-cmd --zone=public --add-port=7004/udp --permanent
firewall-cmd --zone=public --add-port=7005/udp --permanent
firewall-cmd --reload


それでは、アンダヌクラりドに移動しお、すべおが機胜するこずを確認したしょう。ホストマシンのアドレスは192.168.255.200です。展開の準備䞭に、必芁なipmitoolパッケヌゞをアンダヌクラりドに远加したした。




[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power status          
Chassis Power is off
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power on
Chassis Power Control: Up/On
[stack@undercloud ~]$ 

[root@hp-gen9 ~]# virsh list 
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 64    undercloud                     running
 65    control-1                      running


ご芧のずおり、vbmcを介しお制埡ノヌドを正垞に起動したした。次に、オフにしお次に進みたす。




[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power off
Chassis Power Control: Down/Off
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power status
Chassis Power is off
[stack@undercloud ~]$ 

[root@hp-gen9 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 6     dns-server                     running
 64    undercloud                     running
 -     compute-1                      shut off
 -     compute-2                      shut off
 -     control-1                      shut off
 -     storage-1                      shut off
 -     storage-2                      shut off

[root@hp-gen9 ~]#


次のステップは、オヌバヌクラりドがむンストヌルされるノヌドのむントロスペクションです。これを行うには、ノヌドの説明を含むjsonファむルを準備する必芁がありたす。ベアサヌバヌぞのむンストヌルずは異なり、ファむルは各マシンでvbmcが実行されおいるポヌトを指定するこずに泚意しおください。




[root@hp-gen9 ~]# virsh domiflist --domain control-1 
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:20:a2:2f
-          network    ovs-network-1 virtio      52:54:00:3f:87:9f

[root@hp-gen9 ~]# virsh domiflist --domain compute-1
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:98:e9:d6

[root@hp-gen9 ~]# virsh domiflist --domain compute-2
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:6a:ea:be

[root@hp-gen9 ~]# virsh domiflist --domain storage-1
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:79:0b:cb

[root@hp-gen9 ~]# virsh domiflist --domain storage-2
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          network    ovs-network-1 virtio      52:54:00:a7:fe:27


泚制埡ノヌドには2぀のむンタヌフェヌスがありたすが、この堎合は重芁ではありたせん。このむンストヌルでは、1぀で十分です。
珟圚、jsonファむルを準備しおいたす。プロビゞョニングが実行されるポヌトのポピヌアドレス、ノヌドのパラメヌタを指定し、それらに名前を付け、ipmiぞのアクセス方法を指定する必芁がありたす。




{
    "nodes":[
        {
            "mac":[
                "52:54:00:20:a2:2f"
            ],
            "cpu":"8",
            "memory":"32768",
            "disk":"60",
            "arch":"x86_64",
            "name":"control-1",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7001"
        },
        {
            "mac":[
                "52:54:00:79:0b:cb"
            ],
            "cpu":"4",
            "memory":"16384",
            "disk":"160",
            "arch":"x86_64",
            "name":"storage-1",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7002"
        },
        {
            "mac":[
                "52:54:00:a7:fe:27"
            ],
            "cpu":"4",
            "memory":"16384",
            "disk":"160",
            "arch":"x86_64",
            "name":"storage-2",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7003"
        },
        {
            "mac":[
                "52:54:00:98:e9:d6"
            ],
            "cpu":"12",
            "memory":"32768",
            "disk":"60",
            "arch":"x86_64",
            "name":"compute-1",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7004"
        },
        {
            "mac":[
                "52:54:00:6a:ea:be"
            ],
            "cpu":"12",
            "memory":"32768",
            "disk":"60",
            "arch":"x86_64",
            "name":"compute-2",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"admin",
            "pm_addr":"192.168.255.200",
            "pm_port":"7005"
        }
    ]
}


次に、皮肉な画像を準備する必芁がありたす。これを行うには、wgetを介しおそれらをダりンロヌドし、むンストヌルしたす。



(undercloud) [stack@undercloud ~]$ sudo wget https://images.rdoproject.org/queens/delorean/current-tripleo-rdo/overcloud-full.tar --no-check-certificate
(undercloud) [stack@undercloud ~]$ sudo wget https://images.rdoproject.org/queens/delorean/current-tripleo-rdo/ironic-python-agent.tar --no-check-certificate
(undercloud) [stack@undercloud ~]$ ls -lh
total 1.9G
-rw-r--r--. 1 stack stack 447M Aug 14 10:26 ironic-python-agent.tar
-rw-r--r--. 1 stack stack 1.5G Aug 14 10:26 overcloud-full.tar
-rw-------. 1 stack stack  916 Aug 13 23:10 stackrc
-rw-r--r--. 1 stack stack  15K Aug 13 22:50 undercloud.conf
-rw-------. 1 stack stack 2.0K Aug 13 22:50 undercloud-passwords.conf
(undercloud) [stack@undercloud ~]$ mkdir images/
(undercloud) [stack@undercloud ~]$ tar -xpvf ironic-python-agent.tar -C ~/images/
ironic-python-agent.initramfs
ironic-python-agent.kernel
(undercloud) [stack@undercloud ~]$ tar -xpvf overcloud-full.tar -C ~/images/                       
overcloud-full.qcow2
overcloud-full.initrd
overcloud-full.vmlinuz
(undercloud) [stack@undercloud ~]$ 
(undercloud) [stack@undercloud ~]$ ls -lh images/
total 1.9G
-rw-rw-r--. 1 stack stack 441M Aug 12 17:24 ironic-python-agent.initramfs
-rwxr-xr-x. 1 stack stack 6.5M Aug 12 17:24 ironic-python-agent.kernel
-rw-r--r--. 1 stack stack  53M Aug 12 17:14 overcloud-full.initrd
-rw-r--r--. 1 stack stack 1.4G Aug 12 17:18 overcloud-full.qcow2
-rwxr-xr-x. 1 stack stack 6.5M Aug 12 17:14 overcloud-full.vmlinuz
(undercloud) [stack@undercloud ~]$


アンダヌクラりドぞの画像のアップロヌド



(undercloud) [stack@undercloud ~]$ openstack overcloud image upload --image-path ~/images/
Image "overcloud-full-vmlinuz" was uploaded.
+--------------------------------------+------------------------+-------------+---------+--------+
|                  ID                  |          Name          | Disk Format |   Size  | Status |
+--------------------------------------+------------------------+-------------+---------+--------+
| c2553770-3e0f-4750-b46b-138855b5c385 | overcloud-full-vmlinuz |     aki     | 6761064 | active |
+--------------------------------------+------------------------+-------------+---------+--------+
Image "overcloud-full-initrd" was uploaded.
+--------------------------------------+-----------------------+-------------+----------+--------+
|                  ID                  |          Name         | Disk Format |   Size   | Status |
+--------------------------------------+-----------------------+-------------+----------+--------+
| 949984e0-4932-4e71-af43-d67a38c3dc89 | overcloud-full-initrd |     ari     | 55183045 | active |
+--------------------------------------+-----------------------+-------------+----------+--------+
Image "overcloud-full" was uploaded.
+--------------------------------------+----------------+-------------+------------+--------+
|                  ID                  |      Name      | Disk Format |    Size    | Status |
+--------------------------------------+----------------+-------------+------------+--------+
| a2f2096d-c9d7-429a-b866-c7543c02a380 | overcloud-full |    qcow2    | 1487475712 | active |
+--------------------------------------+----------------+-------------+------------+--------+
Image "bm-deploy-kernel" was uploaded.
+--------------------------------------+------------------+-------------+---------+--------+
|                  ID                  |       Name       | Disk Format |   Size  | Status |
+--------------------------------------+------------------+-------------+---------+--------+
| e413aa78-e38f-404c-bbaf-93e582a8e67f | bm-deploy-kernel |     aki     | 6761064 | active |
+--------------------------------------+------------------+-------------+---------+--------+
Image "bm-deploy-ramdisk" was uploaded.
+--------------------------------------+-------------------+-------------+-----------+--------+
|                  ID                  |        Name       | Disk Format |    Size   | Status |
+--------------------------------------+-------------------+-------------+-----------+--------+
| 5cf3aba4-0e50-45d3-929f-27f025dd6ce3 | bm-deploy-ramdisk |     ari     | 461759376 | active |
+--------------------------------------+-------------------+-------------+-----------+--------+
(undercloud) [stack@undercloud ~]$


すべおの画像が読み蟌たれおいるこずを確認したす


(undercloud) [stack@undercloud ~]$  openstack image list
+--------------------------------------+------------------------+--------+
| ID                                   | Name                   | Status |
+--------------------------------------+------------------------+--------+
| e413aa78-e38f-404c-bbaf-93e582a8e67f | bm-deploy-kernel       | active |
| 5cf3aba4-0e50-45d3-929f-27f025dd6ce3 | bm-deploy-ramdisk      | active |
| a2f2096d-c9d7-429a-b866-c7543c02a380 | overcloud-full         | active |
| 949984e0-4932-4e71-af43-d67a38c3dc89 | overcloud-full-initrd  | active |
| c2553770-3e0f-4750-b46b-138855b5c385 | overcloud-full-vmlinuz | active |
+--------------------------------------+------------------------+--------+
(undercloud) [stack@undercloud ~]$


もう1぀のタッチ-dnsサヌバヌを远加する必芁がありたす


(undercloud) [stack@undercloud ~]$ openstack subnet list
+--------------------------------------+-----------------+--------------------------------------+------------------+
| ID                                   | Name            | Network                              | Subnet           |
+--------------------------------------+-----------------+--------------------------------------+------------------+
| f45dea46-4066-42aa-a3c4-6f84b8120cab | ctlplane-subnet | 6ca013dc-41c2-42d8-9d69-542afad53392 | 192.168.255.0/24 |
+--------------------------------------+-----------------+--------------------------------------+------------------+
(undercloud) [stack@undercloud ~]$ openstack subnet show f45dea46-4066-42aa-a3c4-6f84b8120cab
+-------------------+-----------------------------------------------------------+
| Field             | Value                                                     |
+-------------------+-----------------------------------------------------------+
| allocation_pools  | 192.168.255.11-192.168.255.50                             |
| cidr              | 192.168.255.0/24                                          |
| created_at        | 2020-08-13T20:10:37Z                                      |
| description       |                                                           |
| dns_nameservers   |                                                           |
| enable_dhcp       | True                                                      |
| gateway_ip        | 192.168.255.1                                             |
| host_routes       | destination='169.254.169.254/32', gateway='192.168.255.1' |
| id                | f45dea46-4066-42aa-a3c4-6f84b8120cab                      |
| ip_version        | 4                                                         |
| ipv6_address_mode | None                                                      |
| ipv6_ra_mode      | None                                                      |
| name              | ctlplane-subnet                                           |
| network_id        | 6ca013dc-41c2-42d8-9d69-542afad53392                      |
| prefix_length     | None                                                      |
| project_id        | a844ccfcdb2745b198dde3e1b28c40a3                          |
| revision_number   | 0                                                         |
| segment_id        | None                                                      |
| service_types     |                                                           |
| subnetpool_id     | None                                                      |
| tags              |                                                           |
| updated_at        | 2020-08-13T20:10:37Z                                      |
+-------------------+-----------------------------------------------------------+
(undercloud) [stack@undercloud ~]$ 
(undercloud) [stack@undercloud ~]$ neutron subnet-update f45dea46-4066-42aa-a3c4-6f84b8120cab --dns-nameserver 192.168.255.253                                    
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Updated subnet: f45dea46-4066-42aa-a3c4-6f84b8120cab
(undercloud) [stack@undercloud ~]$


これで、むントロスペクションのコマンドを発行できたす。



(undercloud) [stack@undercloud ~]$ openstack overcloud node import --introspect --provide inspection.json 
Started Mistral Workflow tripleo.baremetal.v1.register_or_update. Execution ID: d57456a3-d8ed-479c-9a90-dff7c752d0ec
Waiting for messages on queue 'tripleo' with no timeout.


5 node(s) successfully moved to the "manageable" state.
Successfully registered node UUID b4b2cf4a-b7ca-4095-af13-cc83be21c4f5
Successfully registered node UUID b89a72a3-6bb7-429a-93bc-48393d225838
Successfully registered node UUID 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e
Successfully registered node UUID bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8
Successfully registered node UUID 766ab623-464c-423d-a529-d9afb69d1167
Waiting for introspection to finish...
Started Mistral Workflow tripleo.baremetal.v1.introspect. Execution ID: 6b4d08ae-94c3-4a10-ab63-7634ec198a79
Waiting for messages on queue 'tripleo' with no timeout.
Introspection of node b89a72a3-6bb7-429a-93bc-48393d225838 completed. Status:SUCCESS. Errors:None
Introspection of node 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e completed. Status:SUCCESS. Errors:None
Introspection of node bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 completed. Status:SUCCESS. Errors:None
Introspection of node 766ab623-464c-423d-a529-d9afb69d1167 completed. Status:SUCCESS. Errors:None
Introspection of node b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 completed. Status:SUCCESS. Errors:None
Successfully introspected 5 node(s).
Started Mistral Workflow tripleo.baremetal.v1.provide. Execution ID: f5594736-edcf-4927-a8a0-2a7bf806a59a
Waiting for messages on queue 'tripleo' with no timeout.
5 node(s) successfully moved to the "available" state.
(undercloud) [stack@undercloud ~]$


出力からわかるように、すべおが゚ラヌなしで終了したした。すべおのノヌドが䜿甚可胜であるこずを確認したしょう。




(undercloud) [stack@undercloud ~]$ openstack baremetal node list
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
| UUID                                 | Name      | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | None          | power off   | available          | False       |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | None          | power off   | available          | False       |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | None          | power off   | available          | False       |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | None          | power off   | available          | False       |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | None          | power off   | available          | False       |
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
(undercloud) [stack@undercloud ~]$ 


原則ずしお、ノヌドが管理可胜な別の状態にある堎合は、問題が発生したため、ログを調べお、なぜ発生したのかを把握する必芁がありたす。このシナリオでは仮想化を䜿甚しおおり、仮想マシンたたはvbmcの䜿甚に関連するバグがある可胜性があるこずに泚意しおください。



次に、どのノヌドがどの機胜を実行するかを指定する必芁がありたす。぀たり、ノヌドが展開するプロファむルを指定する必芁がありたす。




(undercloud) [stack@undercloud ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| Node UUID                            | Node Name | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | available       | None            |                   |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | available       | None            |                   |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | available       | None            |                   |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | available       | None            |                   |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | available       | None            |                   |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
(undercloud) [stack@undercloud ~]$ openstack flavor list
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| ID                                   | Name          |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| 168af640-7f40-42c7-91b2-989abc5c5d8f | swift-storage | 4096 |   40 |         0 |     1 | True      |
| 52148d1b-492e-48b4-b5fc-772849dd1b78 | baremetal     | 4096 |   40 |         0 |     1 | True      |
| 56e66542-ae60-416d-863e-0cb192d01b09 | control       | 4096 |   40 |         0 |     1 | True      |
| af6796e1-d0c4-4bfe-898c-532be194f7ac | block-storage | 4096 |   40 |         0 |     1 | True      |
| e4d50fdd-0034-446b-b72c-9da19b16c2df | compute       | 4096 |   40 |         0 |     1 | True      |
| fc2e3acf-7fca-4901-9eee-4a4d6ef0265d | ceph-storage  | 4096 |   40 |         0 |     1 | True      |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
(undercloud) [stack@undercloud ~]$


各ノヌドのプロファむルを瀺したす。




openstack baremetal node set --property capabilities='profile:control,boot_option:local' b4b2cf4a-b7ca-4095-af13-cc83be21c4f5
openstack baremetal node set --property capabilities='profile:ceph-storage,boot_option:local' b89a72a3-6bb7-429a-93bc-48393d225838
openstack baremetal node set --property capabilities='profile:ceph-storage,boot_option:local' 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e
openstack baremetal node set --property capabilities='profile:compute,boot_option:local' bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8
openstack baremetal node set --property capabilities='profile:compute,boot_option:local' 766ab623-464c-423d-a529-d9afb69d1167


すべおが正しく行われたこずを確認したす。




(undercloud) [stack@undercloud ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| Node UUID                            | Node Name | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | available       | control         |                   |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | available       | ceph-storage    |                   |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | available       | ceph-storage    |                   |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | available       | compute         |                   |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | available       | compute         |                   |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
(undercloud) [stack@undercloud ~]$


すべおが正しければ、オヌバヌクラりドをデプロむするコマンドを実行したす。



openstack overcloud deploy --templates --control-scale 1 --compute-scale 2  --ceph-storage-scale 2 --control-flavor control --compute-flavor compute  --ceph-storage-flavor ceph-storage --libvirt-type qemu


実際のむンストヌルでは、カスタムテンプレヌトが自然に䜿甚されたす。この堎合、テンプレヌトのすべおの線集を説明する必芁があるため、プロセスが非垞に耇雑になりたす。以前に曞いたように、簡単なむンストヌルでも、それがどのように機胜するかを確認するのに十分です。

泚この堎合、ネストされた仮想化を䜿甚するため、倉数--libvirt-typeqemuが必芁です。そうしないず、仮想マシンが実行されたせん。


これで、玄1時間、たたはそれ以䞊ハヌドりェアの機胜によっお異なりたすがあり、この時間の埌に次の碑文が衚瀺されるこずを期埅できたす。




2020-08-14 08:39:21Z [overcloud]: CREATE_COMPLETE  Stack CREATE completed successfully

 Stack overcloud CREATE_COMPLETE 

Host 192.168.255.21 not found in /home/stack/.ssh/known_hosts
Started Mistral Workflow tripleo.deployment.v1.get_horizon_url. Execution ID: fcb996cd-6a19-482b-b755-2ca0c08069a9
Overcloud Endpoint: http://192.168.255.21:5000/
Overcloud Horizon Dashboard URL: http://192.168.255.21:80/dashboard
Overcloud rc file: /home/stack/overcloudrc
Overcloud Deployed
(undercloud) [stack@undercloud ~]$


これで、オヌプンスタックのほが本栌的なバヌゞョンができたした。このバヌゞョンで、孊習したり、実隓を行ったりするこずができたす



。すべおが正垞に機胜するこずを確認したしょう。ナヌザヌのホヌムディレクトリスタックには、2぀のファむルがありたす。1぀はstackrcアンダヌクラりドを管理するためで、もう1぀はovercloudrcオヌバヌクラりドを管理するためです。これらのファむルには、認蚌に必芁な情報が含たれおいるため、゜ヌスずしお指定する必芁がありたす。




(undercloud) [stack@undercloud ~]$ openstack server list
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
| ID                                   | Name                    | Status | Networks                | Image          | Flavor       |
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
| fd7d36f4-ce87-4b9a-93b0-add2957792de | overcloud-controller-0  | ACTIVE | ctlplane=192.168.255.15 | overcloud-full | control      |
| edc77778-8972-475e-a541-ff40eb944197 | overcloud-novacompute-1 | ACTIVE | ctlplane=192.168.255.26 | overcloud-full | compute      |
| 5448ce01-f05f-47ca-950a-ced14892c0d4 | overcloud-cephstorage-1 | ACTIVE | ctlplane=192.168.255.34 | overcloud-full | ceph-storage |
| ce6d862f-4bdf-4ba3-b711-7217915364d7 | overcloud-novacompute-0 | ACTIVE | ctlplane=192.168.255.19 | overcloud-full | compute      |
| e4507bd5-6f96-4b12-9cc0-6924709da59e | overcloud-cephstorage-0 | ACTIVE | ctlplane=192.168.255.44 | overcloud-full | ceph-storage |
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
(undercloud) [stack@undercloud ~]$ 



(undercloud) [stack@undercloud ~]$ source overcloudrc 
(overcloud) [stack@undercloud ~]$ 
(overcloud) [stack@undercloud ~]$ openstack project list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| 4eed7d0f06544625857d51cd77c5bd4c | admin   |
| ee1c68758bde41eaa9912c81dc67dad8 | service |
+----------------------------------+---------+
(overcloud) [stack@undercloud ~]$ 
(overcloud) [stack@undercloud ~]$ 
(overcloud) [stack@undercloud ~]$ openstack network agent list  
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host                                | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| 10495de9-ba4b-41fe-b30a-b90ec3f8728b | Open vSwitch agent | overcloud-novacompute-1.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| 1515ad4a-5972-46c3-af5f-e5446dff7ac7 | L3 agent           | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-l3-agent          |
| 322e62ca-1e5a-479e-9a96-4f26d09abdd7 | DHCP agent         | overcloud-controller-0.localdomain  | nova              | :-)   | UP    | neutron-dhcp-agent        |
| 9c1de2f9-bac5-400e-998d-4360f04fc533 | Open vSwitch agent | overcloud-novacompute-0.localdomain | None              | :-)   | UP    | neutron-openvswitch-agent |
| d99c5657-851e-4d3c-bef6-f1e3bb1acfb0 | Open vSwitch agent | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-openvswitch-agent |
| ff85fae6-5543-45fb-a301-19c57b62d836 | Metadata agent     | overcloud-controller-0.localdomain  | None              | :-)   | UP    | neutron-metadata-agent    |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
(overcloud) [stack@undercloud ~]$


私のむンストヌルでは、もう1぀小さなタッチが必芁です。䜿甚しおいるマシンは別のネットワヌク䞊にあるため、コントロヌラヌにルヌトを远加したす。これを行うには、heat-adminアカりントでcontrol-1に移動し、ルヌトを蚘述したす




(undercloud) [stack@undercloud ~]$ ssh heat-admin@192.168.255.15         
Last login: Fri Aug 14 09:47:40 2020 from 192.168.255.1
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo ip route add 10.169.0.0/16 via 192.168.255.254


さお、今、あなたは地平線に行くこずができたす。すべおの情報アドレス、ナヌザヌ名、パスワヌドは、ファむル/ホヌム/スタック/ overcloudrcにありたす。最終的なスキヌムは次のようになりたす。







ちなみに、私たちのむンストヌルでは、マシンのアドレスはDHCPを介しお発行され、ご芧のずおり、「ランダムに」発行されたす。必芁に応じお、展開䞭にどのアドレスをどのマシンにアタッチするかをテンプレヌトにハヌドコヌディングできたす。



仮想マシン間でトラフィックはどのように流れたすか



この蚘事では、トラフィックを枡すための3぀のオプションに぀いお怜蚎したす。



  • 1぀のL2ネットワヌクの1぀のハむパヌバむザヌに2぀のマシン
  • 1぀のL2ネットワヌク内の異なるハむパヌバむザヌ䞊の2台のマシン
  • 異なるネットワヌク䞊の2台のマシンネットワヌク間でルヌト化


次回は、フロヌティングアドレスず分散ルヌティングを䜿甚しお、倖郚ネットワヌクを介しお倖郚にアクセスできるケヌスに぀いお怜蚎したす。ここでは、内郚トラフィックに焊点を圓おたす。



テストするために、次のスキヌムをたずめたしょう







。4぀の仮想マシンを䜜成したした-1぀のL2ネットワヌクに3぀-net-1、net-2ネットワヌクにもう1぀



(overcloud) [stack@undercloud ~]$ nova list --tenant 5e18ce8ec9594e00b155485f19895e6c             
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
| ID                                   | Name | Tenant ID                        | Status | Task State | Power State | Networks        |
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
| f53b37b5-2204-46cc-aef0-dba84bf970c0 | vm-1 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-1=10.0.1.85 |
| fc8b6722-0231-49b0-b2fa-041115bef34a | vm-2 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-1=10.0.1.88 |
| 3cd74455-b9b7-467a-abe3-bd6ff765c83c | vm-3 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-1=10.0.1.90 |
| 7e836338-6772-46b0-9950-f7f06dbe91a8 | vm-4 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | -          | Running     | net-2=10.0.2.8  |
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
(overcloud) [stack@undercloud ~]$ 


䜜成されたマシンがどのハむパヌバむザヌに配眮されおいるかを芋おみたしょう。



(overcloud) [stack@undercloud ~]$ nova show f53b37b5-2204-46cc-aef0-dba84bf970c0 | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-1                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-0.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000001                                        |




(overcloud) [stack@undercloud ~]$ nova show fc8b6722-0231-49b0-b2fa-041115bef34a | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-2                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-1.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000002                                        |




(overcloud) [stack@undercloud ~]$ nova show 3cd74455-b9b7-467a-abe3-bd6ff765c83c | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-3                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-0.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000003                                        |




(overcloud) [stack@undercloud ~]$ nova show 7e836338-6772-46b0-9950-f7f06dbe91a8 | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname             | vm-4                                                     |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-novacompute-1.localdomain                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000004                                        |


overcloud[stack @ undercloud〜] $

マシンvm-1ずvm-3はcompute-0にあり、マシンvm-2ずvm-4はノヌドcompute-1にありたす。



さらに、仮想ルヌタヌが䜜成され、指定されたネットワヌク間のルヌティングが可胜になりたす。



(overcloud) [stack@undercloud ~]$ openstack router list  --project 5e18ce8ec9594e00b155485f19895e6c
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
| ID                                   | Name     | Status | State | Distributed | HA    | Project                          |
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
| 0a4d2420-4b9c-46bd-aec1-86a1ef299abe | router-1 | ACTIVE | UP    | False       | False | 5e18ce8ec9594e00b155485f19895e6c |
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
(overcloud) [stack@undercloud ~]$ 


ルヌタヌには、ネットワヌクのゲヌトりェむずしお機胜する2぀の仮想ポヌトがありたす。

(overcloud) [stack@undercloud ~]$ openstack router show 0a4d2420-4b9c-46bd-aec1-86a1ef299abe | grep interface
| interfaces_info         | [{"subnet_id": "2529ad1a-6b97-49cd-8515-cbdcbe5e3daa", "ip_address": "10.0.1.254", "port_id": "0c52b15f-8fcc-4801-bf52-7dacc72a5201"}, {"subnet_id": "335552dd-b35b-456b-9df0-5aac36a3ca13", "ip_address": "10.0.2.254", "port_id": "92fa49b5-5406-499f-ab8d-ddf28cc1a76c"}] |
(overcloud) [stack@undercloud ~]$ 


しかし、トラフィックがどのように進むかを芋る前に、制埡ノヌドネットワヌクノヌドでもあるず蚈算ノヌドに珟圚あるものを芋おみたしょう。蚈算ノヌドから始めたしょう。




[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-vsctl show
[heat-admin@overcloud-novacompute-0 ~]$ sudo sudo ovs-appctl dpif/show
system@ovs-system: hit:3 missed:3
  br-ex:
    br-ex 65534/1: (internal)
    phy-br-ex 1/none: (patch: peer=int-br-ex)
  br-int:
    br-int 65534/2: (internal)
    int-br-ex 1/none: (patch: peer=phy-br-ex)
    patch-tun 2/none: (patch: peer=patch-int)
  br-tun:
    br-tun 65534/3: (internal)
    patch-int 1/none: (patch: peer=patch-tun)
    vxlan-c0a8ff0f 3/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.15)
    vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$


珟圚、ノヌドには3぀のovsブリッゞbr-int、br-tun、br-exがありたす。それらの間に、ご芧のずおり、䞀連のむンタヌフェむスがありたす。わかりやすくするために、これらすべおのむンタヌフェむスを図に配眮しお、䜕が起こるかを確認したす。







VxLANトンネルが発生したアドレスから、1぀のトンネルがcompute-1192.168.255.26に発生し、2番目のトンネルがcontrol-1192.168.255.15を確認しおいるこずがわかりたす。しかし、最も興味深いのは、br-exに物理むンタヌフェむスがないこずです。どのフロヌが構成されおいるかを芋るず、珟時点ではこのブリッゞはトラフィックのみをドロップできるこずがわかりたす。




[heat-admin@overcloud-novacompute-0 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 192.168.255.19  netmask 255.255.255.0  broadcast 192.168.255.255
        inet6 fe80::5054:ff:fe6a:eabe  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:6a:ea:be  txqueuelen 1000  (Ethernet)
        RX packets 2909669  bytes 4608201000 (4.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1821057  bytes 349198520 (333.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[heat-admin@overcloud-novacompute-0 ~]$ 


出力からわかるように、アドレスは仮想ブリッゞむンタヌフェむスではなく、物理ポヌトに盎接ねじ蟌たれおいたす。




[heat-admin@overcloud-novacompute-0 ~]$  sudo ovs-appctl fdb/show br-ex
 port  VLAN  MAC                Age
[heat-admin@overcloud-novacompute-0 ~]$  sudo ovs-ofctl dump-flows br-ex
 cookie=0x9169eae8f7fe5bb2, duration=216686.864s, table=0, n_packets=303, n_bytes=26035, priority=2,in_port="phy-br-ex" actions=drop
 cookie=0x9169eae8f7fe5bb2, duration=216686.887s, table=0, n_packets=0, n_bytes=0, priority=0 actions=NORMAL
[heat-admin@overcloud-novacompute-0 ~]$ 


最初のルヌルによれば、phy-br-exポヌトからのすべおを砎棄する必芁がありたす。

実際には、このむンタヌフェむスbr-intずのゞャンクションを陀いお、トラフィックがこのブリッゞに到達する堎所は他にありたせん。ドロップから刀断するず、BUMトラフィックはすでにブリッゞに到着しおいたす。



぀たり、このノヌドからのトラフィックはVxLANトンネルのみを通過でき、他には䜕も通過できたせん。ただし、DVRをオンにするず状況は倉わりたすが、別の機䌚に察凊したす。たずえばvlanを䜿甚しおネットワヌク分離を䜿甚する堎合、0番目のvlanに1぀のL3むンタヌフェむスではなく、耇数のむンタヌフェむスがありたす。ただし、VxLANトラフィックは同じ方法でノヌドから送信されたすが、ある皮の専甚vlanにカプセル化されたす。



蚈算ノヌドを芋぀けお、制埡ノヌドに移動したす。




[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl dpif/show
system@ovs-system: hit:930491 missed:825
  br-ex:
    br-ex 65534/1: (internal)
    eth0 1/2: (system)
    phy-br-ex 2/none: (patch: peer=int-br-ex)
  br-int:
    br-int 65534/3: (internal)
    int-br-ex 1/none: (patch: peer=phy-br-ex)
    patch-tun 2/none: (patch: peer=patch-int)
  br-tun:
    br-tun 65534/4: (internal)
    patch-int 1/none: (patch: peer=patch-tun)
    vxlan-c0a8ff13 3/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.19)
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$


実際、すべおが同じであるず蚀えたすが、IPアドレスは物理むンタヌフェむスではなく、仮想ブリッゞにありたす。これは、このポヌトがトラフィックが倖の䞖界に向かうポヌトであるずいう事実のために行われたす。




[heat-admin@overcloud-controller-0 ~]$ ifconfig br-ex
br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 192.168.255.15  netmask 255.255.255.0  broadcast 192.168.255.255
        inet6 fe80::5054:ff:fe20:a22f  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:20:a2:2f  txqueuelen 1000  (Ethernet)
        RX packets 803859  bytes 1732616116 (1.6 GiB)
        RX errors 0  dropped 63  overruns 0  frame 0
        TX packets 808475  bytes 121652156 (116.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-ex
 port  VLAN  MAC                Age
    3   100  28:c0:da:00:4d:d3   35
    1     0  28:c0:da:00:4d:d3   35
    1     0  52:54:00:98:e9:d6    0
LOCAL     0  52:54:00:20:a2:2f    0
    1     0  52:54:00:2c:08:9e    0
    3   100  52:54:00:20:a2:2f    0
    1     0  52:54:00:6a:ea:be    0
[heat-admin@overcloud-controller-0 ~]$ 


このポヌトはbr-exブリッゞに関連付けられおおり、vlanタグがないため、このポヌトはすべおのvlanが蚱可されるトランクポヌトです。䞊蚘の出力のvlan-id 0で瀺されおいるように、トラフィックはタグなしで倖郚に送信されたす。







珟時点で他のすべおは蚈算ノヌドに䌌おいたす-同じブリッゞ、同じトンネルが2぀の蚈算ノヌドに行きたす。



この蚘事ではストレヌゞノヌドに぀いおは考慮したせんが、理解するために、これらのノヌドのネットワヌク郚分は恥ずべき点たで平凡であるず蚀わなければなりたせん。この堎合、IPアドレスがハングしおいる物理ポヌトeth0は1぀だけで、それだけです。 VxLANトンネル、トンネルブリッゞなどはありたせん。ポむントがないため、ovはたったくありたせん。ネットワヌク分離を䜿甚する堎合、このノヌドには2぀のむンタヌフェむス物理ポヌト、ボヌ、たたは2぀のvlanのみがありたす-関係ありたせん-必芁なものによっお異なりたす-1぀は管理甚、もう1぀はトラフィック甚VMディスクぞの曞き蟌み、からの読み取りディスクなど。



サヌビスがない堎合にノヌドに䜕があるかを把握したした。次に、4぀の仮想マシンを起動しお、䞊蚘のスキヌムがどのように倉化するかを芋おみたしょう。ポヌト、仮想ルヌタヌなどが必芁です。



これたでのずころ、ネットワヌクは次のよう







になっおいたす。各コンピュヌタヌに2぀の仮想マシンがありたす。すべおがcompute-0にどのように含たれおいるかを芋おみたしょう。




[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh list 
 Id    Name                           State
----------------------------------------------------
 1     instance-00000001              running
 3     instance-00000003              running

[heat-admin@overcloud-novacompute-0 ~]$ 


マシンには、仮想むンタヌフェむスが1぀だけありたす-tap95d96a75-a0



[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap95d96a75-a0 bridge     qbr95d96a75-a0 virtio      fa:16:3e:44:98:20

[heat-admin@overcloud-novacompute-0 ~]$ 


このむンタヌフェむスは、Linuxブリッゞを調べたす。



[heat-admin@overcloud-novacompute-0 ~]$ sudo brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.0242904c92a8       no
qbr5bd37136-47          8000.5e4e05841423       no              qvb5bd37136-47
                                                        tap5bd37136-47
qbr95d96a75-a0          8000.de076cb850f6       no              qvb95d96a75-a0
                                                        tap95d96a75-a0
[heat-admin@overcloud-novacompute-0 ~]$ 


出力からわかるように、旅団には2぀のむンタヌフェむスtap95d96a75-a0ずqvb95d96a75-a0しかありたせん。



OpenStackの仮想ネットワヌクデバむスの皮類に぀いお少し

詳しく説明する䟡倀がありたす

。vtap-むンスタンスVMに接続された仮想むンタヌフェむスqbr-Linuxブリッゞ

qvbずqvo-LinuxブリッゞずOpen vSwitchブリッゞに接続されたvEthペア

br-int、br-tun、 br-vlan-vSwitchブリッゞを開く

patch-、int-br-、phy-br--vSwitchパッチを開く-ブリッゞ

qg、qr、ha、fg、sgを接続するむンタヌフェむス-仮想デバむスがOVSに接続するために䜿甚するvSwitchポヌトを開く
ご存知のように、vEthペアであるqvb95d96a75-a0ポヌトが旅団にある堎合、察応するものはどこにありたすか。論理的にはqvo95d96a75-a0ず呌ばれる必芁がありたす。OVSにあるポヌトを芋おみたしょう。




[heat-admin@overcloud-novacompute-0 ~]$ sudo sudo ovs-appctl dpif/show
system@ovs-system: hit:526 missed:91
  br-ex:
    br-ex 65534/1: (internal)
    phy-br-ex 1/none: (patch: peer=int-br-ex)
  br-int:
    br-int 65534/2: (internal)
    int-br-ex 1/none: (patch: peer=phy-br-ex)
    patch-tun 2/none: (patch: peer=patch-int)
    qvo5bd37136-47 6/6: (system)
    qvo95d96a75-a0 3/5: (system)
  br-tun:
    br-tun 65534/3: (internal)
    patch-int 1/none: (patch: peer=patch-tun)
    vxlan-c0a8ff0f 3/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.15)
    vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$ 


ご芧のずおり、ポヌトはbr-intにありたす。Br-intは、仮想マシンのポヌトを終了するスむッチずしお機胜したす。qvo95d96a75-a0に加えお、出力にはポヌトqvo5bd37136-47が衚瀺されたす。これは、2番目の仮想マシンぞのポヌトです。その結果、私たちのスキヌムは次のようになりたす。







泚意深い読者がすぐに興味を持぀はずの質問-仮想マシンポヌトずOVSポヌトの間にLinuxブリッゞがあるのはなぜですか事実、セキュリティグルヌプはマシンを保護するために䜿甚されたす。これはiptablesにすぎたせん。OVSはiptablesでは機胜しないため、この「クラッチ」が発明されたした。ただし、それ自䜓は長生きしおいたす。新しいリリヌスではconntrackに眮き換えられおいたす。



぀たり、最終的にスキヌムは次のようになりたす。







1぀のL2ネットワヌクの1぀のハむパヌバむザヌに2぀のマシン



これらの2぀のVMは同じL2ネットワヌク内にあり、同じハむパヌバむザヌ䞊にあるため、䞡方のマシンが同じVLAN内にあるため、それらの間のトラフィックはbr-intを介しお論理的にロヌカルに移動したす。




[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap95d96a75-a0 bridge     qbr95d96a75-a0 virtio      fa:16:3e:44:98:20

[heat-admin@overcloud-novacompute-0 ~]$ 
[heat-admin@overcloud-novacompute-0 ~]$ 
[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000003
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap5bd37136-47 bridge     qbr5bd37136-47 virtio      fa:16:3e:83:ad:a4

[heat-admin@overcloud-novacompute-0 ~]$ 
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-int 
 port  VLAN  MAC                Age
    6     1  fa:16:3e:83:ad:a4    0
    3     1  fa:16:3e:44:98:20    0
[heat-admin@overcloud-novacompute-0 ~]$ 


同じL2ネットワヌク内の異なるハむパヌバむザヌ䞊の2台のマシン次に、同じL2ネットワヌク内の異なるハむパヌバむザヌ䞊にある



2台のマシン間でトラフィックがどのように移動するかを芋おみたしょう。正盎なずころ、䜕も倉わるこずはなく、ハむパヌバむザヌ間のトラフィックだけがvxlanトンネルを通過したす。䟋を芋おみたしょう。



トラフィックを監芖する仮想マシンのアドレス



[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap95d96a75-a0 bridge     qbr95d96a75-a0 virtio      fa:16:3e:44:98:20

[heat-admin@overcloud-novacompute-0 ~]$ 



[heat-admin@overcloud-novacompute-1 ~]$ sudo virsh domiflist instance-00000002
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tape7e23f1b-07 bridge     qbre7e23f1b-07 virtio      fa:16:3e:72:ad:53

[heat-admin@overcloud-novacompute-1 ~]$ 


compute-0でbr-intの転送テヌブルを確認したす。



[heat-admin@overcloud-novacompute-0 ~]$  sudo ovs-appctl fdb/show br-int | grep fa:16:3e:72:ad:53
    2     1  fa:16:3e:72:ad:53    1
[heat-admin@overcloud-novacompute-0 ~]


トラフィックはポヌト2に行く必芁がありたす-このポヌトが䜕であるかを芋おみたしょう

[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:7e:7f:28:1f:bd:54
 2(patch-tun): addr:0a:bd:07:69:58:d9
 3(qvo95d96a75-a0): addr:ea:50:9a:3d:69:58
 6(qvo5bd37136-47): addr:9a:d1:03:50:3d:96
 LOCAL(br-int): addr:1a:0f:53:97:b1:49
[heat-admin@overcloud-novacompute-0 ~]$


これはpatch-tun、぀たりbr-tunぞのむンタヌフェヌスです。br-tunのパケットがどうなるか芋おみたしょう。



[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:72:ad:53
 cookie=0x8759a56536b67a8e, duration=1387.959s, table=20, n_packets=1460, n_bytes=138880, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:72:ad:53 actions=load:0->NXM_OF_VLAN_TCI[],load:0x16->NXM_NX_TUN_ID[],output:2
[heat-admin@overcloud-novacompute-0 ~]$ 


パケットはVxLANにパックされ、ポヌト2に送信されたす。ポヌト2がどこに぀ながるかを芋おみたしょう。



[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-tun | grep addr   
 1(patch-int): addr:b2:d1:f8:21:96:66
 2(vxlan-c0a8ff1a): addr:be:64:1f:75:78:a7
 3(vxlan-c0a8ff0f): addr:76:6f:b9:3c:3f:1c
 LOCAL(br-tun): addr:a2:5b:6d:4f:94:47
[heat-admin@overcloud-novacompute-0 ~]$


これはcompute-1のvxlanトンネルです。



[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl dpif/show | egrep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$


compute-1に移動し、パッケヌゞで次に䜕が起こるかを確認したす。



[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:44:98:20
    2     1  fa:16:3e:44:98:20    1
[heat-admin@overcloud-novacompute-1 ~]$ 


Macはcompute-1のbr-int転送テヌブルにあり、䞊蚘の出力からわかるように、ポヌト2、぀たりbr-tunぞのポヌトから芋るこずができたす。



[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-ofctl show br-int | grep addr   
 1(int-br-ex): addr:8a:d7:f9:ad:8c:1d
 2(patch-tun): addr:46:cc:40:bd:20:da
 3(qvoe7e23f1b-07): addr:12:78:2e:34:6a:c7
 4(qvo3210e8ec-c0): addr:7a:5f:59:75:40:85
 LOCAL(br-int): addr:e2:27:b2:ed:14:46


それでは、compute-1のbr-intに宛先macがあるこずがわかりたす。



[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:72:ad:53
    3     1  fa:16:3e:72:ad:53    0
[heat-admin@overcloud-novacompute-1 ~]$ 


぀たり、受信したパケットはポヌト3に送信され、その背埌にinstance-00000003仮想マシンが既に配眮されおいたす。



仮想むンフラストラクチャで孊習するためにOpenstackを展開するこずの利点は、ハむパヌバむザヌ間のトラフィックを簡単にキャッチしお、それがどうなるかを確認できるこずです。これを実行し、vnetポヌトでcompute-0に向けおtcpdumpを実行したす。




[root@hp-gen9 bormoglotx]# tcpdump -vvv -i vnet3
tcpdump: listening on vnet3, link-type EN10MB (Ethernet), capture size 262144 bytes

*****************omitted*******************

04:39:04.583459 IP (tos 0x0, ttl 64, id 16868, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.19.39096 > 192.168.255.26.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 8012, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.1.85 > 10.0.1.88: ICMP echo request, id 5634, seq 16, length 64
04:39:04.584449 IP (tos 0x0, ttl 64, id 35181, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.26.speedtrace-disc > 192.168.255.19.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 59124, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.1.88 > 10.0.1.85: ICMP echo reply, id 5634, seq 16, length 64
	
*****************omitted*******************


最初の行は、アドレス10.0.1.85のパッチがアドレス10.0.1.88ICMPトラフィックに送信され、vni 22のVxLANパケットにラップされ、パケットがホスト192.168.255.19compute-0からホスト192.168.255.26蚈算-1。VNIがovsで指定されたものず䞀臎するこずを確認できたす。



この行に戻りたしょうactions = load0-> NXM_OF_VLAN_TCI []、load0x16-> NXM_NX_TUN_ID []、output2。0x16は16進vniです。この数倀を10番目のシステムに倉換しおみたしょう。




16 = 6*16^0+1*16^1 = 6+16 = 22


぀たり、vniは珟実に察応したす。



2行目はリタヌントラフィックを瀺しおいたすが、そこで説明するのは意味がなく、すべおが明確です。



異なるネットワヌク䞊の2台のマシンネットワヌク間のルヌティング



今日の最埌のケヌスは、仮想ルヌタヌを䜿甚した1぀のプロゞェクト内のネットワヌク間のルヌティングです。DVRがない堎合を怜蚎しおいるため別の蚘事で説明したす、ルヌティングはネットワヌクノヌドで発生したす。この堎合、ネットワヌクノヌドは独立した゚ンティティではなく、制埡ノヌドにありたす。



たず、ルヌティングが機胜するこずを確認したしょう。



$ ping 10.0.2.8
PING 10.0.2.8 (10.0.2.8): 56 data bytes
64 bytes from 10.0.2.8: seq=0 ttl=63 time=7.727 ms
64 bytes from 10.0.2.8: seq=1 ttl=63 time=3.832 ms
^C
--- 10.0.2.8 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 3.832/5.779/7.727 ms


この堎合、パケットはゲヌトりェむに送られ、そこにルヌティングされる必芁があるため、ゲヌトりェむのMACアドレスを芋぀ける必芁がありたす。このため、むンスタンスのARPテヌブルを確認したす。



$ arp
host-10-0-1-254.openstacklocal (10.0.1.254) at fa:16:3e:c4:64:70 [ether]  on eth0
host-10-0-1-1.openstacklocal (10.0.1.1) at fa:16:3e:e6:2c:5c [ether]  on eth0
host-10-0-1-90.openstacklocal (10.0.1.90) at fa:16:3e:83:ad:a4 [ether]  on eth0
host-10-0-1-88.openstacklocal (10.0.1.88) at fa:16:3e:72:ad:53 [ether]  on eth0


次に、宛先10.0.1.254でトラフィックを送信する堎所を芋おみたしょう。fa163ec46470



[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:c4:64:70
    2     1  fa:16:3e:c4:64:70    0
[heat-admin@overcloud-novacompute-0 ~]$ 


ポヌト2がどこに぀ながるかを調べたす。



[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:7e:7f:28:1f:bd:54
 2(patch-tun): addr:0a:bd:07:69:58:d9
 3(qvo95d96a75-a0): addr:ea:50:9a:3d:69:58
 6(qvo5bd37136-47): addr:9a:d1:03:50:3d:96
 LOCAL(br-int): addr:1a:0f:53:97:b1:49
[heat-admin@overcloud-novacompute-0 ~]$ 


すべおが論理的で、トラフィックはbr-tunに送られたす。どのvxlanトンネルにラップされるか芋おみたしょう



[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:c4:64:70
 cookie=0x8759a56536b67a8e, duration=3514.566s, table=20, n_packets=3368, n_bytes=317072, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:c4:64:70 actions=load:0->NXM_OF_VLAN_TCI[],load:0x16->NXM_NX_TUN_ID[],output:3
[heat-admin@overcloud-novacompute-0 ~]$ 


3番目のポヌトはvxlanトンネルです。



[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-tun | grep addr
 1(patch-int): addr:a2:69:00:c5:fa:ba
 2(vxlan-c0a8ff1a): addr:86:f0:ce:d0:e8:ea
 3(vxlan-c0a8ff13): addr:72:aa:73:2c:2e:5b
 LOCAL(br-tun): addr:a6:cb:cd:72:1c:45
[heat-admin@overcloud-controller-0 ~]$ 


これは制埡ノヌドを調べたす。



[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$ 


トラフィックは制埡ノヌドに到達したので、制埡ノヌドに移動しお、ルヌティングがどのように行われるかを確認する必芁がありたす。



芚えおいるように、内郚の制埡ノヌドは蚈算ノヌドずたったく同じように芋えたした。同じ3぀のブリッゞで、ノヌドが倖郚にトラフィックを送信できる物理ポヌトを持っおいたのはbr-exだけでした。むンスタンスの䜜成により、蚈算ノヌドの構成が倉曎されたした。Linuxブリッゞ、iptables、およびむンタヌフェむスがノヌドに远加されたした。ネットワヌクず仮想ルヌタヌの䜜成も、制埡ノヌドの構成にその痕跡を残したした。



したがっお、ゲヌトりェむのポピヌアドレスが制埡ノヌドのbr-int転送テヌブルにある必芁があるこずは明らかです。それがそこにあり、どこに芋えるかを確認したしょう



[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:c4:64:70
    5     1  fa:16:3e:c4:64:70    1
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$  sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:2e:58:b6:db:d5:de
 2(patch-tun): addr:06:41:90:f0:9e:56
 3(tapca25a97e-64): addr:fa:16:3e:e6:2c:5c
 4(tap22015e46-0b): addr:fa:16:3e:76:c2:11
 5(qr-0c52b15f-8f): addr:fa:16:3e:c4:64:70
 6(qr-92fa49b5-54): addr:fa:16:3e:80:13:72
 LOCAL(br-int): addr:06:de:5d:ed:44:44
[heat-admin@overcloud-controller-0 ~]$ 


Macはポヌトqr-0c52b15f-8fから芋るこずができたす。Openstackの仮想ポヌトのリストに戻るず、このポヌトタむプは、さたざたな仮想デバむスをOVSに接続するために䜿甚されたす。より正確には、qrは、名前名ずしお衚される仮想ルヌタヌぞのポヌトです。



サヌバヌ䞊にある名前名を芋おみたしょう。



[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns
qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe (id: 2)
qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 (id: 1)
qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 (id: 0)
[heat-admin@overcloud-controller-0 ~]$ 


3郚たで。しかし、名前から刀断するず、それぞれの目的を掚枬するこずができたす。埌でIDが0ず1のむンスタンスに戻りたす。ここで、名前名qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abeに関心がありたす。




[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe ip route
10.0.1.0/24 dev qr-0c52b15f-8f proto kernel scope link src 10.0.1.254 
10.0.2.0/24 dev qr-92fa49b5-54 proto kernel scope link src 10.0.2.254 
[heat-admin@overcloud-controller-0 ~]$ 


この名前名には、前に䜜成した2぀の内郚名前がありたす。䞡方の仮想ポヌトがbr-intに远加されたす。ポヌトqr-0c52b15f-8fのマスアドレスを確認したしょう。宛先のポピヌアドレスから刀断するず、トラフィックは正確にこのむンタヌフェむスに送信されたためです。



[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe ifconfig qr-0c52b15f-8f
qr-0c52b15f-8f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.0.1.254  netmask 255.255.255.0  broadcast 10.0.1.255
        inet6 fe80::f816:3eff:fec4:6470  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:c4:64:70  txqueuelen 1000  (Ethernet)
        RX packets 5356  bytes 427305 (417.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5195  bytes 490603 (479.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[heat-admin@overcloud-controller-0 ~]$ 


぀たり、この堎合、すべおが暙準ルヌティングの法則に埓っお機胜したす。トラフィックはホスト10.0.2.8を察象ずしおいるため、2番目のむンタヌフェむスqr-92fa49b5-54を経由しお、vxlanトンネルを経由しお蚈算ノヌドに到達する必芁がありたす。




[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.1.88                ether   fa:16:3e:72:ad:53   C                     qr-0c52b15f-8f
10.0.1.90                ether   fa:16:3e:83:ad:a4   C                     qr-0c52b15f-8f
10.0.2.8                 ether   fa:16:3e:6c:ad:9c   C                     qr-92fa49b5-54
10.0.2.42                ether   fa:16:3e:f5:0b:29   C                     qr-92fa49b5-54
10.0.1.85                ether   fa:16:3e:44:98:20   C                     qr-0c52b15f-8f
[heat-admin@overcloud-controller-0 ~]$ 


すべおが論理的であり、驚くこずではありたせん。br-intのホスト10.0.2.8のポピヌアドレスが衚瀺されおいる堎所を確認したす。



[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:6c:ad:9c
    2     2  fa:16:3e:6c:ad:9c    1
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-int | grep addr
 1(int-br-ex): addr:2e:58:b6:db:d5:de
 2(patch-tun): addr:06:41:90:f0:9e:56
 3(tapca25a97e-64): addr:fa:16:3e:e6:2c:5c
 4(tap22015e46-0b): addr:fa:16:3e:76:c2:11
 5(qr-0c52b15f-8f): addr:fa:16:3e:c4:64:70
 6(qr-92fa49b5-54): addr:fa:16:3e:80:13:72
 LOCAL(br-int): addr:06:de:5d:ed:44:44
[heat-admin@overcloud-controller-0 ~]$ 


予想どおり、トラフィックはbr-tunに送られたす。次に、トラフィックがどのトンネルに行くかを芋おみたしょう。



[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:6c:ad:9c
 cookie=0x2ab04bf27114410e, duration=5346.829s, table=20, n_packets=5248, n_bytes=498512, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0002/0x0fff,dl_dst=fa:16:3e:6c:ad:9c actions=load:0->NXM_OF_VLAN_TCI[],load:0x63->NXM_NX_TUN_ID[],output:2
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-tun | grep addr
 1(patch-int): addr:a2:69:00:c5:fa:ba
 2(vxlan-c0a8ff1a): addr:86:f0:ce:d0:e8:ea
 3(vxlan-c0a8ff13): addr:72:aa:73:2c:2e:5b
 LOCAL(br-tun): addr:a6:cb:cd:72:1c:45
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$ 


トラフィックはcompute-1の前にトンネルに入りたす。さお、compute-1ではすべおが単玔です-br-tunからパケットはbr-intに行き、そこから仮想マシンのむンタヌフェヌスに行きたす



[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
    vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$ 
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:6c:ad:9c
    4     2  fa:16:3e:6c:ad:9c    1
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-ofctl show br-int | grep addr                  
 1(int-br-ex): addr:8a:d7:f9:ad:8c:1d
 2(patch-tun): addr:46:cc:40:bd:20:da
 3(qvoe7e23f1b-07): addr:12:78:2e:34:6a:c7
 4(qvo3210e8ec-c0): addr:7a:5f:59:75:40:85
 LOCAL(br-int): addr:e2:27:b2:ed:14:46
[heat-admin@overcloud-novacompute-1 ~]$ 


これが実際に正しいむンタヌフェむスであるこずを確認したしょう。



[heat-admin@overcloud-novacompute-1 ~]$ brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.02429c001e1c       no
qbr3210e8ec-c0          8000.ea27f45358be       no              qvb3210e8ec-c0
                                                        tap3210e8ec-c0
qbre7e23f1b-07          8000.b26ac0eded8a       no              qvbe7e23f1b-07
                                                        tape7e23f1b-07
[heat-admin@overcloud-novacompute-1 ~]$ 
[heat-admin@overcloud-novacompute-1 ~]$ sudo virsh domiflist instance-00000004
Interface  Type       Source     Model       MAC
-------------------------------------------------------
tap3210e8ec-c0 bridge     qbr3210e8ec-c0 virtio      fa:16:3e:6c:ad:9c

[heat-admin@overcloud-novacompute-1 ~]$


実際、私たちはパッケヌゞ党䜓を調べたした。トラフィックがさたざたなvxlanトンネルを通過し、さたざたなVNIで終了したこずに気付いたず思いたす。それらがどのようなVNIであるかを確認しおから、ノヌドの制埡ポヌトでダンプを収集し、トラフィックが䞊蚘のずおりに送信されるこずを確認したす。

したがっお、compute-0ぞのトンネルには次のアクションがありたす=ロヌド0-> NXM_OF_VLAN_TCI []、ロヌド0x16-> NXM_NX_TUN_ID []、出力3。0x16を10進衚蚘に倉換する




0x16 = 6*16^0+1*16^1 = 6+16 = 22


蚈算するトンネル-1には次のVNIがありたすactions = load0-> NXM_OF_VLAN_TCI []、load0x63-> NXM_NX_TUN_ID []、output2。10進衚蚘で0x63を倉換する




0x63 = 3*16^0+6*16^1 = 3+96 = 99


さお、ダンプを芋おみたしょう



[root@hp-gen9 bormoglotx]# tcpdump -vvv -i vnet4 
tcpdump: listening on vnet4, link-type EN10MB (Ethernet), capture size 262144 bytes

*****************omitted*******************

04:35:18.709949 IP (tos 0x0, ttl 64, id 48650, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.19.41591 > 192.168.255.15.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 49042, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.1.85 > 10.0.2.8: ICMP echo request, id 5378, seq 9, length 64
04:35:18.710159 IP (tos 0x0, ttl 64, id 23360, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.15.38983 > 192.168.255.26.4789: [no cksum] VXLAN, flags [I] (0x08), vni 99
IP (tos 0x0, ttl 63, id 49042, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.1.85 > 10.0.2.8: ICMP echo request, id 5378, seq 9, length 64
04:35:18.711292 IP (tos 0x0, ttl 64, id 43596, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.26.42588 > 192.168.255.15.4789: [no cksum] VXLAN, flags [I] (0x08), vni 99
IP (tos 0x0, ttl 64, id 55103, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.2.8 > 10.0.1.85: ICMP echo reply, id 5378, seq 9, length 64
04:35:18.711531 IP (tos 0x0, ttl 64, id 8555, offset 0, flags [DF], proto UDP (17), length 134)
    192.168.255.15.38983 > 192.168.255.19.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 63, id 55103, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.2.8 > 10.0.1.85: ICMP echo reply, id 5378, seq 9, length 64
	
*****************omitted*******************


最初のパケットは、ホスト192.168.255.19compute-0からホスト192.168.255.15control-1ぞのvni 22のvxlanパケットであり、その内郚でICMPパケットがホスト10.0.1.85からホスト10.0.2.8にパックされたす。䞊で蚈算したように、vniは出力で芋たものに察応したす。



2番目のパケットは、ホスト192.168.255.15control-1からホスト192.168.255.26compute-1ぞのvni 99のvxlanパケットであり、その䞭にICMPパケットがホスト10.0.1.85からホスト10.0.2.8にパックされたす。䞊で蚈算したように、vniは出力で芋たものに察応したす。



次の2぀のパケットは、10.0.1.85ではなく10.0.2.8からのリタヌントラフィックです。



぀たり、最終的に、次の制埡ノヌドスキヌムが埗られたした







。 2぀の名前名を忘れたした



[heat-admin@overcloud-controller-0 ~]$ sudo  ip netns
qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe (id: 2)
qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 (id: 1)
qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 (id: 0)
[heat-admin@overcloud-controller-0 ~]$ 


クラりドプラットフォヌムのアヌキテクチャに぀いお説明したように、マシンがDHCPサヌバヌからアドレスを自動的に受信するのは玠晎らしいこずです。これらは、2぀のネットワヌク10.0.1.0/24および10.0.2.0/24甚の2぀のDHCPサヌバヌです。



これがそうであるこずを確認したしょう。この名前名には、DHCPサヌバヌ自䜓のアドレスである10.0.1.1ずいう1぀のアドレスしかなく、br-intにも含たれおいたす。



[heat-admin@overcloud-controller-0 ~]$ sudo ip netns exec qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1  bytes 28 (28.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 28 (28.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tapca25a97e-64: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.0.1.1  netmask 255.255.255.0  broadcast 10.0.1.255
        inet6 fe80::f816:3eff:fee6:2c5c  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:e6:2c:5c  txqueuelen 1000  (Ethernet)
        RX packets 129  bytes 9372 (9.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 49  bytes 6154 (6.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


制埡ノヌドの名前にqdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2を含むプロセスがあるかどうかを芋おみたしょう。




[heat-admin@overcloud-controller-0 ~]$ ps -aux | egrep qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 
root      640420  0.0  0.0   4220   348 ?        Ss   11:31   0:00 dumb-init --single-child -- ip netns exec qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 /usr/sbin/dnsmasq -k --no-hosts --no-resolv --pid-file=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/host --addn-hosts=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/opts --dhcp-leasefile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/leases --dhcp-match=set:ipxe,175 --local-service --bind-dynamic --dhcp-range=set:subnet-335552dd-b35b-456b-9df0-5aac36a3ca13,10.0.2.0,static,255.255.255.0,86400s --dhcp-option-force=option:mtu,1450 --dhcp-lease-max=256 --conf-file= --domain=openstacklocal
heat-ad+  951620  0.0  0.0 112944   980 pts/0    S+   18:50   0:00 grep -E --color=auto qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638
[heat-admin@overcloud-controller-0 ~]$ 


そのようなプロセスがあり、䞊蚘の出力に瀺されおいる情報に基づいお、たずえば、珟圚の賃貞料を確認できたす。



[heat-admin@overcloud-controller-0 ~]$ cat /var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/leases
1597492111 fa:16:3e:6c:ad:9c 10.0.2.8 host-10-0-2-8 01:fa:16:3e:6c:ad:9c
1597491115 fa:16:3e:76:c2:11 10.0.2.1 host-10-0-2-1 *
[heat-admin@overcloud-controller-0 ~]$


その結果、制埡ノヌドでこのような䞀連のサヌビスを利甚できたす。







芚えおおいおください。これは、4台のマシン、2぀の内郚ネットワヌク、1぀の仮想ルヌタヌです。珟圚、倖郚ネットワヌクはありたせん。さたざたなプロゞェクトが山ほどあり、それぞれに独自のネットワヌクがありたす重耇しおいたす。 、分散ルヌタヌをオフにしたしたが、最終的にテストベンチには制埡ノヌドが1぀しかありたせんでした障害耐性のために、3぀のノヌドのクォヌラムが必芁です。商取匕ではすべおが「少し」耇雑になるのは論理的ですが、この単玔な䟋では、これがどのように機胜するかを理解しおいたす。もちろん、3぀たたは300の名前名がある堎合は重芁ですが、構造党䜓の操䜜の芳点からは、䜕も倉わりたせん...しかし今のずころある皮のベンダヌSDNを固執しないでください。しかし、それはたったく別の話です。



面癜かったず思いたす。コメント/远加がうたくある堎合、たたは私が公然ず嘘を぀いた堎所私は人間であり、私の意芋は垞に䞻芳的です-修正/远加する必芁があるものを曞いおください-私たちはすべおを修正/远加したす。



結論ずしお、Openstackバニラずベンダヌの䞡方をVMWareのクラりド゜リュヌションず比范するこずに぀いお少しお話ししたいず思いたす-ここ数幎この質問を頻繁に受けおおり、正盎なずころ、私はそれにうんざりしおいたすが、それでもただです。私の意芋では、これら2぀の解決策を比范するこずは非垞に困難ですが、䞡方の解決策には䞍利な点があるこずは明癜です。䞀方の解決策を遞択するずきは、長所ず短所を比范怜蚎する必芁がありたす。



OpenStackがコミュニティ䞻導の゜リュヌションである堎合、VMWareは、クラむアントからお金を皌ぐこずに慣れおいる営利䌁業であるため、必芁なこずだけを実行する暩利がありたす読み取り、利益がありたす。これは論理的です。しかし、倧きくお倪いものが1぀ありたす。たずえば、NokiaからOpenStackを降りお、JuniperContrail Cloudなどの゜リュヌションに切り替えるこずはできたすが、VMWareを降りるこずはほずんどできたせん。私にずっお、これら2぀の゜リュヌションは次のようになりたす。Openstackベンダヌは、あなたが眮かれる単玔なケヌゞですが、鍵を持っおいお、い぀でも終了できたす。 VMWareは黄金の檻であり、所有者は檻の鍵を持っおおり、それはあなたにかなりの費甚がかかりたす。



私は最初の補品も2番目の補品もキャンペヌンしおいたせん-あなたはあなたが必芁なものを遞択したす。しかし、そのような遞択肢があれば、テレコムクラりドには䞡方の゜リュヌションITクラりド甚のVMWare䜎負荷、䟿利な管理、䞀郚のベンダヌのOpenStackNokiaずJuniperが非垞に優れたタヌンキヌ゜リュヌションを提䟛を遞択したす。私は玔粋なITにOpenstackを䜿甚したせん-それは倧砲でスズメを撃぀ようなものですが、冗長性を陀いお、それを䜿甚するこずぞの犁忌は芋られたせん。ただし、テレコムでVMWareを䜿甚するフォヌドラプタヌで瓊瀫を運ぶ方法こずは、倖から芋るず矎しいですが、ドラむバヌは1回ではなく10回のトリップを行う必芁がありたす。



私の意芋では、VMWareの最倧の欠点は、その完党な閉鎖性です-䌚瀟は、vSANやハむパヌバむザヌコアにあるものなど、それがどのように機胜するかに぀いおの情報を提䟛したせん-それは単にそれにずっお有益ではありたせん-぀たり、VMWareの専門家になるこずは決しおありたせん-ベンダヌのサポヌトがなければ、あなたは運呜にありたす平凡な質問に困惑しおいるVMWareの専門家に䌚うこずがよくありたす。私にずっお、VMWareはフヌドがロックされた車を賌入しおいたす-はい、おそらくタむミングベルトを倉曎できるスペシャリストがいたすが、この゜リュヌションを販売した人だけがフヌドを開けるこずができたす。個人的には、自分に合わない解決策は奜きではありたせん。あなたはあなたがボンネットの䞋に行く必芁はないかもしれないず蚀うでしょう。はい、これは可胜ですが、20〜30台の仮想マシン、40〜50台のネットワヌクからクラりドで倧芏暡な機胜を組み立おる必芁がある堎合に、私はあなたを芋おいきたす。半分は倖に出たいず思っおおり、残りの半分はSR-IOVアクセラレヌションを芁求しおいたす。そうしないず、これらのマシンがさらに数十台必芁になりたす。そうしないず、パフォヌマンスが十分になりたせん。



他の芳点もあるので、䜕を遞択するかはあなた次第です。そしお最も重芁なこずは、埌であなたが遞択する責任があるずいうこずです。これは私の意芋です。少なくずも4぀の補品Nokia、Juniper、Red Hat、VMWareを芋お、觊れたこずがある人です。぀たり、私は比范するものがありたす。



All Articles