Linux里面raid和lvm区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux里面raid和lvm区别是啥?相关的知识,希望对你有一定的参考价值。

LVM:主要侧重动态磁盘扩容

全称逻辑卷管理,是一个动态扩展磁盘分区容量的功能性工具,对于测试环境,可以用来管理磁分区满了,扩容,但是在大规模环境性能低下,尽量不要使用它。

RAID:主要侧重磁盘性能和数据安全

磁盘阵列可以把多个磁盘驱动器通过不同的连接方式连接在一起协同工作,大大提高了读取速度,同时把磁盘系统的可靠性提高到接近无错的境界,使其可靠性极高。

用RAID最直接的好处是:

1)提升数据安全性。2)提升数据读写性能。3)提供更大的单一逻辑磁盘数据容量存储。

参考技术A LVM源于HP,是LINUX平台下的一种综合存储解决方案。算是RAID的一个超集。不但实现了主流的RAID功能(span/stripe/mirror
/stripemirror/RAID 4/RAID 5/RAID 6),而且还有快照和存储池支持;同时还支持在线数据迁移和卷级别的尺寸变动等功能。
算是一种相当优秀的解决方案。当然,缺点跟软件RAID一样,需要占用CPU。
LVM:灵活的管理磁盘的容量,有一定的冗余和性能功能,但很弱。
RAID:更侧重性能和数据安全

Linux基础——RAID和LVM

一、RAID

独立冗余磁盘阵列

条带化技术,分散存储在多个盘上

(做切割数据的,存在盘上的对应位置,在外观看来就是条带状的)

raid的一种

raid级别,仅仅代表raid的组成方式是不一样的,没有上下级之分

raid级别:速度、可用性

利用校验码的形式来保证数据的可靠性(比较麻烦)浪费比例1/n

 raid类型

1、raid0 (条带)

性能提升:读写

冗余能力:不具备

空间利用率:n 至少两块盘

2、raid1 (镜像)

性能提升:写性能下降,读性能提高

冗余能力:具备

空间利用率:1/2 正好两个

3、raid0+1(同组都可以坏,不能是不同组的相同标号坏)利用率都是1/2

raid1+0(同组不能都坏掉) 用的多

性能表现:读写提升

冗余能力:具备

空间利用率:1/2 至少4块

4、raid4校验码机制 校验码盘的压力大 性能瓶颈

5、raid5 轮换成为校验盘的机制

性能表现:读写提升

冗余能力:具备

空间利用率:(n-1)/n 至少3块

6、raid6 多了一块校验盘,校验方式有所改变

7、raid5+0 性能表现:读写提升

冗余能力:具备

空间利用率:(n-2)/n 至少6块

8、JBOD (Just a Bunch Of Disks,磁盘簇)是在一个底板上安装的带有多个磁盘驱动器的存储设备。通常又称为Span。

简单将多个盘罗列,对应用程序来说就是一块盘,可以储存单个较大文件

下面简单做一下raid的实验来介绍软件raid的基本命令:

1、创建raid1、raid0、raid10并且模拟读写,查看读写速度,耗时

2、增加热备磁盘

3、模拟损坏

4、移除损坏的磁盘

5、实现开机自动挂载设备

6、把raid恢复原初始状态

操作步骤:

1、首先为虚拟机添加足够的磁盘并使用fdisk /dev/sd#命令分区,以及把分区格式改为fd格式。

Linux基础——RAID和LVM

以下是暂时的分区sdb和sdc分别分了四个主分区,sdb1和sdb2做raid1 、sdb3和sdb4做raid0、sdc的四个分区做raid10

Linux基础——RAID和LVM

2、Raid1

(1)使用mdadm命令创建raid列阵

Linux基础——RAID和LVM

Linux基础——RAID和LVM

分别使用命令:

mdadm -D  /dev/md#   查看RAID设备的详细信息

cat /proc/mdstat   查看raid状态

