[Starlingx-discuss] Stories for stx-tools deployment

Michel Thebeau michel.thebeau at windriver.com
Tue Oct 2 19:08:04 UTC 2018

On 2018-10-02 01:31 PM, Arce Moreno, Abraham wrote:
> Thanks Michel,

Hi Abraham

> I am taking your email as a base to understand from your experience more on the details
> to work the stories below.
>> I created four stories:
>> deployment/libvirt: sizing for reference configurations
>>     https://storyboard.openstack.org/#!/story/2003835
> Currently this is our current libvirt configuration [0]
> [ All-In-One]
> - setup_allinone.sh
> - Controllers: 2
>    - vCPUs: 6
>    - Memory: 18 GB
>    - Disks:
>      - 0 600 GB
>      - 1 200 GB
>      - 2 200 GB
>    - NICs: 4
> [ Standard Controller ]
> - setup_standard_controller.sh
> - Controllers: 2
>    - vCPUs: 4
>    - Memory: ~ 17 GB
>    - Disks:
>      - 0 200 GB
>      - 1 200 GB
>    - 4 NICs
> - Computes: 2
>    - vCPUs: 4
>    - Memory: ~ 17 GB
>    - Disks
>      - 0 200 GB
>      - 1 200 GB
>    - 4 NICs
> Some questions:
> - Do we need any changes to the above configurations?

There was a recent "stx.2018.10 test plan" email on the 
starlingx-discuss list, which I think would be useful for making this 
decision: do we need any changes to controller-storage, duplex or 
simplex configurations to support tests under virtualization.  I wrote 
in the notes for this story "Prepare a list of reference test cases..." 
and then soon after (same day) that test plan email came out - so, free 
alignment "yay!".

I want to shrink the memory footprint down for the October release. I 
think we could fit simplex under 16G, duplex under 32G and 
controller-storage under 64G at the very least.  For example, previous 
experience (previous releases) put the controller-storage at 24G total 
for the four VMs.

> - We are covered for Simplex, Duplex and Controller Storage configurations
>    but Dedicated Storage is not identified as such, do we need to:
>    1. Create a specific setup_dedicated_controller.sh?
>    2. or should we reuse existing setup_standard_controller.sh passing a parameter
>         to identify between Controller or Dedicated Storage?

I do not have a strong opinion.  For example, currently you run 
setup_allinone.sh for both duplex and simplex.  One ignores the second 
controller when running simplex.  If you added storage xml to 
setup_dedicated_controller.sh I expect you'd be fine - one could ignore 
the storage VMs.  (The script name would not be right.)

In practice for previous releases I would give the controller VM the 
cpu, memory, disks, networks needed to support either configuration.

> - Once we have these optimizations do we need to port them to our VirtualBox
>    configurations?

(I did not observe anyone supporting VirtualBox, but... ) "yes", I would 
expect the methods to be aligned.

> - In the story description, we mentioned:
>    "Optimize cpu, memory, hardware emulation, etc for test coverage including..."
>    Any more thoughts from your side on what the test coverage means? Any specific
>    Things you want us to consider from a testing perspective? Does it involves things
>    like tempest?

I would refer to the recent "stx.2018.10 test plan" email thread. 
Someone somewhere has started to think about which tests can run on 
hardware and which under virtualization.  I am thinking about what needs 
to be there for those tests.

>> deployment/libvirt: virtual disk placement for reference configurations
>>     https://storyboard.openstack.org/#!/story/2003836
> Can you please let us understand the use case for this story?

The host's root device can be overloaded with the host and 6 VMs running 
there. One needs to be careful to ensure the host's root disk is not 
overloaded when running automation, for example.  But, I'm really 
looking forward to running multiple clusters on the host using the 
stx-tools implementation (which is another good reason to bring the 
memory foot print down).  One requires more disks for that. It's the 
same story either way: configure where you want the virtual disks to be 

>> deployment/libvirt: tenant networking for reference configurations
>>     https://storyboard.openstack.org/#!/story/2003837
> What do you think about this [1] reference configuration for tenant networking?

The series of commands appears eerily familiar, almost as if it was 
copy/pasted from our internal wiki (lol).   Vlans 10 and 500 are outside 
of the 100-400 listed on the wikis, and providernet-b has no previous 

I missed that script when I was testing the libvirt deployment method, 
otherwise I would have updated it as an example that matches the wiki, 
rather than carrying the attached script.


> [0] https://git.openstack.org/cgit/openstack/stx-tools/tree/deployment/libvirt
> [1] https://git.openstack.org/cgit/opnstack/stx-tools/tree/deployment/provision/simplex_stage_2.sh

-------------- next part --------------
#neutron providernet-create ${PROVIDERNET} --type=vlan
#neutron providernet-range-create --name ${PROVIDERNET}-range1 --range 100-400 ${PROVIDERNET}

#system host-if-modify -p ${PROVIDERNET} -nt data compute-0 eth1000
#system host-cpu-modify compute-0 -f vswitch -p0 1

ADMINID=`openstack project list | grep admin | awk '{print $2}'`
neutron providernet-list

neutron net-create --tenant-id ${ADMINID} --provider:network_type=vlan --provider:physical_network=${PHYSNET0} --provider:segmentation_id=100 --router:external ${EXTERNALNET}
neutron net-create --tenant-id ${ADMINID} --provider:network_type=vlan --provider:physical_network=${PHYSNET0} --provider:segmentation_id=400 ${PUBLICNET}
neutron net-create --tenant-id ${ADMINID} --provider:network_type=vlan --provider:physical_network=${PHYSNET0} --provider:segmentation_id=150 ${PRIVATENET}
neutron net-create --tenant-id ${ADMINID} ${INTERNALNET}

PUBLICNETID=`neutron net-list | grep ${PUBLICNET} | awk '{print $2}'`
PRIVATENETID=`neutron net-list | grep ${PRIVATENET} | awk '{print $2}'`
INTERNALNETID=`neutron net-list | grep ${INTERNALNET} | awk '{print $2}'`
EXTERNALNETID=`neutron net-list | grep ${EXTERNALNET} | awk '{print $2}'`

neutron subnet-create --tenant-id ${ADMINID} --name ${PUBLICSUBNET} ${PUBLICNET}
neutron subnet-create --tenant-id ${ADMINID} --name ${PRIVATESUBNET} ${PRIVATENET}
neutron subnet-create --tenant-id ${ADMINID} --name ${INTERNALSUBNET} --no-gateway  ${INTERNALNET}
neutron subnet-create --tenant-id ${ADMINID} --name ${EXTERNALSUBNET} --gateway --disable-dhcp ${EXTERNALNET}

neutron router-create ${PUBLICROUTER}
neutron router-create ${PRIVATEROUTER}
PRIVATEROUTERID=`neutron router-list | grep ${PRIVATEROUTER} | awk '{print $2}'`
PUBLICROUTERID=`neutron router-list | grep ${PUBLICROUTER} | awk '{print $2}'`

neutron router-gateway-set --disable-snat ${PUBLICROUTERID} ${EXTERNALNETID}
neutron router-gateway-set --disable-snat ${PRIVATEROUTERID} ${EXTERNALNETID}
neutron router-interface-add ${PUBLICROUTER} ${PUBLICSUBNET}
neutron router-interface-add ${PRIVATEROUTER} ${PRIVATESUBNET}

#system host-if-modify -p ${PROVIDERNET} -nt data compute-1 \
#system host-cpu-modify compute-1  -f vswitch -p0 1

More information about the Starlingx-discuss mailing list