如果当前池是根池,如何将新磁盘添加到ZFS并使其可用?

我的S11服务器有以下configuration:

磁盘#1用于rpool,这是我要添加磁盘#2的根池,以增加已安装文件夹的可用大小,但是我无法将磁盘添加到现有rpool,因为它是根池。

有没有办法让新磁盘可用于“/”文件夹? 我唯一的select是创build一个新的zpool并将其安装在一个新的文件夹下?

谢谢。

RaamEE


root@raamee:~# zpool status pool: rpool state: ONLINE status: The pool is formatted using an older on-disk format. The pool can still be used, but some features are unavailable. action: Upgrade the pool using 'zpool upgrade'. Once this is done, the pool will no longer be accessible on older software versions. scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c4t0d0s0 ONLINE 0 0 0 

 root@raamee:~# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 130G 4.18G 4.59M /rpool rpool/ROOT 101G 4.18G 31K legacy rpool/ROOT/S11-GA 152M 4.18G 7.33G / rpool/ROOT/S11-GA/var 17.4M 4.18G 5.20G /var rpool/VARSHARE 180K 4.18G 180K /var/share rpool/dump 8.25G 4.43G 8.00G - rpool/guests 31K 4.18G 31K /guests rpool/scratch 2.52M 4.18G 2.52M /scratch rpool/swap 20.6G 4.81G 20.0G - 

 root@raamee:~# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c4t0d0 <FUJITSU-MBB2147RCSUN146G-0505 cyl 17845 alt 2 hd 255 sec 63> /pci@7b,0/pci1022,7458@11/pci1000,3060@2/sd@0,0 /dev/chassis/SYS/HD0/disk 1. c4t1d0 <FUJITSU-MBB2147RCSUN146G-0505-136.73GB> /pci@7b,0/pci1022,7458@11/pci1000,3060@2/sd@1,0 /dev/chassis/SYS/HD1/disk 

将第二个磁盘作为第一个镜像,等待重新启动,删除第一个磁盘,将属性设置为autoexpand。 不要忘记设置启动代码或类似的东西。 例:

 zpool attach rpool olddisk newdisk ...wait, check using zpool status rpool zpool detach rpool olddisk zpool set autoexpand=on rpool 

如前所述,您不能通过将一个磁盘附加到另一个磁盘(raid 0)来“扩展”rpool大小,但是如下面所述的Chris S,您可以将更大的磁盘作为镜像,然后,一旦数据被同步重新完成),分离较小的磁盘。 (哎呀,我现在也看到了Chris的回应)

这是一个镜像根磁盘的过程… http://constantin.glez.de/blog/2011/03/how-set-zfs-root-pool-mirror-oracle-solaris-11-express

跟随,除了他们在哪里做:

 prtvtoc /dev/rdsk/c7t0d0s0 | fmthard -s - /dev/rdsk/c7t1d0s0 

…你会想要运行格式,并使片0的大小更大,可能是整个磁盘

 # format /dev/rdsk/c4t1d0s0 

(关于交互格式命令我不会详细讨论)

 # zpool attach rpool c4t0d0s0 c4t1d0s0 # zpool status rpool 

等待,直到它说“恢复完成”(继续检查zpool status rpool

请确保您可以启动到第二盘

然后分离较小的rpool镜像并重新启动,确保您可以重新启动。

 # zpool detach rpool c4t0d0s0 

利润!?

参考: http : //docs.oracle.com/cd/E19963-01/html/821-1448/gjtuk.html#gjtui


以前的答案:

使用他指定的命令创build池之后:

 zpool create mypool c4t1d0 

创build一个文件系统,例如:

 zfs create mypool/home 

…将数据复制到新磁盘…(重新)从rpool磁盘移动数据,然后将挂载点设置到适当的位置,例如:

 zfs set mountpoint=/export/home mypool/home 

当然,假设/ export / home是所有空间被使用的地方。 您可能必须以“单用户”模式执行此操作,或者创build一个不在/export/home的主目录来完成此操作。

在一个侧面说明,你的zfs列表输出看起来很时髦,就像缺less一些东西。 rpool/ROOT显示101GB使用,但是它下面的文件系统只显示大约12.5GB的REF,远远less于USED。 你是否偶然在rpool / ROOT下有其他的引导环境,你可以在你的zfs列表输出中“修剪掉”? 你可能会销毁这些bootenv或者至less是zfs文件系统来重新获得rpool / ROOT中使用的空间吗?

〜汤米

是的,我相信你唯一的select是使用第二个磁盘创build一个新的池。 你可以用rpool做的唯一事情就是镜像磁盘 – 这不会占用更多的空间。 rpool不支持striping,由于启动会带来困难。

 zpool create mypool c4t1d0