系統基礎之Btrfs文件系統詳解

btrfs文件系統:技術預覽版(centos7)

描述:

Btrfs(B-tree,Butter FS,Better fs),GPL授權,Orale,2007
寫實復制特性(Cow)
    cp --reflink (只能在btrfs文件系統中使用)
想取代ext系統系統,
支持非常大文件,文件檢查,快照,增量快照,快照單個文件,支持raid功能 lvm功能.
已經有企業在生產環境中使用btrfs

核心特性:

  • 1.多物理卷支持:
    支持將多個底層物理設備組織成同一個文件系統,類似物理卷,,btrfs可由多個底層物理卷組成,支持RAID,以聯機實現物理卷的"添加,移除,修改"

  • 2寫時復制更新機制(CoW):復制,更新及替換指針,而非"就地更新"

不修改文件時,復制的文件無文件內容,指針仍指向原文件的數據
修改文件時,不立即修改源文件,會對目標文件進行備份,對備份文件進行修改,把文件名指向,由源文件改為備份文件,源數據保留,方便數據恢復.
  • 3.數據及元數據校驗碼機制:
    存儲每個文件時,把文件的元數據的校驗碼和數據的校驗碼,通過文件的屬性拓展保存下來.訪問文件時,通過掃描校驗碼,可快速判斷文件是否受損.一旦受損,自動嘗試修復.極大保證數據的可靠性

  • 4.支持子卷(sub_volume):
    在某卷上創建諸多子卷,每個子卷可以實現單獨使用和掛載

  • 5.快照:
    基于寫時復制機制,比lvm的快照,增加了差異(增量)快照,可以對快照的進行快照.完成對快照后的文件改變進行再次快照.

  • 6透明壓縮機制:
    在這個分區上存儲文件,,想節約空間,可以把任何數據流發往btrfs文件系統上,自動通過某些占據cpu的時鐘周期完成數據壓縮存放,用戶不知道.讀取時自動解壓縮.但消耗cpu的時鐘周期.

使用:

1.創建btrfs文件系統

mkfs.btrfs命令:
    mkfs.btrfs [OPTINOS] 
    -L 'LABEL':指明卷標
    -d <type> :指明數據存儲類型
        raid0,raid0,raid5,raid6,raid10,single
    -m <profilr>:指明元數據存儲機制(底層物理存儲設備空間夠用)
        raid0,raid0,raid5,raid6,raid10,single(單個文件) or dup(冗余)
    -O <feature>:在格式化,指明其他特性
        -O list-all:列出支持的所有feature:

創建意義:基于分區,btrfs文件系統既然支持raid0,raid0,raid5,raid6,raid10 ,把btrfs創建在不同磁盤不同分區有意義嗎?
不打算使用raid0,raid0,raid5,raid6,raid10具有冗余能力的磁盤io能力外,可以簡單使用多個磁盤組合起來成為一個大分區使用,那么在不同磁盤不同分區創建并無意義.

btrfs filesystem命令:
show:
sync:
df:查看
defragmenting:
resize:
label:指明或顯示卷標

管理物理卷(btrfs處于使用掛載狀態)
1.添加新的物理卷
dtrfs device
dtrfs device add /dev/sd# /mntdate
2.把原有的數據均衡到新的物理卷
btrfs-balance:start(開始),cancel(暫停),resume(繼續),status(狀態)
btrfs balance start /mydate

3.移除物理卷
btrfs文件系統移除物理卷,會在操作前,自動移走要移除物理卷里的數據,可直接執行移除命令.

btrfs divice delete
btrfs divice delete /devsdb /mydate

需要改數據的raid級別
btrfs balance start -mconvert=raid5 /mntdate
創建子卷
btrfs subvolume create /掛載點/子卷名

實戰:
1.創建

[root@w7 ~]# mkfs.btrfs -L btrfs /dev/sde /dev/sdf (磁盤不分區,直接格式化)
[root@w7 ~]# btrfs filesystem show  查看btrfs
Label: 'btrfs'  uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd
    Total devices 2 FS bytes used 112.00KiB
    devid    1 size 20.00GiB used 2.03GiB path /dev/sde
    devid    2 size 20.00GiB used 2.01GiB path /dev/sdf
btrfs-progs v3.19.1
[root@w7 ~]# blkid /dev/sde   兩個磁盤UUID一樣
/dev/sde: LABEL="btrfs" UUID="c1e91916-3ab1-40a5-a1b4-b41c11abfbfd" UUID_SUB="a7cd116c-fa7d-44f8-9763-892f2c9549d3" TYPE="btrfs" 
[root@w7 ~]# blkid /dev/sdf   兩個磁盤UUID一樣
/dev/sdf: LABEL="btrfs" UUID="c1e91916-3ab1-40a5-a1b4-b41c11abfbfd" UUID_SUB="53bcfb31-fe56-4cdb-a987-ac9a9d7b41fd" TYPE="btrfs" 
[root@w7 ~]# mkdir /mntdate
[root@w7 ~]# mount -t btrfs /dev/sde /mntdate/   使用兩個磁盤中的任何一個

2.縮減

mount /dev/sde /mntdate/                縮減必須在掛載的情況下
btrfs filesystem show /mntdate             查看btrfs的磁盤情況
btrfs filesystem resize -10G /mntdate    減10G
btrfs filesystem show /mntdate            查看btrfs的磁盤情況,并沒有更改        
btrfs filesystem df /mntdate            查看btrfs的各磁盤情況,并沒有更改
df -h                                    看當前系統下的掛載磁盤情況,查看btrfs的整體磁盤大小 變30G

