一、btrfs概念
在btrfs中存在三種類型的數據,data, metadata和system。它們表示:
DATA 數據塊。
METADATA 源數據。
SYSTEM 映射關系、raid關系等信息。
可以用btrfs filesystem show觀察到這些信息,也可以簡寫為 btrfs fi sh 。
RAID是profile的一種描述,包括條帶(raid0, raid10),mirror(raid1),奇偶校驗(raid 5,6)。
profile
profile和block group結合起來,用來描述數據的分配策略或約束。例如:
single表示只存一份數據,即每個block group都是獨一無二的。
DUP表示在一個塊設備中存雙份數據,即每個block group在 同一個塊設備 中有一個一樣的block group副本。
RAID0表示條帶,單個block group可能跨塊設備存儲。
RAID10表示鏡像加條帶,單個block group可能跨塊設備存儲,其中每個部分都會在兩個塊設備中存成鏡像。
二、創建btrfs文件系統
例子:
mkfs.btrfs -n 4096 -m raid10 -d raid10 -L mydata /dev/sdb /dev/sdc /dev/sdd /dev/sde
-n 設置nodesize大小 -m -d 分別對應 data和metadata數據塊的profile級別,-L 設置lable名稱。
raid10 最少需要4個塊設備,所以這里加了4個盤。
三、掛載
mount /dev/sdb /mydata mount選項里面有幾個針對ssd固態硬盤的選項,如ssd ,ssd_spread , discard 以及 compress={no|lzo|zlib}。
四、調整btrfs文件大小
btrfs fi resize +10G /mnt 有多個塊設備的話需要指定塊設備 btrfs fi resize 1:+10G /mnt 表示對第一個塊設備增加10G空間 使用全部空間可以使用max表示
五、增加減少塊設備
btrfs device add /dev/sdf /mnt
btrfs device delete /dev/sdf /mnt
六、負載均衡一下
btrfs balance start /mnt
同時通過 -mconvert=raid5 -dconvert=raid5 可以改變profile屬性
btrfs balance start -dconvert=raid5 -mconvert=raid5 /mnt
七、subvolume以及snapshot快照
btrfs subvolume create /mnt/logs
btrfs subvolume delete /mnt/logs
btrfs subvolume list /mnt
mount -o subvol=logs /dev/sdb /mnt(可以單獨掛子卷到目錄)
btrfs subvolume snapshot /mnt/logs /mnt/logs_snapshot (建快照)
常用命令
btrfs filesystem show /mnt
btrfs device scan
btrfs filesystem df /mnt
btrfs rescuse super-recover /dev/sdb
原創文章,作者:duiduifei,如若轉載,請注明出處:http://www.www58058.com/14700