高級文件系統管理之mdadm與lvm的創建

配置配額系統

磁盤配額就是管理員可以爲用戶所能使用的磁盤空間進行配額限制,每一用戶只能使用最大配額範圍內的磁盤空間,比如一些網盤就是基於這個功能來做的,分配給用戶固定的空間,花錢買,可以將空間設置的更大。

功能作用

磁盤配額可以限制指定賬戶能夠使用的磁盤空間,這樣可以避免因某個用戶的過度的使用磁盤空間造成其它用戶無法運行或工作甚至影響系統運行。這個功能不止是linux有,windows系統當中也有磁盤配額。

綜述

它是在內核中運行的,以文件系統爲單位啓用,對不同組合用戶的策略不同,根據塊或者節點進行限制

執行軟限制(soft limit

硬限制(hard limit

 

初始化

分區掛載選項:usrquotagrpquota

當你相對某個分區做磁盤配額時,需要在/etc/fstab中的掛載選項寫上這兩項才能做磁盤配額,完成之後需要重新掛載(mount –o remount  device  mount_point)

初始化數據庫:quotacheck

quotacheck [ -gubcfinvdMmR ]  [  -F  quota-format  ]  -a  | filesystem

選項:

-c:創建

-u:對某個用戶設置磁盤配額

-g:對某個組設置磁盤配額

-m:不用重新掛載

例如我想對/home做磁盤配額就需要初始化數據庫

quotacheck –cumg  /home

初始化完成後會在/home目錄下生成兩個文件aquota.group,aquota.user

     1.jpg

啓用配額

quotaon  mount_point

關閉配額

quotaoff  mount_point

編輯配額:通過打開文件編輯內容

Disk quotas for user hadoop (uid 500):

  Filesystem                                    blocks       soft    hard    inodes   soft    hard

  /dev/mapper/VolGroup-lv_home    2048          0         0         12          0        0

blocks:當前目錄下的文件總大小

soft:觸發警告的初始值,最低容量限制

hard:允許儲存最大的容量限制

inodes:當前目錄的文件數量

soft:文件的最小值

hadr:單個文件大小的最大值

當我們相對hadoop用戶設置磁盤配置時只需要更改blocks後面的softhard限制,大小根據自己的實際情況來定,也可以定義創建單個文件的大小

命令行直接編輯

setquota  username  4096   5120  40 50  /home

這裏的限制容量大小的默認值爲字節

示例

setquota  hadoop  4096  5120  40   50  /home

有時候需要批量設置某些用戶的磁盤配額,一個個重新創建太麻煩,這裏介紹一種批量創建的方法:

edquota  -p   user1   user2user1設定要的配額值給user2同樣設定

edquota -p xxxx `awk -F: ’$3 >499 {print $1}’ /etc/passwd`

查詢磁盤配額

 quota

 repquota  -a

假如有多個分區爲quota,可用repquota -u 掛載點 查詢單個分區的使用情況

     2.jpg

 

 

RAID

  什麼是RAID?

RAID(Redundant  Arry  of Inexpensive  Disk)稱爲廉價磁盤冗餘陣列。RAID的基本想法是把多個便宜的小磁盤組合到一起,成爲一個磁盤組,使性能達到或超過一個容量巨大、價格貴的磁盤,目前RAID技術大致分爲兩種:基於硬件的RAID技術和軟件實現的RAID,其中linux下通過自帶的軟件(mdadm)就能實現RAID的功能,所以它配置靈活、管理方便。同時使用RAID,還可以實現將幾個屋裏磁盤合併成爲一個更大的虛擬設備,從而達到性能改進和數據冗餘的目的,當然基於硬件的RAID解決的方案比基於軟件RAID技術在使用性能上稍勝一籌,具體表現在檢測和修復多爲錯誤的能力、錯誤磁盤自動檢測和陣列重建等方面。

 

作用

提高IO能力,磁盤並行讀寫

提高耐用性,磁盤冗餘來實現

級別,多塊磁盤組織在一起的工作方式有所不同

RAID實現的方式

外接式磁盤整理額:

通過擴展卡提供適配能力

內接式RAID:主板集成RAID控制器,安裝OS前在BIOS中配置

RAID,例如mdadm

 

 

RAID級別

RAID-0

也稱爲爲條帶模式,即把連續的數 據分散到多個磁盤上存取,如圖所示,當系統有數據請求就可以被多個磁盤並行的執行,每個磁盤執行屬於它自己的那部分數據請求,這種數據上的並行操作可以充 分利用總線的帶寬,顯著提高磁盤整體存取性能。因爲讀取和寫入實在設備上並行完成的,讀取和寫入性能將會增加這通常是運行RAID-0的原因,但RAID-0沒有數據冗餘,如果磁盤出現故障,那麼僵無法恢復任何數據。成本低,要求至少兩個磁盤,一般只是在那些對數據安全性要求不高的情況下才被使用。

容錯性

冗餘

熱備盤

讀性能

隨機寫性能

連續寫性能

需要的磁盤數

22N

可用容量

100%

典型應用

無故障的迅速讀寫,要求安全性不高,如圖形工作站

     3.jpg

 

RAID-1

RAID-1又稱爲鏡像,一個具有全冗餘的模式,如圖,RAID可以用兩個或2n個磁盤,並使用0塊或更多的備用磁盤,每次寫數據時會同時寫入鏡像盤,這種陣列可靠性高,但其有效容量減小到總容量的一般,同時這些磁盤的大小應該相等,只要系統中任何一對鏡像盤中至少有一塊磁盤可以使用,甚至可以在一半數量的硬盤出現問題時系統都可以正常運行,出現硬盤故障的RAID系統不再可靠,應當及時的更換損壞的硬盤,否則剩餘的鏡像盤也出現問題,那麼整個系統就會崩,更換新盤後原有數據會需要很長時間同步鏡像,外界對數據的訪問不會受到影響,只是這時整個系統的性能有所下降,RAID 1磁盤控制器的負載相當大,用多個磁盤控制器可以提高數據的安全性和可用性。

容錯性

冗餘

熱備盤

讀性能

隨機寫性能

連續寫性能

需要的磁盤數

22N

可用容量

50%

     4.jpg

 

RAID-4

RAID4在一個磁盤上保存校驗信息,兵役RAID0的方式將數據寫入其他磁盤,如果一個磁盤出現故障,可以使用校驗信息來重建所有數據,如果兩個磁盤出現故障,那麼所有數據豆漿丟失,RAID4不常使用,原因是將校驗信息存儲在同一個磁盤上,每次寫入其他磁盤時,都必須更新這些信息,大致大寫的寫入數據容易造成校驗判的瓶頸。

容錯性

冗餘

熱備盤

讀性能

隨機寫性能

連續寫性能

需要的磁盤數

2或以上

可用容量

n-1/n

     5.jpg

RAID-5

RAID可以理解爲是RAID0RAID1的折中方案,但沒有完全使用RAID1的鏡像理念,而是使用了就奇偶校驗信息來作爲數據恢復的方式,沒有單獨指定的校驗盤,而是交的存取數據及奇偶校驗信息與所有磁盤上,在讀寫性能上都提升了,對於RAID5來說大部分數據傳輸只對一塊磁盤操作,可進行秉性操作,在RAID5中有寫損失,即每一次寫操作,將產生四個實際的讀寫操作,其中兩次讀舊的數據及就信息,兩次寫心得數據及奇偶信息。

 

容錯性

冗餘

奇偶校驗

熱備盤

讀性能

隨機寫性能

連續寫性能

需要的磁盤數

3個或3個以上

可用容量

n-1/n

典型應用

隊數據傳輸要求安全性高如金融,數據庫,存儲

         6.jpg

 

RAID6

RAID6RAID家族中的新技術,是在RAID5的基礎上擴展而來的,所以同RAID5一樣,數據和校驗碼都是被分成數據塊然後分貝存儲到磁盤陣列的各個硬盤上。RAID加入了一個獨立的校驗磁盤,它把分佈在磁盤上的校驗碼都備份在一起,這樣在磁盤整列就允許多個磁盤同時出現故障,但消耗了太多的磁盤空間。

容錯性

冗餘

奇偶校驗

熱備盤

讀性能

隨機寫性能

連續寫性能

需要的磁盤數

4個或4個以上

可用容量

n-2/n

典型應用

隊數據傳輸要求安全性高如金融,數據庫,存儲

      7.jpg   

RAID-10

RAID-10是一個RAID0RAID1的組合體,它是利用奇偶校驗實現條帶及鏡像,所以它記性了RAID0的快速和RAID1的安全,我們知道,RAID1在這裏就是一個冗餘的備份陣列,而RAID0則負責數據的讀寫速度,更多的情況是從主通路分出兩路,做Striping操作,即把數據分割,而這分出來的每一路則再分兩路,做Mirroring操作,即互做鏡像

容錯性

冗餘

偶校

熱備盤

讀性能

隨機寫性能

連續寫性能

需要的磁盤數

4個或4個以上

可用容量

50%

典型應用

隊數據傳輸要求安全性高如金融,數據庫,存儲

         8.jpg  

 

RAID-01

RAID-01以四個磁盤組成的RAID 0+1爲例,其數據存儲方式如圖所示:RAID 0+1是存儲性能和數據安全兼顧的方案。它在提供與RAID 1一樣的數據安全保障的同時,也提供了與RAID 0近似的存儲性能。由於RAID 0+1也通過數據的100%備份功能提供數據安全保障,因此RAID 0+1的磁盤空間利用率與RAID 1相同,存儲成本高。當鏡像盤的中任意一個磁盤壞帶,數據將會丟失

     10.jpg

 

 

RAID

通過軟件的方式來實現raid各個級別的功能,性能沒有硬件raid那麼強大,但它可以用來在測試環境當中使用。linux當中使用mdadm這個工具來實現raid的功能

mdadm:爲軟RAID提供管理界面

爲空餘磁盤添加冗餘,結合內核中的mdmutil devices),RAID設備可命令爲/dev/md0/dev/md1等等

 

 

mdadm:模式化的工具

語法格式:mdadm [mode] <raiddevice> [options] <component-devices>

支持的RAID級別:Linux supports LINEAR md devices, RAID0  (striping),  RAID1  (mirror-

       ing), RAID4, RAID5, RAID6, RAID10, MULTIPATH, FAULTY, and CONTAINER.

模式:

創建模式  -C

專用選項

 -l  指定raid級別

 -n  指定設備數量

 -a  自動爲其創建設備文件   yes|no

 -c  指定chunk大小一般設定爲2^n,默認爲64k

 -x  指定空閒盤個數,當其中某個盤壞掉,自動頂上去

 

管理模式  -F

-a  –add     添加磁盤

–r  –remove  刪除磁盤

-f   –fail     模擬損壞磁盤

mdadm /dev/md0   -a  /dev/sdb1

mdadm /dev/md0   -r   /dev/sdb2

mdadm /dev/md0   -f   /dev/sdb3

 

監控模式 –F

 查看軟raid的狀態,相當於查看/proc/mdstat

 

增長模式 –G

比如我要想某個raid設備當中添加一塊新磁盤以擴大raid的容量

mdadm –G /dev/md0 –n4 -a /dev/sdf1

 

裝配模式         -A

raid設備時停止的狀態時,可以使用此模式將其激活

mdadm –A  /dev/md0  /dev/sdb1  /dev/sdb2  /dev/sdb3

 

查看RAID的陣列的詳細信息

mdadm  -D  /dev/md0或者查看文件/proc/mdstat

 

停止陣列

mdadm  -S  /dev/md0

 

將當前RAID信息保存至配置文件,以便以後進行裝配

mdadm  -D –s  >/etc/mdadm.conf

刪除raid

raid之前必須要先停止raid設備,然後刪除raid信息

mdadm  –zero-superblock  /dev/sdb1

mdadm  –zero-superblock  /dev/sdb2

mdadm  –zero-superblock  /dev/sdb3

 

示例:

創建一個可用空間爲1GRAID1設備,要求其chunk大小爲128k,文件系統爲ext4,有一個空閒盤,開機可自動掛載至/backup目錄

由於RAID1的利用率是100%,所以這裏只需要創建一塊空間大小爲1G的分區,將分區類型改爲fd,然後創建raid,然後又要求需要一塊空閒盤,所以還得創建一個大小同爲1G的分區,分區類型也得改爲fd,開機需要自動掛載,這是需要將條目寫到/etc/fstab    d當中去

第一步、分兩個區大小都爲1G,完成後更改分區的類型爲fd Linux auto raid類型

第二步、創建raid mdadm -C /dev/md0 a yes  -c 128k  -l 1 -n 1 -x 1  /dev/sdc{5,6}

第三步、格式化  mke2fs  t ext4  /dev/md0

第四步、將條目寫到/etc/fstab中去,實現開機自動掛載

 3.jpg

4.jpg

2:創建由三塊硬盤組成的可用空間爲2GRAID5設備,要求其chunk大小爲256k,文件系統爲ext4,開機可自動掛載至/mydata目錄

     5.jpg   

     6.jpg    

邏輯卷管理

LVM Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz MauelshagenLinux 2.4內核上實現,目前最新版本爲:穩定版1.0.5,開發版 1.1.0-rc2,以及LVM2開發版。Linux用戶安裝Linux操作系統 遇到的一個常見的難以決定的問題就是如何正確地評估各分區大小,以分配合適的硬盤空間。與傳統的磁盤與分區相比,LVM爲計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的爲應用與用戶分配存儲空間。在LVM管理下的存儲卷可以按需要隨時改變大小與移除(可能需對文件系統工具進行升級)

好處

允許對捲進行方便操作的抽象層,包括重新設定文件系統大小

允許在多個物理設備間重新組織文件系統

將設備指定爲物理卷,用一個或多個物理捲來創建一個卷組

lvm可以彈性的更改lvm的容量

         11.jpg

LVM基本術語

物理存儲介質:這裏指系統的存儲設備如/dev/sda  /dev/sdb等等

物理卷:物理卷就是指硬盤分區或邏輯上與磁盤分區具有同樣的功能

卷組:LVM卷組類似於lvm系統中的物理硬盤,其有物理卷組成。可以在卷組上創建一個或多個lvm分區,lvm卷組由一個或多個物理卷組成

邏輯卷:lvm的邏輯卷類似於硬盤分區,在邏輯卷之上可以建立文件系統

PEphysical extend)每個一個物理卷被劃分爲PE的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元,默認爲4MB,可以更改

