磁盤陣列RAID,RedundantArrays of Inexpensive Disks,即容錯廉價磁盤陣列
(圖檔考慮鳥哥linux私房菜基礎篇第三版--P464)
級别:僅代表磁盤組織方式不同,沒有上下之分;
RAID-0:(等量模式,stripe):性能最佳-------條帶
性能提升,幾乎接近n倍:讀,寫----将完整資料切割成n份,同時分開存入n個磁盤
備援能力(容錯能力),沒保證--損壞一個磁盤,整個資料檔案将丢失
空間使用率:nS
至少需要2塊盤
RAID-1:讓一份完整的資料儲存在兩塊磁盤上邊---鏡像
性能表現:寫性能下降,讀性能提升
備援能力:有
空間使用率:1/2---整體RAID的容量幾乎少了50%
至少2塊盤
RAID-5:輪流校驗盤
性能表現:讀,寫提升
空間使用率:(n-1)/n
至少需要3塊
RAID-5有同位檢查碼,是以其總容量會是整體磁盤數量減1塊,而當其中磁盤損毀的數量大于等于2的時候,整組就會損毀。
RAID 1+0 就是将RAID-0 RAID-1 組合起來 先1後0 比較考慮使用這個。
空間使用率:1/2
至少需要4塊
RAID 0+1 就是将RAID-0 RAID-1 組合起來 先0後1
RAID-50 先5 後0
至少需要6塊
jbod:多塊盤疊加-将多個小盤組合成一個大盤,不分割資料和盤,盤滿便疊加
性能提升:無
空間使用率100%
至少需要2塊
軟體磁盤陣列:
通過系統仿真,是以使用的裝置檔案名是系統的裝置檔案,檔案名為/dev/md0,/dev/md1
邏輯RAID:
/dev/md#
/dev/md1
MD:Multi Device,多裝置 使用者空間工具,管理工具
mdadm:将任何塊裝置做成RAID
模式化的指令:
1、建立模式
-C
專用選項:
-l:級别
-n:裝置個數
-a {yes|no}:自動為其建立裝置檔案
-c:CHUNK大小(字元串),2^n預設為64k
-x #:指定空閑盤個數
2、管理模式
-a|--add,-r|--remove ,-f|--fail--set-faulty
mdadm /dev/md# --fail /dev/sda7
3、監控模式
-F
4、增長模式
-G
5、裝配模式
-A
檢視RAID陣列的詳細資訊
mdadm -D /dev/md#
--detail
停止陣列:
mdadm -S /dev/md#
--stop
watch:周期性的執行某指令,并以全屏方式顯示結果
-n #:指定周期長度,機關為秒,預設為2
watch -n # 'COMMAND'
mdadm -D --scan > /etc/madam.conf 将目前RAID資訊儲存至配置檔案,以便以後進行裝配
例子:建立RAID-0 2G:
fdisk建立2個1G的分區,t 調整類型為 fd 完事記得重讀 partprobe /dev/sda cat /pro/partitions確定下是否識别兩個建立的分區
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6}
cat /pro/mdstat 會顯示目前系統上處于啟用的RAID裝置
mke2fs -j /dev/md0 任何一個存儲空間需要格式化,挂載
mount /dev/md0 /mnt ls /mnt可以檢視是否挂載(出現lost+found)
建立RAID1 2G
fdisk建立2個2G的分區,L 調整類型為 fd 完事記得重讀
partprobe /dev/sda cat /pro/partitions
mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sda{7,8}
cat /pro/mdstat (會顯示進度%)
mke2fs -j /dev/md1
mount /dev/md0 /media ls /media
模拟損壞一塊RAID1的一塊磁盤
mdadm /dev/md1 --fail /dev/sda8
檢視下md1的資訊
mdadm --detail /dev/md1
cd進去/media/檔案,看看是否能cat inittab (可以使用)
因為8被模拟損壞,是以需要移除
mdadm /dev/md1 -r /dev/sda8 重新detail 其狀态為remove
現在将新的分區加進來
mdadm /dev/md1 -a /dev/sda9 檢視detail 顯示正在恢複
停止陣列
mdadm -S /dev/md1
重新啟用
mdadm -A /dev/md1 /dev/sda7 /dev/sda9 可以-D檢視
####假如在md1裡面多加入一塊分區
mdadm -a /dev/sda7 其中已有2塊磁盤為好的,這位第三塊,顯示狀态為space即為空閑
那麼此時将sda8模拟下線,
mdadm /dev/md1 -f /dev/sda8
mdadm -D /dev/md1 檢視7正在同步,而8顯示為損壞的空閑盤
watch 'cat /proc/mdstat' 可以自動2秒重新整理一次同步的進度
mdadm -D --scan > /etc/madam.conf
将目前RAID資訊儲存至配置檔案,以便以後進行裝配
------------------------------DM-LVM---------------------------------
LVM:叫做邏輯卷管理器,做法是将幾個實體分區通過軟體組合成為一塊看起來是獨立的大磁盤,然後将這塊大磁盤在經過分成為可以使用的分區LV
PhysicalVolume,PV,實體卷
系統标示符為8e
VolumeGroup,VG,卷使用者組
Physical Extend,PE,實體擴充塊
預設使用4MB而LVM的VG最多僅包含有65534個PE,是以預設的LVMVG會有4M*65534/(1024M/G)=256G。
LogicalVolume,LV邏輯卷
LVM最主要的用處是在實作一個可以天性調整容量的檔案系統上麼人不是在建立一個性能為主的磁盤上
例子:
fdisk /dev/sda 建立1個7G的分區,1個3G的分區(多餘建立1個5G的),t 調整類型為 8e 完事記得重讀 partprobe /dev/sda cat /pro/partitions確定下是否識别兩個建立的分區
PV的建立
pvcreate /dev/sda{10,11}
(pvs可以檢視目前系統的pv...pvdisplay詳細)
(pvscan掃描目前系統的pv)
VG的建立
vgcreate myvg /dev/sda{10,11}
(vgs可以檢視目前系統的vg...vgdisplay詳細)
(vgscan掃描目前系統的vg)
(-s可以指定PE的大小,預設是4M vgcreate VG_NAME )
删除vg(如果vg上已經建立了LV并且已經存了資料,那麼它不能直接删除)
vgremove myvg
重新建立PE為8M的VG
vgcreate -s 8M myvg /dev/sda{10,11}
VG的縮減(就是将其中的PV去除,也就是要将PV中的PE挪走)
pvmove /dev/sda11
vgreduce myvg /dev/sda11
pvs檢視可看到sda11沒有VG組,然後
pvremove /dev/sda11
VG的擴充
pvcreate /dev/sda12
vgextend myvg /dev/sda12 将12加入VG myvg中
LV的建立
lvcreate -L 50M -n textlv myvg
lvs檢視.lvdisplay
mke2fs -j /dev/myvg/textlv 格式化
mount /dev/myvg/textlv /mnt 挂載-----lv /dev/mapper可檢視真正的裝置檔案名
ls /mnt
移除LV
先解除挂載
umount /mnt
然後移除
lvremove /dev/myvg/textlv
擴充邏輯卷-----先擴充實體,然後再增加邏輯卷
lvextend(擴充實體)
-L [+]#(+的作用是代表擴充到還是擴充為,不帶+是擴充為)
resize2fs(擴充邏輯)
resize2fs /PATH/TO/LV 5G擴充到5G
resize2fs -p /PATH/TO/LV 修複邏輯卷的邊界為最大
lvcreate -L 2G -n testlv myvg
mke2fs -j /dev/myvg/textlv
mkdir /user
vim /etc/fstab << /dev/myvg/testlv /users ext3 default,acl 0 0
mount -a
mount
cd /users ls
cp /etc/inittab . ls cat inittab(可用)
df -h
lvextend -L 5G /dev/myvg/testlv (vgs確定空間夠用)
df -lh lvs (結果顯示隻擴充了實體邊界,沒擴充邏輯的)
resize2fs -p /dev/myvg/testlv df -lh 顯示正确
(處于挂載中的 不用解除安裝可直接擴充)
縮減邏輯卷
注意:
1、不能線上縮減,得先解除安裝;
2、確定縮減後的空間大小依然能存儲原有的資料;
3、在縮減之前應該先強行檢查檔案,以確定檔案系統處于一緻性狀态;
resize2fs
resize2fs /PATH/TO/PV 3G
lvreduce -L [-]# /PATH/TO/LV
重新挂載
df -lh 檢視空間多少,
umount /users
mount 檢視解除安裝完成否
e2fsck -f /dev/myvg/testlv 強制檔案系統檢查
resize2fs /dev/myvg/testlv 3G 縮減至3G
lvreduce -L 3G /dev/myvg/testlv 縮減邊界
mount -a
mount
df -lh
使用快照卷
1、生命周期為整個資料時長,在這段時長内,資料的增長量不能超出快照卷大小;
2、快照卷應該是隻讀的;
3、跟原卷在同一卷組内;
建立快照卷
lvcreate
-s 表示其為快照卷
-p r|w 設定權限為隻讀r
lvcreate -L # -n SLV_NAME -s -p r /PATH/TO/LV
lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testly
mount /dev/myvg/test-snap /mnt
cd /mnt ls 顯示挂載完成
cat inittab | wc-l 顯示50
tar -jcf /tmp/users/tar.bz2 inittab備份下鏡像
ls /tmp
删除快照
umount /mnt
lvremove /dev/myvg/testlv-snap
還原備份快照
tar xf /tmp/users/tar.bz2 -C ./
ls
本文轉自 陳延宗 51CTO部落格,原文連結:http://blog.51cto.com/407711169/1153580,如需轉載請自行聯系原作者