如果你的 Linux 系統下掛有多塊硬盤,其實沒必要把這些不同的硬盤當成單獨的存儲來用,使用 Btrfs 文件系統我們可以非常容易的將多個磁盤組合創建出一個存儲池。在配置好存儲池後,我們還可以啟用鏡像功能,以避免磁盤損壞帶來的數據丟失。
雖然目前還沒有 GUI 的配置程序,但我們使用命令行還是可以非常容易的創建 Btrfs 文件系統,以便將多個硬盤組合到一起。
Linux文件系統Btrfs的Makefile分析 http://www.linuxidc.com/Linux/2012-10/73301.htm
Linux 文件系統Btrfs 的Kconfig分析 http://www.linuxidc.com/Linux/2012-10/73300.htm
Btrfs文件系統在CentOS中的應用 http://www.linuxidc.com/Linux/2012-08/68098.htm
什麼是Btrfs文件系統
Btrfs 文件系統又被稱為 B-tree 文件系統、Butter FS 或者 Better FS,它在文件系統級別集成了許多不同的功能和特性。雖然 Btrfs 文件系統有很多值得我們關注的特性(如文件系統快照),但本文中我們只探討 Btrfs 文件系統的存儲池和鏡像功能。
雖然 Btrfs 文件系統目前還不被企業級應用公認為“安全”,但其穩定性已經能夠滿足個人用戶的穩定性需求了。在未來的某個時刻,Btrfs 將成為 Linux 中默認的文件系統格式,如果你只使用單個磁盤或不需要 Btrfs 的快照、存儲池及鏡像等新特性,還是使用 ext4 文件系統比較好。
示例環境
在本文的示例中,我們將用 4 塊磁盤來進行演示,其中 1TB 的磁盤 2塊(分別為/dev/sdb 和 /dev/sdc),另外 2 塊磁盤為 500 GB (分別為/dev/sdd 和 /dev/sde),總共 3TB 存儲空間。
創建Btrfs文件系統
要創建 Btrfs 文件系統我們可以使用如下命令:
sudo mkfs.btrfs /dev/sdb
當然,你可以按你自己的環境將 /dev/sdb 替換為你自己的磁盤。現在,我們可以將其它磁盤創建為 Btrfs 文件系統,但首先我們使用如下命令將 /dev/sdb 掛載到 /mnt:
sudo mount /dev/sdb /mnt
然後再執行:
sudo mkfs.btrfs /dev/sdc
sudo mkfs.btrfs /dev/sdd
sudo mkfs.btrfs /dev/sde
現在,我們可以將以上3塊磁盤都添加到 /mnt 目錄下:
sudo btrfs device add /dev/sdc /mnt
sudo btrfs device add /dev/sdd /mnt
sudo btrfs device add /dev/sde /mnt
如果你事先就規劃好要使用 Btrfs 創建一個跨多個硬盤的文件系統,可以直接使用如下命令:
sudo mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd /dev/sde
現在來解釋下,上面的 -d single 參數代表我們將創建一個 Raid0 卷,當然我們也可以使用 -d raid1 參數來創建 Raid1 卷。甚至,以使用 -d raid10 參數來創建 Raid10 卷,這會將我們的 2 個 1TB 磁盤鏡像成 1TB,將 2 個 500G 磁盤鏡像成 500G,最後再組合成 1.5 TB 可用空間。
如果磁盤出現故障
如果某個磁盤出現故障,我們則需要從文件系統中將其移除以便剩下的磁盤正常工作,此時可以使用如下命令:
sudo mount -o degraded /dev/sdb /mnt
然後再用如下命令修復文件系統:
sudo btrfs device delete missing /mnt
如果你沒有啟用 RAID1 或 RAID10,磁盤損壞後該硬盤上的數據將會丟失。
Btrfs 的詳細介紹:請點這裡
Btrfs 的下載地址:請點這裡