LE:邏輯卷也被劃分成爲LE的可被尋址的基本單位,在同一卷組中,LE的大小和PE是相同的。

簡單的說就是:

PV:是物理的磁盤分區

VG:LVM中的物理的磁盤分區,也就是PV,必須加入VG,可以將VG理解爲一個倉庫或者是幾個大的硬盤。

LV:也就是從VG中劃分的邏輯分區

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

設備名:/dev/dm-#

軟連接

/dev/mapper/Vg_name-Lv_name

 /dev/mapper/vol0-root

/dev/Vg_name_Lv_name

/dev/vol0/root

 

pv管理工具

pvs:簡要查看pv信息

pvdisplay:詳細查看pv信息,也可在後面跟某個設備,查看某個pv的詳細信息

創建pv

pvcreate

pvcreate  [–commandprofile  ProfileName]  [-d|–debug]  [-h|–help] [-t|–test]

       [-v|–verbose] [–version] [-f[f]|–force [–force]] [-y|–yes]  [–labelsector]

       [–bootloaderareasize  size] [-M|–metadatatype type] [–[pv]metadatacopies Num-

       berOfCopies] [–metadatasize  size]  [–metadataignore  {y|n}]  [–dataalignment

       alignment]   [–dataalignmentoffset   alignment_offset]   [–restorefile   file]

       [–norestorefile] [–setphysicalvolumesize  size]  [-u|–uuid  uuid]  [-Z|–zero

       {y|n}] PhysicalVolume [PhysicalVolume…]