3.擴展(必須在物理磁盤的空間范圍內,如想繼續擴大,需添加新的物理卷)

[root@w7 ~]#mount /dev/sde /mntdate/ 操作必須在掛載的情況下
[root@w7 ~]#btrfs filesystem show /mntdate 查看btrfs的磁盤情況
[root@w7 ~]# btrfs filesystem resize +5G /mntdate
Resize '/mntdate' of '+5G'
[root@w7 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 59G 1.8G 57G 3% /
devtmpfs 480M 0 480M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 483M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 111M 87M 57% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sde 35G 18M 28G 1% /mntdate

[root@w7 ~]# btrfs filesystem resize max /mntdate 直接調整為最大
Resize '/mntdate' of 'max'
[root@w7 ~]# df -h 查看文件系統的空間大小為40
Filesystem Size Used Avail Use% Mounted on
/dev/sde 40G 18M 38G 1% /mntdate

4.添加新的物理卷
dtrfs device
dtrfs device add /dev/sd# /mntdate

[root@w7 ~]# btrfs device add /dev/sdb /mntdate
/dev/sdb appears to contain a partition table (dos).
Use the -f option to force overwrite.
[root@w7 ~]# btrfs device add -f /dev/sdb /mntdate
[root@w7 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 59G 1.8G 57G 3% /
devtmpfs 480M 0 480M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 483M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 111M 87M 57% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sde 120G 18M 56G 1% /mntdate

2.原有數據均衡到新的物理卷
[root@w7 ~]# btrfs balance start /mntdate
Done, had to relocate 5 out of 5 chunks
[root@w7 ~]# btrfs filesystem show
Label: 'btrfs' uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd
Total devices 3 FS bytes used 1.13MiB
devid 1 size 20.00GiB used 1.03GiB path /dev/sde
devid 2 size 20.00GiB used 2.00GiB path /dev/sdf
devid 3 size 80.00GiB used 2.03GiB path /dev/sdb

btrfs-progs v3.19.1

3.移除物理卷
[root@w7 ~]# btrfs filesystem show
Label: 'btrfs' uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd
Total devices 3 FS bytes used 1.13MiB
devid 1 size 20.00GiB used 1.03GiB path /dev/sde
devid 2 size 20.00GiB used 2.00GiB path /dev/sdf
devid 3 size 80.00GiB used 2.03GiB path /dev/sdb
btrfs-progs v3.19.1
[root@w7 ~]# btrfs device delete /dev/sdb /mntdate 移除物理卷
[root@w7 ~]# btrfs filesystem show
Label: 'btrfs' uuid: c1e91916-3ab1-40a5-a1b4-b41c11abfbfd
Total devices 2 FS bytes used 1.45MiB
devid 1 size 20.00GiB used 1.28GiB path /dev/sde
devid 2 size 20.00GiB used 1.28GiB path /dev/sdf
btrfs-progs v3.19.1

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

(1)
wencxwencx
上一篇 2016-09-21 13:26
下一篇 2016-09-21 14:03

相關推薦

  • 文本過濾、文本查找工具應用示例

    文本過濾、文本查找工具應用示例 1.顯示當前系統上root、fedora或user1用戶的默認shell [root@localhost ~]# cat /etc/passwd|grep “^root\>\|^fedora\>\|^user1\>”|cut -d: -f7 /bin/bash /bin/bash /bin/bash 2.找出…

    Linux干貨 2017-07-30
  • GREP命令學習筆記

    GREP命令,全稱:Global search REgular expression and Print out the line. 是一個非常強大的文本搜索命令,與SED(stream editor,文本編輯工具)和AWK(文本分析、報告生成器)并稱文本處理三劍客。 一.GREP命令基本使用格式 grep [OPTIONS] PATTERN [FILE&#…

    Linux干貨 2016-06-22
  • Linux上文件管理命令、元素據及時間戳、bash的工作特性回顯和命令展開、定義別名,命令引用。

    文件管理命令: mkdir 創建空目錄 語法: mkdir [選項]…目錄… 選項: -P:逐層創建目錄。 -v:顯示過程。 -m:直接給定權限。 注意:路徑的基名為命令作用對象?;窂奖仨毚嬖?。 示例 創建/tmp/x1/a/a1和/tmp/x1/b rmdir 移除空目錄 語法 rmdir [選項]…目錄&#8230…

    Linux干貨 2017-12-10
  • 運維工程師技能需求排行

    這是我今天在拉勾網搜索運維,翻完了4四頁也招聘信息之后得到的,我的目的是想要看看之后的學習,哪個更應該成為重點,有些在我意料之中,有些還真的沒想到,算是努力了一個小時的收獲吧,分享給大家。
    注意:其中的看法僅代表個人觀點,很多都是依靠我自己的學習經驗和工作經驗累積的

    Linux干貨 2017-12-12
  • Linux發行版之間的聯系與區別及其哲學思想。

    一、Linux發行版之間的聯系與區別。 隨著Linux不斷發展,Linux所支持的文件系統類型也在迅速擴充。很多的數據中心服務器上都運行著Linux,可以節省大量的許可證費用及維護費用。但伴隨著Linux新版本的發行,其中每一個不同版本的Linux所支持的文件系統類型都有所不同。Linux的發行版有數百種之多。 1、Debian:是指一個致力于創建自由操作系…

    Linux干貨 2016-10-30
  • N26-第二周

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及相關示例演示;   1)alias:命令別名;     # alias ;獲取所有可用別名的定義;     # alias NAME=‘COMMAND’:定義別名;    &nbs…

    Linux干貨 2017-02-11
欧美性久久久久