![]() | Oracle System Handbook - ISO 7.0 May 2018 Internal/Partner Edition | ||
|
|
![]() |
||||||||||||||||
Solution Type Technical Instruction Sure Solution 2328288.1 : How to Replace a Disk in a ZFS rpool for a Sparc Solaris System
iostat -En return c0t1d0 Soft Errors: 0 Hard Errors: xxx Transport Errors: xxxxxx In this Document
Applies to:Solaris Operating System - Version 10 1/13 U11 to 11.3 [Release 10.0 to 11.0]Sun Fire V240 Server Sun Fire T2000 Server Information in this document applies to any platform. GoalAssuming c0t0d0s0 and c0t1d0s0 are mirrored in the ZFS rpool, and c0t1d0s0 need to be replaced in a sparc system. Solution1. Assuming c0t0d0 and c0t1d0 are mirrored in the rpool, and c0t1d0 need to be replaced in a Sparc system. # iostat -En
<---snip---> c0t1d0 Soft Errors: 0 Hard Errors: 35 Transport Errors: 137630 Vendor: SEAGATE Product: ST914602SSUN146G Revision: 0400 Serial No: 071791R032 Size: 146.81GB <146810535936 bytes> <---snip---> # zpool status -v <---snip---> c0t1d0s0 FAULTED 3 6.71K 0 too many errors <---snip---> 2. Remove disk from ZFS control. # zpool detach rpool c0t1d0s0 <<< in Sparc Solaris it is always required to specify a slice if the label is SMI
3. Perform physical replacement as follows: # cfgadm -al
<---snip---> c0::dsk/c0t1d0 disk connected configured unknown <---snip---> # cfgadm -c unconfigure c0::dsk/c0t1d0
CAUTION for any hardware requirement: Physically replace the drive # cfgadm -c configure c0::dsk/c0t1d0
NOTE for possible issue when "unconfigure" did not work. # cfgadm -c unconfigure c0::dsk/c0t1d0
Return error -> Device Busy # fuser /dev/rdsk/c0t1d0s0 # kill -9 <PID> # cfgadm -c unconfigure c0::dsk/c0t1d0 Still return error -> Device Busy In this case physically remove the drive (do not replace the drive in this step, the "cfgadm -c configure c0::dsk/c0t1d0" will return an I/O Error. # cfgadm -c unconfigure c0::dsk/c0t1d0
Check if there are some remaining device. # ls -l /dev/dsk/c0t1d0s0
If yes clean the device tree with. # devfsadm -Cv
insert the drive. The Solaris disk configuration should be automatically done. # cfgadm -al
# echo | format 4. Verify replaced drive is visible to Solaris (via format/prtvtoc/iostat -En, etc ...) #
# format -e c0t1d0
format> label [0] SMI Label [1] EFI Label Specify Label type[0]:0 # format -e c0t1d0
format> label ... Then change the label if needed. # format -e c0t1d0
format> label [0] SMI Label [1] EFI Label Specify Label type[0]: 6. Create partitioning. # prtvtoc /dev/dsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c0t1d0s2
The above command is, of course, when the source disk and the target have equal size. If the target disk is larger please use format instead.
7. Re-attach the sub-mirror # zpool attach rpool c0t0d0s0 c0t1d0s0 <<< If you do not specify a slice you will get a efi warning
8. Let ZFS resilver the newly attached mirror. # zpool status -v
9. Install the boot loader in the replaced disk # installboot -F zfs /usr/platform/'uname -i'/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 NOTE: For the general procedure please also read the Oracle Solaris ZFS Administration Guide from http://docs.oracle.com
Chapter 5 : Installing and Booting an Oracle Solaris ZFS Boot File System Recovering the ZFS root Pool or Root Pool How to replace a Disk in the ZFS Root Pool References<NOTE:2328288.1> - How to Replace a Disk in a ZFS rpool for a Sparc Solaris System<NOTE:1010753.1> - Solaris Volume Manager (SVM) How to Replace Internal System FC-AL Disks in 280R, V480, V490, V880, V890, and E3500 Servers <NOTE:1362952.1> - How to Replace a Disk in a rpool for an x86 System Attachments This solution has no attachment |
||||||||||||||||
|