RAID和LVM


EXT家族支持度最廣,但
創建文件系統慢
修復慢
存儲容量有限

XFS同樣是日志文件系統:
容量大,支持大存儲
高性能,創建/修復文件系統快
inode與block都是系統需要用到時,才動態配置產生

基本分區(靜態)
       7*24小時
       不能隨意重裝系統,裝系統時,必須提前規划好

動態磁盤
RAID介紹
什么是raid
       raid是廉價冗余磁盤陣列(Redundant Arrays of Independent Drives,RAID)的簡稱,有時候也簡稱磁盤陣列(Disk Array)
raid是一種把多塊獨立的物理磁盤按不同的技術方式組合起來形成一個磁盤組,在邏輯上(做完RAID,裝系統后)看起來就是
一塊大的磁盤,從而提供比單個物理磁盤更大的存儲容量或更高的存儲性能,同時又提供不同級別數據冗余備份的一種技術。

RAID級別介紹
        把多個物理磁盤通過不同技術方式組成磁盤陣列,這個不同的技術方式就被稱為RAID級別
RAID級別一般Raid0、Raid1、Raid2、Raid3、Raid4、Raid5、Raid6、Raid7、Raid0+1(也稱為raid10)、Raid53等
生產環境常用的Raid級別為:Raid0、Raid1、Raid5、Raid10

Raid級別      關鍵優點             關鍵缺點              實際應用場景
0           讀寫速度最快           沒有任何冗余          MySQL Slave,集群的節點RS
1           100%冗余,鏡像         讀寫性能一般,成本高  單獨的,數據重要,且不能宕機的業務。監控、系統盤
5           具備一定性能和冗余可以 寫入性能不高          一般的業務都可以用
            壞一塊盤。讀性能不錯
10          讀寫速度很快,百分百   成本高                性能和冗余要求都很好的業務
            冗余                                         數據庫主庫和存儲的主節點
            

 

下表提供了7級RAID的簡單定義

 

Raid技術分類
常見Raid技術分為兩種
基於硬件的Riad技術和基於軟件的Raid技術
1.軟raid技術
只有Windows2000/2003、Win9x/WinMe/Linux系統支持
需要CPU配合,性能相對較低
安全性不好,當有一塊硬盤損壞時,它不能實現重建的功能
通過在硬盤中模擬實現,成本較低

2.硬raid技術
所有系統都支持。
從硬件直接支持RAIN,不需要額外性能
當有硬盤丟失時,它可以實現重建,以及如果RAID卡損壞時,它可以通過更換RAID卡,實現不丟失數據的功能
需要相應的硬件設備支持,成本較高

互聯網公司首選dell服務器,默認的就會支持raid0和raid1,如果需要raid5、raid10就需要買raid卡

RAID和LVM的區別

LVM源於HP,是LINUX平台下的一種綜合存儲解決方案。算是RAID的一個超集。不但實現了主流的RAID功能(span/stripe/mirror
/stripemirror/RAID 4/RAID 5/RAID 6),而且還有快照和存儲池支持;同時還支持在線數據遷移和卷級別的尺寸變動等功能。
算是一種相當優秀的解決方案。當然,缺點跟軟件RAID一樣,需要占用CPU。

LVM:靈活的管理磁盤的容量,有一定的冗余和性能功能,但很弱。
RAID:更側重性能和數據安全

為什么使用RAID

1.提高數據安全性
2.提升數據讀寫性能
3.提供更大的單一邏輯磁盤數據容量存儲

 

raid5案例:3+1(熱備)

1.准備四塊硬盤
[root@xiaoming ~]# lsblk | grep sd[d-g]
sdd               8:48   0    5G  0 disk 
sde               8:64   0    5G  0 disk 
sdf               8:80   0    5G  0 disk 
sdg               8:96   0    5G  0 disk 
2.創建raid5
[root@xiaoming ~]# yum install -y mdadm
[root@xiaoming ~]#  mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd[d-g]
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
\\相關選項解釋
-C        創建RAID
/dev/md0  第一個raid設備
-l5       Raid5
-n3       raid成員三塊硬盤
-x1       熱備磁盤一塊硬盤
3.格式化
[root@xiaoming ~]# mkfs.xfs /dev/md0 

