廉价磁盘阵列(RAID)与逻辑卷(lvm)

RAID的作用介绍与LVM的创建分析

  有计算机基础常识的人们都能了解,现如今生产出来的存储设备比如机械式磁盘,作为个体它的存储容量是有上限的,虽然曾经有人开发出大容量磁盘,但是成本太高,无法在社会中普及应用。对于这种大型服务器系统迫切需要的功能,催生出了一个叫做廉价冗余磁盘阵列的技术,歪果仁将它称为RAID。而后随着岁月的发展,又产生了逻辑卷lvm的概念。本篇针对于RAID在系统方式上设置以及lvm的详细分析。

    一.RAID的类型介绍与如何使用命令在系统上设置

  由上可知,RAID是由多个磁盘组成的单一存储设备方式,这样我们对这些个磁盘就有多种组合方式,RAID0、RAID1、RAID5、RAID10等,下面结合图文对各个排列方式进行讲解。

  1.RAID0

  RAID0又称作条带卷,实际上是将数据分为chunk块对多块磁盘分别存储,可以比喻成多个仓库同时接收货物。试想一下,这样的数据存储方式大大提高了存储速率,并且增加了存储空间。缺点是由于chunk块分割存储,如果某块磁盘遭到破坏,整个RAID存储的数据就无法重新拼凑起来了。所以说RAID0虽然大大增加了磁盘的读写速度与存储空间,但与之相应承担的风险也大大增加,RAID0模式无容错能力,这时在实际生产过程中无法被容忍的。

  2.RAID1

  RAID1又被称作镜像卷,实际上是将两块磁盘存储相同的chunk,如果其中一个磁盘损坏,另一个起到了备份的作用。这种RAID方式增加了磁盘阵列的容错性,但是由于两块磁盘同时读取数据,反而影响到磁盘的读写速率。组成RAID1最少有两块磁盘,同一组镜像卷以最小磁盘容量为标准。

  3.RAID5

  RAID5实际上是由RAID4改良而成,RAID4最少有三个磁盘,其中两个磁盘存储chunk数据块,第三块磁盘存储前两块磁盘同位置的二进制数据异或结果运算,所以三块磁盘有两块磁盘可以存储数据,如果其中这两块磁盘之一损坏,可以根据未损坏的那个数据盘与异或结果盘做运算恢复损坏磁盘的数据。但是由于实际过程中,异或结果盘的操作负担太大,导致这个盘的损坏概率大大增加,所以在RAID5中,存取异或结果在三个盘之间有规律的轮循,让每一块磁盘分担压力,这样就会使其损坏概率大大降低。

  4.RAID10与RAID01

  RAID10是将磁盘先进行RAID1排列,再将多个RAID1进行RAID0排列,这种方式很实用,既能大大增加磁盘容量,也兼备容错性,除非两个存储相同chunk块的镜像卷同时损坏,那你只能自认倒霉。RAID01是将磁盘先进行RAID0排列,在进行RAID排列,这种方式不推荐,因为容错性相比于RAID10大大降低,生产环境所承担的风险也大大增加。同样也存在RAID05,RAID50之类的排列方式。

  RAID模式的磁盘在实际生产中都是通过硬件插槽部署实现的,但是在linux系统中,也可以使用命令模式定义RAID。使用mdadm相关命令定义多个磁盘分区排列成RAID。步骤如下:

  (1)mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1 ;

  此步骤表示创建名为md0的RAID,其中包含4个磁盘分区,排列模式为RAID5,三个分区存储数据,一个分区做空闲盘,默认回答yes。(前提是分区id改为fd模式)  

  (2)mdadm -D /dev/md0 查看新建的RAID状态,加选项实现RAID管理

  (3)如果设置开机启动,在/etc/fstab文件中增加一行:/dev/md0(最好使用blkid查看UUID,在这里使用UUID) /mnt/raid(新建的挂载点文件夹) ext4 defaults 0 0

  (4)mount -a 将/dev/md0挂载

   如此四步之后,即可在分区列表上观察到增加的RAID分区信息了。

  删除RAID分区步骤如下:

  (1)首先将/etc/fstab文件中的/dev/md0一行删除,如过没有配置文件内容,先取消挂载。

  (2)mdadm -S /dev/md0   停用/dev/md0

  (3)最后删除RAID信息:mdadm -zero-superbloclk /dev/sd{b,c,d,e}1

    二.LVM的创建和具体使用方法

  首先介绍什么是LVM,LVM就是Logical Volume Manager(逻辑卷管理器)的英文缩写。它的作用是多个设备组织起来形成一个有逻辑划分功能的存储模块。总的来说分为三层:pv物理卷,vg卷组,lv逻辑卷。下面分别介绍着三种分层。

  

  1.pv:物理卷,多个物理卷能够组成一个宏大的空间,在创建磁盘分区的时候,如果想要使某分区变为支持LVM模式的pv,要使用fdisk命令修改其分区id为8e。接着使用一系列的pv命令来创建pv。常见pv命令:

  pvcreate:创建pv,前提是分区id为8e。举例:pvcreate /dev/sdb1 /dev/sdc1 表示将sdb1、sdc1创建为pv

  pvremove:删除pv

  pvs:简要格式查看所有pv

  pvdisplay:详细查看pv

  pvck:检查pv

  2.vg:vg称为卷组,其内部需要添加多个pv来构成一个卷组,vg由以可指定pe(物理分区扩展)大小为单位构成,所有pe加在一块就是vg的总空间。常用命令如下:

  vgcreate:创建卷组,vgcreate vg0 -s 4M /dev/sdb1 /dev/sdc1  表示创建卷组vg0,内部所包含的分区为/dev/sdb1 /dev/sdc1 pe大小为4M

  vgremove:删除卷组

  vgs:查看所有vg的简要格式

  vgdisplay:查看所有vg的详细格式

  vgextend:在某一vg内添加pv,比如:vgextend vg0 /dev/sdd1 表示在vg0中添加pv /dev/sdd1

  vgreduce:移除卷组内的某一pv(前提是这个pv的内存没有被lv占用)

  

  3.lv

  lv逻辑卷是将一个vg内的所有空间以le的大小为单位划分出一块存储空间,常用命令有:

  lvcreate:创建逻辑卷,举例:lvcreate -L 10G -n lv1 vg0 表示在卷组vg0基础上创建大小为10G,名称为lv1的逻辑卷

  lvremove:删除逻辑卷,举例:lvremove lv1 删除lv1逻辑卷

  lvs,lvdisplay:查看逻辑卷

  lvextend:扩展逻辑卷,注意拓展逻辑卷之后,与之相应的文件系统也要扩展至同等大小。举例:lvextend -L +2G /dev/vg0/lv1 表示扩展逻辑卷lv1大小增加2G,接着需要使用resize命令扩展lv1文件系统的大小(假设我们已经创建了ext4文件系统并且挂载完毕):resize2fs /dev/vg0/lv1 即可成功扩展

  lvreduce:缩减逻辑卷,这个步骤相比于扩展逻辑卷更为复杂,因为逻辑卷上可能部分le存储了一些数据,如果随意缩减lv大小,可能会造成数据丢失,为了避免这种情况,缩减逻辑卷一般分为如下5个步骤。

 (1)取消挂载:umount /dev/vg0/lv1

 (2)强制检测逻辑卷的文件系统:e2fsck -f /dev/vg0/lv1 (如果缺少这步,文件系统缩减时会报错)

 (3)缩减文件系统未指定大小:resize2fs /dev/vg0/lv1 5G 缩减文件系统大小为5G

 (4)lvreduce -L 5G /dev/vg0/lv1

 (5)mount /dev/vg0/lv1 /mnt/lv1 重新挂载

  4.lvm快照snapshot

  所谓快照,就是将创建快照当时的系统数据保存下来,如果之后系统数据有变动,则会将变更前的数据放在快照区进行保存,如此之后,快照就会由变更之前的数据和未变更的数据组成。而LVM系统快照只备份变更之前的数据,没有变更的数据不做快照保存,如果查找,指向未变更的原文件。所以通过LVM作为快照是一个不错的选择。由于lv快照与原lv共享许多pe块,所以lv快照必须与原lv在同一个卷组上,下面是快照创建步骤:

 (1)lvcreate -L 2G -s -n snapshot_lv1 /dev/vg0/lv1 表示为lv1创建一个名为snaoshot_lv1的快照卷

 (2)创建快照目录并挂载。

  创建完后,在快照的挂载目录就可以看到lv1的数据信息了,如果lv1中的数据改变,快照内的数据还会保持原样。

