Linux 第15天: (08月29日) Linux高級文件系統管理

Linux 第15天: (08月29日) Linux高級文件系統管理shell

 

 


本章內容
設定文件系統配額
設定和管理軟RAID設備
配置邏輯卷
設定LVM快照
btrfs文件系統數據庫

 

 


配置配額系統
綜述
在內核中執行
以文件系統爲單位啓用
對不一樣組或者用戶的策略不一樣
根據塊或者節點進行限制
執行軟限制(soft limit)
硬限制(hard limit)
初始化
分區掛載選項:usrquota、grpquota
初始化數據庫:quotacheckapp

 


爲用戶設定配額
執行
開啓或者取消配額:quotaon、quotaoff
直接編輯配額:edquota username
在shell中直接編輯:
setquota usename 4096 5120 40 50 /foo
定義原始標準用戶
edquota -p user1 user2ide

 


報告配額狀態
報告
用戶調查:quota
配額概述:repquota
其它工具:warnquota工具

 


什麼是RAID
RAID:Redundant Arrays of Inexpensive(Independent)Disks
1988年由加利福尼亞大學伯克利分校(University of California-Berkeley)「A Case for Redundant Arrays of Inexpensive Disks」。
多個磁盤合成一個「陣列」來提供更好的性能、冗餘,或者二者都提供性能

 


RAID
提升IO能力:
磁盤並行讀寫
提升耐用性;
磁盤冗餘來實現
級別:多塊磁盤組織在一塊兒的工做方式有所不一樣
RAID實現的方式:
外接式磁盤陣列:經過擴展卡提供適配能力
內接式RAID:主板集成RAID控制器
安裝OS前在BIOS裏配置
Software RAID:測試

 


RAID級別
RAID-0:條帶卷,strip
RAID-1: 鏡像卷,mirror
RAID-2
..
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-4:
多塊數據盤異或運算值,存於專用校驗盤

 

RAID-5:
讀、寫性能提高
可用空間:(N-1)*min(S1,S2,...)
有容錯能力:容許最多1塊磁盤損壞
最少磁盤數:3, 3+

 

RAID-6:
讀、寫性能提高
可用空間:(N-2)*min(S1,S2,...)
有容錯能力:容許最多2塊磁盤損壞
最少磁盤數:4, 4+

 

RAID混合類型級別

 

RAID-10:
讀、寫性能提高
可用空間:N*min(S1,S2,...)/2
有容錯能力:每組鏡像最多隻能壞一塊
最少磁盤數:4, 4+

 

RAID-0一、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/md一、/dev/md二、/dev/md3等等


軟件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>: 任意塊設備


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


軟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


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


軟RAID管理
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停服務:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
刪除raid信息:mdadm –zero-superblock /dev/sdb1

 

 

 

邏輯卷管理器(LVM)
容許對捲進行方便操做的抽象層,包括從新設定文件系統的大小
容許在多個物理設備間從新組織文件系統
將設備指定爲物理卷
用一個或者多個物理捲來建立一個卷組
物理卷是用固定大小的物理區域(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中以加大容量


查看LVM的使用狀況
點擊「系統」->「管理」->「邏輯卷管理器」


增大或減少邏輯卷
打開邏輯卷管理器後,點擊「編輯屬性」,打開LVM屬性對話框:

刪除邏輯卷
刪除邏輯卷必須先刪除LV,再刪除VG,最後刪除PV
點擊邏輯卷管理器的「卷組」->「邏輯視圖」的LV邏輯卷
點擊「移除選擇的邏輯卷」,再刪除VG,最後刪除PV。

pv管理工具
顯示pv信息
pvs:簡要pv信息顯示
pvdisplay
建立pv
pvcreate /dev/DEVICE
顯示卷組
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


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


邏輯卷管理器快照
快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝
對於須要備份或者複製的現有數據集臨時拷貝以及其它操做來講,快照是最合適的選擇。
快照只有在它們和原來的邏輯卷不一樣時纔會消耗空間。
在生成快照時會分配給它必定的空間,但只有在原來的邏輯卷或者快照有所改變纔會使用這些空間
當原來的邏輯卷中有所改變時,會將舊的數據複製到快照中。
快照中只含有原來的邏輯卷中更改的數據或者自生成快照後的快照中更改的數據
創建快照的卷大小隻須要原始邏輯卷的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


btrfs文件系統
技術預覽版
Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle, 2007, CoW
核心特性:
多物理卷支持:btrfs可由多個底層物理卷組成;支持RAID,以及聯機「添加」、「移除」,「修改」
寫時複製更新機制(CoW):複製、更新及替換指針,而非「就地」更新
數據及元數據校驗碼:checksum
子卷:sub_volume
快照:支持快照的快照
透明壓縮

btrfs文件系統文件系統建立:mkfs.btrfs-L 'LABEL'-d <type>: raid0, raid1, raid5, raid6, raid10, single-m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup-O <feature>-O list-all: 列出支持的全部featuremkfs.btrfs-L mydata-f /dev/sdb/dev/sdc屬性查看:btrfsfilesystem show ; blkidbtrfs filesystem show –mounted|all-devices掛載文件系統:mount -t btrfs/dev/sdbMOUNT_POINT透明壓縮機制:mount -o compress={lzo|zlib} DEVICE MOUNT_POINT在線修改文件系統大小man btrfsbtrfsfilesystem resize -10G /mydatabtrfsfilesystem resize +5G /mydatabtrfsfilesystem resize max /mydata查看df–lh; btrfsfilesytemdf/mydata添加設備:man btrfs-devicebtrfsdevice add /dev/sdd/mydata平衡數據:man btrfs-banlancebtrfs banlance status /mydatabtrfs banlance start /mydatabtrfs banlance pause /mydatabtrfs banlance cancel /mydatabtrfs banlance resume /mydata刪除設備btrfs device delete /dev/sdb /mydata修改raid級別:注意raid對成員數量的要求btrfs balance start -mconvert=raid1|raid0|raid5 /mydatabtrfs balance start -dconvert=raid1|raid0|raid5 /mydata子卷管理:man btrfs-subvolumebtrfssubvolumelist /mydata 查看子卷ID等信息btrfssubvolumecreate /mydata/subv1umount/mydatamount -o subvol=subv1 /dev/sdd/mnt/subv1btrfssubvolumeshow /mnt/subv1mount /dev/sdb/mydata掛父卷,子卷自動掛載mount -o subvolid=### /dev/sdd/mnt/subv1子卷管理btrfssubvolumeshow /mnt/subv1btrfssubvolumedelete /mydata/subv1建立快照:btrfssubvolumesnapshot /mydata/subv1 \/mydata/snapshot_subv1btrfssubvolumelist /mydata刪除快照btrfssubvolumedelete /mydata/snapshot_subv1對一個文件作快照(當前卷)cd /mydata/subv1cp--reflinktestfilesnapshot_testfile

相關文章
相關標籤/搜索