1. 程式人生 > >Linux系統管理——高級文件系統管理

Linux系統管理——高級文件系統管理

vgexport 模塊 方便 isp 高級 username 容量 磁盤故障 proc

1、設定文件系統配額


1.1、要求

    在內核中執行    
    以文件系統為單位啟用
    對不同組或者用戶的策略不同
    根據塊或者節點進行限制
        執行軟限制(soft limit)
        硬限制(hard limit)



1.2、初始化

    分區掛載選項:usrquota、 grpquota
    初始化數據庫:quotacheck




1.3、為用戶設定配額


執行:

    開啟或者取消配額:quotaon、 quotaoff    
    直接編輯配額:edquota username
    在shell中直接編輯:
        etquota usename 4096 5120 40 50 /foo
    定義原始標準用戶
        dquota -p user1 user2


報告配額狀態

    用戶調查:quota username
    配額概述:repquota /mountpoint
    其它工具:warnquota




2、raid陣列


RAID:

    Redundant Arrays of Inexpensive(Independent) Disks
    多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供。



優勢:

提高IO能力:
    磁盤並行讀寫;
    
提高耐用性;
    磁盤冗余來實現;
    
級別:多塊磁盤組織在一起的工作方式有所不同;



RAID實現的方式:
    外接式磁盤陣列:通過擴展卡提供適配能力。
    內接式RAID:主板集成RAID控制器;安裝OS前在BIOS裏配置。
    軟件RAID:通過OS實現。




RAID級別:

    RAID-0:條帶卷,strip
    RAID-1: 鏡像卷,mirror
    RAID-2
    ..
    RAID-5
    RAID-6
    RAID-10
    RAID-01
    RAID-50
    JBOD:Just a Bunch Of Disks;
        功能:將多塊磁盤的空間合並一個大的連續空間使用
        可用空間:sum(S1,S2,...)


常用級別:
    RAID-0, RAID-1, RAID-5, RAID-10, RAID-50,JBOD


2.1、軟raid的實現


mdadm:
    為軟RAID提供管理界面;
    
為空余磁盤添加冗余

結合內核中的md(multi devices)

RAID設備可命名為/dev/md0、 /dev/md1、 /dev/md2、/dev/md3等;


2.1、語法


語法:

mdadm [mode] <raiddevice> [options] <component-devices>


支持的RAID級別:

    LINEAR, RAID0, RAID1, RAID4,RAID5, RAID6, RAID10


模式:

    創建:-C    
    裝配: -A
    監控: -F
    管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意塊設備


-C: 創建模式    
    -n #: 使用#個塊設備來創建此RAID
    -l #:指明要創建的RAID的級別
    -a {yes|no}:自動創建目標RAID設備的設備文件
    -c CHUNK_SIZE: 指明塊大小
    -x #: 指明空閑盤的個數
    
-D:顯示raid的詳細信息;
    mdadm -D /dev/md#
管理模式:
    -f: 標記指定磁盤為損壞
    -a: 添加磁盤
    -r: 移除磁盤
觀察md的狀態:
    cat /proc/mdstat



2.2、軟RAID配置示例

    使用mdadm創建並定義RAID設備    
        mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1
        /dev/sdc1 /dev/sdd1 /dev/sde1
        
    用文件系統對每個RAID設備進行格式化
        mke2fs -j /dev/md0
        
    測試RAID設備
    
    使用mdadm檢查RAID設備的狀況
        mdadm --detail|D /dev/md0
        
    增加新的成員
        mdadm –G /dev/md0 –n4 -a /dev/sdf1



2.3、軟RAID測試和修復

    模擬磁盤故障: 
        mdadm /dev/md0 -f /dev/sda1
        
    移除磁盤:
        mdadm /dev/md0 –r /dev/sda1
        
    從軟件RAID磁盤修復磁盤故障:
        替換出故障的磁盤然後開機
        在備用驅動器上重建分區
        mdadm /dev/md0 -a /dev/sda1
    
    mdadm、 /proc/mdstat及系統日誌信息;




2.4、軟RAID管理

    生成配置文件:mdadm –D –s >> /etc/mdadm.conf    
    停止設備:mdadm –S /dev/md0
    
    激活設備:mdadm –A –s /dev/md0 激活
    強制啟動:mdadm –R /dev/md0
    
    刪除raid信息:mdadm --zero-superblock /dev/sdb1




3、邏輯卷管理器(LVM)


