Zfs

建構/維護基於 FreeNAS 和 ZFS 的自定義 NAS

  • July 11, 2018

我需要一個 NAS 來為一家大約 30 人的公司服務。我們製作遊戲(很多大文件、大型 git 儲存庫,僅此而已。)我正在考慮購買便宜的組件並自己建構它,使用類似 FreeNAS 的東西。(假設這是一個可行的選擇,價格明智。)

我將在下面列出我的需求和顧慮,但我的主要問題是:建構和管理是否足夠容易,或者我應該只購買商業 NAS(我使用了 Synology,它滿足我的所有需求。)

我的需求:

  1. 數據完整性是最重要的(顯然!),但我不需要 100% 的正常執行時間。如果 CPU 當機,我可能需要 2 個小時來更換它。
  2. 它不應該需要不斷的修補和維護。我想把盒子放在某個角落的某個角落,然後每月左右登錄一次,當我想添加一個 repo 或使用者時。話雖如此,我可以容忍適度的工作量和復雜性來設置盒子或新服務;但在那之後,我希望它“正常工作”。
  3. 我想從一堆不同大小的硬碟開始(基本上是我們周圍的硬碟),然後繼續用不同大小的磁碟逐個升級它們,因為空間不足或它們死了。我無法接受今天必須購買 8x4TB 磁碟,然後當陣列在兩年內耗盡空間時將它們全部更換為 8x10TB 磁碟。(Synology 的 Hybrid RAID 在這裡做得很好;這是我在其他商業 NAS 盒中還沒有找到的功能。)
  4. 應該為非技術使用者的常見任務提供圖形使用者界面(理想情況下,基於 Web 或其他)。
  5. 我將在這個盒子上執行的最重要的服務將是 Samba 共享和 Git 儲存庫。我需要訪問控制(不要太花哨或太複雜)和良好的網路支持。

我的擔憂:

  1. FreeNAS 是適合這個的作業系統嗎?我可以執行 Linux 發行版並使用軟體 RAID 和 LVM 之類的東西來設置我想要的一切,但這有點超出我可接受的複雜性範圍(或者就在它的邊緣),我更喜歡更簡單、更直接的工作.
  2. 如果 FreeNAS 是要走的路,那麼我會擔心它基於 FreeBSD,我沒有經驗。真的和Linux差太多了嗎?(我對幾乎所有 Linux 終端都非常滿意。)從原始碼建構軟體我幾乎沒有問題,但是一個好的包管理器(一個 la apt 等)是一個巨大的優勢。我應該期待硬體支持方面的任何問題嗎?(基本上我能想到的唯一特殊硬體就是網卡。)
  3. ZFS 是要走的路嗎?根據我的閱讀,ZFS(和 RAIDZ)非常棒,基本上是我一生都在尋找的東西!是嗎?來自基本硬體 RAID/LVM 和 ext4/NTFS 世界的問題和最重要的事情是什麼?
  4. 我認為便宜的 2 或 4 核 CPU 和 ~4GB 的 RAM 足以執行它。是嗎?這幾乎不是關鍵,但我想知道我是否離題。
  5. 網路連結聚合(NIC 綁定)在 Linux 中非常輕鬆。我讀到 FreeBSD 是一樣的。是嗎?
  6. 我將把幾 TB 的大部分不可替代的數據放入這個盒子;如果這不起作用,將很難移動的數據*。*我還應該研究、思考或記住什麼?

我知道我基本上是在向社區徵求意見!但我真的很感激任何和所有的幫助。謝謝你。

更新:我忘記了一個重要問題:在這樣的系統中,更換硬碟的過程會是什麼樣的?(要麼是因為失敗,要麼是升級。)是不是太難了?(請原諒太明顯的雙關語!)

更新 2:根據以下答案和其他“研究”,我決定採用以下策略。我在這裡寫它是因為它對我這種情況的其他人有用。(這不是最終決定;而是進一步調查的程序。)

我將購買硬體組件(我將使用便宜的東西,因為唯一的負載將是 I/O,並且受 GbE 對的限制)並使用我們周圍的空閒磁碟建構一個 FreeNAS-基於設備(儘管 RAM 比我最初預期的要多。)我將建構儲存陣列,並在將任何真實數據放在上面之前,將使用它一段時間(我們並不著急。)

如果底層的 FreeBSD 證明太像外星野獸,我可能會將相同的測試系統切換到 Linux 和 ZFS(以及下面接受的答案中提到的其他軟體。)

如果這也不滿足,我一定會unRAID試一試。

如果上述方法都不起作用,我將把盒子重新用於其他用途,然後購買現成的 NAS(可能是 Synology 1817 或類似的東西。)

在任何時候,如果我確定我可以在上述任何解決方案上維護和提供我的數據,我將開始移動我們的實際數據。

