1. 程式人生 > >Linux存儲管理(2)

Linux存儲管理(2)

linux 空間 能力 用戶

RAID磁盤陣列,簡稱獨立磁盤冗余陣列。可以將多個硬盤按不同方式組合在一起形成一個硬盤組,從而產生比單個硬盤更高的存儲行能和數據備份功能;使多個磁盤實現並行讀寫;擁有容錯能力;用戶可以對組成的硬盤組進行格式化,掛載等操作,與單個硬盤的操作一模一樣,但其存儲速度就要比單個硬盤的存儲速度要高得多;

RAID磁盤陣列按等級劃分,不同等級所具有的功能不同,級數越高,對硬盤組的功能也就越完善,在這裏給大家介紹一下;


RAID0:

需要由至少兩塊磁盤才能組成的磁盤陣列,要求磁盤所有的內存都投入使用,沒有存儲空間浪費所以並沒有冗余容錯能力;

RAID1:

RAID1是通過磁盤數據鏡像實現數據冗余,在成堆的獨立磁盤上產生互為備份的數據,即先將數據存入主盤,再將數據存入從盤,當一個磁盤失效後,系統可以自動切換到鏡像磁盤上讀寫;磁盤整體利用率較低,為50%;如果兩塊磁盤60G,則磁盤利用率為30G;有冗余容錯能力;

RAID4:

RAID4磁盤陣列至少需要三塊硬盤組成,其中固定一塊硬盤作為校驗盤,當作為數據載體的兩塊硬盤中的其中一塊存在數據丟失,則可以通過校驗快和另一塊硬盤進行異或校驗得出丟失數據硬盤的數據;但是如果固定一塊硬盤作為校驗盤,校驗盤IO壓力巨大,很容易形成性能瓶頸;

RAID5:

RAID5磁盤陣列也是一個需要至少三塊硬盤來實現的磁盤陣列;他與RAID4不同在於,他不會固定一塊硬盤做為校驗盤,而是隨機循環讓硬盤做為校驗盤;多塊磁盤進行循環冗余校驗,將校驗值隨機分配到不同磁盤的條帶中;讀寫IO性能均明顯提升,又不會出現性能瓶頸;

RAID6:

RAID6磁盤是一個至少需要四塊磁盤來組成,可以多塊磁盤進行兩輪循環冗余校驗,將校驗值隨機分配到兩個不同磁盤的條帶中;讀寫IO性能均明顯提升,又不會出現性能瓶頸;其最多允許兩塊磁盤出現故障損壞,依然保證數據可用,代價就是增加了計算校驗值的時間;

RAID2和RAID3因為在一線運維中並不經常使用所以在這裏就不多加描述;


建立RAID磁盤陣列命令:

mdadm:模式化工具;

該命令分為三種模式進行工作,創建模式,裝配模式以及管理模式;

創建模式:-C

常用選項:

-n #:使用多少塊硬盤進行陣列創建,要結合所創建陣列的最小磁盤數進行搭配;

-l #:創建的RAID陣列級別;

-a(yes|no):允許系統或不允許系統自動創建md設備文件;

-c CHUNK——SIZE:指定CHUNK的大小;

-x #:指定在陣列中空閑磁盤的數量;

管理模式:

-f:為指定的磁盤或分區添加損壞標記;

-a:添加磁盤或分區到md設備中;

-r:從md設備中移除磁盤或分區;

-S:停止陣列;

-D --scan:

顯示查看RAID設備的詳細信息;

mdadm -D --scan > /etc/mdadm.conf

保存裝配信息

裝配模式:-A

通過讀取/etc/mdadm.conf文件中的裝配信息,對RAID磁盤陣列進行裝配;

#mdadm -S /dev/md0 停止陣列

#mdadm -C /dev/md0 -n 4 -l 0 -a yes /dev/sd{b,c,d,e} 創建陣列,創建由四個磁盤構成的 RAID0陣列

#mke2fs -t ext4 /dev/md0 為RAID陣列創建文件系統

掛載到根下的目錄中;


RAID磁盤陣列給我們提供不同模式的磁盤組合,而如何去有效管理這些由多個磁盤組合在一起的磁盤組,致使在有需要的情況下,可以對磁盤進行擴展,縮減操作;當遇到某個分區不夠用時管理員可能甚至要備份整個系統、清除硬盤、重新對硬盤分區,然後恢復數據到新分區。這樣的方式效率太低,甚至需要重啟整個系統,這對運維工作人員來說很難實現,於是有了LVM邏輯盤卷管理的方式出現;

LVM是Linux系統管理磁盤分區的一種機制,是建立在硬盤和分區上的一個邏輯層,來為文件系統屏蔽下層磁盤分區布局提供一個抽象的盤卷,在盤卷上創建文件系統;物理卷(physical volume)物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。一個或多個物理卷可以組成一個卷組;

