The Pre_evict property allows the RGM to prestart a resource group, RG1, on a target node before RG1 has actually switched offline from its current master. The prestart action evicts the resource groups from the target node prior to RG1 executing its switchover onto the target node.
The prestart action is executed before the live migration so that the target node will satisfy the necessary load and affinity prerequisites for hosting the migrating resource group.
Note the following points for the Pre_evict resource property:
The RGM evicts RG2 from the target node prior to executing the switchover of RG1 under the following conditions:
If a resource group RG1 contains a resource with Pre_evict set to TRUE
If RG1 is being switched from one node to another
If RG1 preempts another resource group RG2 on the target node due to strong negative affinities or loadlimits and causes the eviction of RG2
The eviction is completed before the execution of any stopping methods of resources in RG1.
During the pre-eviction action, the state of RG1 on its current master is set to PENDING_OFFLINE. The status message of each resource in RG1 that has Pre_evict=TRUE is set on RG1's current master node to Waiting for resource group evictions on node %s, where %s indicates the name of the switchover target node. The status message is localized to the system locale that is applicable to rgmd's environment, which is normally the default system locale.
The pre-eviction action is taken only for single-mastered resource groups, that is for resource groups with the Maximum_primaries property set to 1. For a resource group with Maximum_primaries property set to greater than 1, the Pre_evict settings of its resources is ignored, and prestart/eviction actions do not take place on the target node or nodes.
If RG1 is only being brought online on a new master but not being switched off of any current master, resource group evictions take place on the new master before bringing RG1's resources online, regardless of the setting of the Pre_evict resource property. In such a case, pre-eviction is equivalent to the default eviction because there is no stopping phase for RG1.
If RG1 goes offline due to a Startmethod failure, a resource group eviction, a strong affinity, or a node evacuation, the prestart/eviction action will not take place regardless of the setting of Pre_evict.
For example, if RG1 declares a strong positive (++ or +++) affinity for RG2 and you switch RG2 from node1 to node2, RG1 is also switched from node1 to node2 but pre-eviction is not performed on RG1. This prevents live migration from being applied to RG1. If RG1 and RG2 are in the same global cluster or zone cluster, the Oracle Solaris Cluster administrator can work around this issue by using the clrresourcegroup switch command to switch both RG1 and RG2 together instead of relying on the strong positive affinity. Having both resource groups as operands of the clrresourcegroup switch command allows the pre-eviction feature to work correctly on both of them.
Note that in such cases where pre-eviction is not performed, the evictions are done in the default manner. Evictions occur after stopping the switching resource group on its original master and before starting it on the target node.
For information about the Pre_evict resource property, see the r_properties(5) man page.