[Linux] ZFS檔案系統 – 維護概念指南 – 匯入換頭 – Ubuntu

基本介紹

ZFS檔案系統最早源自於昇陽電腦為Solaris作業系統,版權後為Oracle所有。

因版權問題,所能支援之OS不多,Ubuntu在16.04版本後開始支援。


原理

ZFS自帶軟體層RAID,可將多顆硬碟整合成一個Pool(儲存池),轉為檔案結構供OS直接存取。

Pool的設定檔是存於實體硬碟上(Import & Export),所以更換OS或抽換硬碟時,可以使用zpool import掃描pools做匯入。


指令 (For Ubuntu)

  • Ubuntu 16.04 安裝ZFS
apt-get install zfs
  • Create a Pool (重新格式化所選硬碟)
zpool create pool-name /dev/sdb
zpool create pool-name /dev/sdb /dev/sdc  //RAID-0
zpool create pool-name mirror /dev/sdb /dev/sdc  //RAID-1

創建完成後根目錄下會產生pool-name檔案系統目錄 /pool-name

  • Destroy a Pool (重新格式化Pool所對應硬碟)
zpool destroy pool-name
  • Check Pool Status
zpool status
zpool status <pool-name>
  • Check Pool List
zpool list
  • Import (從硬碟匯入pool設定檔)
zpool import  //列出可匯入之pool設定檔
zpool import pool-name   //執行匯入
  • Export (匯出)
zpool export pool-name

更換OS與更換硬碟 (換頭原理)

凡建立了Pool,其Pool對應的實體硬碟裝置內即產生可供Import之Pool設定檔。

換OS頭即將對應硬碟安裝置新的OS頭上,OS執行zpool import掃描硬碟裝置上的pool設定檔,即可做匯入。

$ zpool import
   pool: raid1
     id: 6111887184954803444
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

        raid1       ONLINE
          mirror-0  ONLINE
            xvdf    ONLINE
            xvdg    ONLINE

$ zpool import raid1  //匯入raid1 Pool

注意:做ZFS RAID的硬碟裝置組須整套更換移植,否則Pool設定檔會告知缺少相關硬碟而無法匯入


Pool-name重複名稱

zpool import pool-id
zpool import pool-name pool-name-new

範例:

$ zpool import
   pool: poolname
     id: 11716532864265332957
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

        poolname    ONLINE
          xvdg      ONLINE

   pool: poolname
     id: 17476865807845147303
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

        poolname    ONLINE
          xvdf      ONLINE

$ zpool import 11716532864265332957  //使用ID匯入

$ zpool import poolname poolname2  //匯入的poolname與現有衝突、另外重新命名

Reference: http://docs.oracle.com/cd/E19253-01/819-5461/gazuf/index.html


HA佈署方案

  1. 建議不要做ZFS RAID,Pool僅使用單顆硬碟裝置創建,以提高維護性。

  2. RAID可以做在實體Storage Box(儲存伺服器),界接出單一邏輯硬碟裝置給OS做ZFS Pool。

Leave a Reply

Your email address will not be published. Required fields are marked *