標籤:加利福尼亞 software university linux 控制器
儲存管理:
這裡我們要學介紹兩種磁碟陣列:
磁碟陣列是由很多價格較便宜的磁碟,組合成一個容量巨大的磁碟組,利用個別磁碟提供資料所產生加成效果提升整個磁碟系統效能。利用這項技術,將資料切割成許多區段,分別存放在各個硬碟上。
一、RAID
1.RAID是什麼:
RAID:Redundant Arrays of Inexpensive Disks即:廉價磁碟冗餘陣列
1988年由加利福尼亞大學伯克利分校(University of California-Berkeley)提出的“A Case for Redundant Arrays of Inexpensive Disks”。旨在將多個相對廉價的IDE介面的磁碟合成一個“陣列”來提供更好的IO效能、實現磁碟冗餘,或者兩者都提供。
2.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, 2+
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-01、RAID-50
/// 注意:混合層級的RAID陣列,其實就是將兩個不同層級的陣列組合,從而完善各自的不足,向RAID 10 ,就是先組合幾個RAID1陣列,再將RAID1整列組合成RAID0陣列
RAID7:可以理解為一個隔離儲存區 (Isolated Storage)電腦,自身帶有作業系統和管理工具,可以獨立運行,理論上效能最高的RAID模式
JBOD:Just a Bunch Of Disks
功能:將多塊磁碟的空間合并一個大的連續空間使用
可用空間:sum(S1,S2,...)
常用層級:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
實現方式:
硬體實現方式
軟體實現方式
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>:任意塊裝置,注意如果是分區的話,其分區類型要改為fd
-C:建立模式
-n #:使用#個塊裝置來建立此RAID
-l #:指明要建立的RAID的層級
-a {yes|no}:自動建立目標RAID裝置的裝置檔案
-c CHUNK_SIZE:指明塊大小, 預設值為512K
-x #:指明空閑盤的個數
混雜模式:
1) 顯示RAID的詳細資料:mdadm -D /dev/md#
2) 停止md裝置:mdadm -S /dev/md0
管理員模式:
-f:為指定的磁碟或分區添加損壞標記
-a:添加磁碟或分區到md裝置中
-r:從md裝置中移除磁碟或分區
裝配模式:Assemble
-A
用於將停止的RAID裝置重新裝配使之能夠正常工作。
在裝配RAID裝置的時候,需要依賴/etc/mdadm.conf檔案進行
mdadm -D --scan >> /etc/mdadm.conf
mdadm -S /dev/md2
mdadm -S /dev/md0
mdadm -C -n 2 -l 0 /dev/sdc /dev/sdf
mdadm -A /dev/md2
mdadm /dev/md2 -a /dev/md0
注意: 我們用cat /proc/mkstat命令來查看md的狀態
watch命令:
-n #:重新整理時間間隔,單位為秒,預設為1秒;
watch -n # ‘COMMAND
LVM2
Logical Volume Manager,邏輯卷管理器,Version 2
IBM
使用純軟體的方式組織一個或多個底層的塊裝置,將它們重新定義為一個邏輯塊裝置的解決方案;
利用核心中的dm模組實現;
dm:device mapper,裝置映射表
dm模組可以將一個或多個底層塊裝置群組織成一個邏輯塊裝置;
使用者空間中的相應命令來向dm模組發出系統調用,就可以完成後邏輯塊裝置的管理;
邏輯塊裝置統一存放在/dev/dm-#
重點:使用DM機制實現LVM管理的步驟:
1.建立並表示物理卷,PV
注意:如果用來建立物理卷的裝置是普通分區,一定要將分區的ID修改為8e;
2.基於PV建立卷組,邏輯塊裝置,建立的卷組的同時指定PE的大小;
注意:一旦PE大小被指定,就不允許更改;
3.在已經建立的卷組中建立邏輯卷
4.在邏輯卷中建立檔案系統(進階格式化)
5.掛載
物理卷(pv)的管理操作:
pvcreate:建立物理卷
pvdisplay:顯示物理卷的詳細資料
pvs:顯示物理卷的簡單資訊
pvremove:刪除物理卷
pvmove:將某個物理卷中的所有的PE移動到其他物理卷中;
卷組(vg)的管理操作:
vgcreate:建立卷組
-s #{kKmMgG}:指定PE的大小,如果省略該選項,預設的PE為4M;
vgremove:刪除卷組
vgextend:擴充卷組容量,將新的pv添加到卷組中
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce:縮減卷組容量,將pv從卷組中移除;在做此操作之前,應該先使用pvmove,保證被移 除的pv上沒有被佔用的PE;
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgdisplay:顯示卷組的詳細資料
vgs:顯示卷組的簡簡訊息
邏輯卷(lv)的管理操作:
lvcreate:建立邏輯卷
-L LV_SIZE(#{kK|mM|gG}):指定邏輯卷的大小,不能超過卷組的容量;
-l #%{FREE|VG|ORIGIN|PVS}:指定邏輯卷佔用對應儲存單元的百分比;
-n LV_NAME:指定邏輯卷的名稱
-i #:在建立邏輯卷的時候,以條帶的方式建立,並指明這個邏輯卷上有#個條帶
-I #:在建立邏輯卷的時候,以條帶的方式建立,並指明CHUNK的大小;
lvremove:移除邏輯卷
lvdisplay:顯示邏輯卷的詳細資料
lvs:顯示邏輯卷的簡簡訊息
lvchange:修改LV的狀態
-ay:啟用邏輯卷
-an:停用邏輯卷
lvextend:擴充邏輯卷的空間,
///注意:一定要先擴充邏輯卷的物理邊界,再擴充邏輯卷的邏輯邊界;使用ext系列檔案系統的時候,resize2fs命令擴充邏輯邊界;
1)擴大邏輯卷的物理邊界:
lvextend -L [+]SIZE /PATH/TO/LVM
如果SIZE有+:表示在原有邏輯卷容量的基礎上,增加SIZE空間
如果SIZE無+:表示將邏輯卷的容量擴大到SIZE空間
2)擴大邏輯卷的邏輯邊界:
e2fsck /PATH/TO/LVM
resize2fs [-f] /PATH/TO/LVM
lvreduce:縮減邏輯卷的空間
注意:先縮減邏輯卷的邏輯邊界,再縮減邏輯卷的物理邊界;使用ext系列檔案系統的時候,resize2fs命令縮減邏輯邊界
lvreduce -L [-]SIZE /PATH/TO/LVM
如果SIZE有-:表示在原有邏輯卷容量的基礎上,削減SIZE空間
如果SIZE無-:表示將邏輯卷的容量直接削減至SIZE空間
umount /PATH/TO/LVM
e2fsck /PATH/TO/LVM //強制校正資料一致性
resize2fs -f /PATH/TO/LVM LV_SiZE //修改邏輯卷的邏輯邊界,LV_SIZE為調整後的邏輯卷大小
lvchange -an /PATH/TO/LVM //關閉邏輯卷
lvreduce -L [+]SIZE /PATH/TO/LVM //修改邏輯卷的物理邊界,大小要和邏輯邊界保持一致
lvchange -ay /PATH/TO/LVM //重新啟用邏輯卷
mount /PATH/TO/LVM /PATH/TO/LVM_MOUNT_POINT
為了更方便的使用邏輯卷,為/dev/dm-#裝置建立了兩個符號連結檔案:
/dev/mapper/VG_NAME-LV_NAME --> ../dm-#
/dev/VG_NAME/LV_NAME --> ../dm-#
三、邏輯卷的快照:
1.什麼是快照?
快照本身也是一種邏輯卷;目標邏輯卷的另外一個訪問路徑;快照是特殊的邏輯卷,它是在產生快照時存在的邏輯卷的準確拷貝;對於需要備份或者複製的現有資料集臨時拷貝以及其它操作來說,快照是最合適的選擇。快照只有在它們和原來的邏輯卷不同時才會消耗空間。在產生快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間當原來的邏輯卷中有所改變時,會將舊的資料複製到快照中。快照中只含有原來的邏輯卷中更改的資料或者自產生快照後的快照中更改的資料,也可以使用lvextend擴充快照卷。
快照就是將當時的系統資訊記錄下來,就好像照相一般,若將來有任何資料改動了,則未經處理資料會被移動到快照區,沒有改動的地區則由快照區和檔案系統共用。
由於快照區與原本的LV共用很多PE的區塊,因此快照去與被快照的LV必須要要在同一個VG上!系統復原的時候的檔案數量不能高於快照區的實際容量。
快照邏輯卷
lvcreate -L SNAPSHOT_SIZE -s -p r -n SNAPSHOT_NAME /PATH/TO/ORIGIN_LVM
-L SIZE:指定快照邏輯卷的大小
-s:建立一個快照邏輯卷
-p r:建立處理的邏輯卷是唯讀許可權
-n SNAPSHOT_NAME:指定快照邏輯卷的名稱
linux系統管理之儲存管理