RAID:多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供
提高IO能力 :???? 磁盤并行讀寫
提高耐用性:???? ?磁盤冗余來實現
級別:??? 多塊磁盤組織在一起的工作方式有所不同
RAID實現的方式:
外接式磁盤陣列:通過擴展卡提供適配能力
內接式RAID:主板集成RAID控制器
安裝OS前在BIOS里配置
軟件RAID:通過OS實現
RAID級別:
RAID-0: (條帶集)
讀、寫性能提升;
可用空間:N*min(S1,S2,…)
無容錯能力
最少磁盤數:2, 2+
RAID-1: (兩兩互為鏡像)
讀性能提升、寫性能略有下降;
可用空間:1*min(S1,S2,…)
有冗余能力
最少磁盤數:2, 2N
RAID-4:(最少3塊硬盤)(由于校驗位專用盤使用頻繁易壞,淘汰)
多塊數據盤異或運算值存于專用校驗盤
RAID-5:(校驗位均勻寫在每塊磁盤)(犧牲磁盤空間換取容錯性)
讀、寫性能提升 ,如若損壞一塊硬盤,性能急劇下降
可用空間:(N-1)*min(S1,S2,…)
有容錯能力:允許最多1塊磁盤損壞(有一塊備用盤)
最少磁盤數:3, 3+
RAID-6:
讀、寫性能提升
可用空間:(N-2)*min(S1,S2,…)
有容錯能力:允許最多2塊磁盤損壞
最少磁盤數:4, 4+
RAID-10: (比01更好)
讀、寫性能提升
可用空間:N*min(S1,S2,…)/2
有容錯能力:每組鏡像最多只能壞一塊
最少磁盤數:4, 4+
RAID-01 ????????????多塊磁盤先實現RAID0,再組合成RAID1
RAID-50 ????????????多塊磁盤先實現RAID5,再組合成RAID0
JBOD:Just a Bunch Of Disks
功能:將多塊磁盤的空間合并一個大的連續空間使用
可用空間:sum(S1,S2,…)
RAID7 ???????可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立 運行,理論上性能最高的RAID模式
軟RAID:
mdadm:為軟RAID提供管理界面
為空余磁盤添加冗余
結合內核中的md(multi devices)
RAID設備可命名為/dev/md0、/dev/md1、/dev/md2、/dev/md3等
mdadm:模式化的工具
命令的語法格式:mdadm [mode] [options]
支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
模式: 創建:-C 裝配: -A 監控: -F 管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-device>: 任意塊設備
-C: 創建模式
-n #: 使用#個塊設備來創建此RAID
-l #:指明要創建的RAID的級別
-a {yes|no}:自動創建目標RAID設備的設備文件
-c CHUNK_SIZE: 指明塊大小,單位k
-x #: 指明空閑盤的個數
-D:顯示raid的詳細信息 mdadm -D /dev/md#
管理模式:
-f: 標記指定磁盤為損壞
-a: 添加磁盤
-r: 移除磁盤
觀察md的狀態:?? ?cat /proc/mdstat
軟RAID的實現實驗:
- 劃分分區:fdisk /dev/sdb?? (n?? p?? 1?? 1?? +2G? t?? fd)[有四塊磁盤,劃分2G分區,一塊備用磁盤]
dd?? if=/dev/zero?? of=/dev/sdb1? //清空sdb1分區(之前劃分過分區,非必須)
- 使用mdadm創建并定義RAID設備
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 ?-c?? 32? /dev/sd{b1 ,c1,d1,e1}
- 查看RAID信息
mdadm?? -D? /dev/md0???? //查看RAID信息
- 用文件系統對每個RAID設備進行格式化 ?ext4??? /dev/md0
mke2fs -j /dev/md0
- 寫入配置文件: UUID=xxx ?/mnt/raid?? ext4??? defaults? 0 0
- 生成配置文件: mdadm –D –s ??RAID設備? >> /etc/mdadm.conf
- 取消掛載: umount??? /mnt/raid
- 停止設備: mdadm –S /dev/md0
- 激活設備: mdadm –A –s /dev/md0
測試RAID設備
使用mdadm檢查RAID設備的狀況 ???????mdadm –detail|D /dev/md0
增加新的成員 ?????????????mdadm ?–G ?/dev/md0 ?–n4 ?–a ?/dev/sdf1??? //實現擴展
resize2fs?? /dev/md0????? //實現同步文件系統(試用ext系列) //實現新加成員格式化
xfs_growfs??? /mnt/raid(掛載點) //實現同步文件系統 (試用xfs系列)? //實現新加成員格式化
模擬磁盤故障???? ?mdadm ?/dev/md0 ?-f ?/dev/sda1
移除磁盤 ???mdadm ?/dev/md0 ?–r ?/dev/sda1
從軟件RAID磁盤修復磁盤故障
- 替換出故障的磁盤然后開機
- 在備用驅動器上重建分區
- mdadm /dev/md0 -a /dev/sda1
mdadm、/proc/mdstat及系統日志信息
生成配置文件:??? mdadm –D –s ??RAID設備? >> /etc/mdadm.conf
停止設備:?????????? mdadm –S /dev/md0
激活設備:????????? mdadm –A –s /dev/md0 激活
強制啟動:?????????? mdadm –R /dev/md0
刪除raid信息:?????? mdadm –zero-superblock /dev/sdb1
刪除RAID:
- 取消掛載: umount???? /mnt/md0
- 刪除配置文件:UUID=xxx /mnt/raid?? ext4??? defaults? 0 0
- 查看RAID信息? ? ?mdadm?? -D? /dev/md0???? //查看RAID信息
- 刪除配置文件: rm?? –f?? /etc/mdadm.conf
- 停止設備: mdadm –S /dev/md0
- 刪除raid信息: mdadm –zero-superblock /dev/sdb1
- 刪除磁盤分區(RAID信息有殘留)
- dd if=/dev/zero?? of=/dev/sdb?? (如若先刪除的分區,沒有刪除RAID信息,即可用dd命令實現刪除RAID信息)
作業:實現RAID10
madam?? -C?? /dev/md0?? -a yes? -l 10? -n4?? /dev/sd{b.c.d.e}
或者:madam?? -C?? /dev/md0?? -a yes? -l 1 –n2? /dev/sd {b,c}
madam?? -C?? /dev/md1? -a yes? -l 1? -n2? /dev/sd{d,e}
madam?? -C?? /dev/md2?? -a yes? -l 0?? -n2 /dev/md{0,1}
邏輯卷管理器(LVM)
允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小
允許在多個物理設備間重新組織文件系統
- 將設備指定為物理卷
- 用一個或者多個物理卷來創建一個卷組
- 物理卷是用固定大小的物理區域(Physical Extent,PE)來定義的
- 在物理卷上創建的邏輯卷 是由物理區域(PE)組成
- 可以在邏輯卷上創建文件系統
pv管理工具:
顯示pv信息: ??????pvs:簡要pv信息顯示???????????? ?pvdisplay
創建pv :??????? pvcreate???? ?/dev/DEVICE
vg管理工具:
顯示卷組:? ?vgs ?????????vgdisplay
創建卷組 vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
-s??? //指定pe的大小
管理卷組 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
刪除卷組 :????? 先做pvmove,再做vgremove
lv管理工具:
顯示邏輯卷:? ?lvs??? ?Lvdisplay
創建邏輯卷lvcreate ?-L ?#[mMgGtT] ?-n ?NAME VolumeGroup(-L 指定大小? )
lvcreate ?-l ?60%VG ?-n ?mylv testvg? (-l?? 以pe個數為單位)
lvcreate -l 100%FREE -n ?yourlv ?testvg ??//將剩余空間全部使用
刪除邏輯卷???? ?lvremove ?/dev/VG_NAME/LV_NAME
重設文件系統大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
邏輯卷的實際名稱:? /dm-數字
擴展和縮減邏輯卷
擴展邏輯卷: lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME? (可在線擴展)
resize2fs ?/dev/VG_NAME/LV_NAME???? //同步邏輯卷
lvectend ?-r ?-l ?+100%FREE ??/dev/VG_NAME/LV_NAME?? //擴展同時格式化
lvresize ?-r ?-l ?+100%FREE ??/dev/VG_NAME/LV_NAME
縮減邏輯卷: umount ?/dev/VG_NAME/LV_NAME ?(離線縮減,只適用于ext系列)
e2fsck ?-f ?/dev/VG_NAME/LV_NAME??? //
resize2fs ?/dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce ?-L [-]#[mMgGtT] ?/dev/VG_NAME/LV_NAME mount
跨主機遷移卷組示例:
原計算機:? vgrename?? vg0?? centos6vg0
lvrename?? /dev/centos6vg0/lv0??? /dev/centos6vg0/lv0
1 在舊系統中,umount所有卷組上的邏輯卷 ?: umount?? /mnt/lv0
2 vgchange –a n centos6vg0? //禁用巻組???????????????????? ?lvdisplay??? 查看
3 vgexport ?cebtos6vg0 ??導出邏輯卷?????? ?pvscan?? 查看?? ?vgdisplay?? 查看
4 ?拆下舊硬盤
在目標計算機上
5 在新系統中安裝舊硬盤,并 導入vgimport? centos6vg0.
6 vgchange? -ay? centos6vg0???? //激活巻組
7? mount 所有巻組上的邏輯卷
使用分區創建邏輯卷示例:
- 創建分區fdisk /dev/sdc??? ( n? p 1 1? +2G?? t?? 1?? 8e )
- 創建物理卷 :?? pvcreate????? /dev/sd{b1,c1}
- 顯示pv信息: pvs:簡要pv信息顯示???????????? ?pvdisplay
- 為卷組分配物理卷: vgcreate? -s?? 16M? ?vg0?? /dev/sd{b1,c1}
- 顯示卷組: ?vgs ??或?????? vgdisplay
- 從卷組創建邏輯卷: lvcreate ?-L ?256M? –n ?lv0 ?vg0
- 顯示邏輯卷: ?lvs?? 或? ?Lvdisplay
- 創建文件系統:ext4 /dev/vg0/lv0
make2fs?? -j?? /dev/vg0/data
- 掛載:寫入文件:UUID=xxx /mnt/lv0?? ext4? defaults?? 0? 0
mount ??/dev/vg0/data ??/mnt/data?? (臨時有效)
擴展邏輯卷示例:
- 新加硬盤, echo ‘ – – – ‘ > /sys/class/scsi_host/host2/scan?? ?//使硬盤識別
- pvcreate /dev/sdd
- vgextend vg0? /dev/sdd
- lvextend -L? +5G? /dev/vg0/lv0?? //新增加5G
- resize2fs /dev/vg0/lv0??? //同步邏輯卷(ext系列)
縮減邏輯卷示例:
- 先備份
- umount /mnt/lv0????? 先取消掛載
- 檢查文件系統完整性 fsck?? -f?? /dev/vg0/lv0
- resize2fs /dev/vg0/lv0?? 10G??? ?//
- lvreduce -L? 10G?? /dev/vg0/lv0?? //縮減邏輯卷
- mount -a? //自動掛載
刪除vg中的pv示例:
1.pvmove? /dev/sdd???? //將sdd上的空間遷移到同巻組的其他設備中
2.vgreduce vg0? /dev/sdd??? //在巻組vg0移除/dev/sdd
3.pvremove /dev/sdd???? //移除物理卷
使用LVM快照:
為現有邏輯卷創建快照
lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data
掛載快照
mkdir -p /mnt/snap
mount -o ro /dev/vg0/data-snapshot /mnt/snap
恢復快照
umount ?/dev/vg0/data-snapshot
umount ?/dev/vg0/data
lvconvert ??–merge?? ?/dev/vg0/data-snapshot???? //合并快照
刪除快照
umount ??/mnt/databackup
lvremove ?/dev/vg0/databackup
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97029