高級文件系統管理
本章內容
? 設定文件系統配額 ? 設定和管理軟RAID設備 ? 配置邏輯卷 ? 設定LVM快照 ? btrfs文件系統
配置配額系統
?綜述 ? 在內核中執行 ? 以文件系統為單位啟用 ? 對不同組或者用戶的策略不同 根據塊或者節點進行限制 ? 執行軟限制( soft limit) ? 硬限制( hard limit) ?初始化 ? 分區掛載選項: usrquota、 grpquota ? 初始化數據庫: quotacheck
為用戶設定配額
?執行 ? 開啟或者取消配額: quotaon、 quotaoff ? 直接編輯配額: edquota username ? 在shell中直接編輯: setquota usename 4096 5120 40 50 /foo ? 定義原始標準用戶 edquota -p user1 user2
報告配額狀態
?報告 ? 用戶調查: quota ? 配額概述: repquota ? 其它工具: warnquota
RAID
? 提高IO能力: 磁盤并行讀寫 ? 提高耐用性; 磁盤冗余來實現 ? 級別:多塊磁盤組織在一起的工作方式有所不同 ? RAID實現的方式: 外接式磁盤陣列:通過擴展卡提供適配能力 內接式RAID:主板集成RAID控制器 安裝OS前在BIOS里配置 Software RAID:
RAID級別
? RAID-0: 讀、寫性能提升; 可用空間: N*min(S1,S2,...) 無容錯能力 最少磁盤數: 2, 2 ? RAID-1: 讀性能提升、寫性能略有下降; 可用空間: 1*min(S1,S2,...) 有冗余能力 最少磁盤數: 2, 2N ? RAID-4: 多塊數據盤異或運算值,存于專用校驗盤10 ? RAID-5: 讀、寫性能提升 可用空間: (N-1)*min(S1,S2,...) 有容錯能力:允許最多1塊磁盤損壞 最少磁盤數: 3, 3+ ? RAID-6: 讀、寫性能提升 可用空間: (N-2)*min(S1,S2,...) 有容錯能力:允許最多2塊磁盤損壞 最少磁盤數: 4, 4+11
RAID混合類型級別
? 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, JBOD12
軟RAID
? mdadm:為軟RAID提供管理界面 ? 為空余磁盤添加冗余 ? 結合內核中的md(multi devices) ? RAID設備可命名為/dev/md0、 /dev/md1、 /dev/md2、/dev/md3等等13
軟件RAID的實現
? mdadm:模式化的工具 ? 命令的語法格式: 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>: 任意塊設備14 ? -C: 創建模式 -n #: 使用#個塊設備來創建此RAID; -l #:指明要創建的RAID的級別; -a {yes|no}:自動創建目標RAID設備的設備文件; -c CHUNK_SIZE: 指明塊大小; -x #: 指明空閑盤的個數; ? 例如:創建一個10G可用空間的RAID515 ? -D:顯示raid的詳細信息; mdadm -D /dev/md# ? 管理模式: -f: 標記指定磁盤為損壞 -a: 添加磁盤 -r: 移除磁盤 ? 觀察md的狀態: cat /proc/mdstat ? 停止md設備: mdadm -S /dev/md#16
軟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/sdf117
軟RAID測試和修復
? 模擬磁盤故障 #mdadm /dev/md0 -f /dev/sda1 ? 移除磁盤 #mdadm /dev/md0 –r /dev/sda1 ? 從軟件RAID磁盤修復磁盤故障 ? 替換出故障的磁盤然后開機 ? 在備用驅動器上重建分區 ? #mdadm /dev/md0 -a /dev/sda1 ? mdadm、 /proc/mdstat及系統日志信息18
軟RAID管理
? 生成配置文件: mdadm –D –s >> /etc/mdadm.conf ? 停服務: mdadm –S /dev/md0 ? 激活: mdadm –A –s /dev/md0 激活 ? 刪除raid信息: mdadm –zero-superblock /dev/sdb1
邏輯卷管理器
?允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小 ?允許在多個物理設備間重新組織文件系統 ? 將設備指定為物理卷 ? 用一個或者多個物理卷來創建一個卷組 ? 物理卷是用固定大小的物理區域( Physical Extent,PE)來定義的 ? 在物理卷上創建的邏輯卷是由物理區域( PE)組成 ? 可以在邏輯卷上創建文件系統
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可以彈性的更改LVM的容量 通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其他的設備中以降低LV的容量,或將其他設備中的PE加到LV中以加大容量
刪除邏輯卷
? 刪除邏輯卷必須先刪除LV,再刪除VG,最后刪除PV ? 點擊邏輯卷管理器的“卷組” ->“邏輯視圖”的LV邏輯卷 ? 點擊“移除選擇的邏輯卷”,再刪除VG,最后刪除PV。
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 ? 刪除邏輯卷 lvremove /dev/VG_NAME/LV_NAME ? 重設文件系統大小 fsadm [options] resize device [new_size[BKMGTEP]] resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
擴展和縮減邏輯卷
? 擴展邏輯卷: # lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME # resize2fs /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
邏輯卷管理器快照
? 快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝 ? 對于需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,快照是最合適的選擇。 ? 快照只有在它們和原來的邏輯卷不同時才會消耗空間。 ? 在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間 ? 當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。 ? 快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據 ? 建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了。也可以使用lvextend放大快照。 ? 快照就是將當時的系統信息記錄下來,就好像照相一般,若將來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享。 由于快照區與原本的LV共用很多PE的區塊,因此快照去與被快照的LV必須要要在同一個VG上!系統恢復的時候的文件數量不能高于快照區的實際容量。
使用LVM快照
? 為現有邏輯卷創建快照 #lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data ? 掛載快照 #mkdir -p /mnt/snap #mount -o ro /dev/vg0/snap-data /mnt/snap ? 刪除快照 #umount /mnt/databackup #lvremove /dev/vg0/databackup
練習1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
練習2、 新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
練習3、擴展testlv至7G,要求archlinux用戶的文件不能丟失
練習4、收縮testlv至3G,要求archlinux用戶的文件不能丟失
練習5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能
原創文章,作者:15152188070,如若轉載,請注明出處:http://www.www58058.com/42578