Public bug reported:

There have been a lot of bug fixes related to this topic, but it still exists 
somehow. Some previous fix-released bugs for example:
https://bugs.launchpad.net/nova/+bug/1200479
https://bugs.launchpad.net/nova/+bug/1196893
https://bugs.launchpad.net/nova/+bug/1277230

The mailing list has already decided not to allow hosts in different AZs
(http://lists.openstack.org/pipermail/openstack-
dev/2014-April/031803.html), but it can still be reproduced by following
3 steps:

#### start repro ####

1) create two host aggregates "foo", "bar" to the default AZ:
$ nova aggregate-create foo
+----+------+-------------------+-------+----------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------+-------------------+-------+----------+
| 58 | foo  | -                 |       |          |
+----+------+-------------------+-------+----------+
$ nova aggregate-create bar
+----+------+-------------------+-------+----------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------+-------------------+-------+----------+
| 59 | bar  | -                 |       |          |
+----+------+-------------------+-------+----------+


2) assign a host "node2" to both aggregates
$ nova aggregate-add-host foo node2
+----+------+-------------------+---------+----------+
| Id | Name | Availability Zone | Hosts   | Metadata |
+----+------+-------------------+---------+----------+
| 58 | foo  | -                 | 'node2' |          |
+----+------+-------------------+---------+----------+
$ nova aggregate-add-host bar node2
+----+------+-------------------+---------+----------+
| Id | Name | Availability Zone | Hosts   | Metadata |
+----+------+-------------------+---------+----------+
| 59 | bar  | -                 | 'node2' |          |
+----+------+-------------------+---------+----------+


3) change "foo" to a named AZ called "az"
$ nova aggregate-update foo foo az
Aggregate 58 has been successfully updated.
+----+------+-------------------+---------+------------------------+
| Id | Name | Availability Zone | Hosts   | Metadata               |
+----+------+-------------------+---------+------------------------+
| 58 | foo  | az                | 'node2' | 'availability_zone=az' |
+----+------+-------------------+---------+------------------------+


#### end repro ####

The third step should NOT happen because it causes "node2" belong to both 
default AZ and "az" AZ, logically:
$ nova aggregate-details foo
+----+------+-------------------+---------+------------------------+
| Id | Name | Availability Zone | Hosts   | Metadata               |
+----+------+-------------------+---------+------------------------+
| 58 | foo  | az                | 'node2' | 'availability_zone=az' |
+----+------+-------------------+---------+------------------------+
$ nova aggregate-details bar
+----+------+-------------------+---------+----------+
| Id | Name | Availability Zone | Hosts   | Metadata |
+----+------+-------------------+---------+----------+
| 59 | bar  | -                 | 'node2' |          |
+----+------+-------------------+---------+----------+


Interesting thing is, "node2" is actually only belong to the availibility zone 
"az" if we list all the AZs. Thanks to the previous bug fixings:
$ nova availability-zone-list
+-----------------------+----------------------------------------+
| Name                  | Status                                 |
+-----------------------+----------------------------------------+
| internal              | available                              |
| |- node1              |                                        |
| | |- nova-conductor   | enabled :-) 2015-12-07T13:45:59.000000 |
| | |- nova-consoleauth | enabled :-) 2015-12-07T13:45:59.000000 |
| | |- nova-scheduler   | enabled :-) 2015-12-07T13:46:02.000000 |
| | |- nova-cert        | enabled :-) 2015-12-07T13:46:01.000000 |
| az                    | available                              |
| |- node2              |                                        |
| | |- nova-compute     | enabled :-) 2015-12-07T13:46:04.000000 |
+-----------------------+----------------------------------------+

** Affects: nova
     Importance: Undecided
     Assignee: Yingxin (cyx1231st)
         Status: New


** Tags: scheduler

** Changed in: nova
     Assignee: (unassigned) => Yingxin (cyx1231st)

** Tags added: scheduler

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1523506

Title:
  hosts within two availability zones

Status in OpenStack Compute (nova):
  New