Linux基础——RAID和LVM

Linux基础——RAID和LVM

(2)格式化raid设备文件md1

Linux基础——RAID和LVM

(3)挂载raid设备文件

Linux基础——RAID和LVM

3、raid0和raid10的步骤和raid1的步骤大致一样。下面是raid0和raid10简单的操作步骤,如下图:

(1)raid0和raid10的raid阵列

Linux基础——RAID和LVM

Linux基础——RAID和LVM

(2)格式化raid设备

Linux基础——RAID和LVM

Linux基础——RAID和LVM

(3)挂载raid设备文件

Linux基础——RAID和LVM

Linux基础——RAID和LVM

4、模拟读写,查看读写速度,耗时


Linux基础——RAID和LVM

5、新建分区sdd1并为raid10增加热备磁盘

Linux基础——RAID和LVM

Linux基础——RAID和LVM

6、模拟/dev/sdc4损坏

Linux基础——RAID和LVM

Linux基础——RAID和LVM

7、移除损坏的磁盘

Linux基础——RAID和LVM

8、修改/etc/fstab文件,实现开机自动挂载设备

Linux基础——RAID和LVM

9、把raid恢复原初始状态,只需要停止阵列并初始化磁盘即可

Linux基础——RAID和LVM

Linux基础——RAID和LVM

Linux基础——RAID和LVM

Linux基础——RAID和LVM

其它磁盘也需要格式化

二、LVM

对于普通的分区,扩展度不高,一旦分区格式化完成,很难灵活的再增加或者减少分区大小。为了解决这个问题,可以使用LVM(逻辑卷)。基本过程是把物理磁盘或者分区初始化称为物理卷(PV),然后把PV加入VG(卷组),最后在VG上划分逻辑的分区(LVM),LVM可以当做普通的分区进行格式化和挂载。

将准备的磁盘或分区创建PV

Linux基础——RAID和LVM

可以执行pvdisplay查看PV的详细信息,pvremove删除PV

创建完PV,之后,需要创建VG,然后添加PV到VG中

可以通过vgdisplay查看具体的信息,注意PE的Size是4M,这个是增减的最小计算单位

Linux基础——RAID和LVM

注:创建VG时:使用–s选项的作用是在创建时指定PE块(物理扩展单元)的大小,默认是4M。

如:# vgcreate volGroup03 -s 8M /dev/sdb[12]

我们可以继续往vg里面添加新的分区

Linux基础——RAID和LVM

若事先没有把sdb3转化为pv,而是直接添加到vg里面,不过一旦添加了他自动就初始化成pv了。

可以添加当然也可以减少pv。  #vgreduce vg00 /dev/sdb3

VG准备就绪,可以创建了LVM了

Linux基础——RAID和LVM

注意看他的大小其实是112M,因为PE的大小是4M,这个4M是最小单位,不能破开,因此28个PE就是112M

Linux基础——RAID和LVM

Linux基础——RAID和LVM

注:大L可以直接指定大小,小l是指定多少个PE的值

也可以设置剩余空间的百分比

Linux基础——RAID和LVM

删除逻辑卷   #lvremove /dev/vg00/lv01

对已经创建的逻辑卷,可以当做普通分区一样格式化和挂载

Linux基础——RAID和LVM

修改/etc/fstab文件实现开机自动挂载。

扩展一个逻辑卷,增加300M,首先要确保卷组有大于300M的空闲空间。

Linux基础——RAID和LVM

执行lvextend扩展逻辑卷大小

Linux基础——RAID和LVM

注意逻辑卷的文件系统仍然是109M没有改变,我们还需要填充文件系统的空白。

RHEL7可以用xfs_growfs来扩大XFS文件系统,也可以直接用resize2fs 来处理设备

注意的是 XFS系统只能增长,不能减少!因此如果需要减少LVM的话,分区只能使用ext4了

Linux基础——RAID和LVM

