Solaris

如果目前池是根池,如何將新磁碟添加到 ZFS 並使其可用現有掛載點?

  • February 12, 2013

我的 S11 伺服器有以下配置:

磁碟 #1 用於 rpool,這是我想添加磁碟 #2 以增加已安裝文件夾的可用大小的根池,但我無法將磁碟添加到現有的 rpool,因為它是根池。

有沒有辦法讓新磁碟可用於“/”文件夾?我唯一的選擇是創建一個新的 zpool 並將其安裝在一個新文件夾下嗎?

謝謝。

拉姆EE


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

將第二個磁碟附加為第一個磁碟的鏡像,等待重新同步,刪除第一個磁碟,將屬性設置為自動擴展。不要忘記設置引導程式碼或類似的東西。例子:

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,您可以附加一個更大的磁碟作為鏡像,然後,一旦數據同步( resliver 完成),分離較小的磁碟。(哎呀,現在我也看到了克里斯的回應)

這是鏡像根磁碟的過程… 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

…你會想要執行 format 並使 slice 0 的大小更大,可能是整個磁碟

# format /dev/rdsk/c4t1d0s0

(互動式格式命令我不會詳細介紹)

# zpool attach rpool c4t0d0s0 c4t1d0s0

# zpool status rpool

等到它說“ resilver已完成”(繼續檢查zpool status rpool

確保您可以啟動到第二個磁碟

然後分離較小的 rpool 鏡像並重新啟動,確保您可以再次啟動。

# zpool detach rpool c4t0d0s0

利潤!?

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


上一個答案:

使用他指定的命令創建池後:

zpool create mypool c4t1d0

創建一個文件系統,例如:

zfs create mypool/home

…將數據複製到新磁碟…(重新)從 rpool 磁碟中移動數據,然後將掛載點設置到適當的位置,例如:

zfs set mountpoint=/export/home mypool/home

也就是說,當然,假設 /export/home 是所有空間都被使用的地方。您可能必須在“單使用者”模式下執行此操作,或者創建一個主目錄不在的使用者/export/home來完成此操作。

附帶說明一下,您的 zfs 列表輸出看起來很時髦,就像它缺少某些東西一樣。rpool/ROOT顯示已使用 101GB,但其下的文件系統僅顯示約 12.5GB REF,並且已使用少得多。您是否偶然在 rpool/ROOT 下有其他引導環境被您從 zfs 列表輸出中“刪除”?您是否可以銷毀那些 bootenv 或至少 zfs 文件系統以重新獲得 rpool/ROOT 中使用的空間?

〜湯米

引用自:https://serverfault.com/questions/474324