13-高級文件系統管理-Quota,RAID,LVM

配置配額系統
    綜述
        在內核中執行
        以文件系統(磁盤分區)為單位啟用
        對不同組或者用戶的策略不同
        根據塊或者節點進行限制
            執行軟限制(soft limit)
            硬限制(hard limit)
    1、初始化
        1.1、編輯/etc/fstab,添加分區掛載選項:usrquota、grpquota
        1.2、mount -o remount /dev/sda6     #重新掛載分區使生效
        1.3初始化數據庫:quotacheck -cug /home
注意:這里可能會報錯(SELinux導致的,先臨時關閉setenforce 0,再重新執行)
quotacheck -cug /home
quotacheck: Cannot create new quotafile /home/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
quotacheck: Cannot create new quotafile /home/aquota.group.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied

    2、quotaon、quotaoff    #啟用|禁用配額系統
        2.1、啟用/home上的磁盤配額功能:quotaon /home
               打印狀態:quotaon -p /home
    3、設置
        3.1、編輯配額(默認使用vim編輯器):edquota username

               前三個字段決定空間限制(默認單位kibibyte (1024 bytes),可以使用K,M,G,T),后三個字段決定創建文件數限制(可以使用k,m,g,t代表10^3,10^6,10^9,10^12):

13-高級文件系統管理-Quota,RAID,LVM

       3.2、也可以使用命令設置配額:setquota usename 4096 5120 40 50 /home
        3.3、查看配額信息:quota username

               注意:達到soft限制后有個寬限期grace,達到寬限期后,也會緊禁止再繼續使用磁盤

13-高級文件系統管理-Quota,RAID,LVM

    4、驗證
        su – wang     #目標用戶登錄
        驗證blocks配額:使用dd命令創建大文件,達到soft,報警,達到Hard,禁止再繼續使用磁盤
        驗證inodes配額:for i in {1..200};do touch file$i;echo file$i is created;done
    5、定義原始標準用戶(將user1的用戶配額設置復制到user2)
            edquota -p user1 user2
    6、edquota -g groupname     #配置所有屬組為groupname的文件加起來的磁盤配額
    7、取消磁盤配額:
        7.1、quotaoff /home              #禁用磁盤配額
        7.2、rm -rf /home/a.quota*    #刪除磁盤配額數據庫
        7.3、vim /etc/fstab     
        7.4、mount -o remount /home     
    8、報告
        用戶調查:quota username
        配額概述:repquota /mountpoint
        其它工具:warnquota
獨立磁盤的冗余陣列
RAID:Redundant Arrays of Inexpensive(Independent) Disks
1988年由加利福尼亞大學伯克利分校(University of California-Berkeley) “A Case for Redundant
Arrays of Inexpensive Disks”
多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供
    提高IO能力:磁盤并行讀寫
    提高耐用性:磁盤冗余來實現
RAID實現的方式:
    外接式磁盤陣列:通過擴展卡提供適配能力
    內接式RAID:主板集成RAID控制器,安裝OS前在BIOS里配置RAID
    軟件RAID:通過軟件實現
RAID級別:
    多塊磁盤組織在一起的工作方式不同
        RAID-0:條帶卷,strip
        RAID-1: 鏡像卷,mirror
        …
        RAID-4:多塊數據盤異或運算值,存于專用校驗盤
        RAID-5:帶奇偶校驗的條帶卷,校驗位分散存放于各個硬盤上
        RAID-6:
        RAID-10:
        RAID-01:
    RAID-0:
        讀、寫性能提升;
        可用空間:N*min(S1,S2,…)
        無容錯能力
        最少磁盤數:2, 2+
    RAID-1:
        讀性能提升、寫性能略有下降;
        可用空間:1*min(S1,S2,…)
        有冗余能力:防止物理損壞,不能防止誤刪除,鏡像不是歷史快照
        最少磁盤數:2, 2N
    RAID-5:
        讀、寫性能提升
        可用空間:(N-1)*min(S1,S2,…)
        有容錯能力:允許最多1塊磁盤損壞,生產中常額外分配一塊空的備用磁盤sparedisk

        最少磁盤數:3, 3+

13-高級文件系統管理-Quota,RAID,LVM

    RAID-6:
        讀、寫性能提升
        可用空間:(N-2)*min(S1,S2,…)
        有容錯能力:允許最多2塊磁盤損壞

        最少磁盤數:4, 4+

13-高級文件系統管理-Quota,RAID,LVM

    RAID-10:
        讀、寫性能提升
        可用空間:N*min(S1,S2,…)/2
        有容錯能力:每組鏡像最多只能壞一塊
        最少磁盤數:4, 4+
    RAID-01、RAID-50
    RAID7:可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立運行,理論上性能最高的RAID模式
    JBOD:Just a Bunch Of Disks
        功能:將多塊磁盤的空間合并一個大的連續空間使用
            可用空間:sum(S1,S2,…)
    常用級別:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
