btrfs文件系統管理及應用

Btrfs:可以稱爲(B-treeFS,Butter FS,Better FS),支持CoW機制;暫時在CentOS 7上可用;

        CoW:copy on write,寫時複製機制;


核心特性:

    多物理卷支持;一個btrfs可由多個底層物理卷,默認就可以支持RAID機制,支持聯機“添加”、“移除”、“修改”;

    寫時複製更新機制:複製、更新及替換指針,而不是在“就地”更新;

            在文件進行修改的時候,首先將文件複製一份出來,在複製出來的文件上進行修改,修改完成之後,將指向原有文件的指針修改指向到修改完成的文件上,若修改完成的文件出現了錯誤,則我們可以通過原文件進行修復。在某些情況下是很有用的。

    數據及元數據校驗碼:checksum,存儲每一個文件時,元數據的校驗碼及數據的校驗碼,通過文件的某些擴展屬性保存起來,在讀取文件時,可檢測文件是否受損,一旦文件受損,會自動嘗試修復文件。

    子卷功能:sub volume ,在一個捲上創建多個子卷,在每一個子捲上創建文件系統,並掛載使用;

    快照:支持快照的快照,因此可以實現類似增量快照的機制;

    透明壓縮:如果我們在存儲文件時,進行壓縮存儲,那麼在文件發往btrfs時,會自動的佔用時鐘週期,完成數據的壓縮存放,而用戶並不知道,在用戶讀取文件時,會自動的進行文件的解壓縮,可以實現節約磁盤空間。但是壓縮和解壓縮會佔用時鐘週期;


mkfs.btrfs命令:

    mkfs.btrfs [OPTIONS]

        常用選項:

            -L|--label <name>:指定文件系統的卷標;

            -m|--metadata <profile>:指明元數據的存放方式,是否可跨越多個物理卷,支持RAID機制;

            -d|--data <type>:指明數據的存放方式,支持RAID機制;

            -O|--features <feature1>[,<feature2>...]:在格式化文件系統的時候,是否直接開啓文件系統的某些特性,但是在一些老版本內核上未必支持所有特性;

                -O list-all: 列出支持的所有特性;


建議:在組織btrfs文件系統的時候,直接使用多塊磁盤。

查看btrfs文件系統屬性的方法:

    第一種:查看已經掛載的btrfs文件系統

        wKiom1YBZgegWug9AAA635YhM6E063.jpg

    第二種:查看所有的btrfs文件系統磁盤

        wKiom1YBZprB4zk2AAA-V84DYLo568.jpg

    第三種:查看指定的btrfs文件系統磁盤


創建btrfs文件系統:

        第一步:在虛擬機上添加兩塊磁盤。

        第二步:在新添加的兩塊磁盤上創建btrfs文件系統,並且指定卷標爲mydata。

                wKiom1YBZuex4mFLAAFyLQrdR7Q815.jpg

        第三步:查看已經建立的btrfs文件系統。

                wKiom1YBZyqhvamaAAEOzG3v2rM038.jpg

                兩個磁盤的UUID相同,但是UUID_SUB不同,故btrfs文件系統支持子卷功能。

                wKioL1YBZ1XTKvHqAAF4J-i2uxI648.jpg

        第四步:掛載已經建立好btrfs文件系統的磁盤。兩個磁盤指定一個就可以,因爲他們同屬於卷組。

                wKioL1YBZ4rgAu7lAAA7JkejbNg310.jpg


透明壓縮機制:

        mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

                wKiom1YBZ97yYOzQAABDXSbx6fs189.jpg

        使掛載的磁盤分區支持透明壓縮機制。


調整邏輯邊界可以不用卸載直接進行縮減和擴展。

減小btrfs文件系統的邏輯邊界大小:

        btrfs filesystem resize  [<devid>:]<size>[gkm]|[<devid>:]max <path>

        wKioL1YBaCzw322vAABhaCMFKrc029.jpg

        查看修改完之後的文件系統的大小:

        wKiom1YBaBTg9LtYAAGgGnAGqUQ192.jpg


擴展btrfs文件系統的邏輯邊界大小:

        spacer.gifwKiom1YBaGLC6kvGAABUxTY1knk341.jpg

        用法和縮減btrfs有些類似。


修改btrfs文件系統的物理邊界的大小:

      支持聯機擴展和縮減。

    使用btrfs add/delete/scan <dev>  MOUNT_POINT

    擴展btrfs文件系統的物理邊界:

        wKioL1YBaOTRB85hAAA8wIklIm4140.jpg

    

    縮減btrfs文件系統的物理邊界:

        當然,在縮減物理邊界的時候,要首先保證縮減之後的大小可以存儲已經存儲的總文件的大小。

        使用btrfs delete命令實現。

            wKioL1YBaRDCrVhjAAA4_qA_L1Q616.jpg


使用balance子命令設置整個文件系統的負載均衡:

    支持start、pause、cancel、resume、status這幾個子命令。

        wKioL1YBaVCw49zvAABW_Gz6f_c755.jpg            spacer.gif

    設置負載均衡的時候,設置相關的RAID級別。

        注意:磁盤數量不夠,相關的RAID級別無法進行設置。

        btrfs balance start [OPTIONS] <FILTERS> MOUNT_POINT

        常用選項:

                -d:改變數據的組織機制

                -m:改變元數據的組織機制

                -s:改變文件系統的組織機制

        FILETERS:

                convert:設置指定的RAID組織

        例:

            wKiom1YBaV6Ta_xPAABJYfUHr3o116.jpg


btrfs文件系統的子卷功能:

    創建子卷:

        btrfs subvolume create  /PATH

            wKioL1YBajuAhxHmAAA_6aARYBw359.jpg         

        注意:如果父卷掛載完成,那麼子卷默認就已經掛載。

    只掛載子卷:

        mount -o subvol=logs /dev/sdb /mydata/

                子卷名稱        設備名稱   掛載點      

            wKioL1YBafzSERPgAABAsgeSjPM158.jpg

    顯示子卷的相關信息:

        btrfs subvolume show MOUNT_POINT

            wKiom1YBamXSZHJ5AAAtYGkAv6o893.jpg      spacer.gif

    刪除某一目錄下的子卷:

        例:刪除mydata目錄下的logs子卷。

            btrfs subvolume delete /mydata/logs

    在某一子捲上創建快照:

        注意:子卷的快照必須與子卷在同一個父卷中。

        例:在mydata目錄下的logs子捲上創建快照

        [root@centos-lcs ~]# btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshot


將一個ext系列的文件系統轉換爲btrfs文件系統:

    第一步:先卸載要轉換的ext系列的文件系統

    第二步:使用fsck -f進行強制文件檢測

      第三步:使用btrfs-convert進行文件系統的轉換。


使用btrfs-convert -r還可以將已經轉換爲btrfs文件系統的磁盤轉換回原來的文件系統。



                




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章