RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 917681 - multiple resource agents for the same task
Summary: multiple resource agents for the same task
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: resource-agents
Version: 7.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: David Vossel
QA Contact: Cluster QE
URL:
Whiteboard:
: 886888 (view as bug list)
Depends On:
Blocks: 883874 1080147
TreeView+ depends on / blocked
 
Reported: 2013-03-04 14:48 UTC by michal novacek
Modified: 2015-08-24 06:35 UTC (History)
4 users (show)

Fixed In Version: resource-agents-3.9.5-5
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-06-16 08:24:05 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description michal novacek 2013-03-04 14:48:35 UTC
Description of problem:
For several resource agents there are multiple choice of agents. I saw multiple
for apache, lvm, apache and ipaddress. This is confusing for user as it is not
clear which one should be used and why.

Version-Release number of selected component (if applicable):
resource-agents-3.9.2-5.el7.x86_64
rhel7

$ pcs resource list 
...
ocf:heartbeat:apache - Manages an Apache web server instance
ocf:redhat:apache.sh - Defines an Apache web server
...
ocf:heartbeat:LVM - Controls the availability of an LVM Volume Group
ocf:redhat:lvm.sh - LVM Failover script
...
ocf:heartbeat:Filesystem - Manages filesystem mounts
ocf:redhat:fs.sh - Defines a file system mount.
...
ocf:heartbeat:IPaddr - Manages virtual IPv4 addresses (portable version)
ocf:heartbeat:IPaddr2 - Manages virtual IPv4 addresses (Linux specific version)
ocf:redhat:ip.sh - This is an IP address.
ocf:redhat:lvm.sh - LVM Failover script

Actual results:
In clusterlabs documentation which presumably becomes rhel7 documentation they
base all their examples an ocf:heartbeat:* agents. It is not clear whether
redhat or heartbeat should be used nor why do we ship both.

Expected results:
One resource agent for each task so there is no doubt which one to use. It
would probably be good idea to have one rpm with resources-agents to be
supported and put other resource agent in separate rpm that would not install
by default but still will be available.

Comment 2 Andrew Beekhof 2013-03-05 23:32:43 UTC
Yes, this is a work in progress.

David will be merging the best bits of the ocf:redhat agents into ocf:heartbeat in preparation for the ocf:redhat agents being removed - at which point there will be only one to choose from.

Until then, the general rule is use ocf:heartbeat for pacemaker and ocf:redhat for rgmanager.

Comment 3 Fabio Massimo Di Nitto 2013-03-08 07:15:45 UTC
*** Bug 886888 has been marked as a duplicate of this bug. ***

Comment 4 Fabio Massimo Di Nitto 2013-03-08 07:16:49 UTC
Ok as agreed with Andrew, we will drop the redhat compatibility symlink for the short term solution, but let´s keep this BZ open to track the merge of the 2 set of agents.

Comment 5 David Vossel 2013-06-18 18:07:24 UTC
Initial merger is complete.

The last commit related to the initial merger changes can be found here. https://github.com/ClusterLabs/resource-agents/commit/5434e9646462d2c3c8f7aad2609d0ef1875839c7


Below are notes related to the merger.

= High Level Merge Plan =
- drop redhat provider agents with heartbeat replacements from package.
- merge any lacking features into heartbeat provider agents

= Merging Actions =
'------->' = Agent is being merged into heartbeat agent.
'-- vs --' = Agent usage conflicts with with heartbeat agent.
'XXXXXXXX'  = Agent is being dropped with no replacement.

== Full Replacements ==
- Feature sets are the same, attribute names may differ though.

fabbione: as long as we keep a good track of those differences for QE/doc we should be good. again we don´t have to worry about backward compat for 7.

apache.sh        ---------> heartbeat:apache
drbd.sh          ---------> linbit:drbd supported by Linbit in drbd-pacemaker package.
postgres-8.sh    ---------> heartbeat:pgsql
ip.sh            ---------> heartbeat:IPaddr2
mysql.sh         ---------> heartbeat:mysql
named.sh         ---------> heartbeat:named
openldap.sh      ---------> heartbeat:slapd
SAPDatabase      ---------> heartbeat:SAPDatabase
SAPInstance      ---------> heartbeat:SAPInstance
tomcat-5.sh      ---------> heartbeat:tomcat
tomcat-6.sh      ---------> heartbeat:tomcat

== Functional Replacements ==
- Not possible to perform full feature merge because agent
  is dependent on rgmanager logic.
- Same use-cases are still possible though with similar
  heartbeat agents.

clusterfs.sh     ---------> heartbeat:FileSystem
fs.sh            ---------> heartbeat:FileSystem
netfs.sh         ---------> heartbeat:FileSystem

