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
原文地址:https://www.cnblogs.com/xmtxh/p/12120356.html