Linux系統下RAID和LVM的實現
一、本為中主要介紹RAID常用的RAID0、RAID1、RAID01、RAID10、RAID5格式的RAID卷和LVM卷的建立和測試
二、磁盤陣列是一種把若干硬磁盤驅動器按照一定的要求組成一個整體,整體磁盤陣列由陣列控制器管理的系統。冗余磁盤陣列RAID技術1987年由加州大學伯克利分銷提出的。
三、RAID基本結束
RAID:Redundant Array of Inexpensive Disks,全稱為廉價磁盤冗余陣列。
RAID的基本特性就是組合,捆綁2個或多個物理磁盤成組,形成一個單一的邏輯盤。在RAID內數據以塊(chunks)的形式寫入組合套中。另一個特性是具備數據校驗功能,該校驗可以用於RAID級別2、3、4、5、的額外信息,當磁盤失敗的情況發生時,校驗功能結合完好的磁盤中的數據,可以重建失效的磁盤上的數據。
RAID的優點:提高磁盤的存儲容量,多磁盤並行工作,提高了數據的傳輸率,由於數據的校驗功能,提高了數據的可靠性!
四、RAID各個級別的介紹
1、RAID0:條帶技術,亦稱為帶區集。
所需硬盤:至少2塊
處理數據:把數據分塊寫入組成RAID的磁盤內,從而提升了I/O速率。
容錯功能:不提供冗余功能,如果有一個磁盤損壞,則所有數據無法使用
磁盤利用率:nS
磁盤容量:n
2、RAID1:鏡像技術,亦稱為磁盤鏡像。
所需硬盤:至少2塊
處理數據:把數據寫入一個磁盤上後再復制到此磁盤的鏡像盤上進行備份,從而造成寫入能力減慢,但是讀出的時候速度快。
容錯功能:提供冗余功能,只有保證兩個磁盤中的有一個為好的,系統就可以使用此卷內的數據。
磁盤利用率:1/2
磁盤容量: n/2
3、RAID10:鏡像和條帶技術
所需硬盤:至少4塊
處理數據:先把數據按照RAID1的方式進行鏡像存儲組合,然後把組合後的RAID1卷當成物理卷進行RAID0組合。從而讀、寫功能都得到了提高。
容錯功能:利用RAID1技術對數據提供容錯功能。
磁盤利用率:1/2
磁盤容量: n/2
4、RAID01:條帶和鏡像技術
所需硬盤:至少4塊
處理數據:先把數據按照RAID0的方式進行存儲組合,然後把組合後的RAID0卷當成物理卷進行RAID1組合。從而讀、寫功能都得到了提高。
容錯功能:利用RAID1技術對數據提供容錯功能。
磁盤利用率:1/2
磁盤容量: n/2
5、RAID5:校驗碼技術
所需硬盤:至少3塊
處理數據:把數據分別寫入其中的n-1塊磁盤上,然後在另外一塊磁盤上存儲數據的校驗碼,提高了數據的讀寫能力。
容錯功能:根據效驗碼提供冗余功能,
磁盤利用率:(n-1)/n
磁盤容量: n-1
6、RAID50:校驗碼和條帶存儲技術
所需硬盤:至少6塊
處理數據:先把磁盤安裝RAID5進行數據存儲,然後再把RAID5安裝RAID0的方式組合起來,這樣既提供了讀寫能力,也提供了數據冗余功能。
容錯功能:提供冗余功能
磁盤利用率:(n-2)/n
磁盤容量: n-2
五、RAID在linux系統上的實現:
1、RAID的實現有兩種方式:硬RAID和軟RAID,
硬RAID是在硬件上進行RAID陣列的假設,要求主機上面具有RAID卡和RAID控制器。然後在計算機BIOS裡進行設置,此處先不做詳細介紹。
軟RAID:linux系統內核內提供了md模塊,來提供在linux系統內進行RAID磁盤陣列架設所需要的服務和支持。
2、mdadm命令;linux系統上建立RAID卷的命令,這是個模式化的命令
創建模式:
-C:新建RAID卷
專用選項:
-l:選擇RAID級別
-n:硬盤設備個數
-a:自動為其創建設備文件,後跟yes、no
-c:指定chunk(數據庫)大小,為2的整數次方默認為64K
-x:指定空閒盤個數--提供冗余,磁盤損壞後直接加載上去
Fg:創建raid0
madadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{6,7}
Mke2fs -j /dev/md0
Mount /dev/mdo /mnt
管理模式:
-f | --fail :模擬磁盤為損壞盤
Fg: mdadm /dev/md0 --fail /dev/sda7
-a | --add :新增硬盤
Fg:mdadm /dev/md0 -a /dev/sda8
-r | --remove :移除損壞的硬盤
監控模式:
-F
增長模式:
-G
裝配模式:
-A
Fg:mdadm -A /dev/md0 /dev/sda8 /dev/sda9
3、查看當前系統的RAID信息:
-D:顯示RAID的相關信息
--detail:顯示信息
4、停止RAID陣列
-S | --stop
5、將當前RAID信息保存至配置文件,一便以後進行裝配
Mdadm -D --scan > /dev/mdadm.conf
裝配:mdadm -A /dev/md#
六、RAID小練習:
創建一個空間大小為10G的RAID5設備;其chuck大小為32k;要求此設備開機時可以自動掛載至/backup目錄;
1、先建立3個大小為5G的磁盤分別為sda{5,6,7},文件格式為fd.
fdisk /dev/sda
n
+5G
t
fd
w
Partprobe
創建完成以後查看磁盤效果如下圖
2、創建RAID5,並制定chunk為32K,結果如下圖
3、建立完成,同步結束後效果如下圖:
4、格式化md0並掛載至/backup目錄,並設置為開機啟動
mke2fs -j /dev/md0
monut /dev/md0 /backup
設置為開機啟動:
Vim /etc/fstab
七、LVM:由linux內核模塊DM:Device Mapper提供,簡稱為邏輯設備。
1、LVM設備能提供RAID和LVM2、塊照、多路徑等功能,在linux系統內通常利用MD來進行RAID,利用DM來設置LVM2。
2、邏輯卷分為三層:
第一層:邏輯卷LV(Logical Volume)
第二層:卷組VG(Volume Group)
第三層:物理卷PV(Physiacl Volum)
在創建LVM的時候是從第三層向第一層進行一層一層的創建的,第三層的物理卷在linux系統內文件系統為8e。
3、物理層PV的創建:
pvcreate :創建PV 、pvmore:挪動數據、pvremove:擦除PV卷、pvdisplay:顯示物理卷的信息、pvscan:掃描並顯示系統上的pv卷、pvs:查看pv信息
Fg:創建物理卷
pvcreate /dev/sda{10,11}
4、卷組的創建:
vgcreate :創建Vg 、vgmore:移除、vgremove:刪除vg、vgdisplay:顯示vg的信息、vgs:查看vg信息
Vgcreate -s #:指定pe大小,默認為4Mb,默認單位為mb
Fg:創建vg
Vgcreate myvg /dev/sda{10,11}
5、邏輯卷的創建:
lvcreate、lvreduce、、lvremove(移除lv,後加路徑)、lvextend、lvdisplay(查看lv相關信息)、lvs(查看lv信息)
Lvcreate -L #:指定lv卷的大小
Lvcreate -n NAME:指定lv的名字
Fg:創建個50M的lv卷
Lvcreate -L 50M -n mylv myvg
mke2fs -j /dev/myvg/mylv
6、擴展邏輯卷
LVM的擴展:先擴展物理卷,再擴展邏輯卷
lvextend:擴展物理邊界
Lvextend -L [+]# /PATH/TO/PV:+是至增加多大,不接+號時,則為擴展到多大
resize2fs:擴展邏輯邊界
resize2fs /PATH/TO/LV 5G:擴展邏輯邊界到5G
resize2fs -p /PATH/TO/LV :有多大擴展到多大
7、縮減邏輯卷
LVM縮減:先縮減邏輯邊界,再縮減物理卷邊界、
1、不能在線縮減,得先卸載
2、確保縮減後的空間大小能儲存原來所有文件
3、在縮減之前應該強行檢查文件,以確保文件系統處於一致性狀態。
e2fsck -f:強行檢查文件
df -lh:檢查利用率
umount:縮減之前必須先卸載
e2fsck -f:強行檢查文件
resize2fs /PATH/TO/LV 5G:縮減邏輯卷到5G
lvreduce -L [-]# /PATH/TO/PV: 縮減物理卷
重新掛載。
8、快照卷:
1、生命周期為整個數據時長:在這段時長內,數據的增長量不能超出塊照卷大小:
2、快照卷應該是只讀的
3、跟原卷在同一卷組內
創建快照命令:
lvcreate
-s :指定類型為塊照
-p r|w:表示指定權限
Fg:創建、還原過程
lvcreate -s -L # SLV_NAME -p -r /PATH/TO/LV
tar jcf /tmp/usrs.tar.bz2 塊照掛載點內的內容
tar -xf /tmp/users.tar.bz2 解壓縮
八、LVM創建練習
創建一個由兩個物理卷組成的大小為15G的卷組myvg,要求其PE大小為16M;而後在此卷組中創建一個大小為5G的邏輯卷mylv,此邏輯卷要能在開機後自動掛載至/mnt目錄;然後對mylv進行擴展2G
1、創建兩個物理卷大小分別為7G和8G的sda{8,9},並設置為lvm格式的磁盤格式8e。
fdisk /dev/sda
n
+7G
T
8e
W
pvcreate /dev/sda{8,9}
2、創建卷組myvg
Vgcreate -s 16 myvg /dev/sda{7,8}
3、創建邏輯卷mylv
lvreate -L 5G -n mylv /dev/myvg
4、邏輯卷要能在開機後自動掛載至/mnt目錄
Mke2fs -j /dev/myvg/mylv
mount /dev/myvg/mylv /mnt
Vim /etc/fstab內加入啟動項
5、對然後對mylv進行擴展3G
Lvextend -L +3G /dev/myvg/mylv