btrfs,磁盤配額

 btrfs

    Balance-tree FS

    Better FS

    butter FS


    2007年由Oracle開源,到目前位置,仍然是技術預覽版(Technical Preview),


    btrfs其開發目的就是取代ext系列文件系統,成爲下一代Linux的標準文件系統,


    在linux上運行的btrfs,遵循GPL開源協定;2014年8月,穩定版推出,


    btrfs特性;

      1.可擴展性

         extent是最小管理邏輯單元,每個extent是由一組連續的block組成

         ext文件系統inode數量是一定的,btrfs的inode數量是動態可調整的

      2.多物理卷支持;

         btrfs可以跨越多個物理設備,動態的增加或減少設備來達到擴容或縮容的目的,

         而且,從技術角度來講,btrfs還支持RAID-0,RAID-1,RAID-5,RAID-10等

         還支持在線添加,刪除,及修改設備

      3.寫時複製更新機制(CoW,copy on write)

         所謂的CoW,就是每次寫磁盤數據的時候,先將當前塊的數據複製到一個新塊中,然後在新塊中進行數據更新寫入,當新塊寫入完成後,只需要將原來指向舊塊的指針指向新塊即可

      4.雙重分校驗機制————數據及元數據都有校驗碼;checksum

      5.支持子卷;

      6.支持快照卷;

         對父卷做快照

         對子卷做快照

         對快照卷做快照

      7.透明壓縮,隱形壓縮;


  mkfs.btrfs

    選項;

      -L|--label <label>;爲即將創建的btrfs文件系統指定卷標

      -d|--data <data-profile>;可以選擇的類型有,raid0, raid1, raid5, raid6, raid10 or single.

      -m|--metadata <metadataprofile>;可以選擇的類型有,raid0, raid1, raid5, raid6, raid10, single or dup.

      -O|--features <feature1>[,<feature2>...];指定btrfs文件系統的特性,如果想要查看哪些特性,可以使用命令;mkfs.btrfs -O list-all


可以用支持btrfs文件系統的mount命令中使用下列方式開啓透明壓縮功能;

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


  btrfs

    btrfs -control a btrfs filesystem

    btrfs <command> [<args>]


    btrfs filesystem show

      查看btrfs文件系統的詳細屬性

    btrfs filesystem df MOUNT_POINT

      查看文件系統的掛載和使用情況

       例;btrfs filesystem df /mnt/btrfs/


  在線修改文件系統大小

      btrfs filesystem resize {+|-}SIZE[kKmMgGtTpPeE] MOUNT_POINT

   例子;

     縮減15G

       btrfs filesystem resize -15G /mnt/btrfs

     增加5G

       btrfs filesystem resize +5G /mnt/btrfs


       btrfs filesystem resize max /mnt/btrfs


  向btrfs文件系統中添加或刪除設備

     btrfs device

  btrfs device

    btrfs device add [options] <device> [<device>...] <path>

      向文件系統中添加一個新設備

    btrfs device delete <device> [<device>...] <path>

      從文件系統中刪除一個設備



平衡數據:

    btrfs balance start [options] <path>

      開啓跨設備的chunk的數據平衡

      -mconvert={radi0|raid1|raid5|radi10|raid6|single|dup}

        改變元數據的數據平衡佈局方式

      例:btrfs balance start -mconvert=raid5 /mnt/btrfs/


      -dconvert={radi0|raid1|raid5|radi10|raid6|single}

        改變數據的數據平衡佈局方式

      例:btrfs balance start -dconvert=raid6 /mnt/btrfs/


    btrfs balance pause <path>

      暫停數據平衡

    btrfs balance cancel <path>

      取消正在進行的或已經暫停的數據平衡

    btrfs balance resume <path>

      恢復被打斷的數據平衡

    btrfs balance status [-v] <path>

      顯示正在進行的或已經暫停的數據平衡的狀態信息


子卷管理:

  btrfs subvolume create [-i <qgroupid>] [<dest>/]<name>

    創建子卷

    例:btrfs subvolume create /mnt/btrfs/mysub1/


  btrfs subvolume delete [options] <subvolume> [<subvolume>...]

    刪除子卷

    例:btrfs subvolume delete /mnt/btrfs/mysub1/


  btrfs subvolume show <subvol-path>

    顯示子卷的信息

    例:btrfs subvolume show /mnt/btrfs/mysub1/



子卷類似於ext文件系統中的將其他分區掛載到根目錄下的某個空閒子目錄的操作;


快照:

  btrfs subvolume snapshot [-r] [-i <qgroupid>] <source> <dest>|[<dest>/]<name>

    創建指定子卷的快照卷


    例:btrfs subvolume snapshot /mnt/btrfs/mysub1/ /mnt/btrfs/snap_mysub1


