From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id E5EAA1FF0AD for ; Sun, 18 Oct 2026 14:48:20 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 71D1F21622; Sun, 18 Oct 2026 14:47:13 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DryJSDtzQfMqBAKhBlKLDYgZTpu/g3obtFkIdsFfQ3GOv+9V04ZUwCo93GpycqwX8v+phswsN86QOEKzxvr1UiICtDdq+HJXKvEaPQv3A4mZ55wAkz+b+7LhF1a2x+MROSRmZS7mNQXpo7T0+h6eBnLYCulKmqlad+GWphnzDrtj+//aDv0gHkJEGbEPwOR9htckX4Rz4s6ekFSOBL2CD2JdgRthhDEm0jxqt/cqROGhoEi8LwAG1gYqSNRrT+o6a5t3V6REjeN+LHrhdbA4WbM8Bvr/zcF7D713lYNOZeM4L9qDaVQH1k84UPx+Yj7R6ph3EaTPCUbmlsKE5FXR4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2+YtyJxDghCi5561k+UcuZwXnHL32fmXG/nQqPvzStw=; b=NpZCOSs7TIzxwraxzF23FjXyWLWnWKscIL31w7hINPidFAAe66GFVuO9jW72akAb68A9LgSvBAq+PNPWNpAs2CMN3AU3MgCPo0h87VVu6MqvZE3n+ymZXTBkVfeqdz6IX727bozgDgThtJsnNziPZI2kF4tuZKuu0m8ztAr2Of3ao7rKCcEvnUNoQC5vPMkPQTw85+XpMIdPqxxvl+ROb8SmL+X/4Dp7+JWCTJyaYDC9FejIKK+D5DrmEi5VCRazTvn0lo8RwvYo0ylea7/JCZSvAY+YXbsmowo6h/E45ex/KmMCe8MoRcVR96NjQ+jwJC8GEafuSswrOCbeoDFwKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ryomherold.dk; dmarc=pass action=none header.from=ryomherold.dk; dkim=pass header.d=ryomherold.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RyomHerold.dk; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2+YtyJxDghCi5561k+UcuZwXnHL32fmXG/nQqPvzStw=; b=C9AMXEBTZjvG+2QNLB8Ue2+u2j2xhyFFJXHeZClVZZVqT5kdowp++4Jhu/fd+GMUDr30RXneRqHlIUzEe+4CVLLYWjQpFzr+2lVcYZsyeOlEWGi1jhFkWeZd+sgczL2X08lE5kRGwtq/eKXZQTSgbmsvLLM1xh7ikSE/oqUYfFBecU5IgaORje9xdArzHKP0AQythp8wmF9AgDnPyAy2ReR3M7fRPQOBKqMZO5rEwT46aT25uWWRBuOiNEdcvEmKIMxM2JKlMaHhCJVobY4gI16PCeOZxqWUUz5H0mTvb57nBpHY3pX6eI7AjIj+/piSpYkD+9oym9/xSagQZlbFyA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=RyomHerold.dk; From: Michael Ryom To: pve-devel@lists.proxmox.com Subject: [PATCH ha-manager v2 11/14] test: add auto rebalance test case for fluctuating node base loads Date: Sun, 18 Oct 2026 14:45:55 +0200 Message-ID: <20261018124559.24305-12-Michael@RyomHerold.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261018124559.24305-1-Michael@RyomHerold.dk> References: <20261018124559.24305-1-Michael@RyomHerold.dk> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MM0P280CA0046.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:b::20) To AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:619::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR10MB7231:EE_|PA4PR10MB5706:EE_ X-MS-Office365-Filtering-Correlation-Id: 87d71e99-debe-4287-ad2a-08df2d15cd89 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|23010399003|6133799003|22082099003|10067099003|18002099003|260925021311599003|261009223027099003|260925022911599003|260925021911599003|56012099006; X-Microsoft-Antispam-Message-Info: EaKlQfvGc+pQWjT2qIEIK3Cc8I0+6CpTpWWV6GrmdrHZLQzFdF5QH3DHqfptllxU5/iy0kgoK0U1cu3mWuMpg7RY5ZPs7Kg/S8ZJf3jE6TG7imlMT+I1xXgCp8tO3HFYv2Et43NE7cc1nG2EXyANrtT9FWiMpiFnrPt6zp1I941YIHEBiEsjSmkHXbXvAtbTp+q3da4Zxz4bOipbsDl84JqXc3Z6NMmOl4SnXYpBv2zDBPu/vdlPaGBwQ0CPajE13HHnZ/zmc8BFVz7xlJYionD/6OjOXyo4IyfHw8pyB6+9fESjTdW6yE0TQdOmOYxKU0xjLNMX3pGDLVqkWhnbAT6H/+FvqPiI6DYNMo08RuSG1XaH2cSAz/zNkiKfbs7Fqw7jjir4Tn74S+rYHMPoPR/F+DpgiQTVyjc6XADO6h/ABq6sysCvzfLHBfWyI7jIDqTDvdjz82MTkSujp3IVZr8O9xVRdxuOBMNgDb3na5+EQ2VV+wLgsoNS2vuW4WmgvFWMWfjnxo0q9Y/ne8XRCZHvG+rwXaL0PC0XEOCd74mcL/KFKkPwiA+boglR+EJJwq2MUN6w1NM01b6MhSRiBKZEHv7sj0JPHiL1zSBf/0/yCYti/LfF76IoeOhaWUb8aHmnTki0SpqIqzw76bydiNRRShEmSjyQgh7kvuOOgpI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(23010399003)(6133799003)(22082099003)(10067099003)(18002099003)(260925021311599003)(261009223027099003)(260925022911599003)(260925021911599003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jyqC/shxUEclDxbNrn7NyY8Jgn3OzsMkejqnpU6GdS7KUAlCIxRJkw7KDrHn?= =?us-ascii?Q?q7+//kwpklKeESIqtN/9nenQJHJZSUKe1gdqeDYiiBQE7800osYPeFl+ENd+?= =?us-ascii?Q?lp8tOMlkRkhNzm46C0QMi2kydMbprbrbR3KTler3+9y0q0CQL6bd1Yc0REZI?= =?us-ascii?Q?F9R3VjSzgUoJ7ChPxyIQaidxF2u7zhkytu+P7EwIgDvb89u/j+j4210a4ya1?= =?us-ascii?Q?5jn0IRF+txhk0isGyEp0RAc8sXvx9uvPo67OMjMOA+M2xPt9CO8Tho39Khfz?= =?us-ascii?Q?fLskryfSJsatku7FfgJSJQNqoYC7/3QgPkQy1pqS1IeZ0O1cFGOqaoOaI0lf?= =?us-ascii?Q?c6pOjxJZrfHNhhQODYxyy6syZcZYf0b1kF1WIyJdkk6C/ljt1O5KA2meHdyp?= =?us-ascii?Q?5dutYTrrHKHltj2G7D9tFkdhcNYd3cpsI3Ypc+0r6hnf3ZF6b7SF5Qf5F00l?= =?us-ascii?Q?EUzuuZ2fFf/PjGMpKbt79LzpIr/g4/w+7oQE5qH27oIkNVDK9N+aUYmMbRdc?= =?us-ascii?Q?z0+ldBwCeGx14AkVd4iVbCslJ8eootECj0N6TffgPye/qWt3y8FknVe6dn9D?= =?us-ascii?Q?LdcqE675z3z7n5Y5UyjhB8AAmJhODbM4WO9Bx5Xklq8pUyZrc6fqzG2pgHB0?= =?us-ascii?Q?jRkVLHCyOVRr1bS9fRlMKwQfjRURbfBOW/uTG9Qz8m+7PkeQBo2ObxaumVgI?= =?us-ascii?Q?xoFK00Pvi1Gcyff0kkycXc1lxdC0fdbAceQrEx7mBfPh1tGc9hQ0Zqj18cGv?= =?us-ascii?Q?PGQTknxpHcJR2h1CZ7oGu3T7Sumgju5I4utXWOZRCYSfV2y2UWhdfKyrOhr2?= =?us-ascii?Q?YCAgqoGgfQF9S0Q7WjgiOVxRRV9tYioF7iXhiIepeijDlX6JVSE8ArpKS1U+?= =?us-ascii?Q?Ms0aC9hwfzzlJ7PIZgci1b4f5QCJXbNGOCDdTTvKAM+GdPGmpz2JvdI+UFnf?= =?us-ascii?Q?izu1IPzF0MCX3kFJ7ri0LhO+E73J7s1c3IDyWQmc26j9t6o6l9mQnYHvVcai?= =?us-ascii?Q?whAWR4Du4rzDT59S7RNS5gTVDOW7S1+p99o8geqRRwagyUrJ14RCuy+v7RuM?= =?us-ascii?Q?coVSiJbk4++4rAASDyhnAfRp5bTDjeoVzzAuJv41A3pFKpMhCm/W4FbygdkD?= =?us-ascii?Q?PkygZRRdn65YWI2C6FBcnYkpTKfKcm2n8X71oG3Y9vQL8chi5eI/jucjV2vD?= =?us-ascii?Q?OB3sx2a9EGpC5y5dT1ehLuOurjZO3nnyOakjmL3dEtSrFO7zE2cXNJMtzwJM?= =?us-ascii?Q?94QY7ZKKBdxrooEq5A6nbbIX1PCo244swkUKZpXfR3+i7hOPT7mQhOTjKXd/?= =?us-ascii?Q?8AIf9htIYeh0GL00vCCOmOL2Qo8kdFUSiC7njIoXtCcz8/Im1g+CVx2XrQ/F?= =?us-ascii?Q?/O1bNxDR6aIXIPO/b313pssngF+KiCfwyApIwk6ZmApUx/NSOKN6zAo3cY8x?= =?us-ascii?Q?tFgi/Zv9efAG0rlMSNW3oA/rBuXKGj1J9uzz7Fyj0Z8dzAAM8a05r+ymJoyL?= =?us-ascii?Q?u0yCnyNXIk86gI1ta3xO4RS+viov27NeFj0Bq7jp+RQPmCgkiFQeamXAgYam?= =?us-ascii?Q?J/vKWN/aPFQLTJVYqBn2CO5NNbLqc0lnrE9OA9xSCRqPPKImUIJPm2PcgiQu?= =?us-ascii?Q?eO17UhsvyVAfrCGCpGhsDliyQFcnMP7curOpONQTYCpWocdClFNUrIG3mCaB?= =?us-ascii?Q?J9f8qrEYKlTNCB9nbj94kFruGWSo/9CRBr3L0DoCuGo/qVKclIPUzjZVTwbc?= =?us-ascii?Q?AIZ1Xae6rg=3D=3D?= X-OriginatorOrg: RyomHerold.dk X-MS-Exchange-CrossTenant-Network-Message-Id: 87d71e99-debe-4287-ad2a-08df2d15cd89 X-MS-Exchange-CrossTenant-AuthSource: AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2026 12:46:17.6621 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 26a2499e-4646-4888-a695-c64736a56807 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3mjypJUcthxGfS/OGLKJgkPC9UlSVd6VcmgPihJHh6XMIBb/NzieA/rDpeL5UT4nxYDIpP1pkhSIA7OYx9+s5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR10MB5706 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.003 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy GB_MSAUTHSOURCE_EUROPE 0.01 Mail authenticated via Microsoft Europe (EURP) datacenter RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust RCVD_IN_MSPIKE_H2 0.001 Average reputation (+2) SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: Z2DJ7FFZPKS6HWEZPOCVL3YKTQMVZONW X-Message-ID-Hash: Z2DJ7FFZPKS6HWEZPOCVL3YKTQMVZONW X-MailFrom: Michael@RyomHerold.dk X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Michael Ryom X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Add a test case, where the base loads of two nodes, which are not caused by any HA resource, are flipped by about half a percentage point of node load in alternating directions, while a single dominant HA resource runs on one of them. The expected log records the current behavior, where vm:100 is migrated back and forth after each flip (see bug #8059). It is adapted by the following patch. Signed-off-by: Michael Ryom --- .../test-crs-dynamic-auto-rebalance9/README | 16 +++++ .../test-crs-dynamic-auto-rebalance9/cmdlist | 19 ++++++ .../datacenter.cfg | 6 ++ .../dynamic_service_stats | 3 + .../hardware_status | 4 ++ .../log.expect | 66 +++++++++++++++++++ .../manager_status | 1 + .../service_config | 3 + .../static_service_stats | 3 + 9 files changed, 121 insertions(+) create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/README create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/cmdlist create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/datacenter.cfg create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/dynamic_service_stats create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/hardware_status create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/log.expect create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/manager_status create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/service_config create mode 100644 src/test/test-crs-dynamic-auto-rebalance9/static_service_stats diff --git a/src/test/test-crs-dynamic-auto-rebalance9/README b/src/test/test-crs-dynamic-auto-rebalance9/README new file mode 100644 index 0000000..93b27c4 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/README @@ -0,0 +1,16 @@ +Test that a single dominant HA resource does not oscillate between two nodes +whose base loads (i.e. load not caused by any HA-managed service, here set via +the node base load of the simulated hardware) fluctuate around each other. + +The cluster has two nodes with an equal base load and one dominant movable +HA resource vm:100 on node1. The imbalance is permanently above the trigger +threshold, but no motion can improve it, so the load balancer stays armed +without acting. Then the node base loads are repeatedly flipped by about half +a percentage point of node load in alternating directions. + +Each raw sample after a flip qualifies a migration of vm:100 to the less +loaded node (and after the next flip, back again), as the expected relative +imbalance improvement of about 10.4% exceeds the default margin of 10%. +Acting on the raw samples moves the dominant resource back and forth with +every flip, even though the fluctuation is well within the noise of a real +node's base load. diff --git a/src/test/test-crs-dynamic-auto-rebalance9/cmdlist b/src/test/test-crs-dynamic-auto-rebalance9/cmdlist new file mode 100644 index 0000000..eeee26c --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/cmdlist @@ -0,0 +1,19 @@ +[ + [ "power node1 on", "power node2 on" ], + [ + "node node1 set-dynamic-stats cpu 5.064 mem 0", + "node node2 set-dynamic-stats cpu 4.536 mem 0" + ], + [ + "node node1 set-dynamic-stats cpu 4.536 mem 0", + "node node2 set-dynamic-stats cpu 5.064 mem 0" + ], + [ + "node node1 set-dynamic-stats cpu 5.064 mem 0", + "node node2 set-dynamic-stats cpu 4.536 mem 0" + ], + [ + "node node1 set-dynamic-stats cpu 4.536 mem 0", + "node node2 set-dynamic-stats cpu 5.064 mem 0" + ] +] diff --git a/src/test/test-crs-dynamic-auto-rebalance9/datacenter.cfg b/src/test/test-crs-dynamic-auto-rebalance9/datacenter.cfg new file mode 100644 index 0000000..01c8114 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/datacenter.cfg @@ -0,0 +1,6 @@ +{ + "crs": { + "ha": "dynamic", + "ha-auto-rebalance": 1 + } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance9/dynamic_service_stats b/src/test/test-crs-dynamic-auto-rebalance9/dynamic_service_stats new file mode 100644 index 0000000..ef14918 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/dynamic_service_stats @@ -0,0 +1,3 @@ +{ + "vm:100": { "cpu": 9.6, "mem": 0 } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance9/hardware_status b/src/test/test-crs-dynamic-auto-rebalance9/hardware_status new file mode 100644 index 0000000..bb0cf81 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/hardware_status @@ -0,0 +1,4 @@ +{ + "node1": { "power": "off", "network": "off", "maxcpu": 24, "maxmem": 34359738368, "cpu": 4.8, "mem": 0 }, + "node2": { "power": "off", "network": "off", "maxcpu": 24, "maxmem": 34359738368, "cpu": 4.8, "mem": 0 } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance9/log.expect b/src/test/test-crs-dynamic-auto-rebalance9/log.expect new file mode 100644 index 0000000..efd4d2c --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/log.expect @@ -0,0 +1,66 @@ +info 0 hardware: starting simulation +info 20 cmdlist: execute power node1 on +info 20 node1/crm: status change startup => wait_for_quorum +info 20 node1/lrm: status change startup => wait_for_agent_lock +info 20 cmdlist: execute power node2 on +info 20 node2/crm: status change startup => wait_for_quorum +info 20 node2/lrm: status change startup => wait_for_agent_lock +info 20 node1/crm: got lock 'ha_manager_lock' +info 20 node1/crm: status change wait_for_quorum => master +info 20 node1/crm: using scheduler mode 'dynamic' +info 20 node1/crm: node 'node1': state changed from 'unknown' => 'online' +info 20 node1/crm: node 'node2': state changed from 'unknown' => 'online' +info 20 node1/crm: adding new service 'vm:100' on node 'node1' +info 20 node1/crm: service 'vm:100': state changed from 'request_start' to 'started' (node = node1) +info 21 node1/lrm: got lock 'ha_agent_node1_lock' +info 21 node1/lrm: status change wait_for_agent_lock => active +info 21 node1/lrm: starting service vm:100 +info 21 node1/lrm: service status vm:100 started +info 22 node2/crm: status change wait_for_quorum => slave +info 120 cmdlist: execute node node1 set-dynamic-stats cpu 5.064 mem 0 +info 120 cmdlist: execute node node2 set-dynamic-stats cpu 4.536 mem 0 +info 140 node1/crm: auto rebalance - migrate vm:100 to node2 (expected change for imbalance from 52.8% to 47.2%) +info 140 node1/crm: got crm command: migrate vm:100 node2 +info 140 node1/crm: migrate service 'vm:100' to node 'node2' +info 140 node1/crm: service 'vm:100': state changed from 'started' to 'migrate' (node = node1, target = node2) +info 141 node1/lrm: service vm:100 - start migrate to node 'node2' +info 141 node1/lrm: service vm:100 - end migrate to node 'node2' +info 143 node2/lrm: got lock 'ha_agent_node2_lock' +info 143 node2/lrm: status change wait_for_agent_lock => active +info 160 node1/crm: service 'vm:100': state changed from 'migrate' to 'started' (node = node2) +info 163 node2/lrm: starting service vm:100 +info 163 node2/lrm: service status vm:100 started +info 220 cmdlist: execute node node1 set-dynamic-stats cpu 4.536 mem 0 +info 220 cmdlist: execute node node2 set-dynamic-stats cpu 5.064 mem 0 +info 220 node1/crm: auto rebalance - migrate vm:100 to node1 (expected change for imbalance from 52.8% to 47.2%) +info 220 node1/crm: got crm command: migrate vm:100 node1 +info 220 node1/crm: migrate service 'vm:100' to node 'node1' +info 220 node1/crm: service 'vm:100': state changed from 'started' to 'migrate' (node = node2, target = node1) +info 223 node2/lrm: service vm:100 - start migrate to node 'node1' +info 223 node2/lrm: service vm:100 - end migrate to node 'node1' +info 240 node1/crm: service 'vm:100': state changed from 'migrate' to 'started' (node = node1) +info 241 node1/lrm: starting service vm:100 +info 241 node1/lrm: service status vm:100 started +info 320 cmdlist: execute node node1 set-dynamic-stats cpu 5.064 mem 0 +info 320 cmdlist: execute node node2 set-dynamic-stats cpu 4.536 mem 0 +info 360 node1/crm: auto rebalance - migrate vm:100 to node2 (expected change for imbalance from 52.8% to 47.2%) +info 360 node1/crm: got crm command: migrate vm:100 node2 +info 360 node1/crm: migrate service 'vm:100' to node 'node2' +info 360 node1/crm: service 'vm:100': state changed from 'started' to 'migrate' (node = node1, target = node2) +info 361 node1/lrm: service vm:100 - start migrate to node 'node2' +info 361 node1/lrm: service vm:100 - end migrate to node 'node2' +info 380 node1/crm: service 'vm:100': state changed from 'migrate' to 'started' (node = node2) +info 383 node2/lrm: starting service vm:100 +info 383 node2/lrm: service status vm:100 started +info 420 cmdlist: execute node node1 set-dynamic-stats cpu 4.536 mem 0 +info 420 cmdlist: execute node node2 set-dynamic-stats cpu 5.064 mem 0 +info 440 node1/crm: auto rebalance - migrate vm:100 to node1 (expected change for imbalance from 52.8% to 47.2%) +info 440 node1/crm: got crm command: migrate vm:100 node1 +info 440 node1/crm: migrate service 'vm:100' to node 'node1' +info 440 node1/crm: service 'vm:100': state changed from 'started' to 'migrate' (node = node2, target = node1) +info 443 node2/lrm: service vm:100 - start migrate to node 'node1' +info 443 node2/lrm: service vm:100 - end migrate to node 'node1' +info 460 node1/crm: service 'vm:100': state changed from 'migrate' to 'started' (node = node1) +info 461 node1/lrm: starting service vm:100 +info 461 node1/lrm: service status vm:100 started +info 1020 hardware: exit simulation - done diff --git a/src/test/test-crs-dynamic-auto-rebalance9/manager_status b/src/test/test-crs-dynamic-auto-rebalance9/manager_status new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/manager_status @@ -0,0 +1 @@ +{} diff --git a/src/test/test-crs-dynamic-auto-rebalance9/service_config b/src/test/test-crs-dynamic-auto-rebalance9/service_config new file mode 100644 index 0000000..60688cf --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/service_config @@ -0,0 +1,3 @@ +{ + "vm:100": { "node": "node1", "state": "started" } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance9/static_service_stats b/src/test/test-crs-dynamic-auto-rebalance9/static_service_stats new file mode 100644 index 0000000..7eee778 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance9/static_service_stats @@ -0,0 +1,3 @@ +{ + "vm:100": { "maxcpu": 12.0, "maxmem": 8589934592 } +} -- 2.47.3