btrfs文件系統詳解及使用

btrfs文件系統的核心特性

       多物理卷支持:btrfs可由多個底層物理卷組成;支持RAID,以聯機“添加”、移除,修改;

       寫時複製更新機制(CoW):複製、更新及替換指針,而非就地更新;

             修改一個文件,不知直接修改源文件,而是將文件先複製一份,對目標新複製的文件進行修改,然後將文件名本來是指向原來的文件空間轉而轉向新空間

       數據及元數據效驗碼:chechsum

       子卷:sub_volume

       快照:支持快照的快照;

       透明壓縮;自動在存儲時實現壓縮,讀取時自動解壓縮

常用命令:

文件系統創建:

       mkfs.btrfs

           -L 'LABEL'

           -d <type>:raid0,raid1,raid5,raid6,radi10,single

           -m<profile>:raid0,raid1,raid5,raid6,radi10,single,dup

屬性查看:

       btrfs filesystem show

掛載文件系統:

       mont -t btrfs  /dev/sdb/  MOUNT_POINT

透明壓縮機制:

       mount -o compress={lzo|zlib}  DEVICE MOUNT_POINT

擴展文件系統:

       btrfs  filesystem  resize max /mydata

添加新的磁盤到文件系統中

        btrfs  device add  /dev/sdd /mydata

 刪除文件系統中的磁盤:

        btrfs  device delete  /dev/sdd  /mydata

在我們生產環境中可以使用多塊硬盤直接用btrfs文件系統組合成RAID來使用


示例:接下來我們來演示一下用btrfs文件系統三塊磁盤組成一個RAID組來使用

先在虛擬機中添加三塊磁盤大小分別是20G的磁盤,/sdb,/sdc,/sdd

然後將sdb與sdc創建成btrfs文件系統

image.png


使用btrfs filesystem show這個命令來查看一下系統中的使用btrfs的分區

image.png

將創建好的文件系統掛載的/mydata目錄

mount  -t  btrfs  /dev/sdb  /mydata

讓數據已透明壓縮的方式存儲到此文件系統中

mount -o compress=lzo /dev/sdb  /mydata/

縮減文件系統的大小

btrfs filesystem resize -10G  /mydata

image.png

添加新的磁盤到文件系統中

btrfs  device add  /dev/sdd  /mydata

image.png

我們可以將原有數據均衡到三塊磁盤中

btrfs balance start  /mydata

當我們需要縮減存儲空間時,可以使用命令直接移除磁盤,被移除的磁盤中的數據會自動同步到其它的磁盤上面

btrfs filesystemd del  /dev/sdb  /mydata

image.png

更能文件系統默認的存儲方式

首先我們先來查看一下文件系統的的基本信息

這裏我們可以看到數據是以single單文件格式存儲的

元數據是以RAID1方式存儲的

下面我們將存儲方式全部更改爲RAID5級別

image.png

將第二塊磁盤重新添加進來

btrfs device add /dev/sdb  /mydata

btrfs balance start -dconvert=raid5  /mydata

btrfs balance start -mconvert=raid5  /mydata

image.png

注意我們在修改raid級別時,要確保底層硬盤的數量能夠組成相應的raid級別


創建子卷

我們在/mydata文件系統下創建兩個子卷test跟test2,並將test單獨掛載到/mnt目錄下

btrfs  subvolume create  /mydata/test

btrfs  subvolume create  /mydata/test2

btrfs  subvolume list /mydata

image.png

我們複製一個文件到test子卷掛載的目錄中,然後掛載/mydata進行驗證一下

image.png

如果想要刪除子卷的話只需要使用下面的命令即可

btrfs  subvolume  delete  /mydata/test2


爲子卷創建快照

btrfs subvolume snapshot  /mydata/test   /mydata/test_snap

image.png

爲了驗證我們在test目錄中任意創建一個文件,然後切換到快照中發現新創建的文件不存在即快照創建成功

image.png

當我們不需要快照時可以使用一下命令進行快照的刪除

btrfs  subvolume delete /mydata/test_sanp 刪除快照

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章