samba.sh         -------->  systemd:smb.service systemd:nmb.service

orainstance.sh   ---------> heartbeat:oracle
oralistener.sh   ---------> heartbeat:oralsnr

fabbione: I think that beside how/where the final code lands, it´s important that we don´t feature regress. The location of the new feature becomes mostly QE/Doc problem.

== Requires Feature Merger ==
- Very close feature sets, some features need to be ported to
  heartbeat agent before feature set complete.

nfsclient.sh     ---------> heartbeat:exportfs
nfsexport.sh     ---------> heartbeat:exportfs
nfsserver.sh     ---------> heartbeat:nfsserver
vm.sh            ---------> heartbeat:VirtualDomain
lvm.sh           ---------> heartbeat:LVM

== Unknown ==
- Needs further discussion

ASEHAagent.sh    XXXXXXXX  SAPDatabase handles the Sybase ASE db in ha environment
                                            This agent would just be to handle the db standalone.  Frank
                                            confirmed that this agent is not required for rhe 
                                            SAP/pacemaker solution. I have reached out to the author
                                            of the agent to determine if it makes sense to port this to
                                            pacemaker.
                                            *update* The author got back with me.  This agent will not be
                                            ported to pacemaker since the database can already be
                                            managed using SAPDatabase in a sap ha environment.

== Dropped agents ==
- Needs discussion or is definitely unnecessary

smb.sh           XXXXXXXX  uses rgmanager specific features to setup a samba server.
                                        This functionality can not be carried over to pacemaker
script.sh        XXXXXXXX  unnecessary, pacemaker handles this natively
service.sh       XXXXXXXX  unnecessary, pacemaker handles this natively
oracledb.sh     XXXXXXXX  Deprecated, split into two agents, oracle + oralsnr.

= Agent Notes =
Here are some notes I've compiled pertaining to some of the less straight forward agent 
mergers.

== NFS Notes ==

The redhat and heartbeat nfs agents work about the same, but do not share the same code.  Parameter names are different but the same functionality should exist.

Here are my deployment notes for how I tested deploying NFS on top of drbd with the heartbeat agents.

http://www.davidvossel.com/wiki/index.php?title=Pacemaker_DRBD%2BNFS

== Oracle ==

There were 3 redhat oracle agents, (oracledb.sh, orainstance.sh, oralistener.sh)

Functionality oracledb.sh is not being carried over. This agent worked standalone allowing people to launch both the oracle db and listener in a single agent.

The orainstance.sh and oralistener.sh are new agents that replace oracledb.sh on the redhat side. They split out the database and listeners into separate agents so a single database can have multiple listeners.

The heartbeat agents do not share the same code as the redhat agents, but they mimic the behavior of orainstance.sh and oralistner.sh.

example pcs configuration used during testing.

pcs resource create db_rh ocf:redhat:orainstance.sh name=db1 user=oracle home=/u01/app/oracle/product/11.2.0/db_1
pcs resource create listener_rh oralistener.sh sid=db1 user=oracle home=/u01/app/oracle/product/11.2.0/db_1 name=listener


== Virtual Machines ==

The redhat agent is vm.sh, and the heartbeat agent is VirtualDomain.  These agents are very different from one another but the majority of the functionality exists in both.

The notable differences here are that the redhat agent supports both libvirt virsh cli and Xen xm cli while VirtualDomain only supports virsh.

Here are my deployment notes for how I tested live migrations using nested virtual machines and the VirtualDomain resource. http://www.davidvossel.com/wiki/index.php?title=Nested_libvirt_Live_Migrations

== File Systems ==

The redhat agents had some common file system functionality that was used in multiple agents, fs.sh, netfs.sh, clusterfs.sh.   The heartbeat provider has one agent, Filesystem, that does all the different filesystem types. 

== Samba ==

The redhat provider had two samba agents, samba.sh and smb.sh.  smb.sh attempted to setup a samba server by detecting things from the rgmanager service tree. Obviously that functionality is rgmanager specific and can not be ported to pacemaker.  The samba.sh agent just started the smbd and nmbd services.  This functionality can be achieved natively with pacemaker's support for starting/stopping systemd services.  For now there is no dedicated samba heartbeat agent. Pacemaker systemd support can be used to achieve similar functionality.

== DRBD ==

Linbit ships and supports their own pacemaker ocf agent in the drbd-pacemaker package.  The heartbeat drbd agent is being dropped from the rhel7 resource-agents package.

Comment 6 Andrew Beekhof 2013-06-19 04:06:26 UTC
Excellent! (both the work and the final summary)

Comment 7 Ludek Smid 2014-06-16 08:24:05 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.


Note You need to log in before you can comment on or make changes to this bug.