[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