Bug description:
  There have been a lot of bug fixes related to this topic, but it still exists 
somehow. Some previous fix-released bugs for example:
  https://bugs.launchpad.net/nova/+bug/1200479
  https://bugs.launchpad.net/nova/+bug/1196893
  https://bugs.launchpad.net/nova/+bug/1277230

  The mailing list has already decided not to allow hosts in different
  AZs (http://lists.openstack.org/pipermail/openstack-
  dev/2014-April/031803.html), but it can still be reproduced by
  following 3 steps:

  #### start repro ####

  1) create two host aggregates "foo", "bar" to the default AZ:
  $ nova aggregate-create foo
  +----+------+-------------------+-------+----------+
  | Id | Name | Availability Zone | Hosts | Metadata |
  +----+------+-------------------+-------+----------+
  | 58 | foo  | -                 |       |          |
  +----+------+-------------------+-------+----------+
  $ nova aggregate-create bar
  +----+------+-------------------+-------+----------+
  | Id | Name | Availability Zone | Hosts | Metadata |
  +----+------+-------------------+-------+----------+
  | 59 | bar  | -                 |       |          |
  +----+------+-------------------+-------+----------+

  
  2) assign a host "node2" to both aggregates
  $ nova aggregate-add-host foo node2
  +----+------+-------------------+---------+----------+
  | Id | Name | Availability Zone | Hosts   | Metadata |
  +----+------+-------------------+---------+----------+
  | 58 | foo  | -                 | 'node2' |          |
  +----+------+-------------------+---------+----------+
  $ nova aggregate-add-host bar node2
  +----+------+-------------------+---------+----------+
  | Id | Name | Availability Zone | Hosts   | Metadata |
  +----+------+-------------------+---------+----------+
  | 59 | bar  | -                 | 'node2' |          |
  +----+------+-------------------+---------+----------+

  
  3) change "foo" to a named AZ called "az"
  $ nova aggregate-update foo foo az
  Aggregate 58 has been successfully updated.
  +----+------+-------------------+---------+------------------------+
  | Id | Name | Availability Zone | Hosts   | Metadata               |
  +----+------+-------------------+---------+------------------------+
  | 58 | foo  | az                | 'node2' | 'availability_zone=az' |
  +----+------+-------------------+---------+------------------------+

  
  #### end repro ####

  The third step should NOT happen because it causes "node2" belong to both 
default AZ and "az" AZ, logically:
  $ nova aggregate-details foo
  +----+------+-------------------+---------+------------------------+
  | Id | Name | Availability Zone | Hosts   | Metadata               |
  +----+------+-------------------+---------+------------------------+
  | 58 | foo  | az                | 'node2' | 'availability_zone=az' |
  +----+------+-------------------+---------+------------------------+
  $ nova aggregate-details bar
  +----+------+-------------------+---------+----------+
  | Id | Name | Availability Zone | Hosts   | Metadata |
  +----+------+-------------------+---------+----------+
  | 59 | bar  | -                 | 'node2' |          |
  +----+------+-------------------+---------+----------+

  
  Interesting thing is, "node2" is actually only belong to the availibility 
zone "az" if we list all the AZs. Thanks to the previous bug fixings:
  $ nova availability-zone-list
  +-----------------------+----------------------------------------+
  | Name                  | Status                                 |
  +-----------------------+----------------------------------------+
  | internal              | available                              |
  | |- node1              |                                        |
  | | |- nova-conductor   | enabled :-) 2015-12-07T13:45:59.000000 |
  | | |- nova-consoleauth | enabled :-) 2015-12-07T13:45:59.000000 |
  | | |- nova-scheduler   | enabled :-) 2015-12-07T13:46:02.000000 |
  | | |- nova-cert        | enabled :-) 2015-12-07T13:46:01.000000 |
  | az                    | available                              |
  | |- node2              |                                        |
  | | |- nova-compute     | enabled :-) 2015-12-07T13:46:04.000000 |
  +-----------------------+----------------------------------------+

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1523506/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to