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 08:53
下一篇 2016-03-07 22:26

相關推薦

  • 在Centos系統上安裝EPEL擴展源以及安裝htop工具

        Htop是一個強大的進程管理前端工具,但這是一個擴展工具,一般在Centos系統源中并沒有,所有我們需要到fedora-epel源中下載。         EPEL即Extra Packages for Enterprise Lin…

    Linux干貨 2016-02-14
  • Nginx 原理

    Web服務器處理并發連接請求的工作模型有以下幾種方式: 1、單線程web服務器(Single-threaded web servers)此種架構方式中,web服務器一次處理一個請求,結束后讀取并處理下一個請求。在某請求處理過程中,其它所有的請求將被忽略,因此,在并發請求較多的場景中將會出現嚴重的性能問題。(即一次只能處理一個請求) 2、多進程/多線…

    Linux干貨 2017-05-07
  • Redis應用場景

    1.  MySql+Memcached架構的問題 實際MySQL是適合進行海量數據存儲的,通過Memcached將熱點數據加載到cache,加速訪問,很多公司都曾經使用過這樣的架構,但隨著業務數據量的不斷增加,和訪問量的持續增長,我們遇到了很多問題: 1.MySQL需要不斷進行拆庫拆表,Memcached也需不斷跟著擴容,擴容和維護工作占據大量開發…

    Linux干貨 2015-02-25
  • 磁盤管理

    1、拿到一塊硬盤,通常來講,第一步是分區,然后是文件系統的創建,管理文件系統,第三步是掛載設備。 2、linux(準確的說是UNIX)哲學,whindows一切皆窗口,一切皆圖形。 3、磁盤是一個硬件設備,存放在/dev/目錄下,會有相應的文件來對應的表示這些設備文件,在這個目錄下存放的全是設備。 4、在/dev目錄下和設備相關的有兩種,一種是c開頭為字符,…

    Linux干貨 2017-04-22
  • 22期第二周課堂練習

    Linux上文件系統管理類命令都有哪些,其常用的使用方法及其相關示例演示     (1).cp文件復制命令     單源復制:cp [OPTION]… [-T] SOURCE DEST     多源復制:cp&nbs…

    Linux干貨 2016-08-22
  • 馬哥教育網絡班20期+第6周課程練習

    vim編輯器使用總結 一、文件的打開與關閉             打開文件:                 # vim [OPTION]… FILE…      …

    Linux干貨 2016-07-17
欧美性久久久久