weizhouapache opened a new pull request, #14320:
URL: https://github.com/apache/cloudstack/pull/14320

   
   ### Description
   
   Extend the existing KVM Host-HA heartbeat/VM-activity-check framework 
(currently limited to NetworkFilesystem and SharedMountPoint pools) to also 
cover RBD primary storage, based on the approach from the old PR 
apache/cloudstack#5862, adapted to the current HA architecture and reusing the 
multi-monitor Ceph support already added in #6792.
   
   - Add StoragePoolType.RBD to LIBVIRT_STORAGE_POOL_TYPES_WITH_HA_SUPPORT, 
which is the single switch that makes pool registration, KVMHAMonitor, and the 
CheckOnHostCommand/CheckVMActivityOnStoragePoolCommand wrappers treat RBD pools 
as HA-capable.
   - LibvirtStoragePool: build rbd/rados connection args (--mon-host, pool, and 
cephx --id/--key when set) from the pool's existing sourceHost/ 
sourceDir/authUsername/authSecret fields for the heartbeat and VM-activity 
checks, mirroring the conventions KVMPhysicalDisk already uses to talk to RBD.
   - Add kvmheartbeat_rbd.sh and kvmvmactivity_rbd.sh: RBD has no shared mount 
point to write a heartbeat file to, so the heartbeat timestamp is stored as a 
small RADOS object per host instead, and VM activity is detected via RBD 
watchers (rbd status) rather than file mtimes.
   - Minor: fix a stale "NFS storage pool" log message in KVMHAMonitor now that 
this path also runs for RBD.
   - Add LibvirtStoragePoolTest#testIsPoolSupportHA covering the new RBD case 
(no HA/heartbeat tests existed previously for any pool type).
   
   cwiki: 
https://cwiki.apache.org/confluence/spaces/CLOUDSTACK/pages/451979203/Host+HA+support+for+Ceph+RBD+primary+storage+KVM
   
   <!--- Describe your changes in DETAIL - And how has behaviour functionally 
changed. -->
   
   <!-- For new features, provide link to FS, dev ML discussion etc. -->
   <!-- In case of bug fix, the expected and actual behaviours, steps to 
reproduce. -->
   
   <!-- When "Fixes: #<id>" is specified, the issue/PR will automatically be 
closed when this PR gets merged -->
   <!-- For addressing multiple issues/PRs, use multiple "Fixes: #<id>" -->
   <!-- Fixes: # -->
   
   <!--- 
******************************************************************************* 
-->
   <!--- NOTE: AUTOMATION USES THE DESCRIPTIONS TO SET LABELS AND PRODUCE 
DOCUMENTATION. -->
   <!--- PLEASE PUT AN 'X' in only **ONE** box -->
   <!--- 
******************************************************************************* 
-->
   
   ### Types of changes
   
   - [ ] Breaking change (fix or feature that would cause existing 
functionality to change)
   - [ ] New feature (non-breaking change which adds functionality)
   - [ ] Bug fix (non-breaking change which fixes an issue)
   - [x] Enhancement (improves an existing feature and functionality)
   - [ ] Cleanup (Code refactoring and cleanup, that may add test cases)
   - [ ] Build/CI
   - [ ] Test (unit or integration test code)
   
   ### Feature/Enhancement Scale or Bug Severity
   
   #### Feature/Enhancement Scale
   
   - [ ] Major
   - [ ] Minor
   
   #### Bug Severity
   
   - [ ] BLOCKER
   - [ ] Critical
   - [ ] Major
   - [ ] Minor
   - [ ] Trivial
   
   ### Screenshots (if appropriate):
   
   ### How Has This Been Tested?
   
   <!-- Please describe in detail how you tested your changes. -->
   <!-- Include details of your testing environment, and the tests you ran to 
-->
   
   #### How did you try to break this feature and the system with this change?
   
   <!-- see how your change affects other areas of the code, etc. -->
   
   <!-- Please read the 
[CONTRIBUTING](https://github.com/apache/cloudstack/blob/main/CONTRIBUTING.md) 
document -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to