Solariszfs更换根池磁盘(ReplaceaDiskintheZFSRootPool)

发布时间:2019-08-09 23:01:32

Solaris zfs更换根池磁盘(Replace a Disk in the ZFS Root Pool)

推荐回答

Solaris zfs更换根池磁盘(Replace a Disk in the ZFS Root Pool)某些时候,由于空间不足或是硬件故障等原因,我们需要更换启动磁盘。冗余池(mirrored pool)在一个镜像池里面更远硬盘相对简单一些,只需要用replace命令直接更换硬盘即可。# zpool offline rpool c1t0d0s0# cfgadm -c unconfigure c1::dsk/c1t0d0<Physically remove failed disk c1t0d0><Physically insert replacement disk c1t0d0># cfgadm -c configure c1::dsk/c1t0d0# zpool replace rpool c1t0d0s0# zpool online rpool c1t0d0s0# zpool status rpool<Let disk resilver before installing the boot blocks>SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0非冗余池如果根池不是mirrored,那么就需要先把新磁盘分区好,加入根池形成mirrored类型的池。加入新盘并检测# devfsadm分区并打标签# format -e c8t1d0format> partitionSELECT ONE OF THE FOLLOWING: 1. Create a partition...partition> printCurrent partition table (original):Total disk cylinders available: 30398 + 2 (reserved cylinders)Part Tag Flag Cylinders Size Blocks 0 root wm 1 - 30396 232.85GB (30396/0/0) 488311740 1 unassigned wu 0 0 (0/0/0) 0 2 backup wu 0 - 30396 232.85GB (30397/0/0) 488327805 3 unassigned wu 0 0 (0/0/0) 0 4 unassigned wu 0 0 (0/0/0) 0 5 unassigned wu 0 0 (0/0/0) 0 6 unassigned wu 0 0 (0/0/0) 0 7 unassigned wu 0 0 (0/0/0) 0 8 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 unassigned wu 0 0 (0/0/0) 0partition>quitformat> label[0] SMI Label[1] EFI LabelSpecify Label type[0]: 0Ready to label disk, continue? y添加磁盘现在把做好的新磁盘分区加入根池形成镜像池,这一步里数据的同步可能会花费比较长的时间# zpool attach rpool c0d0s0 c0d2s0Make sure to wait until resilver is done before rebooting.# zpool status pool: rpoolstate: ONLINEstatus: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state.action: Wait for the resilver to plete.scan: resilver in progress since Wed Jul 24 15:39:51 2013 302M scanned out of 7.47G at 11.2M/s, 0h10m to go 269M resilvered, 3.95% doneconfig: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0d0s0 ONLINE 0 0 0 c0d2s0 ONLINE 0 0 0 (resilvering)errors: No known data errors安装启动块On a SPARC based system:# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t9d0s0On an x86 based system:# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0验证boot首先查看boot path# prtconf -vp|grep -i bootpath bootpath: '/virtual-devices@100/channel-devices@200/disk@0:a'可以推断出新盘path的末尾是disk@2:a,然后启动{0} ok setenv boot-device /virtual-devices@100/channel-devices@200/disk@2:aboot-device = /virtual-devices@100/channel-devices@200/disk@2:a{0} ok printenv boot-deviceboot-device = /virtual-devices@100/channel-devices@200/disk@2:aok boot /virtual-devices@100/channel-devices@200/disk@2:a移除老磁盘# zpool detach rpool c0d0s0扩展池空间由于之前的磁盘空间小于新盘,所以现在的空间是和之前一样的,需要扩展一下。# zpool set autoexpand=on rpool至此为止,大功告成。
以上问题属网友观点,不代表本站立场,仅供参考!