A partial volume group refers to a foreign drive in the storage array; a foreign volume group refers to the same drive; and the foreign drive considers itself assigned to the foreign volume group.
What Caused the Problem?
A Contingent array considers a foreign drive to be a member of the array; however, the drive is a member of another array that is in a Contingent or Exported state. A foreign drive is a drive that has been exported from this storage subsystem or not yet completely imported into the storage subsystem. The Recovery Guru Details area provides specific information you will need as you follow the recovery steps.
Caution: Electronic discharge can damage sensitive components. Always use proper antistatic protection when handling components. Touching components without using a proper ground may damage the equipment.
Important Notes
This problem usually results from inserting an array (from a different storage subsystem into this storage subsystem) containing a drive that was previously a member of the other foreign array.
To resolve this problem, you will need to remove the foreign drive, remove and then re-insert the drives that comprise the array (which has the incorrect reference to the drive), and then assign a local drive to take the place of the mutual drive. Follow the recovery steps below to fix the problem.
You can remove the drive while the storage subsystem is receiving I/O.
Recovery Steps
1 | Refer to the Details area to find which drive slot is reporting the foreign drive. | ||||||||
2 | Remove the foreign drive. | ||||||||
3 | Refer to the Details area to find which drives are associated with the array that has the incorrect reference to the foreign drive. | ||||||||
4 | Remove each drive until they are all removed | ||||||||
5 | After the Logical view of the Subsystem Management Window (AMW) no longer displays the array you removed in step 4, re-insert each drive until all have been re-inserted into the storage subsystem. | ||||||||
6 | When all of the drives are spun up and recognized, the Contingent array should re-appear in the Logical view. Select the Contingent array in the Logical View, and then select the Advanced >> Maintenance >> Import Array menu option. | ||||||||
7 | Follow the instructions in the Import Array dialog to properly import the array into the storage subsystem. Notes:
| ||||||||
8 | Important: Read all of the following steps thoroughly or click the Save As button before taking action, because you will lose access to these Recovery Steps once you click Recheck.
|
Target | IBMStorageSubsystem.StorageSubsystem | ||
Parent Monitor | IBMStorageSubsystem.StorageSubsystemAvailability | ||
Category | Custom | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | IBMStorageSubsystem.FailureUnitMonitorType | ||
Remotable | True | ||
Accessibility | Internal | ||
Alert Message |
| ||
RunAs | Default | ||
Comment | Machine generated entity |
<UnitMonitor ID="IBMStorageSubsystem.FailureID_0218_Monitor" Accessibility="Internal" Enabled="true" Target="IBMStorageSubsystem.StorageSubsystem" ParentMonitorID="IBMStorageSubsystem.StorageSubsystemAvailability" Remotable="true" Priority="Normal" TypeID="IBMStorageSubsystem.FailureUnitMonitorType" ConfirmDelivery="true" Comment="Machine generated entity">
<Category>Custom</Category>
<AlertSettings AlertMessage="IBMStorageSubsystem.REC_VG_DRIVE_PART_OF_MULTIPLE_VGS_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='FailureDescription']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="IBMStorageSubsystem.StateId3E795C646A6B9B32064CC73C2A4E213" MonitorTypeStateID="NoIssue" HealthState="Success"/>
<OperationalState ID="IBMStorageSubsystem.StateId40911390120723A975640F047035ECC1" MonitorTypeStateID="IssueFound" HealthState="Error"/>
</OperationalStates>
<Configuration>
<FailureID>218</FailureID>
<IntervalSeconds>59</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<Trace>0</Trace>
</Configuration>
</UnitMonitor>