大多數人應該使用哪些 ZFS 池、vdev 和資料集屬性?

大多數人應該使用哪些 ZFS 池、vdev 和資料集屬性?

ZFS 有許多不同的可設定屬性用於泳池,對於虛擬開發人員對於資料集。其中許多可以隨時更改,但有些只能在創建時設定(或只影響之後寫入的數據,因此應該實際上是在創建時設定的)。

作為一名菜鳥,我搜尋了許多不同的問題,並發現了一些建議設定很多的屬性。

顯然,每個用例在哪些屬性有意義方面幾乎沒有什麼差異,但大多數 zfs 使用者應該使用一組通用的屬性。我正在考慮那些應該有正面理由的財產不是使用它們。這些是什麼以及為什麼?

答案1

(免責聲明:作為 ZFS 初學者,這只是我目前的理解,旨在推動其他人提供更完整、更可靠的資訊)。

池屬性

資料集屬性

這些可以使用zfs create -o或透過根檔案系統-O的開關來指定zpool create(預設將繼承給其他檔案系統)。

  • xattr=sa

    這顯著提高了 xattr 的性能,並且沒有真正的缺點。 (僅適用於 Linux目前)。

  • dnodesize=auto

    使用時應使用此屬性xattr=sa。不使用這些的主要原因是與不支援所需 ZFS 功能的系統交互

  • relatime=on

    即使在唯讀互動中,追蹤文件的存取時間也可能非常昂貴。relatime顯著降低這些更新的粒度/頻率,但代價是atime屬性中的資訊不太精確(同時保持一些通常需要的不變量)。請注意,長期以來,這是 Linux 上幾乎所有檔案系統的預設設定。如果需要精確atime訊息,請不要開啟此功能。如果人們知道atime永遠不需要它,那麼atime=off可以提供更好的性能。

  • normalization=formD

    這將確保檔案名稱始終以相同的方式標準化。作為一個主要副作用,這也意味著檔案系統會將檔案名稱視為 UTF-8 編碼,並且無法再儲存其他檔案系統接受的具有某些「損壞」名稱的檔案名稱。如果不需要這樣做,則將其忽略。

  • compression=lz4

    人們的共識似乎是,現代硬體上的壓縮成本是如此之低,以至於這實際上只有好處。主要儲存已經高度壓縮的資料的資料集可能需要關閉此功能。

  • recordsize

    對於許多用例來說,預設記錄大小似乎是一個很好的中間立場,但某些用例(例如資料庫)可能會受益於特定值。

來源

相關內容