btrfs文件系統常用命令使用

Btrfs,也可稱為B-tree,Butter FS,Better FS,是CentOS7中一種新型的文件系統。

核心特性:

1.多物理卷支持,可由多個物理卷(pv)組成,支持raid,以聯機添加刪除

2.支持寫實復制(Copy on Write,Cow)

復制一份修改,改好之后用指針替換,出錯時指回原本文件。而不是就地修改

3.數據及元數據校驗碼:checksum

4.子卷:Sub_volume

5.快照,基于寫實復制,支持快照的快照,能實現增量快照

6.透明壓縮

格式化:

mkfs.btrfs -L LABEL /dev/device1 /dev/device2

mkfs.btrfs
-L            #label
-d <type>    #date,數據保存的類型,raid0,raid5,raid6,raid10,single
-m,metadata  #元數據保存類型 raid0,raid5,raid6,raid10,single,dup(冗余)
-O            #功能選項,特性,在格式化時生效

mkfsbtrfs -O list-all查看支持的格式化選項。
由于不同版本內核可能功能不一樣,所以用這個命令查看

feature.png

用blkid /dev/device1和device2查看信息的時候,兩個硬盤的pv的主uuid一樣,副uuid不一樣

QQ截圖20160326003401.png

注意:雖然這兩個設備是放在一起格式化了,但是并不是子卷的關系。只是將兩個硬盤設備格式化成一個btrfs設備

btrfs的子命令以及詳細用法介紹

1.filesystem    管理命令

btrfs filesystem show                          #顯示詳細信息
btrfs filesystem df <掛載點>                   #已掛載分區使用狀況
btrfs filesystem resize [+?G|max] <掛載點>    #增減容量
btrfs filesystem defragment                    #碎片整理

filesystem.png

2.device    #添加到已有的掛載點上使用add之后,第二個被添加的就會綁定在一起。

#下一次掛載的時候依然是綁定的,所以要用delete來拆除設備才能分開。

btrfs device add <需要添加的設備> <掛載點>
btrfs device delete <需要添加的設備> <掛載點>

device.png

在這里我們可以看見這兩塊硬盤是獨自的btrfs。

我們可以通過device子命令來添加,將兩個空的btrfs硬盤合并成一個

device add.png

合并之后,他們的主uuid一樣,副uuid不一樣。

容量為兩個20G硬盤合并的40G。

3.balance    均衡

btrfs balance start <掛載點>   #開始
        -mconvert=raid[0,1,5,10] BTRFS_LABEL metadata
        -dconvert=raid[0,1,5,10] BTRFS_LABEL data
                                 #convert之類的選項,可以通過man文檔中的filter字段查到
btrfs balance pause        #暫停
btrfs balance status        #狀態

balance.png

使用device子命令增加容量后,再使用balance子命令。

可以把文件轉移一部分到新的pv上,能為其他硬盤減少讀寫壓力。

balance1.png

假如在格式化的時候沒有指定數據和元數據的raid類型,也可以通過balance來修改。

4.subvolume    子卷命令

#子卷是什么?舉個簡單的例子,我們可以想象根目錄是一個主卷。而下面的/usr,/bin,/sbin等文件夾都能設置成子卷。
#而需要的時候,可以只掛載子卷。但是如果掛載了主卷,下面的子卷都會全部掛載
#想要單獨掛載子卷,而不掛載上級卷的話,要指定id或者label
btrfs volume create 主卷下的掛載點
btrfs volume delete 主卷下的掛載點

subvolume.png

    snapshot

snapshot1.png

#注意:創建快照,是對創建快照一個瞬間的狀態進行定格。
#也就是說,sub1里面沒有文件的時候創建快照的。用快照還原的話,sub1就是個空分區。
#如果sub1里面有一個文件。在創建快照之后,沒修改的那一份保留在sub1_snapshot中
#往后如果sub1中的文件遭到多次修改,sub1_snapshot中的數據也不會改變,因為我們做的快照只是這一瞬間的。
#第二次修改的那個瞬間就不管。

