Monday, February 14, 2011

Solving Mirrored {Root} Pool Problems (zpool attach)

If you cannot attach a disk to create a mirrored root or non-root pool with the zpool attach command, and you see messages similar to the following:

# zpool attach rpool c1t1d0s0 c1t0d0s0
cannot attach c1t0d0s0 to c1t1d0s0: new device must be a single disk

You might be running into CR 6852962, which was been seen in an LDOM environment.If the problem is not 6852962 and the system is booted under a virtualization product, make sure the devices are accessible by ZFS outside of the virtualization product

Creating a Pool or Attaching a Disk to a Pool (I/O error)
If you attempt to create a pool or attach a disk or a disk slice to a existing pool and you see the following error

# zpool attach rpool c4t0d0s0 c4t1d0s0
cannot open '/dev/dsk/c4t1d0s0': I/O error

This error means that the disk slice doesn't have any disk space allocated to it or possibly that a Solaris fdisk partition and the slice doesn't exist on an x86 system. Use the format utility to allocate disk space to a slice. If the x86 system doesn't have a Solaris fdisk partition, use the fdisk utility to create one.

Panic/Reboot/Pool Import Problems
During the boot process, each pool must be opened, which means that pool failures might cause a system to enter into a panic-reboot loop. In order to recover from this situation, ZFS must be informed not to look for any pools on startup.

Boot From Milestone=None Recovery Method
Boot to the none milestone by using the -m milestone=none boot option

ok boot -m milestone=none

Remount your root file system as writable.
Rename or move the /etc/zfs/zpool.cache file to another location.

These actions cause ZFS to forget that any pools exist on the system, preventing it from trying to access the bad pool causing the problem. If you have multiple pools on the system, do these additional steps:

* Determine which pool might have issues by using the fmdump -eV command to display the pools with reported fatal errors.
* Import the pools one-by-one, skipping the pools that are having issues, as described in the fmdump output.

If the system is back up, issue the svcadm milestone all command.

No comments:

Post a Comment