天天看點

RAID與LVM整理與總結

磁盤陣列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,如需轉載請自行聯系原作者

繼續閱讀