註意:如果用來創建物理卷的設備是普通分區,一定要將分區的ID修改為8e;


LVM機制流程:

1.創建並表示物理卷

2.在物理卷的基礎上創建卷組,在創建卷組時需要指定PE大小,默認為4MB,一旦確定就不可再修改;

3.在已經創建的卷組中,創建邏輯卷;

4.在邏輯卷中創建文件系統;(高級格式化)

5.掛載;


物理卷的管理操作:

pvcreate:創建物理卷,將希望添加到卷組的磁盤或分區添加到物理卷中;

pvdisplay:顯示物理卷的詳細信息;

pvs:顯示物理卷的簡單信息;

pvremove:刪除物理卷;

pvmove:將某個物理卷中的所有PE移動到其他物理卷,保證物理卷上沒有任何PE占據才能刪除;否則會影響邏輯卷裏的數據;

#pvcreate /dev/sd{b,c,d,e} 創建四個物理塊

#pvremove /dev/sde 若物理塊中沒有數據可直接刪除

#pvmove /dev/sdc 將sdc的物理卷移到其他物理卷

#pvremove /dev/sdc 才可以刪除

卷組管理操作:

vgcreate:卷組創建命令,將幾個物理塊,組合成一個卷組;並且指定PE大小;

-s [Kk|Mm|Gg|:指定PE大小,如果省略該選項,默認PE為4MB,必須為2的n次方;

#vgcreate myvg /dev/sd{b,c,d,e}


vgremove:刪除卷組;

vgremove /dev/myvg 刪除卷組myvg


vgextend:擴展卷組容量,將新的物理卷往卷組中添加;

vgextend myvg /dev/sdf 將新的物理塊sdf添加到卷組中


vgreduce:縮減卷組容量,將pv從卷組中移除,在做此操作前,應該先使用pvmove,將要移除的物理卷中的數據轉移到其他物理卷中,避免數據流失;

pvmove /dev/sdb

vgreduce myvg /dev/sdb


邏輯卷管理操作:

lvcreate:創建邏輯卷,需要指定邏輯卷的大小,若邏輯卷容量不夠,可以不超過卷組容量的情況下添加,若卷組容量不夠,可通過添加物理塊增加卷組容量;

-L LV_SIZE(#{kK|mM|gG}):指定邏輯卷大小,不能超過卷

組大小;

#lvcreate -L 20G -n mylv myvg


-l #%{FREE|VG|ORIGIN|PVS}:指定邏輯卷占用對應存儲單元的百分比;

FREE:邏輯卷剩余空間的百分比;

VG:卷組剩余空間的百分比;

-n:指定邏輯卷的名稱;

lvremove:移除邏輯卷;刪除邏輯卷之前,如果已經掛載,則先將邏輯卷卸載,再移除;

#umount /dev/myvg/mylv

#lvremove /dev/myvg/mylv

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

lvs:顯示邏輯卷的簡短信息;

lvchange:修改LV的狀態;

-ay:激活邏輯卷;

-an:停用邏輯卷;

lvextend:擴展邏輯卷空間;

在添加邏輯卷的空間時需要在物理情況下添加邏輯卷的空間,再在邏輯情況下添加邏輯卷的空間;

#lvextend -L -5G /dev/myvg/mylv 構建物理邊界

#resize2fs -f /dev/myvg/mylv 構建邏輯邊界


lvreduce:縮減邏輯卷空間;

先卸載掛載內容;

umount /dev/raid_vg/raid_lv

resize2fs -f /dev/raid_vg/raid_lv 15G

e2fsck /dev/raid_vg/raid_lv

lvreduce -L 15G /dev/raid_vg/raid_lv

mount /dev/raid_vg/raid_lv /userhome/

先將數據存入主盤,在將數據存入從盤據掛載


快照卷:快照卷也是邏輯卷的一種,只不過快照卷的屬性與普通邏輯卷的屬性不太一樣;以此來獲得文件系統狀態的一致性備份;在為邏輯卷創建快照卷後,並不會發生數據的物理復制,只有在原始邏輯卷發生改變後,快照卷才會自動將修改前的邏輯卷的數據復制下來;

建立快照

-s:創建快照卷;

-n:快照卷名字;

lvcreate -s -p -L 15G -n mylv-snopshot /dev/myvg/mylv

創建大小為15G的快照卷,快照卷的大小,最好與被備份數據一致,備份目標的邏輯卷路徑,快照卷名稱為mylv-snopshot

創建完快照卷後再對其建立文件系統,掛載;備份完數據後再對其卸載,移除快照卷;





















Linux存儲管理(2)