centos7之btrfs文件系統

btrfs文件系統

BtrfsB-treebutter FSbetter FS

btrfs是centos7默認支持的文件系統,btrfs有着ext系列文件系統之外的衆多功能,可是說功能非常強大:

特性

  1、 支持跨物理設備(磁盤分區)創建,數據和元數據分別支持RAID可在線添加、移除、修改等操作

其支持諸多RAID,譬如數據支持raid0,raid1 raid5,raid6,raid10,single 

元數據支持raid0, raid1, raid5, raid6, raid10, single or dup

2寫時複製功能其不在原處修改,而是將文件複製一份後對副本修改

3數據及元數據校驗機制自身攜帶有checksum校驗碼,以確保數據的準確性

4、子卷文件系統中可創建子卷,子卷可以實現文件系統獨立的功能

5快照:btrfs支持快照功能以實現數據的備份與訪問

6、透明壓縮數據保存在硬盤中不是原來的格式保,而是壓縮後保存

當然,這樣在讀寫文件時,也增加了系統的壓力,繁忙讀寫操作慎用

23可實現防刪除功能

、btrfs文件系統創建

mkfs.btrfs 命令

    -L “label” 指定卷標

    -d|--data <type>:指定數據時如何誇設備存儲的

        <type>:raid0,raid1 raid5,raid6,raid10,single


     -m|--metadata <profile> 指定元數據是如何誇設備存儲的

         <type> raid0, raid1, raid5, raid6, raid10, single or dup

dup類型是把數據再次備份一份類似於RAID1

-s|--sectorsize <size>

-n|--nodesize <size>

 -U|--uuid <UUID>

    -f |--force  強制寫入磁盤一個以存在分區的磁盤中,默認情況下btrfs不會向以有分區的磁盤上寫數據

-O <feature> 指定其他特性

-O list-all

wKiom1YU_XfAlyrwAAEk6vWfY2w255.jpg 

三、btrfs是管理btrfs文件系統的命令,其支持衆多的子命令

       btrfs-subvolume, btrfs-filesystem,

       btrfs-balance, btrfs-device, btrfs-scrub, btrfs-check,

       btrfs-rescue, btrfs-restore, btrfs-inspect-internal, btrfs-send,

       btrfs-receive, btrfs-quota, btrfs-qgroup, btrfs-replace,

  

btrfs支持子命令嵌套習慣以下將是btrfs的子命令嵌套格式

btrfs filesystem 

            show  --mountd |--all-devices|<path>|<uuid>|<device>|<label>

可查看掛載了的設備|所有設備|指定路徑下的設備|指定UUID的設備|定設備名設備|指定卷標的設備

            resize [<devid>:]<size>[gkm]|[<devid>:]max <path>

           Resize a filesystem identified by <path> for the underlying device devid online.

支持在線調整btrfs的大小  也可調整到最大(類似lvm邏輯卷的功能)

大小減小5G顯示如下修改是應對其掛載點操作

wKioL1YU_cSi9CRuAAE1QzLCmjE712.jpg

label [<dev>|<mountpoint>] [<newlabel>]

           Show or update the label of a filesystem.顯示或更新文件系統的卷標

顯示系統中所有btrfs文件系統

 

wKiom1YU_dDCIlALAAEgalQFeiU727.jpg

wKioL1YU_eaw4r_8AADGIElQZKQ265.jpg


也可以指定文件系統譬如

 wKioL1YU_gfiEHfVAADe50v-TLA176.jpg

對設備的操作


btrfs device 命令:在線增添、刪除、替換設備

add增添設備 [-Kf] <dev> [<dev>...] <path>

delete刪除設備

scan掃描設備

ready所有的設備調整爲掛載狀態

stats打印指定或所有的IO設備的狀態

/dev/sde 添加myfs中其大小變爲60G

wKiom1YU_gzjqCYtAAFJgkGw6mA817.jpg 


btrfs balance {start|stop|pause|cancel|resume|status} [option]<path>系統的均衡操作

當前文件系統的數據組成類型轉化爲其他類型raid各種類型),重建數據chunk類型

    start 

            -d <filters>修改數據的組成格式

            -m<filters>修改元數據的組成格式

            -s  <filters> 修改系統數據的組成格式

            -f  強制轉換數據的組成格式

實際生產中數據量很大,需要在空閒調整,調過程中可能需要以下參數控制轉換過程

            stop <path>    停止轉換

            pause   <path>    暫停轉換

            cancel   <path> 取消轉換

            resume  <path>繼續轉換

     status <path>顯示轉換狀態

          <filter>   convert 轉換


btrfs balance start –dconvert=raid5 /media 

myfs文件系統數據的的raid調整爲raid5如下,調整raid要遵循raid規則調整,譬如raid5至少3設備等,也可以調整元數據raid級別

wKioL1YU_jyzlASeAAFsbO4J1wA106.jpg 


btrfs subvolume 控制系統創建/列出/顯示子卷和快照卷

訪問子卷可通過兩種方法:1通過父卷訪問2通過掛載點訪問

create [-i <qgroupid>] <name><dest>   //在dest中創建子卷 ,delete 刪除子卷

list<path>列出子卷

            -p  打印父卷ID

            -a打印所有的子卷信息,區分不同的親疏關心

            -g輸出子卷的宗代信息

            -o輸出指定路徑的子卷

            -u輸出子卷的uuid信息

            -q輸出父卷的uuid

            -s系統中的快照卷將被打印

            -r系統只讀卷被打印


snapshot [-r] <source> <dest>|<name>     //創建一個可寫或只讀的快照卷

find-new <subvolume> <last_gen>    //列出最近改變過的子卷信息

show<path>顯示指定路徑的子卷信息


例如:創建子卷myfs_sub

 

wKiom1YU_lWBdxg0AABC_wZ5U3o245.jpg

wKioL1YU_mvAEt9JAABROxxTyjw946.jpg

wKiom1YU_lXyVWqVAACgsGMiwS0845.jpg


卸載父卷,以子卷掛載格式如下

wKioL1YU_qmQjrl0AAAeaQDQ5fk811.jpg

wKiom1YU_pOBi8JAAAFKcU20-CU842.jpg

wKioL1YU_qmgvjBbAAGv9BD1628252.jpg

在父卷時創建的文件重新掛載子卷,仍然存在

wKiom1YU_uvjL_MvAAApqoNXzNo281.jpg 

子卷的刪除

wKiom1YU_vziR7bmAADAhQyBL5A666.jpg 

快照卷的實現

wKioL1YU_zegZoIPAAF0Z8c7HTU797.jpg 

注意:

將多個物理設備製作成一個btrfs文件系統時,對其中一個設備的查看、掛載即是對整個文件系統的操作

對一個擁有子卷的文件系統操作時,對父卷掛載,其子卷也將掛載卸載亦然

子卷掛時,其父卷將不能掛載

當製作snapshot卷時,必須將快照卷建立在同一個父卷中!

進行raid轉換,或刪除設備時,要遵循raid級別,一般不要強制操作

掛載後,一般對掛載點操作!

兩外重要的一點是子卷不是目錄,而可以當做單獨的一個文件系統來使用,例如掛載、卸載等!

 

 


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