snapshot_對比.png

例如:我們給空的sub1創建一個sub1_snapshot快照,我們復制進去一個conf配置文件。snapshot子卷下面一點變化也沒有

issu.png

#而我們復制一個issue文件進去,再創建一個快照2的時候,snapshot2里面就會有一個issue文件。
#而這個時候,我們怎么修改sub1內的issue文件,snapshot2的issue文件也不會改變。
#因為快照只對那一瞬間的issue進行了定格。

    list BTRFS_LABEL_NAME 列出指定btrfs下的子卷及其id

    [root@localhost ~]# btrfs subvolume list /media/btrfs/
    ID 261 gen 54 top level 5 path sub1
    ID 262 gen 53 top level 5 path sub2
    ID 263 gen 54 top level 5 path sub1_snapshot

只掛載子卷(假如操作系統是btrfs,如brtfs的/下的子卷是/usr/,/lib等)

mount -o subvolid=ID MOUNT_POINT

掛載子卷.png

對單獨文件創建快照

    cp –reflink

轉換

btrfs-convert EXT4_DEVICEext4轉換成btrfs
btrfs-convert -r BTRFS_DEVICE此前為ext4的btrfs轉換回ext4

透明壓縮機制:

mount -o compress=[lzo|zlib] DEVICE /MOUNT_POINT

由于讀寫的時候都要壓縮,所以要占用CPU來壓縮和解壓

原創文章,作者:菠菜,如若轉載,請注明出處:http://www.www58058.com/13386

(3)
菠菜菠菜
上一篇 2016-03-06
下一篇 2016-03-07

相關推薦

  • rsyslog日志存儲到mysql數據庫中并利用loganalyzer進行web圖形化分析管理

    概述     系統日志的重要性,相信大家都深有體會,當發生故障后,第一時間就是查看相關報錯信息和日志信息,以定位問題所在,還可以基于日志,進行日志的分析,從而獲取系統運行狀態的一些規律,本篇就介紹關于系統日志的先關內容,具體分為:     1、rsyslog相關概念的介紹 &nb…

    Linux干貨 2016-10-18
  • IT基礎設施工具—Puppet

    一、Puppet簡介 Puppet是一款使用GPLV2X協議授權的開源管理配置工具,基于ruby語言開發的自動化系統配置工具,可以C/S模式或獨立運行,支持對所有UNIX及類UNIX系統的配置管理,既可以通過客戶端—服務器的方式運行,也可以獨立運行。Puppet適用于服務器管的整個過程 ,比如初始安裝、配置更新以及系統下線。puppet可以為系統管理員提供方…

    Linux干貨 2017-11-26
  • Linux基礎知識(二)

     本文的主要內容是:  1.Linux上的基本文件管理命令  2bash的特性及其命令狀態返回值  3.bash的花括號展開機制  4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息  5如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?  &nb…

    Linux干貨 2016-09-25
  • Mariadb數據庫復制系列(一):主從復制

      實驗一:MySQL主從復制的實現 1、實驗環境 確保各節點之間的時間同步 2、修改主節點的mysql服務配置文件,讓其符合主從架構中主節點的要求 3、查看主節點現有數據情況和二進制日志使用情況 4、對主節點的數據利用xtrabackup進行完全備份 由于兩個從節點是后期加入,故采取備份主節點的數據,還原到從節點上,然后讓從節點從備份時刻的二進制日志的位置…

    2016-11-24
  • 馬哥教育網絡班21期+第9周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash     #     nolog=`awk -F: '$…

    Linux干貨 2016-09-19
  • screen命令

    安裝SCREEN[root@centos6 ~]# dfFilesystem     1K-blocks    Used Available Use% Mounted on/dev/sda2       51475068 5052580  43801048  11% /…

    2017-07-22
欧美性久久久久