[openstack-dev] [Fuel][Infra] HA deployment tests on nodepool

Anastasia Urlapova aurlapova at mirantis.com
Wed Dec 2 09:43:36 UTC 2015


Artur, Shura and Dima,
I want close the action item which I've got on the Fuel IRC meeting Nov
26th.
BP for investigation how we can(not) run HA tests on nodepool was created:
https://blueprints.launchpad.net/fuel/+spec/qa-rnd-ha-on-nodepool

Milestone target is "next" cause we are close to FF for 8.0 version,
but BP is open for comments and suggestions.


Nastya.

On Wed, Nov 25, 2015 at 4:55 PM, Artur Kaszuba <akaszuba at mirantis.com>
wrote:

> Hi All
>
> W dniu 25.11.2015 o 14:00, Aleksandra Fedorova pisze:
>
>> ...
>> Thus the test layout as i see it should be the following:
>>
>> - one "manager vm" which will be responsible for the main test flow.
>> On this vm we will:
>>      - build fuel-library package,
>>      - generate a repository,
>>      - get fuel-qa code,
>>      - run the actual test using based on job parameters,
>>      - collect test result and artifacts.
>> - one vm with installed Fuel,
>> - several bootstrapped nodes according to the test configuration -
>> here probably we can switch from using nodes which are bootstrapped
>> with Fuel to nodes which are just the most generic ones.
>>
>> As i got it from reading grenade job log [1], having manager vm is
>> actually expected: there is a "main" node and list of subnodes which
>> you can talk to from there. So this setup is not impossible, but
>> requires support for requesting different types of nodes from
>> nodepool. And we probably need to patch the Zuul_v3 spec in [2] to add
>> this case to the format of request-accept calls?
>>
>> The other question here would be the network configuration: to
>> function properly Fuel needs 5 (or 6?) different networks and we will
>> need a way to configure them before we run the actual deployment. What
>> are the options for configuring network on top of nodes provided by
>> nodepool?
>>
>>
>>
> Some time ago i worked on similar solution, how to execute Fuel inside
> other openstack instances. During my tests i have found problem with
> network and passing vlans between openstack instances. This problem could
> also appear when we want to use nodepool as a source of virtual machines
> for deployment tests. I will try to show where my problem exist.
>
> As a underlying Openstack infrastructure was used Fuel 6.0 executed on HW
> nodes:
> - one controler node
> - 5 compute nodes
> - Neutron with GRE segmentation
>
> To reduce network issues all instances was executed on one compute node.
>
> Test assumes that we execute fuel master and slaves as a Openstack
> instances inside one dedicated tenant. Every test requires to create a few
> networks and instances, it was easier to manage networks and instances as a
> tenant group. At the end of the test we can just delete all tenant objects.
>
> Standard fuel installation requires to create few networks, i created:
> - admin
> - public
> - mgmt
> - storage
>
> In standard Fuel installations networks could be attached directly to
> interface or created as a VLAN on network interface. In this case i wanted
> to reduce problems with additional tagging/fragmentation and each of
> network was created as a separate neutron network with dedicated interface
> inside instance.
> This requires to create Neutron infrastructure with:
> - router connected to external network
> - 4 neutron networks
> - public and admin network connected to router
>
> Each of instance is connected to network by dedicated interface, it looks
> like this:
>
>             +---------+
>             | Neutron |   +~~~~~~~~+
>      +------| router  |---|Internet|
>      |      +---------+   +~~~~~~~~+
>      |           |
> +---------+ +---------+ +---------+ +---------+
> | Neutron | | Neutron | | Neutron | | Neutron |
> | network | | network | | network | | network |
> |  admin  | | public  | | mgmt    | | storage |
> +---------+ +---------+ +---------+ +---------+
>    |     |           |       |          |
>    |     +--------+  |       |          |
>    |              |  |       |          |
> +-----------+    +------------------------+
> |Fuel Master|    |    Fuel slave X        |
> +-----------+    +------------------------+
>
> In standard Openstack installation it is not possible to start DHCP server
> on instance, it is blocked by firewall. To solve this problem i changed
> neutron agent code to allow DHCP traffic.
>
> Shortcut from procedure used to install fuel inside openstack:
> - upload ISO Fuel 6.1 to glance
> - upload ISO iPXE to glance
> - create instance for fuel master server and install it
> - create 2 instances for fuel slave nodes and boot them from iPXE
>
> After those steps i got fuel installation with 2 nodes ready for
> deployment, like this:
>
> +------------------------------------------------------+
> | Hardware node                                        |
> |                 +------------------------+           |
> |                 |    Fuel slave 1        |           |
> |                 |   (KVM Instance)       |           |
> |                 +------------------------+           |
> |                   |  |       |          |            |
> |          +--------+  |       |          |            |
> |          |           |       |          |            |
> | +---------+ +---------+ +---------+ +---------+      |
> | | Neutron | | Neutron | | Neutron | | Neutron |      |
> | | network | | network | | network | | network |      |
> | |  admin  | | public  | | mgmt    | | storage |      |
> | |  (OVS)  | |  (OVS)  | |  (OVS)  | |  (OVS)  |      |
> | +---------+ +---------+ +---------+ +---------+      |
> |    |     |           |       |          |            |
> |    |     +--------+  |       |          |            |
> |    |              |  |       |          |            |
> | +-----------+    +------------------------+          |
> | |Fuel Master|    |    Fuel slave 2        |          |
> | |   (KVM)   |    |   (KVM Instance)       |          |
> | +-----------+    +------------------------+          |
> |                                                      |
> +------------------------------------------------------+
>
> With this configuration it was possible to deploy new Openstack, but some
> type of configurations not work correctly. Problem appears when i deployed
> Openstack with VLAN separation, OSTF tests not passes.
>
> +------------------------------------------------------+
> | Hardware node                                        |
> |   +---------------------------------------+          |
> |   |    Fuel slave 1  +------------------+ |          |
> |   |   (KVM Instance) |Openstack Instance| |          |
> |   |                  |       TEST1      | |          |
> |   |                  |       (KVM)      | |          |
> |   |                  +------------------+ |          |
> |   |                            |          |          |
> |   |                      +----------+     |          |
> |   |                      |    OVS   |     |          |
> |   |                      |   (VLAN) |     |          |
> |   |                      +----------+     |          |
> |   |                            |tag:1000  |          |
> |   +---------------------------ETH---------+          |
> |                                |                     |
> |                          +----------+                |
> |                          |    OVS   |                |
> |                          |   (GRE)  |                |
> |                          +----------+                |
> |                                |                     |
> |   +---------------------------ETH---------+          |
> |   |   Fuel slave 2             |tag:1000  |          |
> |   |  (KVM Instance)      +----------+     |          |
> |   |                      |    OVS   |     |          |
> |   |                      |   (VLAN) |     |          |
> |   |                      +----------+     |          |
> |   |                            |          |          |
> |   |                  +------------------+ |          |
> |   |                  |Openstack Instance| |          |
> |   |                  |       TEST2      | |          |
> |   |                  |       (KVM)      | |          |
> |   |                  +------------------+ |          |
> |   +---------------------------------------+          |
> |                                                      |
> +------------------------------------------------------+
>
> Problem exists when we want to send packets between instances TEST1 and
> TEST2:
> - packet is sent from TEST1
> - OVS inside Fuel slave 1 needs to send this packet to other compute node
> inside correct tenant network, it will add VLAN tag and then will send it
> to the network interface
> - OVS on hardware node will get tagged frame on OVS interface which is not
> configured for tagging and OVS will drop it
>
> To start using nodepool instances in deployment tests we need to have sure
> that openstack used by nodepool allow to:
> - send responses from DHCP server installed on fuel master to slave
> instances, packets must pass by compute node firewall, in standard
> configuration responses from DHCP server are possible only from network node
> - we have solution which allow to pass tagged vlans between Openstack
> Instances, without this we cannot execute all kind of tests and scenarios
>
> Is it possible in actual Openstack infrastructure used by nodepool?
> Or maybe we could solve it in other way?
>
> --
> Artur Kaszuba
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20151202/274c7e88/attachment.html>


More information about the OpenStack-dev mailing list