磁盤管理(三)

    RAID陣列
    軟RAID實現
    LVM邏輯卷管理
        lvm伸縮
        lvm快照
      lvm習題示例
什麼是RAID
RAID 廉價的磁盤整理
多個磁盤合成一個"陣列" 來提供更好的性能、冗餘,或者兩者都提供

RAID的特性

提高IO能力,磁盤並行讀寫 提高耐用性,磁盤冗餘來實現 級別:RAID0 RAID1 RAID5 RAID6 RAID10 RAID01 工作方式不同實現功能也不同

RAID實現的方式
外接式磁盤陣列:通過擴展卡提高適配能力
內接式RAID: 主板集成RAID控制器,安裝OS前在BIOS裏配置
軟件TAID: 通過OS實現

RAID級別 mindisk 可用空間 容錯 冗餘 功能
RAID0 2,2+ N*min(s1,s2…) 讀寫提升
RAID1 2,2N 1*min(s1,s2…) 最多一個 讀提升,寫下降
RAID5 3,3+ (N-1)*min(s1,s2…) 最多一個 讀寫提升
RAID6 4,4+ (N-2)*min(S1,S2…) 最多兩塊 讀寫提升
RAID10 4,4+ N*min(S1,S2…)/2 最多一塊 讀寫提升

常用RAID簡述
RAID0:連續地分割數據並並行地讀/寫於多個磁盤上。因此具有很高的數據傳輸率,但沒有數據冗餘,並沒
有提供數據可靠性,如果一個磁盤失效,將影響整個數據。因此RAID0不可應用於需要數據高可用性的關鍵應用。
最少由2塊磁盤組成,每塊都能存儲數據。
在這裏插入圖片描述
RAID1:通過數據鏡像實現數據冗餘,在兩對分離的磁盤上產生互爲備份的數據。可以提高讀的性能,是磁盤
陣列中費用最高的,但提供了最好的數據可用性。當一個磁盤失效,系統可以自動地交換到鏡像磁盤上。最少由2
塊磁盤組成,只有一半的磁盤能存儲數據。
在這裏插入圖片描述

RAID5:所有磁盤輪流充當校驗盤,有容錯能力,最多准許1塊磁盤損壞。最少由3塊磁盤組成,充當校驗盤的
不分磁盤不能存儲數據,實際容量是n-1/n。
在這裏插入圖片描述

RAID10:先兩兩組成RAID1,再組合成RAID0。每組鏡像最多損壞一個磁盤,有容錯能力。最少由4塊磁盤組
成,只有一半的磁盤能存儲數據。
在這裏插入圖片描述

 

軟RAID通過OS模擬RAID
mdadm:爲軟RAID提供管理界面
爲空餘磁盤添加冗餘
結合內核中的md(multi devices)
RAID設備可命名爲/dev/md0、/dev/md1、/dev/md2、/dev/md3等

 

軟件RAID的實現

mdadm:模塊化工具 madadm [mode] [options] 支持的RAID級別: RAID0 (striping), RAID1 (mirroring), RAID4, RAID5, RAID6, RAID10 四種模式

創建 -C

-n #: 使用#個塊設備來創建此RAID
    -l #:指明要創建的RAID的級別
    -a {yes|no}:自動創建目標RAID設備的設備文件
    -c CHUNK_SIZE: 指明塊大小,單位k
    -x #: 指明空閒盤的個數
    -D:顯示raid的詳細信息
mdadm -D /dev/md#

裝配 -A
監控 -F

管理 -f,-r,-A

 -f: 標記指定磁盤爲損壞
    -a: 添加磁盤    
    -r: 移除磁盤
觀察md的狀態: cat /proc/mdstat

reiddevice:raid設備名稱/dev/md#
component-devices:任意塊設備

軟RAID配置示例

使用mdadm創建並定義RAID設備
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
用文件系統對每個RAID設備進行格式化
mkfs.xfs /dev/md0
測試RAID設備
使用mdadm檢查RAID設備的狀況
mdadm --detail|D /dev/md0
增加新的成員
mdadm –G /dev/md0 –n4 -a /dev/sdf1

軟RAID測試和修復

模擬磁盤故障
mdadm /dev/md0 -f /dev/sda1
   移除磁盤
