btrfs文件系統(tǒng)簡(jiǎn)介

在Linux操作系統(tǒng)中,有許多文件系統(tǒng),例如常見(jiàn)的ext3、ext4、xfs等,考慮到這些文件系統(tǒng)的限制,一種全新的文件系統(tǒng)被設(shè)計(jì)出來(lái)——btrfs

一、btrfs文件系統(tǒng)簡(jiǎn)介

btrfs通常解釋為b-tree filesystem、better filesystem等,目標(biāo)是用來(lái)解決 ext3文件系統(tǒng)的一些缺陷,例如單一文件系統(tǒng)的限制、總文件系統(tǒng)的限制。btrfs加入了一些核心特性:

核心特性:
    1、可由底層多個(gè)物理卷進(jìn)行支持
    2、數(shù)據(jù)存儲(chǔ)形式支持RAID,同時(shí)在聯(lián)機(jī)的情況下進(jìn)行“添加硬盤(pán)”、“移除硬盤(pán)”、“修改文件系統(tǒng)的大小”
    3、支持寫(xiě)時(shí)復(fù)制更新機(jī)制,即當(dāng)我們修改文件時(shí),btrfs先復(fù)制一份原文件,對(duì)新文件進(jìn)行修改,結(jié)束時(shí),原文件名指向新文件。
    4、快照,支持卷的快照和快照的快照
    5、透明壓縮,即當(dāng)文件系統(tǒng)存儲(chǔ)文件時(shí),文件系統(tǒng)會(huì)自動(dòng)將文件進(jìn)行壓縮再存儲(chǔ),當(dāng)提取時(shí),文件系統(tǒng)自動(dòng)進(jìn)行解壓縮,但是用戶(hù)看不到此過(guò)程。
    6、子卷和校驗(yàn)碼

二、btrfs文件系統(tǒng)的創(chuàng)建

工具:
1、redhat 7以上默認(rèn)支持btrfs文件系統(tǒng),7以下,需要重新編譯內(nèi)核。
2、/dev/sdb 、/dev/sdc、/dev/sdd 二塊20G硬盤(pán),一塊10G

 #mkfs.btrfs -L 'test'  /dev/sd[b-c]       ==>對(duì)前2塊硬盤(pán)進(jìn)行格式化
 #btrfs filesystem show                    ==>查看所有的btrfs文件系統(tǒng)
   Label: 'test'  uuid: 8631412e-772e-4099-873b-e9ac9da80e54
        Total devices 2 FS bytes used 112.00KiB
        devid    1 size 20.00GiB used 2.03GiB path /dev/sdb
        devid    2 size 20.00GiB used 2.01GiB path /dev/sdc

  Btrfs v3.12
#mount   /dev/sdb  /mydata     ==>掛載文件系統(tǒng),2塊盤(pán)只需掛載一個(gè)即可,因?yàn)槎际莃trfs 。/mydata是自己所創(chuàng)建
#btrfs   filesystem  df   /mydata   ==> 查看掛載的文件系統(tǒng)具體內(nèi)容
  Data, RAID0: total=2.00GiB, used=768.00KiB
  Data, single: total=8.00MiB, used=0.00
  System, RAID1: total=8.00MiB, used=16.00KiB
  System, single: total=4.00MiB, used=0.00
  Metadata, RAID1: total=1.00GiB, used=112.00KiB
  Metadata, single: total=8.00MiB, used=0.00
  可以看出數(shù)據(jù)和原數(shù)據(jù)的組織方式

當(dāng)我們需要使用btrfs的透明壓縮時(shí)

#mount -o compress={ lzo | zlib }  /dev/sdb  MOUNT_POINT
壓縮格式有l(wèi)zo和zlib

當(dāng)我們需要對(duì)文件系統(tǒng)的大小進(jìn)行變化時(shí),我們可以用

btrfs filesystem resize [+|-]#G  MOUNT_POINT  ==>調(diào)節(jié)大小
btrfs filesystem resize max    MOUNT_POINT ==>調(diào)整為邏輯最大

調(diào)節(jié)后,可以使用df -h進(jìn)行查看
當(dāng)我們需要添加新磁盤(pán)時(shí)

btrfs device add  【option】/dev/sdd  /mydata    ==>在原文件里加入新的設(shè)備,option可使用-f進(jìn)行強(qiáng)制添加
image.png

添加新的硬盤(pán)后,若想進(jìn)行硬盤(pán)間的數(shù)據(jù)平衡

開(kāi)始數(shù)據(jù)平衡:
    #btrfs balance start   MOUNT_POINT  
執(zhí)行數(shù)據(jù)平衡中,查看數(shù)據(jù)狀態(tài):
    #btrfs balance status  MOUNT_POINT
數(shù)據(jù)平衡中若要暫停:
    #btrfs balance pause MOUNT_POINT
數(shù)據(jù)平衡暫停后要重新開(kāi)啟:
    #btrfs balance resume MOUNT_POINT
image.png

若想重新改變數(shù)據(jù)和原數(shù)據(jù)的組織方式,可使用命令

btrfs  balance start  -dconvert=raid2 MOUNT_POINT
          ===>修改數(shù)據(jù)的組織方式為raid2
btrfs  balance start  -mconvert=raid2 MOUNT_POINT
          ===>修改原數(shù)據(jù)的組織方式為raid2
  
 PS:此處需注意,RAID類(lèi)型和其需要的硬盤(pán)數(shù),例如RAID5,需要最少3塊硬盤(pán),否則會(huì)報(bào)錯(cuò)。
image.png

當(dāng)我們要移除設(shè)備時(shí)

btrfs device delete DEVICE_NAME   MOUNT_POINT
  ==> 從文件系統(tǒng)中移除設(shè)備,可使用`df -h`查看

三、子卷的管理

創(chuàng)建子卷

btrfs subvolume  create  MOUNT_POINT/sub_name 
      ===> 自動(dòng)在父卷的掛載目錄下創(chuàng)建一個(gè)子卷目錄,名為su b_name
btrfs subvolume  list  MOUNT_POINT 
      ==>列出掛載的文件系統(tǒng)下的子卷
image.png

掛載子卷

mount  -o  subvol=子卷名  /dev/sdb   /mnt
        ==> /dev/sdb中的子卷"xx"掛載到/mnt目錄中
PS:當(dāng)掛載父卷時(shí),子卷默認(rèn)被掛載;若只想掛載子卷,則使用

查看子卷和刪除

btrfs subvolume show /mnt 
       ==>查看子卷的信息
btrfs subvolume delete  MOUNT_POINT/sub_name
      ==>刪除子卷

快照的創(chuàng)建和刪除

btrfs  subvolume  snapshot  /MOUNT_POINT/snap_name
         ==> 創(chuàng)建快照
btrfs subvolume delete /MOUNT_POINT/DIR_snap
        ==>刪除快照

四、格式的轉(zhuǎn)換

ext4文件系統(tǒng)如何轉(zhuǎn)換為btrfs?,如何轉(zhuǎn)回來(lái)?
此處對(duì)已經(jīng)移除的硬盤(pán)進(jìn)行操作,命令

btrfs-convert  DEVICE_1
         ==>轉(zhuǎn)換為btrfs
btrfs-convert -r  DEVICE_1
        ==>轉(zhuǎn)換回來(lái)

如圖所示:


images.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容