虚位以待(AD)
虚位以待(AD)
首页 > 操作系统 > Solaris > Solaris zfs更换根池磁盘(Replace a Disk in the ZFS Root Pool)

Solaris zfs更换根池磁盘(Replace a Disk in the ZFS Root Pool)
类别:Solaris   作者:码皇   来源:互联网   点击:

Solaris zfs更换根池磁盘(Replace a Disk in the ZFS Root Pool)某些时候,由于空间不足或是硬件故障等原因,我们需要更换启动磁盘。冗余池(mirrored 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/c1t0d0s0 x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0   非冗余池 如果根池不是mirrored,那么就需要先把新磁盘分区好,加入根池形成mirrored类型的池。 加入新盘并检测 # devfsadm   分区并打标签 # format -e c8t1d0   format> partition SELECT ONE OF THE FOLLOWING:    1. Create a partition ...   partition> print Current 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) 0 partition>quit   format> label [0] SMI Label [1] EFI Label Specify Label type[0]: 0 Ready to label disk, continue? y 添加磁盘 现在把做好的新磁盘分区加入根池形成镜像池,这一步里数据的同步可能会花费比较长的时间 # zpool attach rpool c0d0s0 c0d2s0 Make sure to wait until resilver is done before rebooting.   # zpool status   pool: rpool  state: ONLINE status: 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 complete.  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% done config:           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/c1t9d0s0 On 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:a boot-device =           /virtual-devices@100/channel-devices@200/disk@2:a {0} ok printenv boot-device boot-device =           /virtual-devices@100/channel-devices@200/disk@2:a   ok boot /virtual-devices@100/channel-devices@200/disk@2:a 移除老磁盘 # zpool detach rpool c0d0s0 扩展池空间 由于之前的磁盘空间小于新盘,所以现在的空间是和之前一样的,需要扩展一下。 # zpool set autoexpand=on rpool 至此为止,大功告成。  
相关热词搜索: Solaris 更换 磁盘