Btrfs 是一個 Linux 中的新的寫時複製(copy-on-write (COW))的文件系統,目的是實現高級功能的同時着重與容錯功能,修復功能以及易於管理。目前由Oracle, Red Hat, 富士通, Intel, SUSE以及其餘組織共同開發,在 GPL 許可證下發行,同時向任何人公開貢獻代碼。ide
Btrfs核心特性:spa
多物理卷支持:btrfs可由多個底層物理卷組成;支持RAID,以聯機「添加」、「移除」、「修改」;指針
寫時複製更新機制(CoW):複製、更新及替換指針,而非「就地」更新;在文件進行修改的時候,首先將文件複製一份出來,在複製出來的文件上進行修改,修改完成以後,將指向原有文件的指針修改指向到修改完成的文件上,若修改完成的文件出現了錯誤,則咱們能夠經過原文件進行修復blog
數據及元數據校驗碼:checksum ,當存儲某個文件時,checksum會將數據的源數據和數據的校驗碼,分別經過文件的屬性擴展進行保存,當咱們再次讀取數據時能夠方便的檢測數據是否受損,若是文件受損系統能夠完成自動修復;圖片
子卷:sub_volume,在一個捲上建立多個子卷,在每個子捲上建立文件系統,並掛載使用;開發
快照:支持快照的快照;所以能夠實現相似增量快照的機制get
透明壓縮 :若是咱們在存儲文件時,進行壓縮存儲,那麼在文件發往btrfs時,會自動的佔用時鐘週期,完成數據的壓縮存放,而用戶並不知道,在用戶讀取文件時,會自動的進行文件的解壓縮,能夠實現節約磁盤空間。可是壓縮和解壓縮會佔用時鐘週期;it
開始建立btrfs文件系統io
mkfs.btrfs
class
選項:
-L|--label <name>:爲即將建立的btrfs文件系統指定卷標
-d|--data <type>:爲數據存儲指定類型;能夠選擇的類型有:raid0,riad1,raid5,raid6,raid9,raid10 or single
-m|--metadata <profile>:指定元數據的存儲方式;能夠選擇的類型有:raid0, raid1, raid5, raid6, raid10, single or dup
-O|--features <feature1>[,<feature2>...]:指定btrfs文件系統的特性,若是想要查看那些特性,能夠使用命令mkfs.btrfs -O list-all
查看詳細屬性
掛載
在線調整文件系統的大小
增長一個設備到當前指定的btrfs文件系統
將先前的數據均衡到新加的盤上
移除則用delate
btrfs device delete <device> [<device>...] <path>
建立子卷
顯示子卷信息
btrfs subvolume delete [options] <subvolume> [<subvolume>...]
刪除子卷
建立子卷的快照卷
刪除快照
將btrfs和ext系列進行轉換:
btrfs-convert
btrfs-convert - convert from ext2/3/4 filesystem to btrfs or rollback
btrfs-convert [options] <device>
將文件系統從ext轉換爲btrfs:
~]# btrfs-convert /dev/sdb1
注意:/dev/sdb1分區,應該事先格式化爲ext系列文件系統;
將文件系統從btrfs回滾到ext
~]# btrfs-convert -r /dev/sdb1