Linux的磁盤管理
RAID獨立冗餘磁盤陣列
raid (redundant arrays of independent)它是一種將多塊磁盤組成一個存儲整體,並通過磁盤之間的聯結實現數據的冗餘備份、存儲設備的容量擴充和數據存儲速度的提升。
raid分爲“軟raid”和“硬raid”兩種:
軟raid:也就是通過軟件實現的raid。
硬raid:是通過適配器將多個硬盤組合在一起。
常見的幾種raid級別:
level0:條帶式stripe
將要存放的一段數據等分成若干塊,分辨按次序輪流存儲在若干個硬盤中。level0可以明顯提高存取效率,但是其中一塊硬盤發生故障就會使整個系統崩潰。
level1:鏡像式mirror
同時向多個硬盤寫入相同的數據,提供完全的冗餘備份,但是對寫入速度沒有一點提升,對讀取速度與level0相同。
level 1+0
同時將條帶式的高讀寫和鏡像式的數據冗餘之優點集於一身,它的結構是先有硬盤組成若干個level1的單元,每個單元都具有mirror備份數據的功能,在由這樣的單元通過level0的方式組成一個整體,讀寫速度時具有level0的高併發性。
level4
此種體系結構在存儲數據的同時又系統本身提供校驗機制。假設該種體系有塊磁盤組成,數據輪流存放在系統的n-1個磁盤中,每個存儲週期都向指定第n塊磁盤寫入校驗碼,倘若系統中有磁盤故障,可由其它盤上的數據與校驗碼一起進行數據修復。但此種體系校驗碼存儲盤的性能會成爲整個系統的瓶頸,而且高頻率的寫入會大大提高校驗碼存儲盤的故障率。
level5
基於level4但對level4進行了一定得優化,它不再指定校驗碼有固定的存儲盤,而是和數據塊一起加入整個磁盤存儲體系的循環。
軟raid在linux中的實現:
命令:
mdadm 模式 raid設備 選項 磁盤設備
模式:
-A 裝配模式
-C 創建模式
-F 監控模式
-M管理模式
-D 查看模式
選項
-a --add添加設備
-f --fail虛擬設備故障
-r --remove移除設備
-n 指定raid數組磁盤個數
-x 指定raid數組冗餘設備個數
-l 指定raid level
-a {yes|no}是否自動創建設備文件
-c 指定chunk的大小默認爲64k
[root@server28 ~]# mdadm -C /dev/md0 -a yes -l 1 -n
2 /dev/sda1 /dev/sda2
#將2塊硬盤創建radi md0 等級level 1
從raid中增加/卸去磁盤
[root@server28 ~]# mdadm -a /dev/md0 /dev/sda7
向raid中添加一塊自動成爲備用。
[root@server28 ~]# mdadm -D /dev/md0
使用-D查看
/dev/md0:
Version : 0.90
Creation
Time : Tue Aug 2 05:11:36 2011
Raid
Level : raid1
Array
Size : 987840 (964.85 MiB 1011.55 MB)
Used Dev
Size : 987840 (964.85 MiB 1011.55 MB)
Raid
Devices : 2
Total
Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Update
Time : Tue Aug 2 05:11:50 2011
State : clean
Active
Devices : 2
Working Devices : 3
Failed
Devices : 0
Spare
Devices : 1
UUID : 032c7ad4:3dc68a67:613b10af:7922e25a
Events : 0.2
Number Major Minor
RaidDevice
State
0 8
5 0 active sync /dev/sda5
1 8
6 1 active sync /dev/sda6
2 8
7 - spare
/dev/sda7
要拆除硬盤時必須將硬盤設置成fail或者停止整個raid
[root@server28 ~]# mdadm -f /dev/md0 /dev/sda5
mdadm: set /dev/sda5 faulty in /dev/md0
再進行拆除remove
[root@server28 ~]# mdadm -r /dev/md0 /dev/sda5
mdadm: hot removed /dev/sda5
[root@server28 ~]# mdadm -S /dev/md0
停止整個md0設備
裝配模式:
目的是將卸載的raid,在其它計算機或本機從新掛載。
首先,在本機備份raid信息
本機raid信息在/etc/mdadm.conf中存儲
[root@server28 ~]# mdadm -D -scan >
/etc/mdadm.conf #此文件會在復位向後自動產生
停止設備
[root@server28 ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
停止後可以對組成raid的磁盤進行拆卸、刪除的操作。
LVM邏輯卷管理器
LVM是logic volume manger的縮寫,這種體系的存儲結構是將物理磁盤轉換成物理卷pv(physical
volume),將pv的容量彙總成卷組vg(volume
group)後,再將卷組vg進行拆分,形成多個自定義大小且容量可實時調成的邏輯卷(logic
volume)。在將物理磁盤做成物理卷後將形成lvm的最小單位pe(physical
extend),pe的大小可以爲4M、8M和16M,
類似於磁盤系統的中塊block的概念。
pv相關的命令:pvcreat創建、pvmove存儲內容移動、pvremove刪除、pvscan掃描、pvdisplay顯示信息
vg相關的指令:vgcreat創建、vgremove刪除、vgscan掃描、vgdisplay顯示信息、vgreduce容量縮小、vgextend容量擴大
lv相關的指令:;lvcreat創建、lvmove存儲內容移動、lvremove刪除、lvscan掃描、lvdisplay查看、lvreduce縮小物理容量、lvextend擴大物理容量、resize2fs調整邏輯容量
創建pv:pvcreate 物理磁盤分區1 物理磁盤分區2 物理磁盤分區3..
查看pv:pvdisplay #顯示當前所有的pv
移除pv:先pvmove將當前pv上的內容同步在別的pv,然後再pvremove將磁盤卸除。
創建vg:vgcreate 選項 vg名稱 pv1
pv2 pv3 …
增大vg的容量:vgextend vg名 pv名
vgextend
/dev/vg0 /dev/sdb5
縮小vg的容量:vgreduce vg名 pv名
Pvreduce
/dev/vg0 /dev/sdb5
創建lv:lvcreate –L 2G –n
lv0 vg0 #從vg0中創建一個2g的lv0
-n lv名稱
-L 創建lv的大小
查看lv:lvdisplay #顯示當前所有的lv
完成lv的創建,格式化文件系統。
邏輯卷的擴展、縮減和snapshot:
Lv的擴展:
先擴大lv的物理大小:
lvextend –L 2g /dev/vg0/lv1
在調整lv的邏輯大小:
resize2fs 選項 設備 大小
resize2fs /dev/vg0/lv1 #不跟數值就調整到分區大小
lv的縮減:
先縮小邏輯大小:
resize2fs /dev/vg0/lv0 512m #將lv0邏輯大小縮小到512m
再縮小物理lv的大小:
lvreduce –L 512m /dev/vg0/lv0 #將lv0物理大小縮小到512m
快照snapshot的創建:
lvcreate –s –L 512M –n snapshot0 –p r /dev/vg0/lv0
#再vg0上創建一個lv0的快照卷,-s 說明新加捲是快照 –p
r 說明權限是隻讀
/dev/vg0/lv0 說明是lv0的快照