4.掛載
[root@xiaoming ~]# mkdir /mnt/raid5
[root@xiaoming ~]# mount /dev/md0 /m
5.查看raid信息
[root@xiaoming ~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Mon Dec 30 12:10:14 2019
        Raid Level : raid5
        Array Size : 10475520 (9.99 GiB 10.73 GB)
     Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Mon Dec 30 12:17:13 2019
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : xiaoming:0  (local to host xiaoming)
              UUID : 5f80c18b:d803af9e:5b002baa:06c7dedf
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       1       8       64        1      active sync   /dev/sde
       4       8       80        2      active sync   /dev/sdf

       3       8       96        -      spare   /dev/sdg
6.模擬一塊硬盤錯誤
開兩個終端
一個監控RAID信息

一個模擬磁盤故障
[root@xiaoming raid5]# mdadm /dev/md0 -f /dev/sde -r /dev/sde
mdadm: set /dev/sde faulty in /dev/md0
mdadm: hot removed /dev/sde from /dev/md0
//-f fail
//-r remove
觀察RAID卷的變化
...

 

LVM簡介

logical volume manager
實現動態分區
CentOS6/7默認都是lvm分區

物理卷(PV):把常規的塊設備(硬盤、分區等可以讀寫數據的設備)通過PVcreate命令對其進行初始化,就成了物理卷
卷組(VG):把多個物理卷的容量組成一個邏輯整體,可以從里面靈活分配容量
邏輯卷(LV):從卷組中划分部分空間成為一個可以讀寫數據的邏輯單元。需要對其格式化然后掛載使用

案例:基於RAID5的lvm

1.創建過程:
1)創建物理卷,添加物理磁盤
2)創建卷組,添加物理卷加入該卷組
3)在卷組中划分邏輯卷

1.准備物理磁盤
/dev/md0

2.創建物理卷PV
查看物理卷
pvs
pvscan
pvdisplay
[root@xiaoming ~]# yum install -y lvm2
[root@xiaoming ~]# pvcreate /dev/md0 
  Physical volume "/dev/md0" successfully created.
