Ubuntu 文件伺服器上的 btrfs 與 ZFS
我有一台執行 Ubuntu(伺服器版)的伺服器,它的主要工作是通過 FTP(vsftpd)和 AFP(netatalk)提供文件。我的 /srv 目錄開始填滿,我需要添加更多硬碟。因為它的技術對於我的需要來說已經過時了,所以 RAID 不在考慮之列。
對於它的價值,現在,我應該選擇更成熟的 ZFS,使用核心模組或 FUSE 擴展,還是嘗試更新但更像 Linux 的 btrfs?在這種情況下,每種方法的優缺點是什麼?
射線。
這兩種選擇的最大負面因素是,它們都沒有準備好在 Linux 核心上的黃金時段。我強烈建議此時不要使用它們中的任何一個,它們還沒有成熟。
也就是說,如果你必須使用其中一個,我傾向於 btrfs。它更適合作業系統,並且由於它位於核心而不是使用者空間中,因此性能應該比 ZFS 更好。
如果 RAID 對您來說“過時”,我假設您想要一些具有端到端校驗和的東西(即位腐爛保護)。如前所述,BTRFS 還沒有為任何類型的非開發環境做好準備,它仍在開發中。
fuse 下的 ZFS 確實在一定程度上起作用,但性能(速度)較差,長期可靠性是一個很大的未知數。
如果這是供個人使用,則可以使用 Solaris 11 Express,但它是商業用途(嗯,不是“開發”或“評估”),您需要購買許可證才能使用它。它確實有最新的 ZFS 池版本(我相信是 31)。基於 SVN 151a 建構。
OpenIndiana 是最新的免費可用的基於 Solaris 的建構,因此可能是最“強大”的免費 ZFS 託管解決方案。它使用 ZFS 池版本 28。基於 SVN 147。
Nexenta - 兩個版本,一個核心版(僅限 CLI)和一個社區版(最多免費 18TB 的儲存空間)(好吧,然後是付費版)。這是基於帶有 ZFS 池版本 22 的 SVN 134,但有很多從多達 147 個向後移植的修復。
FreeBSD 具有最成熟的非 solaris ZFS 實現(也是我會考慮使用的唯一另一個)。8.2 Stable 版本正在執行 ZFS 池版本 15。FreeBSD 9-Current 支持 ZFS 池版本 28。
關於 zpool 版本的說明,您可以向上遷移,但不能向後遷移 - 如果您在 15 版的 10 個磁碟上有一個 ZPOOL,您可以將其導入任何支持 15 版或更高版本的作業系統,但必須導入 28 版池到支持版本 28 或更高版本的作業系統中。
在 ZFS 版本 15 和 28 之間,值得注意的功能可能是三重奇偶校驗 (Raid-Z3) 和重複數據刪除。如果您不使用這些,那真的沒關係(重複數據刪除很好,但非常消耗記憶體 - 每 TB 重複數據刪除數據 1GB 是一個很好的經驗法則,如果您沒有 RAM,那麼性能會下降到停止。所以只有在你真的需要時才使用它。
此外,如果您使用基於 solaris 的發行版,您應該查看 napp-it 作為 Web 界面,以支持配置和管理 ZFS- NAPP-it 網站。
如果您使用基於 BSD 的設置,您可能需要查看 ZFS-Guru 發行版 - ZFS Guru FreeBSD 發行版
您可能還可以設置一個虛擬機並在虛擬機中執行其中一個發行版,如果您這樣做,我會建議像 ESXi 這樣支持 Vt-d 定向 io 直通的東西。無論您的 SATA/SAS 介面是什麼,將其完全控制權傳遞給 ZFS 主機作業系統以獲得最佳性能。如果您需要額外的埠,最好選擇基於 LSI1068E 的卡(僅在 HBA 模式下)。它們的售價約為 70 美元。