Calenderの記事として使われています。この記事は個人の見解であり、所属する会社、組織を代表するものではありません。間違い等ありましたら指摘していただけると幸いです。Neutronの以下の機能を実際に使ってみながらほんのり調べてまとめたものです。network2結論からいうと、どちらの機能も問題なく動作しました。その際のログや内部構造などに興味があればスクロールしてみてください。どんな機能なのかパッと知りたい方は、以下のセクション名をクリックしてください。VMsとはこれはVMインスタンスに対して、単一のvNICを使って複数のVLANタグを引き込めるようにする機能です。attach)する必要があり、スケーラビリティに課題がありました。本機能が搭載されたことによりVM内に複数のコンテナを搭載して、それぞれのコンテナを独立したnetworkにつなげたい。VMをルータとして動かすなどが可能になります。devstackを用意しました。https://github.com/openstack-dev/devstack.gitdevstack/local.confを作成。trunktrunkサービスが有効になっていないようです。再起動(コマンドを再実行)再度コマンド実行。ports自動作成されたリソース(network/subnet/port/router)を全て削除しておく調査3つのnetwork(VLAN)をVMインスタンスに引き込む構成を作ってみました。port=port-net3,segmentation-type=vlan,segmentation-id=1300VMインスタンス側に引き込むVLANIDを指定できます。vconfigが使えませんでした。0.0.0.0/0VMインスタンスの配備。|+--------------------------------------+---------------+--------+------------+-------------+---------------------+ようやく調査環境の出来上がりです。ホスト上/VM内部から見ていきましょう。ホスト上の構成OVSの構成を確認します。list-brbr-eth1br-exbr-intbr-tuntbr-3b9bb4f7-atbr-3b9bb4f7-aが新たに作成されているようです。以下のコマンドを使って接続関係を調査しました。veth以下に結果をまとめます。+----------------------+VMとbr-intとの間に新たなOVSが作成されていました。一致しなければ全てDROPゲスト上の構成VMインスタンスにログインします。ルータ(namespace)に入った後でSSHログインします。ubuntu@192.168.100.4bashなぜかデフォルトがshだったためbashを呼び出していますNICの構成を確認してみます。forever通常の配備と比べて変化はないようです。linkルータ内から適当にpingを飛ばして、そのパケットをVM内でキャプチャしてみます。VLANタグが付与されているか確認します。28VMまでVLANタグが届いていることを確認できました。5次にSecurity-group(SG)ですが、trunkとして指定したportのSGのみが作用していました。trunkにまとめたVLANタグ通信ごとにSGを適用することはできないためVMゲスト内で設定する必要がありそうです。networkとはVMインスタンス配備の簡易化機能です。動作的には、Neutronのリソースを自動的に作ってVMインスタンスと接続してくれるため利用者はNeutronのリソースを用意せずにVMインスタンスを配備できるようになりました。従来、プロジェクト利用者が外部通信可能なVMインスタンスを配備するためには少なくとも以下の手順が必要であり、ただVMだけ立ち上げたいユーザにとっては面倒だという意見があったようです。networkを接続Neutron以前のNova-networkでは、上記のような作業は不要でした。した背景から、利用者の負担を減らす仕組みが必要だよねという話になったようです。networkタイトル回収のためNeutronのリソースが一つもない状態から始めます。autoここでエラーが発生しました。network.Defaultのrouter:externalなnetworkがないよ、言われています。詳しく探るため、エラーが起きたNeutron側の処理まで順を追って確認します。--->)_ports_needed_per_instance指定されたプロジェクト内でVMインスタンスに付与するためのnetworkを探す。get_auto_allocated_topologyを呼び出すget_auto_allocated_topology指定されたプロジェクト内でauto_allocate可能かどうかを判断し、可能であればnetwork/router/subnetを自動作成する。Trueのnetworkを探す。Trueのsubnetpoolを探す。:指定されたプロジェクト内で既にauto_allocated_networkがある場合はそれを使う。router:external=Trueなnetworkを探す。存在しなければエラー_build_topology_provision_tenant_private_networknetwork/subnetを自動作成_provision_external_connectivityrouterを自動作成して、routerと外部ネットワークとを接続。さきほどは_check_requirementsのところでis_default=Trueかつrouter:external=Trueのnetworkがなかったためエラーになったようです。networkが使える条件についてまとめました。network(auto-allocate-topology)が動作します。いうことで、管理者(admin)権限で以下のnetwork/subnet/subnetpoolを作成します。|+--------------------------------------+------+--------+------------+-------------+---------------------------------+配備に成功しました。下記のようにnetworkを持たないVMインスタンスを配備することも可能です。適用されることを期待。指定することで動作する。実際に使ってみて楽だと感じた。network!と言いたくなる(個人差があります)おわりに調査しきれない部分5もありましたがOpenStackは機能が充実して、かなり自由度が上がってきていると感じています。開発向けのOpenStack環境の構築用スクリプト。マシン1台からOpenStackの環境を構築できます(All-in-one)。poolが発生しました。疎通確認用のVM/コンテナを作って色々確認する予定でしたがHDDとメモリ不足で断念。router:external属性をTrue(外部ネットワーク)にすると他プロジェクトから参照できます。upLoginユーザーは見つかりませんでした。