mdadm /dev/md0 –r /dev/sda1
從軟件RAID磁盤修復磁盤故障
• 替換出故障的磁盤然後開機
• 在備用驅動器上重建分區
• mdadm /dev/md0 -a /dev/sda1
mdadm、/proc/mdstat及系統日誌信息

軟RAID管理

生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停止設備:mdadm –S /dev/md0
激活設備:mdadm –A –s /dev/md0 激活
強制啓動:mdadm –R /dev/md0
刪除raid信息:mdadm --zero-superblock /dev/sdb1

軟RAID操作示例:
1:創建一個可用空間爲1G的RAID1設備,文件系統爲ext4,有一個空閒盤,
開機可自動掛載至/backup目錄

mdadm -C /dev/md0 -n 2 -l 1 -a yes -c 1024 -x 1 /dev/sd{b,c,d}
mkfs.ext4 /dev/md0 
mount /dev/md0 /backup 

2:創建由三塊硬盤組成的可用空間爲2G的RAID5設備,要求其chunk大小爲
256k,文件系統爲ext4,開機可自動掛載至/mydata目錄

mdadm -C /dev/md5 -n 3 -l 5 -a yes -c 256 /dev/sdc{1,2,3}
mkfs.ext4 /dev/md5 

lvm邏輯卷

允許對捲進行方便操作的抽象層,包括重新設定文件系統的大小
允許在多個物理設備間重新組織文件系統
• 將設備指定爲物理卷
• 用一個或者多個物理捲來創建一個卷組
• 物理卷是用固定大小的物理區域(Physical Extent,PE)來定義的
• 在物理捲上創建的邏輯卷是由物理區域(PE)組成
• 可以在邏輯捲上創建文件系統
在這裏插入圖片描述
lvm彈性容量
通過交換PE來進行資料的交換,將原有的LV內的PE轉移到其他設備中以降低LV容量,或將設備中的PE加到LV中以加大容量

PV管理工具
顯示PV信息
pvs:簡要的pv信息
pvdisplay詳細信息
創建PV
pvcreate /dev/DEVICE
刪除PV
premove /dev/DEVICE

VG管理工具
顯示卷組
vgs
vgdisplay
創建卷組
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName
pyysicalDevicePath
管理卷組
vgextend VolumeGroupName PhysicalDevicePath
vgreduce VolumeGroupName PhysicalDevicePath
刪除卷組
先做pvmove再做vgremove

LV管理工具
顯示邏輯卷
lvs
lvdisplay
創建邏輯卷
LVcreate -L #[mMgGtT] -n NAME volumeGroup
LVcreate -l 60%VG -n mylv testvg
lvcreate -l 100% FREE -n yourlv testvg

