Linux文件系統,帶寫時復制,改進了ext3文件系統的單個文件大小限制,增加了其他特性,如可寫快照、快照的快照、內置RAID、subvloume,註重容錯、修復和易管理。我們來看看什麽是linux btrfs文件系統及其管理關系!
什麽是btrfs?
Btrfs(B-tree file system,通常讀作Butter FS、Better FS或B-tree FS)Linux文件系統,具有COW(copy-on-write)功能,改進了ext3文件系統的單個文件大小限制,並增加了其他功能,如可寫快照、快照、內置RAID和subvloume,側重於容錯和修復。單個文件可達16EB,最大文件數2 64,最大卷容量16EB等。
btrfs的功能特性
1,牛:寫時復制。每次寫入數據時,都會先寫入新的數據塊。成功寫入後,舊塊的指針會更改為新塊的指針,而不是指針本身。
2、多物理卷支持,btrfs內置raid,在線添加刪除磁盤設備,在線擴展減少磁盤空間。
3、數據和元數據校驗碼、校驗和
4.子卷,可以單獨安裝。
5.可寫快照、快照的快照、單個文件的快照。
6、透明壓縮
7、ext3/4和btrfs互不痛苦。
btrfs的基本用法:
Bash/shell代碼將內容復制到剪貼板
[root @[root @ localhost ~]# Bt rfs-help #查看幫助。可以看到btrfs有很多子命令和很多用法。這裏只是壹些常見選項的例子。
用法:btrfs [ - help] [ - version] [...] []
Btrfs子卷創建[-i] [/] #創建子卷。
創建子卷
Bt RFS子卷刪除[選項] [...] #刪除子卷
刪除子卷
Bt RFS子卷列表[選項] [-g [+|-]值] [-c [+|-]值] [-sort = gen,ogen,rootid,path] #顯示子卷列表。
列出子卷(和快照)
Bt RFS子卷快照[-r] [-i] | [/] #創建子卷快照。
創建子卷的快照
Btrfs subvolume get-default #獲取子卷的默認文件系統。
獲取文件系統的默認子卷
Btrfs subvolume set-default #為子卷設置默認系統。
設置文件系統的默認子卷
Btrfs子卷find-new #列出了btrfs文件系統中最近修改的文件,並與find命令結合使用。
列出文件系統中最近修改的文件
Btrfs subvolume show #顯示更多子卷信息。
顯示子卷的更多信息
Btrfs子卷同步[...] #子卷同步,類似掛載同步模式,內存數據同步到磁盤,需要驗證。
等待,直到給定子卷完全從文件系統中刪除。
Btrfs filesystem df [options] #顯示掛載的文件系統的詳細信息。
顯示裝載點的空間使用信息
Bt RFS file system show[options][| | | label]#顯示用於創建文件系統的磁盤信息。
顯示文件系統的結構
Btrfs文件系統同步#強制文件系統同步。
在文件系統上強制同步
btrfs文件系統碎片整理[選項] |
[| ...] #碎片整理
整理文件或目錄碎片
BT RFS文件系統resize[devid:][+/-][kkmmggttppee]|[devid:]Max # BT RFS文件系統在線擴展和收縮空間。
調整文件系統的大小
Btrfs文件系統標簽[|] [] #更改btrfs文件系統卷標。
獲取或更改文件系統的標簽
Bt RFS文件系統使用[選項] [...] #顯示文件系統的當前使用信息。
顯示內部文件系統使用的詳細信息。
Btrfs balance start [options] #將磁盤區塊、在線數據和元數據存儲模式、單個磁盤改為raid,前提是滿足raid的要求。
跨設備平衡區塊
Btrfs平衡暫停#暫停塊更改。當數據量較大,轉換時間較長時,先暫停。
暫停運行平衡
Btrfs balance cancel #取消塊更改,如上所述。
取消運行或暫停的平衡
Btrfs balance resume #中斷平衡操作,如上所述。
恢復中斷的平衡
Btrfs平衡狀態[-v] #如上所示顯示平衡操作狀態。
顯示正在運行或暫停的天平的狀態
Btrfs設備添加[選項] [...] #文件系統添加磁盤。
向文件系統添加設備
Btrfs設備刪除[...] #文件系統刪除磁盤
從文件系統中刪除設備
Bt RFS設備掃描[(-d |-所有設備)| [...]] #文件系統磁盤掃描
掃描btrfs文件系統的設備
Btrfs設備就緒# guess是檢查添加的設備是否已掛載。
檢查設備,查看其緩存中是否有所有要裝載的設備
Btrfs設備統計[-z] | #顯示文件系統的設備狀態。
顯示當前設備IO統計。-z以在之後重置統計信息。
Bt RFS設備使用[選項] [...] #顯示文件系統內設備的詳細使用信息。
顯示設備內部分配的詳細信息。
Btrfs文件系統管理
為分區創建btrfs文件系統。
Bash/shell代碼將內容復制到剪貼板
[root @ localhost ~]# fdisk-l | grep " disk/dev/SD[a-z]" #準備SD {b,c,d,e}四個20G的磁盤,不帶任何分區。
Disk /dev/sda: 107.4 GB,107374182400字節,209715200扇區
Disk /dev/sdb: 21.5 GB,21474836480字節,41943040扇區
Disk /dev/sdc: 21.5 GB,21474836480字節,41943040扇區
Disk /dev/sde: 21.5 GB,21474836480字節,41943040扇區
Disk /dev/sdd: 21.5 GB,21474836480字節,41943040扇區
創建壹個單獨的分區btrfs並查看它
Bash/shell代碼將內容復制到剪貼板
[root @ localhost ~]# mkfs . Bt rfs-L ' Bt rfs '/dev/sdb
btrfs-progs v3.19.1
參見pat特性“extref”:將每個文件的硬鏈接限制增加到65536
打開不兼容功能“skinny-metadata”:縮減大小的元數據範圍引用
fs在/dev/sdb上創建了標簽btrfs
節點大小16384葉大小16384扇區大小4096大小20.00GiB
[root@localhost ~]# btrfs文件系統顯示
標簽:' Bt rfs ' uuid:2a 9 F0 d3d-f8a 0-4757-9f4e-d 1 EFA 04 a 683 a
總設備數1 FS字節已用112.00KiB
devid 1大小20.00GiB使用2.04GiB路徑/dev/sdb
btrfs-progs v3.19.1
[root @ localhost ~]# mount-o compress = lzo-l Bt rfs/Bt rfs/掛載時可以設置透明壓縮機制。
[root@localhost ~]# btrfs文件系統df /btrfs
數據,單個:總計= 8.00千磅,已用= 256.00千磅
系統,DUP:總計= 8.00磅,已用= 16.00磅
系統,單個:總容量= 4.00兆字節,已用容量= 0.00兆字節
元數據,DUP:總計= 1.00吉蔔,已用= 112.00吉蔔
元數據,單個:總計= 8.00兆字節,已用= 0.00兆字節
GlobalReserve,single:total = 16.00 MB,used=0.00B
添加另壹個磁盤
Bash/shell代碼將內容復制到剪貼板
[root @ localhost ~]# btrfsdevice Add/dev/SDC/Bt rfs #添加壹個磁盤,用Bt rfs device delete/dev/SDC/Bt rfs刪除。
[root@localhost ~]# btrfs fi sh
標簽:' Bt rfs ' uuid:2a 9 F0 d3d-f8a 0-4757-9f4e-d 1 EFA 04 a 683 a
總設備2 FS字節已用384.00KiB
devid 1大小20.00GiB使用2.04GiB路徑/dev/sdb
devid 2大小20.00GiB使用0.00B路徑/開發/sdc
btrfs-progs v3.19.1
[root@localhost ~]#
在線增減空間,在線換空間,可以讓lvm坐冷板凳。
Bash/shell代碼將內容復制到剪貼板
[root @ localhost ~]# btrfsfiresize-10g/btrfs/#在線空間縮減
將“/btrfs/”的大小調整為“-10G”
[root@localhost ~]# btrfs fi sh
標簽:' Bt rfs ' uuid:2a 9 F0 d3d-f8a 0-4757-9f4e-d 1 EFA 04 a 683 a
總設備2 FS字節已用384.00KiB
devid 1大小10.00GiB已用2.04GiB路徑/dev/sdb
devid 2大小20.00GiB使用0.00B路徑/開發/sdc
btrfs-progs v3.19.1
[root @ localhost ~]# btrfsfiresize+7g/Bt rfs/#在線添加空間。
調整“+7G”的“/btrfs/”的大小
[root@localhost ~]# btrfs fi sh
標簽:' Bt rfs ' uuid:2a 9 F0 d3d-f8a 0-4757-9f4e-d 1 EFA 04 a 683 a
總設備2 FS字節已用384.00KiB
devid 1大小17.00GiB已用2.04GiB路徑/dev/sdb
devid 2大小20.00GiB使用0.00B路徑/開發/sdc
btrfs-progs v3.19.1
[root@localhost ~]#
在線更改數據和元數據的結構
Bash/shell代碼將內容復制到剪貼板
[root @ localhost ~]# Bt rfs fi df/Bt rfs/
數據,單個:總計= 8.00千磅,已用= 256.00千磅
系統,DUP:總計= 8.00磅,已用= 16.00磅
系統,單個:總容量= 4.00兆字節,已用容量= 0.00兆字節
元數據,DUP:總計= 1.00吉蔔,已用= 112.00吉蔔
元數據,單個:總計= 8.00兆字節,已用= 0.00兆字節
GlobalReserve,single:total = 16.00 MB,used=0.00B
[root @ localhost ~]# Bt rfs balance start-mconvert = raid 1/Bt rfs/#-mconvert是改變元數據區域的存儲結構。
完成,必須重新定位5個區塊中的4個
[root@localhost ~]# btrfs fi sh
標簽:' Bt rfs ' uuid:2a 9 F0 d3d-f8a 0-4757-9f4e-d 1 EFA 04 a 683 a
總設備2 FS字節已用192.00KiB
devid 1大小17.00GiB已用296.00MiB路徑/dev/sdb
devid 2大小20.00GiB使用288.00MiB路徑/dev/sdc
btrfs-progs v3.19.1
[root @ localhost ~]# Bt rfs fi df/Bt rfs/
數據,單個:總計= 8.00千磅,已用= 64.00千磅
系統,RAID1:總容量= 32.00磅,已用容量= 16.00磅
元數據,raid1: total = 256.00 MIB,used = 112.00 kib #更改為raid1。
GlobalReserve,single:total = 16.00 MB,used=0.00B
[root @ localhost ~]# Bt rfs balance start-dconvert = raid 1/Bt rfs/#-dconvert是改變數據區的存儲結構。
完成,必須從3個區塊中重新定位1