將btrfs和ext系列進行轉換:

  btrfs-convert

    btrfs-convert - convert from ext2/3/4 filesystem to btrfs or rollback

    btrfs-convert [options] <device>


    將文件系統從ext轉換爲btrfs:

      ~]# btrfs-convert /dev/sdb1


      注意:/dev/sdb1分區,應該事先格式化爲ext系列文件系統;


    將文件系統從btrfs回滾到ext

      ~]# btrfs-convert -r /dev/sdb1



磁盤配額;

   文件服務器,共享存儲空間,讓用戶能夠隨時存儲數據;

     FTP

     SMB;

     網盤;


   磁盤配額主要是針對於這類文件服務器進行用戶的磁盤空間使用限制而提出的;


   磁盤配額的設定對象;

     1.能夠實施讀寫操作的塊設備;

     2.要有正確的文件系統;


   磁盤配額限制哪些人的訪問行爲

     1.用戶

         爲指定的用戶來限制磁盤使用量

           磁盤空間(塊)   一個block的限制,代表1KB存儲空間

           inode

     2.組

        限制指定組中所有成員的磁盤使用量的總和;


   磁盤配額的類型;

     1.soft limit;軟限制

         當用戶的磁盤使用量達到軟配額限制,將會啓動寬限期倒計時;在倒計時歸0之前,用戶可以正常使用剩餘的配額量,但一旦倒計時歸0,用戶將不能繼續使用磁盤空間,除非將數據進行清理,低於軟限制,而後可以繼續使用磁盤空間;

     2.hard limit;硬限制

         用戶能夠使用的磁盤空間的真正上限;


       一般來講,軟限制要比硬限制的數值小一些


       在linux中默認的寬限期爲7天(可以修改)


       需要一個用於記錄用戶和組的磁盤使用量和配額數量的數據文件;

       aquota.user

       aquota.group


       如果想要讓分區或卷能夠支持磁盤配額的設定,需要單獨的掛載選項;

          usrquota,grpquota

       1.~]# mount -o usrquota,grpquota DEVICE MOUNT_POINT

       2. /etc/fstab

          DEVICE MOUNT_POINT FSTYPE defaults,usrquota,grpquota 0 0


       quotacheck

          quotacheck - scan a filesystem for disk usage, create, check and repair quota

       files

          選項;

           -v, --verbose;顯示詳細信息

           -u, --user;創建檢測和修復用戶配額文件

           -g, --group;創建檢測和修復組配額文件

           -c, --create-files;經過檢測,如果沒有用戶配額文件和或組配額文件,就按照用戶給定的選項來進行文件的創建

           -a, --all;所有的在/etc/fstab文件中包含了與配額有關的掛載選項的設備上,是否有對應選項的配額文件;


       用於編寫配額內容的命令;

         edquota

            -u, --user;編寫用戶配額,默認的功能

            -g, --group;編寫組配額,默認的功能(不推薦使用)

            -t, --edit-period;設置超出軟限制的寬限期,默認7天,可以選擇以秒,分鐘,小時,天等時間單位;

       使配額功能生效;

         quotaon(開啓),quotaoff(關閉)

            quotaon, quotaoff - turn filesystem quotas on and off

             

             quotao|quotaoff /dev/sdb1


       查看配額的使用情況

          quota

             quota - display disk usage and limits

          repquota(只有root才能使用)

             repquota - summarize quotas for a filesystem

         注意;root不受磁盤限制




linux的程序包管理

    程序:指令+數據

    程序;算法+數據+結構


    應用程序的存在形式;

      1.源代碼;包含了整個應用程序的編程語言的所有代碼的文本文件

      2.二進制;將源代碼經過一系列的轉換操作之後得到的可以直接執行的文件


    使用源代碼安裝應用程序

.      預處理(預處理器) ---> 編譯(編譯器) ---> 彙編(彙編器) ---> 鏈接(鏈接器) ---> 可以直接執行的二進制程序文件

     POSIX;POS,portable Operating system,可移植操作系統

        API;Application program interface,應用編程接口

        ABI;Application binary interface,應用二進制接口

            lunix-like;ELF

            Windows;exe msi


     庫級別的兼容,庫級別的虛擬化;

       cywin,在Windows系統中模擬linux的共享庫

       WinE,在linux系統中模擬Windows的庫


     應用級編程語言;

       JAVA  python  per1  ruby  PHP  GO

     系統級編程語言;

        C  C++


    源代碼編譯,需要有編譯開發環境支持

      C/C++;

        編譯開發環境,預處理器嗎,編譯器,頭文件,庫文件

      JAVA/Python;

        編譯開發環境,預處理器,編譯器,庫文件


     通常情況下;源代碼文件是多個,這些文件之間存在這一定的關聯關係,我們稱這種關聯關係爲依賴關係;


     autoconf

     automake


     軟件項目構建工具;

        C/C++;make

        JAVA;maven

        python;buildout


     Redhet


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