《Linux就該這麼學》培訓筆記_ch07_RAID和LVM

 

《Linux就該這麼學》培訓筆記_ch07_RAID和LVMlinux

文章最後會post上書本的筆記照片。vim

文章主要內容安全

RAID(獨立冗餘磁盤陣列)

RAID技術經過把多個硬盤設備組合成一個容量更大、安全性更好的磁盤陣列,並把數據切割成多個區段後分別存放在各個不一樣的物理硬盤設備上,而後利用分散讀寫技術來提高磁盤陣列總體的性能,同時把多個重要數據的副本同步到不一樣的物理硬盤設備上,從而起到了很是好的數據冗餘備份效果。架構

冗餘備份意味着成本增多,但數據安全提升,相對於數據自己的價值,這點成本值得投入。佈局

最多見的RAID磁盤陣列方案:post

RAID 0(可以有效地提高硬盤數據的吞吐速度,可是不具有數據備份和錯誤修復能力:把多塊物理硬盤設備(至少兩塊)經過硬件或軟件的方式串聯在一塊兒,組成一個大的卷組,並將數據依次寫入到各個物理硬盤中。數據被分別寫入到不一樣的硬盤設備中,即disk1和disk2硬盤設備會分別保存數據資料,實現提高讀取、寫入速度的效果。若任意一塊硬盤發生故障將致使整個系統的數據都受到破壞性能

RAID 1(沒有提升讀寫速度,硬盤空間真實可用率減半,數據安全性提升:把兩塊以上的硬盤設備進行綁定,在寫入數據時,是將數據同時寫入到多塊硬盤設備上(能夠將其視爲數據的鏡像或備份,增大系統負載)。當其中某一塊硬盤發生故障後,通常會當即自動以熱交換的方式來恢復數據的正常使用ui

RAID 5(「妥協」地兼顧了硬盤設備的讀寫速度、數據安全性與存儲成本問題:把硬盤設備的數據奇偶校驗信息保存到其餘硬盤設備中。RAID 5磁盤陣列組中數據的奇偶校驗信息並非單獨保存到某一塊硬盤設備中,而是存儲到除自身之外的其餘每一塊硬盤設備上,這樣的好處是其中任何一設備損壞後不至於出現致命缺陷;parity部分存放的就是數據的奇偶校驗信息,RAID 5技術實際上沒有備份硬盤中的真實數據信息,而是當硬盤設備出現問題後經過奇偶校驗信息來嘗試重建損壞的數據spa

 

RAID 10(RAID 1+RAID 0技術的「組合體」須要至少4塊硬盤來組建,其中先分別兩兩製做成RAID 1磁盤陣列,以保證數據的安全性;而後再對兩個RAID 1磁盤陣列實施RAID 0技術,進一步提升硬盤設備的讀寫速度。只要壞的不是同一組中的全部硬盤,那麼最多能夠損壞50%的硬盤設備而不丟失數據。因爲RAID 10技術繼承了RAID 0的高讀寫速度和RAID 1的數據安全性,在不考慮成本的狀況下RAID 10的性能都超過了RAID 5,所以當前成爲普遍使用的一種存儲技術。code

 

 

部署磁盤陣列

mdadm命令:用於管理Linux系統中的軟件RAID硬盤陣列。格式:mdadm [模式] <RAID設備名稱> [選項] [成員設備名稱]。

mdadm命令的經常使用參數和做用:

參數 做用
-a 檢測設備名稱
-n 指定設備數量
-l 指定RAID級別
-C 建立
-v 顯示過程
-f 模擬設備損壞
-r 移除設備
-Q 查看摘要信息
-D 查看詳細信息
-S 中止RAID磁盤陣列

實例:添加4塊硬盤(每塊硬盤大小10G),建立RAID 10磁盤陣列。

1 mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-e] #建立RAID 10,命名爲/dev/md0,由4個盤(/dev/sd[b-e])組成顯示建立過程自動建立設備文件 2 mkfs.ext4 /dev/md0 #把RAID 10磁盤陣列格式化爲ext4格式 3 mkdir /RAID #建立掛載點 4 mount /dev/md0 /RAID #把RAID 10磁盤陣列掛載到/RAID目錄 5 df -h #查看掛載狀態和硬盤使用量信息,能夠看到,4個10G的硬盤,組成RAID 10後,可用空間爲20G 6 mdadm -D /dev/md0 #查看/dev/md0磁盤陣列的詳細信息 7 echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab    #往/etc/fstab文件中追加掛載信息,實現永久掛載

 

損壞磁盤陣列及修復

實例:承接上面實例,移除陣列中一塊硬盤來模擬一塊硬盤損壞。

1 mdadm /dev/md0 -f /dev/sdb #把/dev/sdb從磁盤陣列/dev/md0中移除 2 mdadm -D /dev/md0 #查看磁盤這列/dev/md0詳細信息,發現/dev/sdb狀態從active變爲faulty 3 umount /RAID #先重啓系統,卸載/RAID目錄 4 mdadm /dev/md0 -a /dev/sdb #把新硬盤添加到RAID磁盤陣列中 5 mdadm -D /dev/md0             #查看磁盤陣列/dev/md0詳細信息,/dev/sdb正在 spare rebuilding,而後變回active
6 mount -a                      #從新掛載

 

磁盤陣列+備份盤

部署RAID 5 磁盤陣列時,至少須要用3塊硬盤,還須要再加一塊備份硬盤。

實例:還原虛擬機,部署RAID 5 + 1備份盤 。

1 mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e] #用3塊硬盤建立RAID 5磁盤陣列,再用1塊做爲備份盤 2 mdadm -D /dev/md0 #查看磁盤陣列詳細信息,顯示3個盤爲actvie,1個盤爲spare,RAID類型爲RAID 5 3 mkfs.ext4 /dev/md0 4 echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab #往/etc/fstab文件追加掛載信息,以實現永久掛載 5 mkdir /RAID 6 mount -a 7 mdadm /dev/md0 -f /dev/sdb #故意移除RAID 5陣列中的其中一個盤(active的盤) 8 mdadm -D /dev/md0                                        #再查看磁盤陣列/dev/md0詳細信息,顯示備份盤自動定提上去並開始數據同步(spare rebuilding)。

 

LVM(邏輯卷管理器)

RAID硬盤設備管理技術雖然可以有效地提升硬盤設備的讀寫速度以及數據的安全性,可是在硬盤分好區或者部署爲RAID磁盤陣列以後,再想修改硬盤分區大小就不容易了

當用戶想要隨着實際需求的變化調整硬盤分區的大小時,會受到硬盤「靈活性」的限制。

LVM(邏輯卷管理器)能夠容許用戶對硬盤資源進行動態調整。(讓用戶靈活的變動分區的大小)

邏輯卷管理器是Linux系統用於對硬盤分區進行管理的一種機制,理論性較強,其建立初衷是爲了解決硬盤設備在建立分區後不易修改分區大小的缺陷。儘管對傳統的硬盤分區進行強制擴容或縮容從理論上來說是可行的,可是卻可能形成數據的丟失。而LVM技術是在硬盤分區和文件系統之間添加了一個邏輯層,它提供了一個抽象的卷組,能夠把多塊硬盤進行卷組合並。這樣一來,用戶沒必要關心物理硬盤設備的底層架構和佈局,就能夠實現對硬盤分區的動態調整。

第7章 使用RAID與LVM磁盤陣列技術。第7章 使用RAID與LVM磁盤陣列技術。

LVM核心概念:

  • 物理卷處於LVM中的最底層,能夠將其理解爲物理硬盤、硬盤分區或者RAID磁盤陣列;
  • 卷組創建在物理卷之上,一個卷組能夠包含多個物理卷,並且在卷組建立以後也能夠繼續向其中添加新的物理卷;
  • 邏輯卷是用卷組中空閒的資源創建的,而且邏輯卷在創建後能夠動態地擴展或縮小空間;

LVM的原理(我的理解):由幾個物理卷(即幾塊硬盤)組成一個卷組,再從這個卷組中按本身的須要切割出必定大小的空間做爲邏輯卷。建立好的邏輯卷還能擴容縮容。

老劉的比喻簡直一流,LVM就比如作饅頭,由於不知道要作多少,因此先把若干包麪粉(硬盤,即pv)揉成大面團(gv),再分割成一個個不大不小的饅頭(lv),家裏有大人小孩,大人的饅頭要大點,多加點麪糰(lv擴容),小孩饅頭吃得小,少點麪糰(lv縮容)

 

部署邏輯卷

經常使用的LVM部署命令

功能/命令 物理卷管理 卷組管理 邏輯卷管理
掃描 pvscan vgscan lvscan
創建 pvcreate vgcreate lvcreate
顯示 pvdisplay vgdisplay lvdisplay
刪除 pvremove vgremove lvremove
擴展   vgextend lvextend
縮小   vgreduce lvreduce

部署邏輯卷步驟:(PV -> VG -> LV)

  1. 讓硬盤設備支持LVM技術(pvcreate)。
  2. 把硬盤設備加入到卷組(vgcreate)。
  3. 從卷組中切割必定空間做爲邏輯卷(lvcreate)。
  4. 把生成好的邏輯捲進行格式化,而後掛載使用(mkfs,mount,/etc/fstab)。
 1 pvcreate /dev/sdb /dev/sdc #建立物理卷,讓硬盤設備支持LVM  2 vgcreate storage /dev/sdb /dev/sdc #把建立好的物理卷組成卷組,命名爲storge  3 vgdisplay #查看卷組狀態  4 lvcreate -n vo -l 40 storage #從卷組storge切割出40個基本單元(默認大小4M)建立一個160M的邏輯卷,命名爲vo。-l 40效果等同於-L 160M  5 lvdisplay #查看邏輯卷狀態  6 mkfs.ext4 /dev/storage/vo  #格式化邏輯卷vo  7 echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab #往/etc/fatab文件追加掛載信息,實現永久掛載  8 mkdir /linuxprobe #建立掛載點  9 mount -a #掛載 10 df -h                                                                 #查看掛載狀態

 

擴容邏輯卷

擴容前,先卸載設備和掛載點的關聯

  1. 擴容邏輯卷(lvextend);
  2. 檢查硬盤完整性(e2fsck),並重置硬盤容量(resize2fs);
  3. 從新掛載硬盤設備並查看掛載狀態。

實例:承接上面實例,把邏輯卷vo擴容至400M。

1 umount /linuxprobe #卸載設備和掛載點關聯 2 lvextend -L 400M /dev/storage/vo #擴容邏輯卷vo至400M 3 e2fsck -f /dev/storage/vo #檢查硬盤完整性 4 resize2fs /dev/storage/vo #重置硬盤容量若是明明執行了屢次e2fsck命令仍是提示「運行e2fsck命令」,重啓系統再試5 mount -a #從新掛載 6 df -h                               #查看掛載狀態

 

縮小邏輯卷

縮容前,先卸載設備和掛載點的關聯

  1. 檢查硬盤完整性(e2fsck);
  2. 先向系統報備一下即將要執行邏輯捲縮容的操做(resize2fs),再縮容邏輯卷(lvreduce);
  3. 從新掛載硬盤設備並查看掛載狀態。

實例:承接上面實例,把邏輯卷vo縮容至120M。

1 umount /linuxprobe #卸載 2 e2fsck -f /dev/storage/vo #檢查文件系統完整性 3 resize2fs /dev/storage/vo 120M #先通知系統,即將要執行對邏輯卷vo縮容到120M的操做,看有沒有問題 4 lvreduce -L 120M /dev/storage/vo #把邏輯卷vo縮容至120M 5 mount -a #從新掛載 6 df -h                               #查看掛載狀態

 

邏輯卷快照

LVM快照:相似於虛擬機軟件的還原時間點功能。

能夠對某一個邏輯卷設備作一次快照,若是往後發現數據被改錯了,就能夠利用以前作好的快照捲進行覆蓋還原。

LVM的快照卷功能有兩個特色:

  • 快照卷的容量必須等同於邏輯卷的容量;
  • 快照卷僅一次有效,一旦執行還原操做後則會被當即自動刪除。不過一個邏輯卷能夠作多個快照卷。

實例:承接上面例子,往邏輯卷設備新建一個文件。而後爲邏輯卷建立快照卷。再在邏輯卷目錄生成一個垃圾文件。後先卸載邏輯卷與掛載點關聯,再嘗試快照還原操做(lvconvert --merge),再從新掛載,查看邏輯卷目錄是否回到建立快照前的狀態。

1 echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt #往邏輯卷設備寫入一個文件 2 ls -l /linuxprobe #查看邏輯卷目錄的內容 3 lvcreate -L 120M -s -n SSS /dev/storage/vo #爲邏輯卷vo生成一個快照卷,命名爲SSS,指定切割大小爲120M, 4 lvdisplay #查看邏輯卷詳細信息,能夠看到SSS是vo的快照卷(snapshot) 5 dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M #在邏輯卷vo的目錄下建立一個100M的文件
6 lvdisplay                                                    #查看邏輯卷詳細信息,能夠發現vo的空間佔用量上升
7 umount /linuxprobe #卸載邏輯卷與掛載點關聯 8 lvconvert --merge /dev/storage/SSS                           #對邏輯卷vo進行快照還原操做9 mount -a #從新掛載 10 ls /linuxprobe/                                             #查看邏輯卷目錄,能夠發現建立快照後再建立的100M文件不見了,邏輯卷恢復成設置快照前的狀態

 

刪除邏輯卷

刪除LVM前記得提早備份。

刪除邏輯卷,要依次刪除邏輯卷(lvremove )、卷組(vgremove )、物理卷設備(pvremove ),順序不可顛倒。

實例:承接上面例子,刪除邏輯卷。

1 umount /linuxprobe #卸載 2 vim /etc/fstab 3 /dev/storage/vo /linuxprobe ext4 defaults 0 0 #刪除掛載信息
4 lvremove /dev/storage/vo #刪除邏輯卷,要按y確認 5 vgremove storage #刪除卷組 6 pvremove /dev/sdb /dev/sdc                       #刪除物理卷

 

書本筆記

 

相關文章
相關標籤/搜索