軟RAID:
    mdadm:為軟RAID提供管理界面
    結合內核中的md(multi devices)
    RAID設備可命名為/dev/md0、/dev/md1、/dev/md2、/dev/md3等等
mdadm命令:manage MD devices aka Linux Software RAID (aka:as known as)
模塊化工具
支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
mdadm [mode] <raiddevice> [options] <component-devices>
    模式[mode]:
        裝配:-A, –assemble
        建造:-B, –build
        創建:-C, –create
        監控:-F, –follow, –monitor
        增長:-G, –grow
        增量:-I, –incremental
        管理:–manage(可省略), -f,–force; -r,–remove;-c, –config=; -a, –auto={ no,yes,md,mdp,part}; -s, –scan;
    <raiddevice>: /dev/md# 或者 /dev/md/NAME
    <component-devices>: 塊設備,磁盤或分區
    -C: 創建模式
        -l, –level=:RAID級別
        -n, –raid-devices=: 組裝RAID的設備數量
        -x, –spare-devices=:分配給RAID的空閑設備數量
        -a {yes|no}:自動應答創建目標RAID設備的設備文件
        -c, –chunk=: 塊大小,單位kiBytes
    -D:顯示RAID詳細信息
        mdadm -D|–detail /dev/md/raid
    -G,–grow:增長模式
    –manage:管理模式
        -f: 標記指定磁盤為損壞
        -a: 添加磁盤
        -r: 移除磁盤
    從內存觀察md狀態:
        cat /proc/mdstat
示例:
    創建RAID步驟:
        創建并定義RAID設備:mdadm -C /dev/md/raid -a yes -l 5 -n 3 -x 1  /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
        等同于: mdadm --create /dev/md/raid --auto=yes --level=5 --raid-devices=3 --spare-devices=1 /dev/sd{b,c,d,e}1
        對整個RAID設備創建文件系統:mkfs.ext4  /dev/md/raid
        掛載分區:mkdir /mnt/raid && mount /dev/md/raid /mnt/raid
        檢查RAID設備的狀況:mdadm -D /dev/md/raid 或 cat /proc/mdstat
        生成配置文件:mdadm -D -s >> /etc/mdadm.conf
        開機自動掛載:echo "`blkid /dev/md/md_raid | cut -d' ' -f2` /mnt/raid ext4 defaults 0 0" >> /etc/fstab

    軟RAID測試和修復:
        標記故障設備為faulty        #mdadm /dev/md/raid -f /dev/sdb1        移除故障設備        #mdadm /dev/md/raid -r /dev/sdb1        添加新設備        #mdadm /dev/md/raid -a /dev/sdb9

    軟RAID管理:
        生成配置文件:mdadm -D -s >> /etc/mdadm.conf
        停止RAID:mdadm -S /dev/md/raid
        掃描配置文件/etc/mdadm.conf并組裝RAID:mdadm -As /dev/md/raid
        強制運行:mdadm -R /dev/md/raid
        增加新的設備成員(不可逆):mdadm /dev/md/raid -G -n 4 -a /dev/sdf1
    刪除RAID步驟:
        卸載RAID掛載點:umount devicename|mountpoint        停止RAID:mdadm -S /dev/md/raid        清空RAID信息:mdadm --zero-superblock /dev/sdb1        移除磁盤或者刪除分區:fdisk或dd if=/dev/zero of=/dev/sdb1 bs=512 count=1 && partx -d /dev/sdb        刪除mdadm配置信息:sed -i '/md0/d' /etc/mdadm.conf        刪除fsatb配置信息:sed -i '/md0/d' /etc/fstab

TIPS:
#準備實驗用分區#創建擴展分區echo -e "n\ne\n4\n\n+20G\nw\n" | fdisk /dev/sdb#創建邏輯分區for (( i = 0; i < 3; i++ )); do echo -e "n\nl\n\n+1G\nw\n" |fdisk /dev/sdb; done#更改分區的ID為“fd  Linux raid auto”for i in {5..7}; do echo -e "t\n$i\nfd\nw\n" |fdisk /dev/sdb; done

練習:
1:創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/mnt/raid1目錄
#創建RAID1mdadm -C /dev/md/raid1 -a yes -l1 -n2 -x1 /dev/sdb[5-7]mkfs.ext4 /dev/md/raid1 -L raid1mkdir -p /mnt/raid1 && mount /dev/md/raid1 /mnt/raid1#生成配置文件mdadm -D -s >> /etc/mdadm.conf#添加fstab條目開機自動掛載echo "`blkid /dev/md/raid1 | cut -d' ' -f2` /mnt/raid1 ext4 defaults 0 0" >> /etc/fstab