执行df查看扩展后的文件系统

Linux基础——RAID和LVM

逻辑卷快照

LVM提供一个极妙的设备,它是snapshot。允许管理员创建一个新的块装置,在某个时间点提供了一个精确的逻辑卷副本,快照提供原始卷的静态视图LVM 快照通过把文件系统的改变记录到一个快照分区,因此当你创建一个快照分区时,你不需要使用和你正创建快照的分区一样大小的分区,所需的空间大小取决于快照的使用,所以没有可循的方法来设置此大小。如果快照的大小等于原始卷的大小那么快照永远可用。

快照是特殊的逻辑卷,只可以对逻辑卷做快照。逻辑卷快照和需要做快照的逻辑卷必须在同一个卷组里面

现在在我们的系统中有个逻辑卷/dev/vg00/lv00,我们用lvdisplay来查询一下这个逻辑卷

Linux基础——RAID和LVM

Linux基础——RAID和LVM

可以看到,这个逻辑卷/dev/vg00/lv00的大小是309M。我们将这个逻辑卷/dev/vg00/lv00挂载到/data下面复制一些数据到/data里面去。方便等下做试验

Linux基础——RAID和LVM

现在我们就为逻辑卷/dev/vg00/lv00来做快照

Linux基础——RAID和LVM

执行lvscan查看创建好的逻辑卷

Linux基础——RAID和LVM

可以看到/dev/vg00/lv00是原始逻辑卷,而/dev/vg00/lvsp00是快照

执行lvdisplay或lvs命令查看逻辑信息

Linux基础——RAID和LVM

可以看到逻辑卷快照创建成功了,

注意:这个快照卷建好之后,是不需要格式化也不需要进行挂载的。格式化或挂载都会出现的错误提示的。

模拟将原逻辑卷中的数据删除

Linux基础——RAID和LVM

如何恢复原逻辑卷的数据?有两方式可以恢复删除的数据

方式一:先将原逻辑卷卸除挂载#umount /dev/vg00/lv00

然后挂载逻辑卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常访问数据了

Linux基础——RAID和LVM

方式二:可以通过lvconvert把快照的内容重新写回原有的lvm

先将原逻辑卷卸除挂载#umount /dev/vg00/lv00

执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert  --merge /dev/vg00/lvsp00

最后挂载原逻辑卷,查看数据是否恢复成功

Linux基础——RAID和LVM

注:当我们把原逻辑卷里面的数据给删除了,逻辑卷快照里面的数据还在,所以可以用快照恢复数据。而当我们在逻辑卷里面添加数据,快照是不会发生改变的,是没有这个文件的。因为快照只会备份当时逻辑卷的一瞬间。

三、ssm

使用ssm(系统存储管理器)进行逻辑管理

逻辑卷管理器(LVM)是一种极其灵活的磁盘管理工具,它让用户可以从多个物理硬驱创建逻辑磁盘卷,并调整大小,根本没有停机时间。最新版本的CentOS/RHEL 7现在随带系统存储管理器(又叫ssm),这是一种统一的命令行界面,由红帽公司开发,用于管理各种各样的存储设备。目前,有三种可供ssm使用的卷管理后端:LVM、Btrfs和Crypt

准备ssm,在CentOS/RHEL 7上,你需要首先安装系统存储管理器。可以通过rpmyum工具安装

Linux基础——RAID和LVM

首先我们来检查关于可用硬盘和LVM卷的信息。下面这个命令将显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。

#ssm  list

Linux基础——RAID和LVM

在这个例子中,有两个物理设备(“/dev/sda”和“/dev/sdb”)、二个存储池(“rhel和vg00”),以及存储池rhel中创建的两个LVM卷(“dev/rhel/root”和“/dev/rhel/swap”),存储池vg00中创建的一个LVM卷(/dev/vg00/lv00)。

下面来讲解如何通过ssm创建、管理逻辑卷和逻辑卷快照