[root@xiaoming ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/md0          lvm2 ---    9.99g 9.99g
  /dev/sda2  centos lvm2 a--  <19.00g    0 
3.創建卷組
查看卷組
vgs
vgscan
vgdisplay
[root@xiaoming ~]# vgcreate datavg /dev/md0
  Volume group "datavg" successfully created
[root@xiaoming ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <19.00g     0 
  datavg   1   0   0 wz--n-  <9.99g <9.99g

4.創建邏輯卷LV
查看邏輯卷
lvs
lvscan
lvdisplay
[root@xiaoming ~]# lvcreate -L 2G -n lv1 datavg
  Logical volume "lv1" created.
[root@xiaoming ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                    
  lv1  datavg -wi-a-----   2.00g  
5.創建文件系統(格式化)
mkfs.ext4 /dev/datavg/lv1
mkfs.xfs /dev/datavg/lv2mkfs.xfs

lv的寫法
/dev/mapper/datavg-lv1
/dev/mapper/lv1
UUID
    
6.掛載並使用
[root@xiaoming ~]# mkdir /mnt/lv1
[root@xiaoming ~]# mount /dev/datavg/lv1 /mnt/lv1/

 

數據遷移卷組VG,同一卷組的磁盤才可以進行在線遷移

1.檢查當前邏輯卷的使用情況
[root@xiaoming ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/md0   datavg lvm2 a--   <9.99g <5.99g
  /dev/sda2  centos lvm2 a--  <19.00g     0 
  /dev/sdc   datavg lvm2 a--   <5.00g <5.00g

2.pvmove在線數據遷移至其他pv
[root@xiaoming ~]# pvmove /dev/md0 
  /dev/md0: Moved: 5.86%
  /dev/md0: Moved: 50.00%

[root@xiaoming ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree   
  /dev/md0   datavg lvm2 a--   <9.99g   <9.99g
  /dev/sda2  centos lvm2 a--  <19.00g       0 
  /dev/sdc   datavg lvm2 a--   <5.00g 1020.00m

 

擴容邏輯卷lv
邏輯卷的擴展,取決於vg卷中剩余多少容量。

[root@xiaoming ~]# lvextend -L +2G /dev/datavg/lv1
  Size of logical volume datavg/lv1 changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).
  Logical volume datavg/lv1 successfully resized.
[root@xiaoming ~]# lvextend -l +50%FREE /dev/datavg/lv2
  Size of logical volume datavg/lv2 changed from 2.00 GiB (512 extents) to 6.49 GiB (1662 extents).
  Logical volume datavg/lv2 successfully resized.

注意:必須使用下面的方式,更新擴展之后的lv
//xfs擴容
[root@xiaoming ~]# xfs_growfs /dev/datavg/lv1

//ext擴容
[root@xiaoming ~]# resize2fs /dev/datavg/lv2

 

縮小邏輯卷

1.如果已經掛載,先卸載需要縮容的lv
[root@xiaoming ~]# umount /dev/datavg/lv1

2.檢測文件系統
//ext檢測
[root@xiaoming ~]# fsck /dev/datavg/lv1
fsck,來自 util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/datavg-lv1: clean, 11/262144 files, 34894/1048576 blocks
//xfs檢測
[root@xiaoming ~]# xfs_repair /dev/datavg/lv2
注意:必須先卸載lv

3.定義裁剪容量(ext4)
[root@xiaoming ~]# resize2fs /dev/datavg/lv2 1G
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/datavg/lv2
Couldn't find valid filesystem superblock.

[root@xiaoming ~]# resize2fs /dev/datavg/lv1 1G
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/datavg/lv1' first.
注意:如果不成功,根據提示信息輸入下面的命令
[root@xiaoming ~]# e2fsck -f /dev/datavg/lv1
[root@xiaoming ~]# resize2fs /dev/datavg/lv1 1G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/datavg/lv1 to 262144 (4k) blocks.
The filesystem on /dev/datavg/lv1 is now 262144 blocks long.

[root@xiaoming ~]# fsck /dev/datavg/lv1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/datavg-lv1: clean, 11/262144 files, 34894/1048576 blocks

//裁剪容量(擴展,慎重)
[root@xiaoming ~]# lvreduce -L 1G /dev/datavg/lv1
  WARNING: Reducing active logical volume to 1.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce datavg/lv1? [y/n]: y
  Size of logical volume datavg/lv1 changed from 4.00 GiB (1024 extents) to 1.00 GiB (256 extents).
  Logical volume datavg/lv1 successfully resized.

[root@xiaoming ~]fsck -f /dev/datavg/lv1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/datavg-lv1: 11/65536 files (0.0% non-contiguous), 21787/262144 blocks

5.再次檢測文件系統
[root@xiaoming ~]# fsck /dev/datavg/lv1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/datavg-lv1: clean, 11/65536 files, 21787/262144 blocks

6.掛載測試
如果能夠掛載,一般說明裁剪成功,文件系統沒有損壞

 

刪除LV邏輯卷
刪除使用lv-vg-pv,保證都沒使用

//邏輯卷
[root@xiaoming ~]# umount /dev/datavg/lv1
[root@xiaoming ~]# lvremove /dev/datavg/lv1
Do you really want to remove active logical volume datavg/lv1? [y/n]: y
  Logical volume "lv1" successfully removed

//卷組
[root@xiaoming ~]# vgremove /dev/datavg   
Do you really want to remove volume group "datavg" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume datavg/lv2? [y/n]: y
  Logical volume "lv2" successfully removed
  Volume group "datavg" successfully removed

//物理卷
[root@xiaoming ~]# pvremove /dev/md0 /dev/sdc 
  Labels on physical volume "/dev/md0" successfully wiped.
  Labels on physical volume "/dev/sdc" successfully wiped.

 

總結
RAID *****
        企業使用的硬件RAID(raid卡),保障磁盤的可靠性,提高磁盤的性能
LVM  ***
        針對分區實現動態擴容
        pv vg lv

磁盤分區企業應用:數據遷移
常規生產環境分區一個/
問題:/home /var /usr等目錄數據增長較快

解決方案:
1、將新加的硬盤(RAID)分區格式化掛載
2、cp(mv) -rpf /home/* 新分區掛載點
3、mount 新分區 /home,寫入/etc/fstab

      創建        查看       擴展        刪除
pv  pvcreate      pvs                    pvremove
                  pvscan
                  pvdisplay
vg  vgcreate      vgs        vgextend    vgremove
                  vgscan
                  vgdisplay
lv  lvcreate      lvs        lvextend    lvremove
                  lvscan
                  lvdisplay


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM