歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Solaris zfs更換根池磁盤(Replace a Disk in the ZFS Root Pool)

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

日期:2017/3/1 15:37:37   编辑:關於Linux
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 至此為止,大功告成。
Copyright © Linux教程網 All Rights Reserved