原创文章,作者:mcgeewang,如若转载,请注明出处:http://www.178linux.com/42845

(1)
mcgeewangmcgeewang
上一篇 2016-09-11 15:32
下一篇 2016-09-11 16:19

相关推荐

  • 用vsftpd来搭建网络yum源

    1、分别在CentOS6和CentOS7分别搭建网络yum源 a、CentOS 7中 首先安装并启用vsftpd服务 [root@node1 ~]# mount /dev/cdrom /mnt/yum/ [root@node1 ~]# vim /etc/yum.repos.d/local.repo [local] name=local baseurl=fil…

    2015-10-03
  • Linux网络功能协议介绍(二)

      上个内容中,我们知道了只要是本地通信得广播,而广播不是逻辑(IP)地址对应的MAC地址,所以主要是将逻辑地址转换成目标地址,这叫地址解析称为ARP,还有一种是反向解析RARP,都是在本地网络中完成的,逻辑IP地址分为两个阶段,前一段分为网络地址,后一段分为主机地址,如何判定?用子网掩码用来判断那一部分是网络位,那一部分是主机位,最重要…

    Linux干货 2016-11-25
  • 基于haproxy实现wordpress动静分离

    环境:centos 6.8 注:此处省略对于各服务器的IP配置。 一:图示讲解      用户访问vip,通过haproxy代理得到服务器的资源。此架构下基于keepalived对haproxy做负载均衡(此种两种软件装在同一台服务器),基于haproxy对Nginx和apache做负载均衡,Nginx和Apache使用共享存储…

    2017-05-18
  • 用户管理、三种权限、三种特殊权限的使用

    用户管理、三种权限、三种特殊权限的使用 一、用户管理 1、软链接:ln  -s  相对于软链接的路径/绝对路径   软链接文件    硬链接:ln  相对路径原文件   硬链接文件 2、getent的使用    gentent p…

    系统运维 2016-08-05
  • apache服务器

    一、改变网页的默认位置 1、修改DocumentRoot和Directory,修改新的存放路径为/data/htdocs/ 2、创建/data/htdocs/index.html,注意权限问题 3、注意报错You don't have permission to access /index.html,此时去查看SElinux的状态。命令selinu…

    Linux干货 2016-10-09
  • NFS,samba,vsftpd的基本使用

    一.NFS介绍 NFS(Network File System),全名叫做网络文件系统,是由SUN公司研发的。顾名思义,简单理解就是通过网络互联,将本地的文件系统共享出去,从而实现资源的共享,NFS监听在TCP的2049端口上。当涉及到主机之间的通信时,就会存在安全问题,于是为了安全考虑,主动提出请求的一方(客户端)需要提供一些基本信息来认证,这些信息是需要…

    Linux干货 2017-01-04