Solaris

我可以將多磁碟 zfs zpool 合併到單個(更大)磁碟嗎?

  • November 7, 2012

我有這個 zpool:

   bash-3.2# zpool status dpool
 pool: dpool
state: ONLINE
scan: none requested
config:
       NAME                                     STATE     READ WRITE CKSUM
       dpool                                    ONLINE       0     0     0
         c3t600601604F021A009E1F867A3E24E211d0  ONLINE       0     0     0
         c3t600601604F021A00141D843A3F24E211d0  ONLINE       0     0     0

我想用一個(更大的磁碟)替換這兩個磁碟。可以做到嗎? zpool attach允許我更換一個物理磁碟,但它不允許我同時更換兩個。

不,我認為按照您所描述的方式這是不可能的。

但是,您可以使用單個磁碟創建一個新池,並使用簡單的zfs 發送/接收過程將 ZFS 文件系統複製到新池中。

您應該可以zpool attach使用新的和更大的驅動器,等待鏡像完成,然後再zpool detach使用舊驅動器。

編輯:我誤讀了你的問題,我很確定你是把它們當作鏡子來執行的。

我同意最好的做法是創建一個新池並遞歸地將所有數據集發送到新池,但如果你真的不能這樣做,那麼你仍然可以按照我概述的步驟進行操作,前提是你將新的,更大的磁碟,分成兩個分區,每個分區至少與要替換的磁碟一樣大。

我不建議這樣做,主要是因為 (1) 管理變得更加複雜,並且 (2) 您將無法利用驅動器的寫入記憶體。

我將在此處粘貼在最近的 Illumos 盒子上執行的序列。請注意,我正在創建空文件來顯示這一點,而不是使用整個磁碟和切片/分區,因為我無法在那個盒子上處理物理設備。這些文件被命名aa1aa2aa3

  1. 準備設備。aa3是 200M 大,而aa1aa2只有 100M:
# dd if=/dev/zero of=/opt/local/aa1 bs=1M count=100
# dd if=/dev/zero of=/opt/local/aa2 bs=1M count=100
# dd if=/dev/zero of=/opt/local/aa3 bs=1M count=200
  1. 創建我們的測試池:
# zpool create test mirror /opt/local/aa1 /opt/local/aa2

檢查一切是否順利:

# zpool list -v test
NAME                 SIZE  ALLOC   FREE  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
test                95,5M   106K  95,4M         -     0%  1.00x  ONLINE  -
 mirror            95,5M   106K  95,4M         -
   /opt/local/aa1      -      -      -         -
   /opt/local/aa2      -      -      -         -
  1. 設置autoexpand屬性:
# zpool set autoexpand=on test
  1. 連接新設備:
# zpool attach test /opt/local/aa2 /opt/local/aa3

一切都還好嗎?

# zpool list -v test
NAME                 SIZE  ALLOC   FREE  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
test                95,5M   120K  95,4M         -     0%  1.00x  ONLINE  -
 mirror            95,5M   120K  95,4M         -
   /opt/local/aa1      -      -      -         -
   /opt/local/aa2      -      -      -         -
   /opt/local/aa3      -      -      -         -

是的。 5. 分離前兩個開發者:

# zpool detach test /opt/local/aa1
# zpool detach test /opt/local/aa2

最後,讓我們再次檢查一下池:

# zpool list -v test
NAME               SIZE  ALLOC   FREE  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
test               196M   124K   195M         -     0%  1.00x  ONLINE  -
 /opt/local/aa3   196M   124K   195M         -

它已正確增長到 200MB。

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