ZFS on Ubuntu 18.04 基本設定/初始化

Ubuntu 在 15.10 開始測試 ZFS16.04 LTS 的時候正式加入了 ZFS 的支援,背後用的是 ZFS On Linux 的實做,這邊筆記一下已經使用在 Ubuntu 18.04 上了好一陣子的 ZFS 初始化過程

先安裝所需要的套件:

$ sudo apt install zfsutils-linux -y

接著建立 ZFS Pool

接著會使用到 zpool 這個指令,相關的操作都需要要有 root 權限,我這邊是要直接拿完整的整顆硬碟來用,不另外做分割,測試的時候方便起見可以直接用 /dev/sda /dev/sdb 這樣的路徑,所以一路從 sda 用到 sdz,名稱取叫 pool-ftp ,做 raidz3 讓這組 pool 一次最多可以掉三顆硬碟不掉資料,不怕掉資料可以不加這個設定、效果會等同 RAID0 ,硬碟數量如果沒這麼多但想要有個保險也可以用 raidz 或 raidz2 就好,分別為容許一顆和兩顆的硬碟失效,要 RAID1 的效果可以用 mirror 這個選項:

$ sudo zpool create pool-ftp raidz3 /dev/sda /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv /dev/sdw /dev/sdx /dev/sdy /dev/sdz

不過正式環境還是建議不要使用 sda / sdb 而是使用 Disk ID / Label / UUID 的方式來認硬碟,就不用擔心未來順序可能改變或亂掉的問題,如果是整批相同型號的硬碟要做處理,透過 Disk ID 其實也很方便,例如:

$ command ls /dev/disk/by-id/ata-ST8000NM0055* | xargs sudo zpool create ftp-pool

如果過程中出現了這樣的訊息,在確認硬碟上沒有其他資料的情況下可以加 -f 的參數:

/dev/sdz does not contain an EFI label but it may contain partition information in the MBR.
閱讀全文