[轉]FreeBSD ZFS vs. Linux EXT4/Btrfs RAID With Twenty SSDs
https://www.phoronix.com/scan.php?page=article&item=freebsd-12-zfs&num=1&fbclid=IwAR2utCninwUWUjjt_5IUu-1-rfm3vcCc1SiOvuZrYf4Bu0sW0HVsh9-lvQA
Ray Tracy ZFS
Ray Tracy 一個工具或技術, 能否達到你的期望用途, 關鍵在於:
使用者是否充分了解他, 並且能夠熟練的駕馭他.
世上沒有絕對好用的工具, 也沒有絕對該用甚麼的場景:
我曾經深度挖掘 zfs 的各種參數, 試圖調到最好, 經過半年之後卻發現, 當我的 Workload 特性有細微改變的時候, zfs 會放大這些改變, 導致整個運作偏離我預想的方向....(其實就是參數過度優化: Over-optimized, 但我發現 zfs 的參數很容易讓你走上這條路)
這問題, 導致我必須經常監督 zfs 的表現, 並記錄我的 workload 每一個時間軸的變化趨勢, 好讓我在下周或下個月, 遇到新的問題時, 知道該朝甚麼方向改變甚麼參數, zfs 才能獲得最佳結果.
這對 Hacker 或 Geek 來說, 是件無比美好的事情, 因為他們每周都可以看到新的變化, 接受新的挑戰, 然後從當中挖掘出更多 zfs 新的參數組合與用途, 再來發表給大家聞香敬拜....
但對機房的 SRE 來說, 這件事情根本就是噩夢, 因為原本可以安穩睡一個星期的覺, 現在變成每天半夜都睡不著, 你不知道他是否會在半夜 3 點突然惡化, 導致線上有 50 萬個會員在交易的電商網站, 反應變慢, 破圖, 甚至無法交易, 最後被客戶從睡夢中挖起來解決問題.....
我也跟您一樣, 試圖解決 Storage 同步的問題, 而引進 Gluster 技術. 剛開始看似一切正常, 資料都正常複寫, 直到有一天, 某一台 node 意外故障而重開, 觸發 Gluster 開始做 healing 的時候, 我才發現:
- 他的 healing 比我預期的時間更長上數十倍
- 他在 healing 期間會造成 VM 寫入資料異常
- 他在 node 發生 flip-flap 的時候, 會選出錯誤的 node
這些問題難道都沒測試過嗎? 有啊, 但是我測試的時候, 並沒有出現這些現象, 國外人家測試的時候, 也沒有特別警告這些現象; 初期也都沒問題, 是跑了幾個月之後, 才開始劣化....
所以, 我從每天調校 zfs, 轉成每天要調校 Gluster, 參數又多如牛毛, 排列組合起來有上百種變化, 然後又是生產環境, 我不能隨便停下來測試, 每一次調整都得確保線上系統不會掛掉, 也不能隨便重開機...
如果當初我知道會有這麼多問題, 我絕對不會這麼快就讓他上生產環境, 至少要測到我有信心為止. 但是, 最初的測試都顯示: 他們似乎是個很好的選擇, 直到我上了生產環境之後數個月, 才開始出問題....
最後我回到傳統硬體 RAID +NFS, 當然這樣的效能無法滿足原先用 zfs 的期待, 不過我又自行加上 bcache 技術設法加速, 只是我選擇比較保守的參數, 以資料安全性為優先, 不追求最高效能; 初步看起來, 這樣大概可以滿足我現行的狀況還剩一點點餘裕, 至少, 他不會造成我整個 I/O 被 block 住, 連 CPU 都被吃死死不能動的狀況 (此問題我在 zfs 和 gluster 都遇到)
但是這個組合, 沒辦法解決跨 Storage replication 的問題, 也就是沒有 HA; 所以, 我勢必要跳離這個方案, 目前下一個候選者是 Ceph, 但過去幾年來, Ceph 有名的除了很容易做到大容量 Scale-out 和 Replication 之外, 還有一個眾人皆知的缺陷是: 效能低落, 所以, 我該如何解決效能低落問題, 同時享受他帶來的 Scale-out 好處? 並且, 在我的環境內可以正常工作?
我的經驗, 並不代表別人也是同樣的狀況, 你可以找到許多把 zfs 和 gluster 用得很愉快的用戶, 但是他們的 workload 和環境也跟我大不相同....
這些 Storage 的課題, 都需要在實際環境中實做過才會知道...
向聖夫
這種 fine tuning 必須從 application 層級開始 跑很多 micro service 才有可能針對每一個 micro service 去優化
.
但是如果你把所有的 workload 放在一個 vm 裡面, 你會發現 你的 write 變快了 但是犧牲了你的 read.... 這個時候怎麼優化都會出問題
你有 sequential write 其實需要的是 spinning disk 才快
你有 random write 小 io 這個是要 nvme ssd 才快 Ray Tracy 說的 bcache 很讚 但是它還是有誤判的情況 以及每一顆 nvme ssd 的 controller 能夠同時處理的 thread 跟 command 都不一樣 所以你優化 A 牌的參數換到 B 牌上去時 是完全沒路用
如果你仔細觀察 nvme ssd 下的 controller busy time 你就會發現 當ssd command 塞爆的時候 你會發現它比 hdd 還慘 ( 不是 ssd 上的 ram buffer 用光了喲)
使用者是否充分了解他, 並且能夠熟練的駕馭他.
世上沒有絕對好用的工具, 也沒有絕對該用甚麼的場景:
我曾經深度挖掘 zfs 的各種參數, 試圖調到最好, 經過半年之後卻發現, 當我的 Workload 特性有細微改變的時候, zfs 會放大這些改變, 導致整個運作偏離我預想的方向....(其實就是參數過度優化: Over-optimized, 但我發現 zfs 的參數很容易讓你走上這條路)
這問題, 導致我必須經常監督 zfs 的表現, 並記錄我的 workload 每一個時間軸的變化趨勢, 好讓我在下周或下個月, 遇到新的問題時, 知道該朝甚麼方向改變甚麼參數, zfs 才能獲得最佳結果.
這對 Hacker 或 Geek 來說, 是件無比美好的事情, 因為他們每周都可以看到新的變化, 接受新的挑戰, 然後從當中挖掘出更多 zfs 新的參數組合與用途, 再來發表給大家聞香敬拜....
但對機房的 SRE 來說, 這件事情根本就是噩夢, 因為原本可以安穩睡一個星期的覺, 現在變成每天半夜都睡不著, 你不知道他是否會在半夜 3 點突然惡化, 導致線上有 50 萬個會員在交易的電商網站, 反應變慢, 破圖, 甚至無法交易, 最後被客戶從睡夢中挖起來解決問題.....
我也跟您一樣, 試圖解決 Storage 同步的問題, 而引進 Gluster 技術. 剛開始看似一切正常, 資料都正常複寫, 直到有一天, 某一台 node 意外故障而重開, 觸發 Gluster 開始做 healing 的時候, 我才發現:
- 他的 healing 比我預期的時間更長上數十倍
- 他在 healing 期間會造成 VM 寫入資料異常
- 他在 node 發生 flip-flap 的時候, 會選出錯誤的 node
這些問題難道都沒測試過嗎? 有啊, 但是我測試的時候, 並沒有出現這些現象, 國外人家測試的時候, 也沒有特別警告這些現象; 初期也都沒問題, 是跑了幾個月之後, 才開始劣化....
所以, 我從每天調校 zfs, 轉成每天要調校 Gluster, 參數又多如牛毛, 排列組合起來有上百種變化, 然後又是生產環境, 我不能隨便停下來測試, 每一次調整都得確保線上系統不會掛掉, 也不能隨便重開機...
如果當初我知道會有這麼多問題, 我絕對不會這麼快就讓他上生產環境, 至少要測到我有信心為止. 但是, 最初的測試都顯示: 他們似乎是個很好的選擇, 直到我上了生產環境之後數個月, 才開始出問題....
最後我回到傳統硬體 RAID +NFS, 當然這樣的效能無法滿足原先用 zfs 的期待, 不過我又自行加上 bcache 技術設法加速, 只是我選擇比較保守的參數, 以資料安全性為優先, 不追求最高效能; 初步看起來, 這樣大概可以滿足我現行的狀況還剩一點點餘裕, 至少, 他不會造成我整個 I/O 被 block 住, 連 CPU 都被吃死死不能動的狀況 (此問題我在 zfs 和 gluster 都遇到)
但是這個組合, 沒辦法解決跨 Storage replication 的問題, 也就是沒有 HA; 所以, 我勢必要跳離這個方案, 目前下一個候選者是 Ceph, 但過去幾年來, Ceph 有名的除了很容易做到大容量 Scale-out 和 Replication 之外, 還有一個眾人皆知的缺陷是: 效能低落, 所以, 我該如何解決效能低落問題, 同時享受他帶來的 Scale-out 好處? 並且, 在我的環境內可以正常工作?
我的經驗, 並不代表別人也是同樣的狀況, 你可以找到許多把 zfs 和 gluster 用得很愉快的用戶, 但是他們的 workload 和環境也跟我大不相同....
這些 Storage 的課題, 都需要在實際環境中實做過才會知道...
向聖夫
這種 fine tuning 必須從 application 層級開始 跑很多 micro service 才有可能針對每一個 micro service 去優化.
但是如果你把所有的 workload 放在一個 vm 裡面, 你會發現 你的 write 變快了 但是犧牲了你的 read.... 這個時候怎麼優化都會出問題
你有 sequential write 其實需要的是 spinning disk 才快
你有 random write 小 io 這個是要 nvme ssd 才快 Ray Tracy 說的 bcache 很讚 但是它還是有誤判的情況 以及每一顆 nvme ssd 的 controller 能夠同時處理的 thread 跟 command 都不一樣 所以你優化 A 牌的參數換到 B 牌上去時 是完全沒路用
如果你仔細觀察 nvme ssd 下的 controller busy time 你就會發現 當ssd command 塞爆的時候 你會發現它比 hdd 還慘 ( 不是 ssd 上的 ram buffer 用光了喲)
pve PostgreSQL ZFS
Ray Tracy 在Proxmox VE社群中
.永遠開compression
.不要用dedup
.留意scrub結果
.多利用zil
.關掉atime
.調整recordsize
.保持ARCi,只使用25%的Total RAM
.必要時選擇primarycache=metadata,
.checksum error 是硬碟故障的前兆,必須加以監視
.1個db instatnce 獨佔一個zfs dataset
.不要開啟pSQL的checksum和compression(讓zfs做就好
.要經常移除舊的snapshot
.永遠開compression
.不要用dedup
.留意scrub結果
.多利用zil
.關掉atime
.調整recordsize
.保持ARCi,只使用25%的Total RAM
.必要時選擇primarycache=metadata,
.checksum error 是硬碟故障的前兆,必須加以監視
.1個db instatnce 獨佔一個zfs dataset
.不要開啟pSQL的checksum和compression(讓zfs做就好
.要經常移除舊的snapshot
use zfs directly to send snapshots
https://forum.proxmox.com/threads/pve-zsync-vs-others-like-znapsend-or-sanoid.27663/#post-139274
zfs command 指令
1、查硬碟 (硬碟排線寫上編號 -- 疑問~可能要看bios吧)
lsblk
fdisk -l //usb hdd linux指令,freebsd沒有
ls -l /dev/disk/by-id/ //linux指令,freebsd沒有
df -k
format
devfsadm
iostat -En
2、建zpool
a. zpool create zpool名稱 磁碟
EX:zpool create storage01 /dev/sda1 /dev/sda2
b. zpool create zpool名稱 mirror/raidz 磁碟 磁碟 //建立 (mirror為一般raid 1,raidz其他raid格式)
EX:zpool create storage02 mirror /dev/sda1 /dev/sda2
c.指定掛載點?? (不指定,會在根目錄自建掛載目錄)
3、增加(新增)zpool容量
a. zpool add zpool名稱 磁碟 //增加(新增)容量(mirror)
EX:zpool add storage01 /dev/sda1
b. zpool add zpool名稱 mirror 磁碟 磁碟 //增加(新增)容量(mirror)
EX:zpool add storage01 mirror /dev/sda1 /dev/sda2
c. zpool add zpool名稱 spare 磁碟 //增加 後備(spare)hdd
EX:zpool add storage01 spare /dev/sda1
4、更換zpool設備 ??
a.zpool replace zpool 磁碟 [磁碟]
5、檢查zpool (完畢後看結果 zpool status -v zpool名稱)
a. zpool scrub zpool名稱
EX:zpool scrub storage01
6、刪除zpool
a. zpool destroy zpool名稱
EX:zpool destroy storage01
7、檢查zpool
a. zpool list //zpool 快速使用情況
EX:zpool list
b. zpool status [-x]
EX:zpool status [-x]
c. zpool status zpool名稱
EX:zpool status storage01
d.zpool status -v zpool名稱 (同c)
EX:zpool status -v storage01
e. zpool get all //列出所有資訊
EX:zpool get all
zpool history -l //最出歷史記錄
zpool history -i //最出歷史記錄
=====zpool import/export //系統移機使用=====
過程中請用zfs list配合檢查
a. zpool export zpool名稱 //移除zpool
EX:zpool export storage01
b. zpool import //列出可以import zpool
c. zpool import
-d 目錄
-o 掛載
-R zpool名稱 //用root import
EX:zpool import -R /vm_win stroage01/vm_win
-D 被刪zpool名稱 新還原後zpool名稱 //被刪掉(destory)
EX:zpool import -D //列出被刪的zpool
EX:zpool import -D 被刪zpool名稱 新還原後zpool名稱 //指定新pool名稱
. zpool offline zpool名稱 磁碟 //暫某顆hdd暫時離線
. zpool online zpool名稱 磁碟 //暫某顆hdd暫時上線
=====zfs 指令操作 (zfs檔案系統操作和一般linux裡面的要分開)=====
zfs list //zfs 列出所有檔案情況
zfs list -r //zfs 列出所有檔案情況
zfs mount //zfs 掛載磁區
1、zfs 建目錄
a. zfs create zpool名稱/目錄名稱 // 建目錄
EX:zpool create storage01/vm_win
b. zfs create -o reserv=配額(容量大小) zpool名稱/目錄名稱 //預留空間
EX:zfs create -o reserv=1G storage01/vm_win
c. zfs create -v(-V) 配額(容量大小) zpool名稱/目錄名稱 //建立volume (iscsi)
EX:zfs create -v(-V) 1G storage01/vm_win
d. zfs create -p 子目錄也順便建立
e. zfs 分享檔案系統建議屬性,在建立檔案系統時就一起設定,建立之後就無法修改
每個參數前面都須要加上-o
casesensitivity=mixed 混合式大小寫,配合windows的習慣
nbmand=on 配合檔案系統同時作NFS和CIFS分享,使用的interlock模式
utf8only=on 檔案名稱只接受utf8的unicode編碼,不使用ansi編碼。
EX:zfs -o casesensitivity=mixed -o nbmand=on -o utf8only=on storage01/vm_win
2、zfs 刪目錄
a. zfs destory zpool名稱/目錄名稱 //刪目錄
EX:zpool destory storage01/vm_win
b. zfs destory zpool名稱/目錄名稱 //刪除volume (iscsi)
EX:zfs destory storage01/vm_win
3、zfs 修改目錄名稱
a. zfs rename zpool名稱/舊目錄名稱 zpool名稱/新目錄名稱
EX:zfs rename storage01/vm_win storage01/vm_windows
=====zfs屬性=====
1、zfs 取得屬性(properties)
a. zfs get all zpool名稱
EX:zfs get all storage01
EX:zfs get all vm_win
2、zfs 變更掛載點 (mount 想成檔案目錄操作)
a. zfs set mountpoint=/目錄 zpool名稱/目錄名稱 //變更掛載點
EX:zfs set mountpoint=/images/vm/100 storage01/vm_win //將/images/vm/100 掛上vm_win
EX:zfs set mountpoint=/storage02/vm_win_new storage01/vm_win //vm_win_new 取代 vm_win
3、zfs 目錄壓縮
a. zfs set compression=on zpool名稱/目錄名稱
EX:zfs set compression=on storage01/vm_win
b. zfs set compression=lz4 ??
4、zfs 目錄取消壓縮
a. zfs inherit compression zpool名稱/目錄名稱
EX:zfs inherit compression storage01/vm_win
5、zfs 目錄設定配額(容量大小)
a. zfs set quota=配額(容量大小) zpool名稱/目錄名稱
EX:zfs set quota=1G storage01/vm_win
6、zfs 給NFS使用
a. zfs set sharenfs=on zpool名稱/目錄名稱
EX:zfs set sharenfs=on storage01/vm_win
7、zfs 給CIFS使用
a. zfs set sharesmb=name=CIFS分享名稱 zpool名稱/目錄名稱
EX:zfs set sharesmb=name=vm_win storage01/vm_win
b. zfs get sharesmb zpool名稱/目錄名稱
EX:zfs get sharesmb storage01/vm_win
8、ACL繼承設定 (aclinherit改成passthrough) ??
a. zfs set aclinherit=passthrough zpool名稱
EX:zfs set aclinherit=passthrough storage01
=====zfs快照=====
1、zfs 建立快照
a. zfs snapshot zpool名稱/目錄名稱@snapshot名稱
EX:zfs snapshot storage01/vm_win/win10@20160828_win10
b. zfs snapshot -r zpool名稱@snapshot名稱 //zpool名稱底下所有的檔案系統都用相同的snapshot名稱
EX:zfs snapshot -r storage01
2、zfs 還原快照
a. zfs rollback -r zpool名稱/目錄名稱@snapshot名稱
EX:zfs rollback -r storage01/vm_win/win10@20160828_win10
3、zfs 複製快照
a. zfs clone 來源zpool名稱/目錄名稱@snapshot名稱 目地zpool名稱/目錄名稱
EX:zfs clone storage01/vm_win/win10@20160828_win10 storage02/vm_win/win10_test
4、zfs 移除快照
a. zfs destory 來源zpool名稱/目錄名稱@snapshot名稱
EX:zfs destory storage01/vm_win/win10@20160828_win10
5、zfs 列出快照
a. zfs list -t snapshot //列出所有快照
6、zfs 快照避免被修改
a. zfs hold keep 來源zpool名稱/目錄名稱@snapshot名稱 //keep避免被修改
EX:zfs hold keep storage01/vm_win@20160828_win10
b. zfs holds 來源zpool名稱/目錄名稱@snapshot名稱 //holds檢查
EX:zfs holds storage01/vm_win@20160828_win10
======參考======
http://blog.virtual-on.org/2011/06/zfs-nas-nexentacore1.html
http://gallery.tses.tc.edu.tw/nuke/sections.php?op=viewarticle&artid=600
http://mail.ycsh.tp.edu.tw/~tory/ezblog/index.php?entry=entry100521-020651
http://blog.virtual-on.org/2011/06/zfs-nas-nexentacore1.html
https://blogs.oracle.com/forrest/entry/zfs%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F_4_zpool_inport_export
http://leoprosoho.pixnet.net/blog/post/32323214-zfs%E5%9F%BA%E7%A4%8E%E7%AE%A1%E7%90%86
2、建zpool
a. zpool create zpool名稱 磁碟
EX:zpool create storage01 /dev/sda1 /dev/sda2
b. zpool create zpool名稱 mirror/raidz 磁碟 磁碟 //建立 (mirror為一般raid 1,raidz其他raid格式)
EX:zpool create storage02 mirror /dev/sda1 /dev/sda2
c.指定掛載點?? (不指定,會在根目錄自建掛載目錄)
3、增加(新增)zpool容量
a. zpool add zpool名稱 磁碟 //增加(新增)容量(mirror)
EX:zpool add storage01 /dev/sda1
b. zpool add zpool名稱 mirror 磁碟 磁碟 //增加(新增)容量(mirror)
EX:zpool add storage01 mirror /dev/sda1 /dev/sda2
c. zpool add zpool名稱 spare 磁碟 //增加 後備(spare)hdd
EX:zpool add storage01 spare /dev/sda1
4、更換zpool設備 ??
a.zpool replace zpool 磁碟 [磁碟]
5、檢查zpool (完畢後看結果 zpool status -v zpool名稱)
a. zpool scrub zpool名稱
EX:zpool scrub storage01
6、刪除zpool
a. zpool destroy zpool名稱
EX:zpool destroy storage01
7、檢查zpool
a. zpool list //zpool 快速使用情況
EX:zpool list
b. zpool status [-x]
EX:zpool status [-x]
c. zpool status zpool名稱
EX:zpool status storage01
d.zpool status -v zpool名稱 (同c)
EX:zpool status -v storage01
e. zpool get all //列出所有資訊
EX:zpool get all
zpool history -l //最出歷史記錄
zpool history -i //最出歷史記錄
=====zpool import/export //系統移機使用=====
過程中請用zfs list配合檢查
a. zpool export zpool名稱 //移除zpool
EX:zpool export storage01
b. zpool import //列出可以import zpool
c. zpool import
-d 目錄
-o 掛載
-R zpool名稱 //用root import
EX:zpool import -R /vm_win stroage01/vm_win
-D 被刪zpool名稱 新還原後zpool名稱 //被刪掉(destory)
EX:zpool import -D //列出被刪的zpool
EX:zpool import -D 被刪zpool名稱 新還原後zpool名稱 //指定新pool名稱
. zpool offline zpool名稱 磁碟 //暫某顆hdd暫時離線
. zpool online zpool名稱 磁碟 //暫某顆hdd暫時上線
=====zfs 指令操作 (zfs檔案系統操作和一般linux裡面的要分開)=====
zfs list //zfs 列出所有檔案情況
zfs list -r //zfs 列出所有檔案情況
zfs mount //zfs 掛載磁區
1、zfs 建目錄
a. zfs create zpool名稱/目錄名稱 // 建目錄
EX:zpool create storage01/vm_win
b. zfs create -o reserv=配額(容量大小) zpool名稱/目錄名稱 //預留空間
EX:zfs create -o reserv=1G storage01/vm_win
c. zfs create -v(-V) 配額(容量大小) zpool名稱/目錄名稱 //建立volume (iscsi)
EX:zfs create -v(-V) 1G storage01/vm_win
d. zfs create -p 子目錄也順便建立
e. zfs 分享檔案系統建議屬性,在建立檔案系統時就一起設定,建立之後就無法修改
每個參數前面都須要加上-o
casesensitivity=mixed 混合式大小寫,配合windows的習慣
nbmand=on 配合檔案系統同時作NFS和CIFS分享,使用的interlock模式
utf8only=on 檔案名稱只接受utf8的unicode編碼,不使用ansi編碼。
EX:zfs -o casesensitivity=mixed -o nbmand=on -o utf8only=on storage01/vm_win
2、zfs 刪目錄
a. zfs destory zpool名稱/目錄名稱 //刪目錄
EX:zpool destory storage01/vm_win
b. zfs destory zpool名稱/目錄名稱 //刪除volume (iscsi)
EX:zfs destory storage01/vm_win
3、zfs 修改目錄名稱
a. zfs rename zpool名稱/舊目錄名稱 zpool名稱/新目錄名稱
EX:zfs rename storage01/vm_win storage01/vm_windows
=====zfs屬性=====
1、zfs 取得屬性(properties)
a. zfs get all zpool名稱
EX:zfs get all storage01
EX:zfs get all vm_win
2、zfs 變更掛載點 (mount 想成檔案目錄操作)
a. zfs set mountpoint=/目錄 zpool名稱/目錄名稱 //變更掛載點
EX:zfs set mountpoint=/images/vm/100 storage01/vm_win //將/images/vm/100 掛上vm_win
EX:zfs set mountpoint=/storage02/vm_win_new storage01/vm_win //vm_win_new 取代 vm_win
3、zfs 目錄壓縮
a. zfs set compression=on zpool名稱/目錄名稱
EX:zfs set compression=on storage01/vm_win
b. zfs set compression=lz4 ??
4、zfs 目錄取消壓縮
a. zfs inherit compression zpool名稱/目錄名稱
EX:zfs inherit compression storage01/vm_win
5、zfs 目錄設定配額(容量大小)
a. zfs set quota=配額(容量大小) zpool名稱/目錄名稱
EX:zfs set quota=1G storage01/vm_win
6、zfs 給NFS使用
a. zfs set sharenfs=on zpool名稱/目錄名稱
EX:zfs set sharenfs=on storage01/vm_win
7、zfs 給CIFS使用
a. zfs set sharesmb=name=CIFS分享名稱 zpool名稱/目錄名稱
EX:zfs set sharesmb=name=vm_win storage01/vm_win
b. zfs get sharesmb zpool名稱/目錄名稱
EX:zfs get sharesmb storage01/vm_win
8、ACL繼承設定 (aclinherit改成passthrough) ??
a. zfs set aclinherit=passthrough zpool名稱
EX:zfs set aclinherit=passthrough storage01
=====zfs快照=====
1、zfs 建立快照
a. zfs snapshot zpool名稱/目錄名稱@snapshot名稱
EX:zfs snapshot storage01/vm_win/win10@20160828_win10
b. zfs snapshot -r zpool名稱@snapshot名稱 //zpool名稱底下所有的檔案系統都用相同的snapshot名稱
EX:zfs snapshot -r storage01
2、zfs 還原快照
a. zfs rollback -r zpool名稱/目錄名稱@snapshot名稱
EX:zfs rollback -r storage01/vm_win/win10@20160828_win10
3、zfs 複製快照
a. zfs clone 來源zpool名稱/目錄名稱@snapshot名稱 目地zpool名稱/目錄名稱
EX:zfs clone storage01/vm_win/win10@20160828_win10 storage02/vm_win/win10_test
4、zfs 移除快照
a. zfs destory 來源zpool名稱/目錄名稱@snapshot名稱
EX:zfs destory storage01/vm_win/win10@20160828_win10
5、zfs 列出快照
a. zfs list -t snapshot //列出所有快照
6、zfs 快照避免被修改
a. zfs hold keep 來源zpool名稱/目錄名稱@snapshot名稱 //keep避免被修改
EX:zfs hold keep storage01/vm_win@20160828_win10
b. zfs holds 來源zpool名稱/目錄名稱@snapshot名稱 //holds檢查
EX:zfs holds storage01/vm_win@20160828_win10
======參考======
http://blog.virtual-on.org/2011/06/zfs-nas-nexentacore1.html
http://gallery.tses.tc.edu.tw/nuke/sections.php?op=viewarticle&artid=600
http://mail.ycsh.tp.edu.tw/~tory/ezblog/index.php?entry=entry100521-020651
http://blog.virtual-on.org/2011/06/zfs-nas-nexentacore1.html
https://blogs.oracle.com/forrest/entry/zfs%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F_4_zpool_inport_export
http://leoprosoho.pixnet.net/blog/post/32323214-zfs%E5%9F%BA%E7%A4%8E%E7%AE%A1%E7%90%86
訂閱:
文章 (Atom)