prettyprint

2022年5月31日 星期二

ZFS介紹--在FreeBSD與ubuntu環境下實作(ZFS file system introduction and experiment in FreeBSD and ubuntu)

本篇文章著重在FreeBSD與ubuntu下實作ZFS 檔案系統,ZFS理論與優缺點部分不再贅述。

ZFS (Zettabyte file system):

實作上以兩個指令(zpool與zfs)來運作 

  1. zpool: 設定ZFS storage pools
  2. zfs --設定 ZFS datasets

zpool指令: 管理實體儲存設備,形成storage pool

  1. Device: 一個實體儲存設備,例如硬碟等.
  2. Virtual Device(vdev): 一個虛擬設備(vdev)可以是單一個device組成,也可以是多的devices組成mirror, raidz, raidz2, raidz3等主要儲存虛擬設備,也可以當成是hot spare,log等虛擬設備。 
  3. zfs pool: 一個storage pool是由多個vdevs組成,若主要儲存是由多個vdevs組成,則這幾個vdevs在storage pool中是以stripe方式組成。因此若vdev是由單一個device構成,則損換一個device則整個storage pool就會損壞。因此構成storage pool的vdevs一般會採用mirror 或raidz[1-3]較為適合。

zfs指令:管理在storage pool內的dataset

dataset分為:

  1. File system: 能直接掛載在檔案系統中,就像一般檔案系統一樣。
  2. Volume: 是一種block device,可視為是一顆邏輯硬碟,若要掛載在檔案系統中使用,需partition與format後才可mount在檔案系統下。一般直接用來當作iSCSI target的device。
  3. Snapshot: file system或volume特定時間點的快照,一般以 filesystem@name 或 volume@name形式表示。
  4. Bookmark: 像snapshot,但沒有實際保留資料空間。

實機測試:

實際在FreeBSD與ubuntu下,使用12個 20GB虛擬硬碟測試。
包含:
  • ZFS pool硬碟設備故障,如何手動與自動更換故障的設備。
  • ZFS pool在不同作業系統中實體移轉。
  • zfs dataset 的snapshot, rollback, clone
  • zfs dataset在同機器或跨機器間備份與回存(zfs send/zfs receive)
實作過程請參閱以下影片




沒有留言:

張貼留言