差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:zfs [2022/06/18 09:29] – [修改 zpool 名稱的方式] jonathantech:zfs [2024/01/30 18:04] (目前版本) – [對 zpool 加上 Metadata 的 Special Device 加速讀取效能的方式] jonathan
行 16: 行 16:
   * 透過 zfs 工具建立 pool Exp. /dev/sdb2 -> ssd-zpool <cli>   * 透過 zfs 工具建立 pool Exp. /dev/sdb2 -> ssd-zpool <cli>
 zpool create -f -o ashift=12 ssd-zpool /dev/sdb2 zpool create -f -o ashift=12 ssd-zpool /dev/sdb2
-zfs set compression=lz4 ssd-zpool+zfs set compression=lz4 atime=off ssd-zpool
 zpool list zpool list
 </cli><cli> </cli><cli>
行 28: 行 28:
     * 選擇 ZFS Pool : ssd-zpool     * 選擇 ZFS Pool : ssd-zpool
     * 這樣就可以加入 ZFS 的磁碟     * 這樣就可以加入 ZFS 的磁碟
 +
 +===== 限制 ZFS 使用多少 RAM 當 cache 方式 =====
 +  * 參考 - https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_limit_memory_usage
 +  * 預設 ZFS 會使用主機的 50% RAM 當 Cache, 如要更改就需要設定 zfs_arc_max 的值, 為了 ZFS 的效能, zfs_arc_max 的值不應該小於 2 GiB Base + 1 GiB/TiB ZFS Storage, 也就是說如果有 1T 的 ZFS pool , 需要的 RAM 至少 2+1 = 3G 
 +  * Exp. 限制最多使用 3 GB 的 RAM 當 ZFS Cache
 +    * 編輯 /etc/modprobe.d/zfs.conf 設定檔, 讓 zfs_arc_max 設定值永久生效<cli>
 +root@aac:~# echo "$[3*1024*1024*1024]"
 +3221225472
 +</cli><cli>
 +vi /etc/modprobe.d/zfs.conf
 +</cli><file>
 +:
 +options zfs zfs_arc_max=3221225472
 +</file>
 +    * 如果 root 不是 ZFS 可以設定立即生效 <cli>
 +echo "$[3 * 1024*1024*1024]" >/sys/module/zfs/parameters/zfs_arc_max
 +</cli>
 +    * 如果 root 是 ZFS 需要執行以下命令, 然後重新開機生效<cli>
 +update-initramfs -u -k all
 +reboot
 +</cli>
  
 ===== 將一顆 ZFS 資料碟加回主機內 ===== ===== 將一顆 ZFS 資料碟加回主機內 =====
行 317: 行 338:
           ata-WDC_WD2002FAEX-007BA0_WD-WMAY03424496  ONLINE               0           ata-WDC_WD2002FAEX-007BA0_WD-WMAY03424496  ONLINE               0
 </cli> </cli>
- + 
 +===== 對 zpool 加上 Metadata 的 Special Device 加速讀取效能的方式 ===== 
 +  * 參考  
 +    - https://github.com/openzfs/zfs/discussions/14542 
 +    - https://pbs.proxmox.com/docs/sysadmin.html 
 +  * Metadata 是指 ZFS 儲存檔案系統資訊的資料, 由於讀取和寫入頻率較高,因此對系統效能有較大的影響。所以在一般 HDD 的 ZFS 加上 SSD 當 Special Device 就可以提高整體存取效能。不過需要注意的是 Special Device 如果損壞, 整個 zpool 就會毀損, 因此會將 special device 用兩個實體的 SSD 進行 mirror 保護來確保安全。另外 spool 設上 special device 是無法復原回沒有設定的狀態, 因此設定前要審慎。 
 +  * 語法 : zpool add <pool> special mirror <device1> <device2> 
 +  * Exp. 對 pbs-zpool 加上 /dev/nvme0n1 與 /dev/nvme1n1 當 special device<cli> 
 +zpool add pbs-zpool special mirror /dev/nvme0n1 /dev/nvme1n1 
 +</cli>加入之後 <cli> 
 +root@h470:~# zpool status pbs-zpool 
 +  pool: pbs-zpool 
 + state: ONLINE 
 +  scan: scrub repaired 0B in 02:55:43 with 0 errors on Sun Nov 12 03:19:52 2023 
 +config: 
 + 
 +        NAME        STATE     READ WRITE CKSUM 
 +        pbs-zpool   ONLINE               0 
 +          sda1      ONLINE               0 
 +        special 
 +          nvme0n1   ONLINE               0 
 +          nvme1n1   ONLINE               0 
 +</cli> 
 +  * 想要瞭解 IO 狀態, 可透過以下語法觀察 <cli>watch zpool iostat -v pbs-zpool</cli>
  
 {{tag>zfs pve}} {{tag>zfs pve}}
  • tech/zfs.1655515776.txt.gz
  • 上一次變更: 2022/06/18 09:29
  • jonathan