天天看點

btrfs檔案系統--馬哥51cto三期

btrfs檔案系統

  Btrfs(B-tree,Butter FS,Better FS)其遵從GPL協定,由Oracle于2007年開發。

  特性:

    1.多實體卷支援:由底層多個實體卷組成,支援RAID{0,1,5,6,10},以聯機“添加”,“移除”,“修改”。

2.寫時複制更新機制(COW):複制,更新及替換指針,而非“就地更新”:改變檔案是先将檔案複制一份,在新檔案上進行修改,最後将檔案名指針指向新檔案,原檔案保留,利于檔案恢複。

3.資料集中繼資料校驗機制:checksum

4.子卷(sub_volume):在一個卷上建立子卷,子卷可單獨挂載使用

5.快照(snapshot):差別于LVM快照的是可以對快照進行快照

6.透明壓縮機制:存放檔案時自動壓縮(lzo,zlib),檢視檔案時自動解壓縮,但會消耗更多的cpu的時鐘周期

7.Btrfs指令将多個小指令組合為一個指令

  檔案系統建立:centos7以上版本使用

mkfs.btrfs

    -L ‘LABEI’:指明卷标

-d <type>:raid0,raid1,raid5,raid6,raid10,single:指明資料是如何跨裝置存放

-m <profile>:raid0,raid1,raid5,raid6,raid10,single,dup:指明中繼資料是如何跨裝置存放

-O <feature>

-O list-all:列出支援的所有feature:

例:mkfs.btrfs -L 'mydata' /dev/sdb /dev/sdc /dev/sdd

  屬性檢視:

檢視指定檔案系統的屬資訊

例:btrfs filesystem show /dev/sdb

檢視所有檔案系統的資訊

例:btrfs filesystem show --all-devices

檢視已挂載的檔案系統的資訊

例:btrfs filesystem show --mounted

  檢視卷标:

例:btrfs filesystem label /dev/sdb

  檔案系統挂載:

例:mount -t btrfs /dev/sdb /mydata

Note:-t如能自動擷取到,可以不指定

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

Note:使用壓縮算法存放檔案,可以使用lzo與zlib兩種

  調整檔案系統大小:

例:btrfs filesystem resize max /mydata

Note:max選項是調整至最大,[+/-]<size>[kKmMgGtTpPeE]可增大或減小檔案系統

  添加或删除磁盤

例1:添加

btrfs device add /dev/sdb /mydata

Note:添加新的磁盤後要将檔案均衡

btrfs balance start /mydata/

Note:此操作如檔案系統中占用空間過多時,速度慢,且占用磁盤IO

例2:删除

btrfs device delete /dev/sdb /mydata

Note:磁盤移除可支援聯機操作,不損壞資料,在磁盤被移除前,資料會被轉移到别的磁盤

  改變中繼資料級别的組織形式

例:btrfs balance start -mconvert=raid5 /mydata

  子卷:

例1:建立子卷

btrfs subvolume creat /mydata/logs

例2:檢視新建立的子卷

btrfs subvolume list /mydata/

例3:單獨挂載子卷

mount -o subvol=logs /dev/sdc /mnt

mount -o subvolid=260 /dev/sdc /mnt

例4:删除子卷

btrfs subvolume delete /mydata/logs

例5:子卷快照

btrfs subvolume snapshot  /mydata/logs  /mydata/logs_snapshot

Note:子卷快照必須與子卷在同一個父卷内

例6:對單檔案快照

cp --reflink ifcfg.conf ifcfg_snapshot 

  檔案系統轉換

例1:ext4轉換為btrfs

btrfs-convert /dev/sdd1

例2:btrfs轉換為ext4

btrfs-convert -r /dev/sdd1

本文轉自 元嬰期 51CTO部落格,原文連結:http://blog.51cto.com/jiayimeng/1841030

繼續閱讀