只是想解決你的一些觀點。完全披露,我是 ZFS 的支持者。這都是恕我直言。

回复:您的需求:

  1. 它不應該需要不斷的修補和維護。

只要您的所有清理、快照、安全更新、容量警報等配置正確,它就應該可以正常工作(至少在它打電話回家之前)。儘管有錯誤的軟體(看著你 netatalk)。

  1. 我想從一堆不同大小的硬碟開始…

正如 willcoq 所指出的,ZFS 在這一點上並不是很好。您至少需要一對相同(或幾乎相同)的驅動器來鏡像(這將為您提供 50% 的儲存效率)。這也恰好是最常用的配置。

…然後同時更換它們…

正如我向 willcoq 指出的那樣,如果您使用鏡像對 vdev,您可以一次升級您的池兩個磁碟。如果您使用兩個四磁碟 RAIDZ2 vdev,您可以一次升級您的池四個磁碟。如果您使用單個七磁碟 RAIDZ3 vdev(加上一個熱備件),是的,您需要更換所有驅動器才能實現擴展。等等。

…Synology 的 Hybrid RAID 在這方面做得很好;這是我在其他商業 NAS 盒中還沒有找到的功能。

Hybrid RAID(Synology)、BeyondRAID(Drobo)、XFS(例如 unRAID)、ZFS(例如 FreeNAS)等都需要權衡取捨。如果能夠將隨機驅動器放入某個事物並讓它發揮作用是您的主要要求,那肯定會將您推向前兩個選項之一。

應該為非技術使用者的常見任務提供圖形使用者界面(理想情況下,基於 Web 或其他)。

與其他基於 ZFS 的解決方案相比,FreeNAS 在這里大放異彩。

回复:您的擔憂:

  1. ZFS 是要走的路嗎?

ZFS 的學習曲線不一定比滾動您自己的 XFS 解決方案更陡峭,但架構可能不那麼寬容;在設計階段可能會出現嚴重的、難以修復的錯誤。不幸的是,有很多“部落知識”,在規劃解決方案時,沒有辦法盡可能多地閱讀和學習。基於 ZFS 的解決方案肯定比 Synology 和 Drobo 的商業現成系統以及 unRAID 等商業軟體具有更陡峭的學習曲線。

然而,隨著這種複雜性而來的是力量。您可以準確地建構您的案例所需的系統,幾乎沒有或根本沒有妥協。

  1. 如果 FreeNAS 是要走的路,那麼我會擔心它基於 FreeBSD,我沒有經驗。真的和Linux差太多了嗎?

我也遇到過類似的情況,同時學習 FreeNAS、FreeBSD 和 ZFS 肯定有困難。GUI 的存在讓我在精神上無法進入命令行——如果我無法弄清楚如何在 GUI 中執行此操作,我開始懷疑我想要做的是否是值得做——甚至是可能的。我使用 ZFS-on-Linux 建構了我最後的幾個儲存“設備”,它更適合我。它迫使我學習 ZFS,它讓我可以在沒有 VM 層的 ZFS 上執行 Docker 和 LXC/LXD。不幸的是,對於我們當中不太喜歡技術的人來說,它並不是那麼使用者友好。

如果你正在考慮走 ZoL 路線,你應該看看 Proxmox,它本質上是 Ubuntu + ZoL + ZFS root + LXC/LXD + libvirtd + GUI。

  1. FreeNAS 是適合這個的作業系統嗎?

如果您決定使用 ZFS 並在第一天需要 GUI,那麼簡短的回答可能是肯定的。在進入 FreeNAS 之前,可能值得嘗試分別學習 FreeBSD 和 ZFS 基礎知識。

  1. 我認為便宜的 2 或 4 核 CPU 和 ~4GB 的 RAM 足以執行它。是嗎?這幾乎不是關鍵,但我想知道我是否離題。

只要具有 AES-NI(用於加密),廉價的 CPU 就應該沒問題。如果您想在此伺服器上執行其他應用程序,您可能需要考慮額外的套接字/核心。

ZFS 的經驗法則是每 TB(可用)儲存 1 GB RAM,加上您的作業系統和應用程序所需的任何內容。為了獲得更好的讀取性能,請添加額外的 RAM。預設情況下,ZFS 會嘗試佔用 50% 的 RAM;這在一定程度上是可調的(base-2 值)。

  1. 網路連結聚合(NIC 綁定)在 Linux 中非常輕鬆。我讀到 FreeBSD 是一樣的。是嗎?

是的。請務必對哪些 NIC 在這兩種情況下效果最好進行一些研究。提示:不是瑞昱。

  1. 我將把幾 TB 的大部分不可替代的數據放入這個盒子;如果這不起作用,將很難移動的數據。我還應該研究、思考或記住什麼?

冗餘不是備份。您應該考慮關鍵數據集的備份策略。

引用自:https://serverfault.com/questions/918173