在 QuTS 中,目前使用者可以自行建立快照或使用 zfs receive 匯入快照。使用者可能會不小心執行這些操作,且系統不會發出任何警告。這會導致產生無法刪除的不可變快照,除非刪除整個共用資料夾,或將整台裝置清除並重新初始化(如果該資料集並非 UI 所識別的項目)。
由於技術支援部門不會協助處理這些情況,我強烈建議您要麼直接停用 zfs CLI 指令,要麼在使用者執行相關操作時警告他們,告知可能會產生永久快照,直到裝置被完全重置為止。
在 QuTS 中,目前使用者可以自行建立快照或使用 zfs receive 匯入快照。使用者可能會不小心執行這些操作,且系統不會發出任何警告。這會導致產生無法刪除的不可變快照,除非刪除整個共用資料夾,或將整台裝置清除並重新初始化(如果該資料集並非 UI 所識別的項目)。
由於技術支援部門不會協助處理這些情況,我強烈建議您要麼直接停用 zfs CLI 指令,要麼在使用者執行相關操作時警告他們,告知可能會產生永久快照,直到裝置被完全重置為止。
在 CLI 指令中是否有參數可以設定快照是否為不可變的?
@johnsmallberries,QTS(以及 QuTS)是設計用於透過網頁介面(web UI)操作的。
如果你選擇透過命令列介面(CLI)進行操作,則無需任何警告。你必須自行承擔繞過廠商所提供介面所帶來的風險。
那項政策是寫在哪裡的?
不是所有快照都是不可變的。QuTS會攔截所有的刪除操作。如果是快照,那就無法被刪除。他們新增了一個LSM(Log-structured Merge-tree),據我所知,所有操作都會經過它。即使你能證明你有實體存取該裝置的權限,也無法停用這個機制。
我從未聲稱那是政策,是你誤會了。
我想我無法再幫助你了。祝你好運。
但如果你是透過 UI 操作,情況就不是這樣。
我到現在還是不明白你為什麼堅持要用 CLI 來做這件事。設定排程自動建立快照就好了,這樣就結束了。
現在我同意應該要有一個指令旗標或類似的東西來防止建立不可變的快照。但還是建議按照原本設計的工具來使用。不過我猜,當你手上只有一把錘子的時候,什麼東西看起來都像釘子。
謝謝。是的,使用 UI 沒有問題。我是 QNAP 新手,以為基本的 zfs 指令可以使用,因為這台設備是基於 zfs 的。CLI/自訂化有不同程度。我想很明顯,如果我要開始為它寫核心驅動程式,那就是我自己的事了,但 zfs snapshot 算是相當基本的指令,就像 “rm” 指令一樣。我只是沒想到 QNAP 會修改行為,不允許清除它。當然,zfs send/receive 這些 UI 上做不到的操作,對某些人可能有用,但我現在明白,對於這些需求我應該考慮其他設備。
在嘗試解決這個問題時,我也很驚訝無法將 pool 匯出再匯入到一般的 openzfs 系統。我沒想到會這樣。感覺我嘗試的每一種“刪除”檔案的方式都被封鎖了。我想讓所有快照都不可變是有它的價值,不過如果我能證明我有實體存取權,還是希望有方法可以移除它們——像是維護模式,或是把硬碟拆下來接到沒有 LSM 的機器上。
不可變快照是 QuTS Hero 6.0 的新功能。所以我建議你提交一個錯誤報告,讓 QNAP 知道這件事。也許這並不是他們的本意。我知道在 UI 上建立快照時,你可以選擇是否啟用不可變性。話雖如此,既然 UI 可以做到,系統底層一定有某種 CLI 指令可以建立可變快照,因為 UI 最終還是要執行某種 OS 指令。
至於將儲存池匯入或匯出到其他 ZFS 系統——這無法運作我並不意外。QNAP 有自己的一套做法,而且在 QuTS Hero 裡並不是每個分割區都是 ZFS 分割區。它的底層架構比標準 Linux 系統要複雜一些。
QNAP 的價值在於它的作業系統、功能集、應用程式等等。如果你真的想要打造一台完全基於 Linux 並且 100% 用 CLI 操作的大容量儲存設備,從成本角度來看,自己買一台主機、裝一張 RAID 控制卡,自己動手會划算得多。你可以用 $1500 到 $2000 買到一台 i9 Ultra PC,而一台 i9 的 QNAP 要價超過 $3000,還可能只用上 i9 Mobile 處理器。
我不確定是否應該提交報告,因為我能理解目前的行為是有其優點的。我只是覺得使用者可能會不小心遇到這種情況,所以也許給個警告就夠了。正如你所說,「不可變性」這個概念有點讓人困惑,因為這是 6.0 的新功能。我指的是你自己建立的快照,這種快照即使在 5.x 版本中也可以是不可變的,取決於你怎麼建立,所以也許只需要一個警告。如果我早知道,我就不會去嘗試那些指令了。如果你執行 cat /sys/kernel/security/lsm,會看到有個「qlsm」會攔截任何 zfs 操作,並且會阻止你在 CLI 上刪除快照,所以最好事先讓使用者知道,而不是事後……另外,如果你有實體存取裝置的權限,能夠暫時停用 qlsm 這個「功能」可能會很方便。沒有人想要「touch 檔案名稱」後卻不能「rm 檔案名稱」——當然快照跟這個有點不同,但概念類似。
在 QuTS Hero 5.x 中,快照只有儲存在不可變的磁碟區上時才會是不可變的,但由於快照並不是儲存在一般磁碟區空間中,我不確定你要如何實現不可變快照。
很少有人會用 CLI 來建立快照,所以他們大概沒想到要在命令列中加入相關選項。我會把這個當作一個 bug 或功能需求回報……
我知道 Sophos 防火牆會要求你在提供清晰 shell 前先「簽署/確認」用戶協議。也許 QNAP 也可以這麼做
從這裡開始你就要自負後果了(FAFO) Y/N
我仍然認為,如果你想通過 CLI 觸發快照,應該嘗試 qcli
沒錯,qcli_volumesnapshot 沒有問題,因為它會和其他 QNAP 相關的東西一起建立快照。只是 zfs snapshot 會留下永久快照,除非你刪除資料夾或重新初始化,所以也許應該加個警告,或者 QNAP 能提供「某種」方式來刪除手動快照。目前我們可以建立和刪除手動資料集,但無法刪除快照。
或者,如果不加警告,我覺得如果不影響其他功能的話,在維護模式下禁用「qlsm」LSM,讓快照可以被刪除,會很方便。我理解需要保留永久快照來防止勒索軟體,但如果你能證明你有實體存取權,例如將設備重啟進入維護模式,你應該可以清理那些很容易在 CLI 下不小心建立的手動快照。
那麼,看來應該使用 qcli_volumesnapshot 了……
非常感謝您寶貴的回饋!您的意見對我們改進產品非常有幫助。我們會將您的建議轉交給相關部門進一步評估。再次感謝您的支持!