pvcreate  /dev/sdb1  /dev/sdb2  /dev/sdb3

 

vg管理工具

顯示卷組

vgs:簡要顯示vg信息

vgdisplay:詳細顯示vg信息

創建卷組

vgcreate

      vgcreate [-s|–physicalextentsize  PhysicalEx- tentSize[bBsSkKmMgGtTpPeE]]   [–shared]   [–systemid   SystemID]   [-t|–test] [-v|–verbose] [–version] [PHYSICAL DEVICE OPTIONS] VolumeGroupName PhysicalDe-vicePath [PhysicalDevicePath…]

 

vgcreate   vg0  /dev/sdb1  /dev/sdb2  /dev/sdb3

 

管理卷組

vgextend 拉伸卷組

vgextend  vg0  /dev/sdc1  /dev/sdc2

 

刪除卷組

vgremove,先將數據移動到指定的設備上,然後再刪除,將底層存在pv上的數據移動到其他硬盤,pvmove /dev/sdb{1,2,3} /dev/sdc{1,2,3}

vgreduce vg0 /dev/sdb{1,2,3} 將卷組上的pv移除

vgremove vg0  最後移除卷組

lv管理工具

lvs:簡要顯示邏輯卷的信息

lvdisplay:詳細顯示邏輯卷的信息

