gnt-node migrate: Use LU-generated jobs
Until now LUNodeMigrate used multiple tasklets to evacuate all primary instances on a node. In some cases it would acquire all node locks, which isn't good on big clusters. With upcoming improvements to the LUs for instance failover and migration, switching to separate jobs looks like a better option. This patch changes LUNodeMigrate to use LU-generated jobs. While working on this patch, I identified a race condition in LUNodeMigrate.ExpandNames. A node's instances were retrieved without a lock and no verification was done. For RAPI, a new feature string is added and can be used to detect clusters which support more parameters for node migration. The client is updated. Signed-off-by:Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Signed-off-by:
Michael Hanselmann <hansmi@google.com>
Showing
- lib/client/gnt_node.py 25 additions, 5 deletionslib/client/gnt_node.py
- lib/cmdlib.py 28 additions, 34 deletionslib/cmdlib.py
- lib/rapi/client.py 34 additions, 6 deletionslib/rapi/client.py
- lib/rapi/rlib2.py 24 additions, 10 deletionslib/rapi/rlib2.py
- test/ganeti.rapi.client_unittest.py 34 additions, 0 deletionstest/ganeti.rapi.client_unittest.py
Loading
Please register or sign in to comment