2:創建由三塊硬盤組成的可用空間為2G的RAID5設備,要求其chunk大小為256k,文件系統為ext4,開機可自動掛載至/mnt/raid5目錄
#創建RAID5mdadm -C /dev/md/raid5 -a yes -l5 -c 256 -n3 /dev/sd{c,d,e}mkfs.ext4 /dev/md/raid5 -L raid5mkdir -p /mnt/raid5 && mount /dev/md/raid5 /mnt/raid5#生成配置文件mdadm -D -s >> /etc/mdadm.conf#添加fstab條目開機自動掛載echo "`blkid /dev/md/raid5 | cut -d' ' -f2` /mnt/raid5 ext4 defaults 0 0" >> /etc/fstab

LVM:邏輯卷管理器
允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小
允許在多個物理設備間重新組織文件系統
    將設備指定為物理卷
    用一個或者多個物理卷來創建一個卷組
    物理卷是用固定大小的物理區域(Physical Extent,PE)來定義的
    在物理卷上創建的邏輯卷是由物理區域(PE)組成
    可以在邏輯卷上創建文件系統
13-高級文件系統管理-Quota,RAID,LVM
LVM: Logical Volume Manager, Version: 2
dm: device mapper:將一個或多個底層塊設備組織成一個邏輯設備的模塊
設備名:/dev/dm-#
軟鏈接:
    /dev/mapper/VG_NAME-LV_NAME
        /dev/mapper/vol0-root
    /dev/VG_NAME/LV_NAME
        /dev/vol0/root
LVM可以彈性的更改LVM的容量
    通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其他的設備中以降低LV的容量,或將其他設備中的PE加到LV中以加大容量
pv管理工具
    顯示物理卷信息
        pvs:簡要顯示物理卷信息
        pvdisplay
    創建物理卷
        pvcreate PhysicalVolume [PhysicalVolume…]
