btrfs檔案系統
Btrfs(B-tree,Butter FS,Better FS)其遵從GPL協定,由Oracle于2007年開發。
特性:
1.多實體卷支援:由底層多個實體卷組成,支援RAID{0,1,5,6,10},以聯機“添加”,“移除”,“修改”。
2.寫時複制更新機制(COW):複制,更新及替換指針,而非“就地更新”:改變檔案是先将檔案複制一份,在新檔案上進行修改,最後将檔案名指針指向新檔案,原檔案保留,利于檔案恢複。
3.資料集中繼資料校驗機制:checksum
4.子卷(sub_volume):在一個卷上建立子卷,子卷可單獨挂載使用
5.快照(snapshot):差別于LVM快照的是可以對快照進行快照
6.透明壓縮機制:存放檔案時自動壓縮(lzo,zlib),檢視檔案時自動解壓縮,但會消耗更多的cpu的時鐘周期
7.Btrfs指令将多個小指令組合為一個指令
檔案系統建立:centos7以上版本使用
mkfs.btrfs
-L ‘LABEI’:指明卷标
-d <type>:raid0,raid1,raid5,raid6,raid10,single:指明資料是如何跨裝置存放
-m <profile>:raid0,raid1,raid5,raid6,raid10,single,dup:指明中繼資料是如何跨裝置存放
-O <feature>
-O list-all:列出支援的所有feature:
例:mkfs.btrfs -L 'mydata' /dev/sdb /dev/sdc /dev/sdd
屬性檢視:
檢視指定檔案系統的屬資訊
例:btrfs filesystem show /dev/sdb
檢視所有檔案系統的資訊
例:btrfs filesystem show --all-devices
檢視已挂載的檔案系統的資訊
例:btrfs filesystem show --mounted
檢視卷标:
例:btrfs filesystem label /dev/sdb
檔案系統挂載:
例:mount -t btrfs /dev/sdb /mydata
Note:-t如能自動擷取到,可以不指定
例:mount -o compress=lzo /dev/sdb /mydata
Note:使用壓縮算法存放檔案,可以使用lzo與zlib兩種
調整檔案系統大小:
例:btrfs filesystem resize max /mydata
Note:max選項是調整至最大,[+/-]<size>[kKmMgGtTpPeE]可增大或減小檔案系統
添加或删除磁盤
例1:添加
btrfs device add /dev/sdb /mydata
Note:添加新的磁盤後要将檔案均衡
btrfs balance start /mydata/
Note:此操作如檔案系統中占用空間過多時,速度慢,且占用磁盤IO
例2:删除
btrfs device delete /dev/sdb /mydata
Note:磁盤移除可支援聯機操作,不損壞資料,在磁盤被移除前,資料會被轉移到别的磁盤
改變中繼資料級别的組織形式
例:btrfs balance start -mconvert=raid5 /mydata
子卷:
例1:建立子卷
btrfs subvolume creat /mydata/logs
例2:檢視新建立的子卷
btrfs subvolume list /mydata/
例3:單獨挂載子卷
mount -o subvol=logs /dev/sdc /mnt
mount -o subvolid=260 /dev/sdc /mnt
例4:删除子卷
btrfs subvolume delete /mydata/logs
例5:子卷快照
btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshot
Note:子卷快照必須與子卷在同一個父卷内
例6:對單檔案快照
cp --reflink ifcfg.conf ifcfg_snapshot
檔案系統轉換
例1:ext4轉換為btrfs
btrfs-convert /dev/sdd1
例2:btrfs轉換為ext4
btrfs-convert -r /dev/sdd1
本文轉自 元嬰期 51CTO部落格,原文連結:http://blog.51cto.com/jiayimeng/1841030