創建邏輯卷

lvcreate

lvcreate [-a|–activate [ [–cachesettings key=value] [-c|–chunksize ChunkSize]  [{-l|–extents]LogicalExtentsNumber[%{FREE|PVS|VG}] | -L|–size LogicalVolumeSize}[-i|–stripes Stripes [-I|–stripesize StripeSize]]] [-h|-?|–help][-s|–snapshot]  [-t|–test]  [–type SegmentType] [-v|–verbose]

  

lvcreate  -L  [mMgGtT]  -n  lv_name  vgname

-l # :使用多少個PE的容量來創建邏輯卷

-L  :直接指定使用多大容量來創建卷組

重新設定文件系統的大小

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   擴大邏輯邊界

 

示例:

 

1、創建一個至少有兩個PV組成的大小爲10G的名爲testvgVG;要求PE大小爲16MB, 而後在卷組中創建大小爲5G的邏輯卷testlv;掛載至/users目錄

第一步分兩個分區,並且大小爲10G更改分區類型爲8e

第二步、創建pv   pvcreate /dev/sdc2 /dev/sdc3

第三步、創建卷組 vgcreate vg0   -s  16M /dev/sdc2 /dev/sdc3

第四部、創建卷組 lvcreate  -L 20G n testvg  vg0

第五步、格式化掛載  mke2fs t ext4  /dev/vg0/testlv  ,mount /dev/vg0/testlv   /users (如果目錄實現不存在需要創建)

第六步、爲了開機能夠掛載寫到/etc/fstab 當中去

       12.jpg

       13.jpg  

 

      

       
 2、擴展testlv至7G,要求archlinux用戶的文件不能丟失

要擴展必須先要查看testlv他的卷組當中的剩餘空間還夠不夠,如果卷組當中的剩餘空間不夠的,需要再創建一個分區,然後拉伸卷組的空間,之後擴展邏輯卷,使用lvextend之後只是拉伸了物理空間,而邏輯空間的還是沒有改變,這裏需要執行resize2fs  device這條命令來動態拉伸邏輯卷的空間

第一步、查看卷組所剩空間大小vgdisplay  vg0查看FREE PE那一項還有沒有空間,正好我這裏是有的

第二步、拉伸邏輯卷  lvextend  -L +2G  /dev/vg0/testlv 

第三步、使其生效  resize2fs  /dev/vg0/testlv

     14.jpg

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