[cinder][dev] Add support in driver - Active/Active High Availability
Hi, We wish to add Active/Active High Availability to: 1] HPE 3par driver - cinder/cinder/volume/drivers/hpe/hpe_3par_common.py 2] Nimble driver - cinder/cinder/volume/drivers/hpe/nimble.py Checked documentation at https://docs.openstack.org/cinder/latest/contributor/high_availability.html https://docs.openstack.org/cinder/latest/contributor/high_availability.html#... https://docs.openstack.org/cinder/latest/contributor/high_availability.html#... Summary of steps: 1] In driver code, set SUPPORTS_ACTIVE_ACTIVE = True 2] Split the method failover_host() into two methods: failover() and failover_completed() 3] In cinder.conf, specify cluster name in [DEFAULT] section cluster = <cluster_name> 4] Configure atleast two nodes in HA and perform testing Is this sufficient or anything else required ? Note: For Nimble driver, replication feature is not yet added. So can the above step 2 be skipped? Appreciate any suggestions / pointers. Regards, Raghavendra Tilay.
Hi, Raghavendra, Just sharing my experience, I started working on A/A support for NetApp NFS driver, and I followed the same steps you summarized. Besides that, I think the effort is to understand/test if any of the driver features might break in the A/A environment. If anyone knows about anything else we should test, I would be happy to know too. Regards, Nahim Souza. From: U T, Raghavendra <raghavendra-uddhav.tilay@hpe.com> Sent: Monday, May 8, 2023 09:18 To: openstack-discuss@lists.openstack.org Subject: [cinder][dev] Add support in driver - Active/Active High Availability NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe. Hi, We wish to add Active/Active High Availability to: 1] HPE 3par driver - cinder/cinder/volume/drivers/hpe/hpe_3par_common.py 2] Nimble driver - cinder/cinder/volume/drivers/hpe/nimble.py Checked documentation at https://docs.openstack.org/cinder/latest/contributor/high_availability.html https://docs.openstack.org/cinder/latest/contributor/high_availability.html#... https://docs.openstack.org/cinder/latest/contributor/high_availability.html#... Summary of steps: 1] In driver code, set SUPPORTS_ACTIVE_ACTIVE = True 2] Split the method failover_host() into two methods: failover() and failover_completed() 3] In cinder.conf, specify cluster name in [DEFAULT] section cluster = <cluster_name> 4] Configure atleast two nodes in HA and perform testing Is this sufficient or anything else required ? Note: For Nimble driver, replication feature is not yet added. So can the above step 2 be skipped? Appreciate any suggestions / pointers. Regards, Raghavendra Tilay.
On 15/05, Souza, Nahim wrote:
Hi, Raghavendra,
Just sharing my experience, I started working on A/A support for NetApp NFS driver, and I followed the same steps you summarized. Besides that, I think the effort is to understand/test if any of the driver features might break in the A/A environment.
If anyone knows about anything else we should test, I would be happy to know too.
Regards, Nahim Souza.
Hi, I see that there is no mention of deploying and configuring the DLM, which is necessary for the critical sections between different hosts. For reference, most drivers require code changes. A very common location were drivers need code changes is when creating the host entities in the storage array. I see that the 3PAR driver has already changed that lock to use the DLM locks [1]. If a driver doesn't support replication then there is no need to split the failover_host method. Cheers, Gorka. [1]: https://github.com/openstack/cinder/blob/7bca35c935cf8566bcf9e4874be78174cb0...
From: U T, Raghavendra <raghavendra-uddhav.tilay@hpe.com> Sent: Monday, May 8, 2023 09:18 To: openstack-discuss@lists.openstack.org Subject: [cinder][dev] Add support in driver - Active/Active High Availability
NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Hi,
We wish to add Active/Active High Availability to: 1] HPE 3par driver - cinder/cinder/volume/drivers/hpe/hpe_3par_common.py 2] Nimble driver - cinder/cinder/volume/drivers/hpe/nimble.py
Checked documentation at https://docs.openstack.org/cinder/latest/contributor/high_availability.html https://docs.openstack.org/cinder/latest/contributor/high_availability.html#... https://docs.openstack.org/cinder/latest/contributor/high_availability.html#...
Summary of steps: 1] In driver code, set SUPPORTS_ACTIVE_ACTIVE = True 2] Split the method failover_host() into two methods: failover() and failover_completed() 3] In cinder.conf, specify cluster name in [DEFAULT] section cluster = <cluster_name> 4] Configure atleast two nodes in HA and perform testing
Is this sufficient or anything else required ?
Note: For Nimble driver, replication feature is not yet added. So can the above step 2 be skipped?
Appreciate any suggestions / pointers.
Regards, Raghavendra Tilay.
Thank you Gorka for your inputs. -----Original Message----- From: Gorka Eguileor <geguileo@redhat.com> Sent: Monday, May 22, 2023 9:53 PM To: Souza, Nahim <Nahim.Souza@netapp.com> Cc: openstack-discuss@lists.openstack.org Subject: Re: [cinder][dev] Add support in driver - Active/Active High Availability On 15/05, Souza, Nahim wrote:
Hi, Raghavendra,
Just sharing my experience, I started working on A/A support for NetApp NFS driver, and I followed the same steps you summarized. Besides that, I think the effort is to understand/test if any of the driver features might break in the A/A environment.
If anyone knows about anything else we should test, I would be happy to know too.
Regards, Nahim Souza.
Hi, I see that there is no mention of deploying and configuring the DLM, which is necessary for the critical sections between different hosts. For reference, most drivers require code changes. A very common location were drivers need code changes is when creating the host entities in the storage array. I see that the 3PAR driver has already changed that lock to use the DLM locks [1]. If a driver doesn't support replication then there is no need to split the failover_host method. Cheers, Gorka. [1]: https://github.com/openstack/cinder/blob/7bca35c935cf8566bcf9e4874be78174cb0...
From: U T, Raghavendra <raghavendra-uddhav.tilay@hpe.com> Sent: Monday, May 8, 2023 09:18 To: openstack-discuss@lists.openstack.org Subject: [cinder][dev] Add support in driver - Active/Active High Availability
NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Hi,
We wish to add Active/Active High Availability to: 1] HPE 3par driver - cinder/cinder/volume/drivers/hpe/hpe_3par_common.py 2] Nimble driver - cinder/cinder/volume/drivers/hpe/nimble.py
Checked documentation at INVALID URI REMOVED ontributor/high_availability.html__;!!NpxR!lH2JQ63rjF_VfeZ3-GLyjF_HxF1 zel5dqcmGtBMpwroDAextkmaAC6O6MMXQvI0V2yZUuqnrnuzdRseR_nVAnLlJNXsn$ INVALID URI REMOVED ontributor/high_availability.html*cinder-volume__;Iw!!NpxR!lH2JQ63rjF_ VfeZ3-GLyjF_HxF1zel5dqcmGtBMpwroDAextkmaAC6O6MMXQvI0V2yZUuqnrnuzdRseR_ nVAnG252wrF$ INVALID URI REMOVED ontributor/high_availability.html*enabling-active-active-on-drivers__; Iw!!NpxR!lH2JQ63rjF_VfeZ3-GLyjF_HxF1zel5dqcmGtBMpwroDAextkmaAC6O6MMXQv I0V2yZUuqnrnuzdRseR_nVAnCQXkiH9$
Summary of steps: 1] In driver code, set SUPPORTS_ACTIVE_ACTIVE = True 2] Split the method failover_host() into two methods: failover() and failover_completed() 3] In cinder.conf, specify cluster name in [DEFAULT] section cluster = <cluster_name> 4] Configure atleast two nodes in HA and perform testing
Is this sufficient or anything else required ?
Note: For Nimble driver, replication feature is not yet added. So can the above step 2 be skipped?
Appreciate any suggestions / pointers.
Regards, Raghavendra Tilay.
participants (3)
-
Gorka Eguileor
-
Souza, Nahim
-
U T, Raghavendra