刪除邏輯卷
LVremove /dev/Vg_name/LV_name
重設文件系統大小
fsadm [options] resize device [new_size [BKMGTRP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size] xfs_growfs /mounpoint

擴展邏輯卷
lvextend -L [+]#[mMgGtT] /dev/vg_name/lv_name
resize2fs /dev/vg_name/lv_name
lvresize -r -l +100%FREE /dev/VG_NAME/LV_name

縮減邏輯卷
umount /dev/vg_name/lv_name
e2fsck -f /dev/vg_name/lv_name
resize2fs /dev/vg_name/lv_name
lvreduce -L [-]#[mMgGtT] /dev/VG_name/lv_name
mount

跨主機遷移卷組
源計算機上
在舊系統中,umount所有卷組上的邏輯卷
禁用卷組 --> vgchange -a n vg0 --> lvdisplay --> 導出卷組 --> vgexport vg0 --> pvscan
–> vgdiskply --> 拆下舊硬盤
在目標計算機上
在新系統中安裝舊硬盤 --> 導入卷組 --> vgimport vg0 --> vgchange -ay vg0 啓用 --> mount所有卷組上的邏輯卷

創造邏輯算示例
創建物理卷
pvcreate /dev/sda3
爲卷組分配物理卷
vgcreate vg0 /dev/sda3
從卷組創建邏輯卷
LVcreate -L 256M -n data vg0
mkfs.xfs -j /dev/vg0/data
掛載
mount /dev/vg0/data /mnt/data

邏輯卷管理器卷組

快照是特殊的邏輯卷,他是在生成快照時存在的邏輯卷的準確拷貝
對於需要備份或者複製現有數據臨時拷貝以及操作來說,快照是最適合的選擇
快照只有在它們和原有邏輯卷不同時纔會消耗空間
1、在生成快照時會分配給它一定的空間,但只是在原有邏輯卷或者快照有所改變纔會使用這些空間
2、當原來的邏輯卷中的所有改變時,會將舊的數據複製到快照中
3、快照中只含有所改變時,會將舊的數據複製到快照中
快照中只含有原有的邏輯卷中改變的數據或自生成快照後快照中更改的數據
4、建立快照的卷大小等於原始邏輯卷,也可以使用lvextend擴展快照

快照的實現,快照就是講當時系統信息記錄下來,就好像照相一樣,若將來有任何數據改動了,則原始數據會被移動到快照去,沒有改動的區域則有快照去和文件系統共享
由於快照區和原本的Lv共用很多PE區塊,因此快照與快照的lv必須在同一個VG中,系統恢復的時候文件數據不能高於快照區的實際容量
在這裏插入圖片描述
創建邏輯卷快照
LVcreate -l 64 -s 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-snpshot
刪除快照
umout /mnt/databackup
lvremove /dev/vg0/databackup

 

lvm邏輯卷管理練習題

1、創建一個至少有兩個PV組成的大小爲20G的名爲testvg的VG;要求PE大小
爲16MB, 而後在卷組中創建大小爲5G的邏輯卷testlv;掛載至/users目錄

echo -e "n\np\n\n\n+10G\nw\n" |fdisk /dev/sdb
echo -e "n\np\n\n\n+10G\nw\n" |fdisk /dev/sdb
pvcreate /dev/sdb2
pvcreate /dev/sdb1
vgcreate -s 16M testvg /dev/sdb1
vgextend testvg /dev/sdb2
lvcreate -L 5G -n testLV testvg 
mkfs.ext4|xfs /dev/testvg/testLV
 mount /dev/testvg/testLV /users/

2、 新建用戶archlinux,要求其家目錄爲/users/archlinux,而後su切換至
archlinux用戶,複製/etc/pam.d目錄至自己的家目錄

useradd -d /users/archlinux archlinux
cp -pr /etc/pa.m /users/archlinux

3、擴展testlv至7G,要求archlinux用戶的文件不能丟失

umount /users/
lvextend -L +2G /dev/testvg/testLV 
mount /dev/testvg/testLV /users/

4、收縮testlv至3G,要求archlinux用戶的文件不能丟失

umount /users/
e2fsck -f /dev/testvg/adminLV 
resize2fs /dev/testvg/adminLV number
lvreduce -L 3G /dev/testvg/adminLV  
mount /dev/testvg/testLV /users/
注:ext系列可伸縮邏輯卷,xfs格式只能擴展

5、對testlv創建快照,並嘗試基於快照備份數據,驗證快照的功能

lvcreate -s -n data-snapshot1 -L 1G /dev/mapper/testvg-adminLV 
注: 不能創建時只讀,後續無法掛載 錯誤提示--mount: cannot mount /dev/mapper/testvg-date--xfs read-only
mount -o nouuid,ro /dev/testvg/data-snapshot1 /data/hjq

創建ext格式鏡像
lvcreate -L 1G -s -n data-snapshot -p r /dev/mapper/testvg-adminLV
mount /dev/testvg/data-snapshot /data/hjq
rm -rf y*

還原鏡像
umount /hjq
umount /data/hjq/
lvconvert --merge /dev/testvg/data-snapshot
mount /dev/testvg/adminLV /hjq 
/testvg/data-snapshot1 /data/hjq

創建ext格式鏡像
lvcreate -L 1G -s -n data-snapshot -p r /dev/mapper/testvg-adminLV
mount /dev/testvg/data-snapshot /data/hjq
rm -rf y*

還原鏡像
umount /hjq
umount /data/hjq/
lvconvert --merge /dev/testvg/data-snapshot
mount /dev/testvg/adminLV /hjq 
發佈了56 篇原創文章 · 獲贊 11 · 訪問量 3033
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章