至少新添加一块磁盘,执行ssm命令显示现有磁盘存储设备、存储池、LVM卷的信息

Linux基础——RAID和LVM

可以看到有两块空闲磁盘(sdc、sdd)

创建新的LVM/

在这个示例中,不妨看一下如何在物理磁盘驱动器上创建新的存储池和新的LVM卷。如果使用传统的LVM工具,整个过程相当复杂,需要准备分区,需要创建物理卷、卷组、逻辑卷,最后还要建立文件系统。不过,若使用ssm,整个过程一蹴而就!

下面这个命令的作用是,创建一个名为mypool的存储池,创建存储池中名为lv01500MB大小的LVM卷,使用XFS文件系统格式化卷,并将它挂载到/mnt/test下。

Linux基础——RAID和LVM

验证ssm创建的结果

Linux基础——RAID和LVM

或执行ssm list

Linux基础——RAID和LVM

将物理磁盘(sdd)添加到LVM

Linux基础——RAID和LVM

新设备添加到存储池后,存储池会自动扩大,扩大多少取决于设备的大小。检查名为mypool的存储池的大小执行ssm list查看

Linux基础——RAID和LVM

接下来,我们来扩大现有的LVM

扩大LVM卷,不妨将/dev/mypool/lv01卷的大小增加300MB

如果你在存储池中有额外空间,可以扩大存储池中现有的磁盘卷。为此,使用ssm命令的resize选项

Linux基础——RAID和LVM

执行ssm list查看扩大后逻辑卷

Linux基础——RAID和LVM

可以看到逻辑卷扩大到800M,即在原来的基础上增加了300M,但文件系统大小(Fs size)还没有改变,仍然是原来的大小。

为了让文件系统识别增加后的卷大小,你需要“扩大”现有的文件系统本身。有不同的工具可用来扩大现有的文件系统,这取决于你使用哪种文件系统。比如说,有面向EXT2/EXT3/EXT4的resize2fs、面向XFS的xfs_growfs以及面向Btrfs的btrfs,不一而足。

在这个例子中,我们使用CentOS7,XFS文件系统在默认情况下创建。因而,我们使用xfs_growfs来扩大现有的XFS文件系统。

Linux基础——RAID和LVM

扩大XFS文件系统后,查看结果

Linux基础——RAID和LVM

或执行#df  -hT

Linux基础——RAID和LVM

可以看到LVM扩展成功

逻辑卷快照

对现有的LVM卷(比如/dev/mypool/lv01)生成快照

一旦快照生成完毕,它将作为一个特殊的快照卷存储起来,存储了原始卷中生成快照时的所有数据

Linux基础——RAID和LVM

Linux基础——RAID和LVM

Linux基础——RAID和LVM

每次原LVM中的数据更改,都可以手动执行ssm  snapshot生成快照

当原LVM数据损坏就可以用快照恢复了

方式一:先将原逻辑卷卸除挂载  #umount /dev/mypool/lv01

然后挂载逻辑卷快照即可 #mount /dev/mypool/snap20150512T101821 /mnt/test,就可以正常访问数据了

方式二:可以通过lvconvert把快照的内容重新写回原有的lvm

先将原逻辑卷卸除挂载#umount /dev/mypool/lv01

执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert  --merge /dev/ mypool/snap20150512T101821

最后挂载原逻辑卷,查看数据是否恢复成功

有磁ssm的具体用法可以参考ssm的帮助手删页

如:删除LVM卷#ssm remove <volume>

删除存储池#ssm  remove <pool-name>

以上是关于Linux里面raid和lvm区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

linux基础-磁盘阵列(RAID)实例详解

linux-磁盘管理与文件系统-RAID配置实战

Linux里面lvm是啥?

IDE阵列卡和SATA阵列卡的区别是啥?

Linux里面lvs和haproxy区别是啥?

23磁盘管理—磁盘阵列(RAID)实例详解