一、btrfs基本概念
btrfs文件系統是2007年Oracle開發,支持GPL協議,爲了取代Linux早期的ext系列文件系統。
btrfs核心特性: 多物理卷支持:btrfs可由多個底層物理卷組成,支持RAID,以聯機添加、移除、修改操作 寫時複製更新機制(CoW):複製、更新及替換指針,而非直接更新原文件 數據及元數據校驗碼:checksum 子卷:sub_volume 快照:支持快照的快照 透明壓縮:
二、btrfs基本應用
創建btrfs文件系統: mkfs.btrfs: -L 'LABEL': -m <profile>: 指明元數據存放機制{raid0,raid1,raid5,raid6,raid10,single} -d <type>: 指明數據存放時的類型{raid0,raid1,raid5,raid6,raid10,single,dup} -O <feature> -O list-all: 列出支持的所有feature
直接格式化: mkfs.btrfs -L mydata /dev/sdab /dev/sdac
btrfs filesystem show: 顯示創建的btrfs文件系統的信息 btrfs filesystem show /dev/sdb: 查看指定設備btrfs文件系統的信息 btrfs filesystem [OPTION] sync: 將文件系統緩存在內存中的數據同步到磁盤中 df: 查看一個已掛載的btrfs文件系統空間使用情況: btrfs filesystem df /mydata defragment: 磁盤碎片整理 resize: 修改大小, btrfs filesystem resize -10G /mydata label:顯示卷標或顯示卷標
btrfs device [OPTION] /dev/sdd: 對硬件設備進行操作 add: 添加設備 deleate: 移除設備,數據自動移到其他設備上,不影響正常訪問 scan: 掃描設備
btrfs balance [OPTION] /dev/DEVICE:均衡數據到新增加的設備上 start [OPTION]<filters>:開始balance -d<filter>:修改數據的組織機制 -m<filter>: 修改元數據的組織機制 -s<filter>: 修改系統的組織機制 filter: convert 比如btrfs balance start -dconvert=raid5 /mydata 修改數據的raid級別 比如 -mconvert 修改元數據的raid級別 pause:暫停 status:執行狀態 cancel:取消 resume:繼續
btrfs subvolume : 子卷操作 create: 創建子卷: 比如:btrfs subvolume create /mydata/logs delete: 刪除子卷 list: 列出所有的子卷 get-default: 查看默認卷 set-default: 設置默認卷 snapshot: 快照 比如; btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshot 對單個文件創建快照: cp --reflink grub2.cfg grub2.cfg_snap show: 查看子卷詳細信息
只掛載子卷: 例如 mount -o subvol=logs /dev/sdb /mnt 或 mount -o subvolid=267 /dev/sdb /mnt
掛載文件系統: mount -t btrfs /dev/sdb /MOUNT_POINT
透明壓縮機: mount -o compress=(lzo|zlib) DEVICE MOUNT_POINT
三、應用
ext文件系統轉爲btrfs文件系統: 1. umount /mnt 2. fsck -f /dev/sdd1 3. btrfs -convert /dev/sdd1 4. btrfs filesystem show 5. mount /dev/sdd1 :可以掛載使用了 btrfs文件系統降級回到ext文件系統: btrfs -convert -r /dev/sdd1