vg管理工具
    顯示卷組
        vgs
        vgdisplay
    創建卷組
        vgcreate [-s #[bBsSkKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
    管理卷組
        vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
        vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
    刪除卷組
        先做pvmove,再做vgremove
lv管理工具
    顯示邏輯卷
        lvs
        Lvdisplay
    創建邏輯卷
        lvcreate -L #[bBsSkKmMgGtTpPeE] -n NAME VolumeGroup
        -l:PE塊個數;-L:空間大小;-n:名字
    刪除邏輯卷
        lvremove /dev/VG_NAME/LV_NAME
    重設文件系統大小
        fsadm [options] resize device [new_size[BKMGTEP]]
        resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
擴展邏輯卷:
    # lvextend|lvresize -r -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME    #-r選項同時調整文件系統    # resize2fs /dev/VG_NAME/LV_NAME    #擴容后單獨調整文件系統    撐滿空閑PE空間:# lvextend|lvresize -r -L +100%FREE /dev/VG_NAME/LV_NAME

縮減邏輯卷:(注意ext4可以縮減,但必須離線縮減,xfs不能縮減)
    # umount /dev/VG_NAME/LV_NAME    # fsck -f /dev/VG_NAME/LV_NAME     #檢查文件系統    # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]   #擴容前單獨調整文件系統    # lvreduce|lvresize -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME    #-r選項同時調整文件系統    # mount /dev/VG_NAME/LV_NAME MOUNTPOINT

創建邏輯卷lv:
    創建物理卷        pvcreate /dev/sda3    從物理卷創建卷組        vgcreate vg0 -s 16M /dev/sda3    從卷組創建邏輯卷        lvcreate -L 256M -n lv1  vg0    為邏輯卷創建文件系統        mkfs.ext4 /dev/vg0/lv1    掛載邏輯卷        mkdir /mnt/lv1 && mount  /dev/vg0/lv1 /mnt/lv1    開機自動掛載邏輯卷        echo -e "`blkid /dev/vg0/lv1 | cut -d' ' -f2` /mnt/lv1 ext4  defaults 0 0" >> /etc/fstab

邏輯卷管理器快照
    快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝
    對于需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,快照是最合適的選擇。
    快照只有在它們和原來的邏輯卷不同時才會消耗空間。
        在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間
        當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。
        快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據
        建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了。也可以使用lvextend放大快照。
    快照就是將當時的系統信息記錄下來,就好像照相一般,若將來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享
    由于快照區與原本的LV共用很多PE的區塊,因此快照區與被快照的LV必須在同一個VG.系統恢復的時候的文件數量不能高于快照區的實際容量.
使用LVM快照:
    為現有邏輯卷創建快照        #lvcreate -s -n lv1_snap -l 64 -p r /dev/vg0/lv1    掛載快照        #mkdir -p /mnt/lv1_snap        #mount -o ro /dev/vg0/lv1_snap /mnt/lv1_snap    刪除快照        #umount /mnt/lv1_snap        #lvremove /dev/vg0/lv1_snap

TIPS:
#準備實驗用分區#創建擴展分區echo -e "n\ne\n4\n\n\nw\n" | fdisk /dev/sdb#創建邏輯分區for (( i = 0; i < 3; i++ )); do echo -e "n\nl\n\n+1G\nw\n" |fdisk /dev/sdb; done#更改分區的ID為“8e  Linux LVM”for i in {5,6}; do echo -e "t\n$i\n8e\nw\n" |fdisk /dev/sdb; done

練習:
1、創建一個至少有兩個PV組成的大小為20G的名為vgtest的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷lvtest;掛載至/users目錄
pvcreate /dev/sdb{5,6}vgcreate -s 16M vgtest /dev/sdb{5,6}lvcreate -L 5G -n lvtest vgtestmkfs.ext4 /dev/vgtest/lvtest -L vgtest-lvtestmkdir -p /users && mount /dev/vgtest/lvtest /users

2、 新建用戶archlinux,要求其家目錄為/users/archlinux ,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
useradd archlinux -d /users/archlinuxsu - archlinuxcp /etc/pam.d ~

3、擴展lvtest至7G,要求archlinux用戶的文件不能丟失
lvextend -L 7G /dev/vgtest/lvtestresize2fs /dev/vgtest/lvtest

4、收縮lvtest至3G,要求archlinux用戶的文件不能丟失
umount /dev/vgtest/lvtest fsck -f /dev/vgtest/lvtest#resize2fs /dev/vgtest/lvtest 3Glvresize -r -L 3G /dev/vgtest/lvtestmount /dev/vgtest/lvtest /users

5、對lvtest創建快照,并嘗試基于快照備份數據,驗證快照的功能
lvcreate -s -L 1G -p r -n lvtest_snap /dev/vgtest/lvtestmkdir /mnt/lvtest_snap  && mount /dev/vgtest/lvtest_snap /mnt/lvtest_snap

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

(0)
LeionLeion
上一篇 2017-03-16
下一篇 2017-03-16

相關推薦

  • linux終端變量設置,文件系統,man使用說明,文件類型

    一、定義終端提示符的變量 export PS1=’\e[32m[\e[33m\u\e[31m@\e[35m\h\e[36m\t\e[34m\#\e[31m\s\e[37m\W\e[32m]\$ ‘  `]# export 是個命令      PS1指終端提示符變量    &n…

    Linux干貨 2016-11-02
  • N25期–第十六周作業

    1源碼編譯安裝LNMP架構環境; 2、編寫一個腳本完成以下功能: (1)、一鍵搭建LNMP源碼編譯環境; (2)、可通過在腳本后面跟上一些參數來自定義安裝目錄等其他選項。” 1、源碼編譯安裝LNMP架構環境; 安裝編譯工具和庫文件 1 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libp…

    Linux干貨 2017-05-08
  • 緩存需知

    Edit Web緩存核心技術點需知 5.1 HTTP首部控制 5.2 基于新鮮度檢測機制: 2.1 特征1:時間局部性 2.2 特征2:空間局部性 2.3 緩存的優點 2.4 哪類數據應該被緩存 2.5 哪類數據可緩存但不應該被緩存 2.6 緩存命中率決定緩存有效性 2.7 緩存數據生命周期 2.8 緩存處理步驟 2.9 緩存和普通數據讀取的區別 1. 完整…

    Linux干貨 2017-06-01
  • DNS and BIND 進階

    主DNS服務器的ip地址:192.168.1.109 主DNS服務器主機名:bogon 正向區域名:sh.com 反向區域名:1.168.192.in-addr.arpa 正向區域文件名稱:/var/named/sh.com.hosts 反向區域文件名稱:/var/named/192.168.1.rev 配置主文件/etc/named.conf過程 1、編輯…

    Linux干貨 2016-12-06
  • SElinux

    SElinux:Secure Enhanced Linux   SElinux工作與linux內核中他所實現的功能叫做強制訪問控制機制。DAC:是linux的自主訪問控制。MAC:是SElinux引入的訪問法則,叫作強制訪問控制。   SElinux有兩種工作級別:     strick:嚴格級別,每個進程都收到SEl…

    Linux干貨 2016-09-23
  • Linux的軟件包管理(RPM)

    軟件包管理(RPM)   本章節內容:   軟件運行環境   軟件包基礎  Rpm包管理   一、軟件運行環境(了解API和ABI)  API:應用程序開發接口,POSIX國際標準。  程序源代碼–> 預處理–> 編譯–&…

    Linux干貨 2016-08-21

評論列表(2條)

  • 馬哥教育
    馬哥教育 2017-03-20 09:45

    贊一個,繼續努力哦

欧美性久久久久