簡介
Btrfs((B-tree,ButterFS ,Better FS通常念成Butter FS),由Oracle于2007年宣布并進行中的COW(copy-on-write式)文件系統。繼ext3/4文件系統之后linux又有了比較強大的文件系統(btrfs文件系統),btrfs文件系統不僅可以將ext3/4系列的升級為btrfs文件系統也可以將其降級為ext3/4的文件系統,特別是單一文件大小的限制,總文件系統大小限制以及加入文件校驗和特性。而且btrfs文件系統還具有快照,內建磁盤陣列(RAID)支持,支持子卷等功能,允許在線調整文件系統大小,更為“囂張”的是btrfs文件系統還支持快照的快照。突破了之前的一些文件系統。
一 btrfs核心特性
1.多物理卷支持:btrfs可由多個底層物理卷組成;支持RAID,以聯機“添加”、“移除”,“修改”;
2.寫時復制更新機制(CoW):復制、更新及替換指針,而非“就地”更新;
3.數據及元數據校驗碼:checksum
4.子卷:sub_volume,子卷實質上是一個保存文件和目錄的命名的B樹。它們的inode保存在樹根之樹中,可以為非根用戶和組所有。子卷可選設定塊配額。子卷內的所有塊和 文件區段都有引用計數以便做快照。和虛擬機存儲的動態擴展相似,其只按需使用設備空間,消除了許多半滿的分區。用戶也可用不同的掛載選項掛載子卷,得到更靈活的 安全性。
5.快照:支持快照的快照;命令:btrfs subvolume snapshot
6.透明壓縮:分區里的每個文件都被自動壓縮,不僅減小了文件的大小,還提高了性能。
7.Btrfs支持在線碎片整理。命令: btrfs filesystem defragment
二 btrfs 常見命令以及一些命令的子命令
1.文件系統創建:
命令:mkfs.btrfs
選項:-L 'LABEL' #設置卷標
-d< type>: raid0, raid1, raid5, raid6, raid10, single #設置raid級別
-m< profile>: raid0, raid1, raid5, raid6, raid10, single, dup
-O< feature>
-O list-all: 列出支持的所有feature;
2.文件系統命令管理,包括卷標管理,文件系統大小調整,及碎片管理
命令:btrfs filesystem< subcommand> <args>
btrfs filesystem
show : 屬性查看
df : 查看掛載點的可使用空間
label : 設置器卷標
resize: 動態調整btrfs大小
3.掛載文件系統:
命令:mount -t btrfs /dev/sdb MOUNT_POINT
4.透明壓縮機制:
命令:mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
5. 管理子卷和快照命令
命令:btrfs subvolume< subcommand> [<args>]
btrfs subvlome :
Create: 創建子卷
Delete: 刪除子卷
List: 列出子卷
show: 顯示子卷的詳細信息
syn: 同步內存上的數據到磁盤上
6.設備管理命令
命令:btrfs device< subcommand> <args>
btrfs device:
add : 添加設備
delete : 刪除設備
raid label:設置raid級別
7.塊組均衡管理
命令:btrfs [filesystem] balance <subcommand>|<args>
btrfs balance :(原有的數據移動一部分到新增的物理卷上)
start: 啟用balance
pause: 停止balance
cancle:取消balance
status:查看balance狀態
8.btrfs subvolume snapshot 創建快照卷
三 btrfs管理及應用
-
新增2塊20磁盤 dev/sdb與/dev/sdc
-
創建btrfs文件系統和顯示btrfs文件系統
mkfs.btrfs -L 'mytest' /dev/sdb /dev/sdc

3.掛載文件系統
mkdir /mytest/
mount -t btrfs /dev/sdb /mytest/
3.建立子卷軸
btrfs subvolume create /mytest/mydata
cp -r /etc/grub2.cfg /mytest/mydata/
btrfs subvolum show /mytest/mydata/
4.刪除子卷
5.擴展文件系統
6.重新均衡文件系統
7.移除硬盤設備
btrfs device delete /dev/sdb /mytest/
8.修改數據或元數據的RAID級別
btrfs filesystem df /mytest/
btrfs balance start -mconvert=raid5 /mytest/
9.創建快照
btrfs subvolume snapshot /mytest/mydata/ /mytest/mydata_snapshot
我們還能在一般的文件系統和btrfs文件系統之間轉換:
btrfs-convert /dev/sdd1 COMMENTS: 一般文件系統轉換成btrfs文件系統;
btrfs-convert -r /dev/sdd1 COMMENTS:btrfs文件系統轉換回一般文件系統。
原創文章,作者:liangkai,如若轉載,請注明出處:http://www.www58058.com/11434
[…] 轉載請注明:linux運維部落 » btrfs 文件系統 […]