作用:

允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小;
允許在多個物理設備間重新組織文件系統;

    將設備指定為物理卷;   
    用一個或者多個物理卷來創建一個卷組;
    物理卷是用固定大小的物理區域(Physical Extent,PE)來定義的;
    在物理卷上創建的邏輯卷;
    是由物理區域(PE)組成;
    可以在邏輯卷上創建文件系統;


dm: device mapper:將一個或多個底層塊設備組織成一個邏輯設備的模塊;

設備名:/dev/dm-#

軟鏈接:

    /dev/mapper/VG_NAME-LV_NAME    
    /dev/mapper/vol0-root
    /dev/VG_NAME/LV_NAME
    /dev/vol0/root


刪除邏輯卷必須先刪除LV,再刪除VG,最後刪除PV


3.1、管理工具


pv管理工具:
    顯示pv信息
        pvs:簡要pv信息顯示
        pvdisplay
    創建pv
        pvcreate /dev/DEVICE



vg管理工具:

    顯示卷組
        vgs
        vgdisplay
    創建卷組
        vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName
        PhysicalDevicePath [PhysicalDevicePath...]
    管理卷組
        vgextend VolumeGroupName PhysicalDevicePath
        [PhysicalDevicePath...]
        vgreduce VolumeGroupName PhysicalDevicePath
        [PhysicalDevicePath...]
    刪除卷組
        先做pvmove,再做vgremove




lv管理工具:
    顯示邏輯卷
        lvs
        Lvdisplay
    創建邏輯卷
        lvcreate -L #[mMgGtT] -n NAME VolumeGroup
        lvcreate -l 60%VG -n mylv testvg
        lvcreate -l 100%FREE -n yourlv testvg
    刪除邏輯卷
        lvremove /dev/VG_NAME/LV_NAME
    重設文件系統大小
        fsadm [options] resize device [new_size[BKMGTEP]]
        resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]


3.2、擴展和縮減邏輯卷實現


擴展邏輯卷:

    lvextend -L [+]#[mMgGtT]     /dev/VG_NAME/LV_NAME
    
    resize2fs /dev/VG_NAME/LV_NAME
    
    lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME



縮減邏輯卷:

    umount /dev/VG_NAME/LV_NAME
     
    e2fsck -f /dev/VG_NAME/LV_NAME
    
    resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
    
    lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
    
    mount



跨主機遷移卷組:

源計算機上:
    1 在舊系統中,umount所有卷組上的邏輯卷
    2 vgchange –a n vg0
      lvdisplay
    3   vgexport vg0
        pvscan
        vgdisplay
        拆下舊硬盤

在目標計算機上:
    4 在新系統中安裝舊硬盤,並vgimport vg0.
    5 vgchange –ay vg0
    6 mount所有卷組上的邏輯卷



創建邏輯卷示例:

創建物理卷
    pvcreate /dev/sda3
為卷組分配物理卷
    vgcreate vg0 /dev/sda3
從卷組創建邏輯卷
    lvcreate -L 256M -n data vg0
    mke2fs -j /dev/vg0/data
    mount /dev/vg0/data /mnt/data



3.3、邏輯卷管理器快照


    快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝;    
    對於需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,
    快照是最合適的選擇;
    快照只有在它們和原來的邏輯卷不同時才會消耗空間;
    在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或
    者快照有所改變才會使用這些空間;

    當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。
    快照中只含有原來的邏輯卷中更改的數據或者自生成快照後的快
    照中更改的數據;

    建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了,也可
    以使用lvextend放大快照;
    快照就是將當時的系統信息記錄下來,就好像照相一般,若
    將來有任何數據改動了,則原始數據會被移動到快照區,沒
    有改動的區域則由快照區和文件系統共享;

    由於快照區與原本的LV共用很多PE的區塊,因此快照去與被
    快照的LV必須在同一個VG.系統恢復的時候的文件數量不能高
    於快照區的實際容量;




使用LVM快照:

    為現有邏輯卷創建快照:
        lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data
    掛載快照:
        mkdir -p /mnt/snap
        mount -o ro /dev/vg0/data-snapshot /mnt/snap
    恢復快照:
        umount /dev/vg0/data-snapshot
        umount /dev/vg0/data
        lvconvert --merge /dev/vg0/data-snapshot
    刪除快照:
        umount /mnt/databackup
        lvremove /dev/vg0/databackup


Linux系統管理——高級文件系統管理