Linux磁盘管理系列 — LVM和RAID

一、逻辑卷管理器(LVM)

  1、什么是逻辑卷管理器(LVM)

    LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对卷进行操作的抽象层。

    LVM是建立在硬盘和分区之上的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,从而提高磁盘分区管理的灵活性。

    LVM允许在多个物理设备间重新组织文件系统,包括重新设定文件系统的大小。

  2、LVM结构图

    

  3、LVM术语

  1)物理卷

    物理卷(physical volume, PV)在LVM系统中处理最底层;

    物理卷可以是整个硬盘、硬盘上的分区或从逻辑上一磁盘分区具有同样功能的设备(如:RIAD);

    物理卷是LVM的基本存储逻辑块,单核基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

  2)物理区域

    每个物理卷被划分为基本单元(称为Physical Extent,PE),具有唯一编号的PE是可以被LVM寻址的最小存储单元,实际的数据都是存储在PE中的;

    PE的大小可根据实际情况在创建物理卷时指定,默认为4MB;

    PE的大小一旦确定将布恩那个改变,同一个卷组中的所有物理卷的PE的大小需要一致。

  3)卷组

    卷组(Volume Group,VG)建立在物理卷之上,它由一个或多个物理卷组成;

    卷组创建之后,可以动态添加物理卷到卷组中,在卷组上可以创建一个或多个“LVM分区”(逻辑卷);

    一个LVM系统中可以只有一个卷组,也可以包含多个卷组

    LVM的卷组类似于非LVM系统中的物理硬盘。

  4)逻辑卷

    逻辑卷(Logical Volume,LV)建立在卷组之上,逻辑卷相当于分区,只不过给分区时通过卷组划分,卷组中可以存在很多物理区域,可以指定多少物理区域划分给一个逻辑卷,也可以之间指定大小来划分,划分为逻辑卷后就相当于划分了分区,仅需要对LV进行格式化文件系统即可。

  5)逻辑区域

    逻辑卷也被划分为可被寻址的基本单元(称为 Logical Extent,LE);

    在同一个卷组中,LE的大小和PE时相同的,并且一一对应。

  4、LVM与文件系统之间的关系

    /boot 分区不能位于卷组中,因为引导装载程序无法从逻辑卷中读取;

    如果你想把 / 分区放在逻辑卷上,必须创建一个与卷组分离的 /boot 分区

    

  5、LVM的存储机制

    LV时从VG中划分出来的,因此LV中的PE可能来自多个PV。因此LV存储数据时,主要有两种机制:

    1)线性模式(Linear):先将数据存储在属于同一个PV的PE,然后再向下一个PV中的PE;

    2)条带模式(Striped):将一份数据拆分为多份,分别写入该LV对应的每个PV中,类似于RAID 0,因此读写性能会优于线性模式。

  尽管条带模式读写性能会比较好,但是LVM的重点时扩展容量二非性能,如果要实现读写性能还是推荐采用RAID方式实现。

  6、PV - VG - LV 的设备名

  含义 设备名
PV 物理卷:磁盘或分区 /dev/sda?
VG 卷组:一组磁盘和 / 或 分区 /dev/<VG name>/(目录)
LV 逻辑卷:LVM 分区 /dev/<VG name>/<LV name>

  7、LVM 常用命令集

任务 PV VG LV
创建 pvcreate vgcreate lvcreate
删除 pvremove vgremove lvremove
显示信息 pvs vgs lvs
扫描列表 pvscan vgscan lvscan
显示属性 pvdisplay vgdisplay lvdisplay
更改属性 pvchange vgchange lvchange
扩展   vgextend lvextend / lvresize
缩减   vgreduce lvreduce / lvresize

  8、创建LVM系统的步骤

  第一步:对新硬盘分区----创建LVM类型的分区

  新硬盘分区参考:https://www.cnblogs.com/qiuyu666/p/11843634.html

  使用 lsblk 命令查看需要测试的磁盘 sdb5、sdc5、sdd5、sde5:

  

  第二步:对创建好的LVM类型分区----创建物理卷

  创建物理卷(Physical Volume,PV):

  指  令:pvcreate

  语  法:pvcreate [选项] [参数]

  功能介绍:pvcreate指令用于将物理硬盘分区初始化为物理卷,以便被LVM使用

  主要参数:  -f   强制创建物理卷,不需要用户确认

         -u   指定设备的UUID

         -y   所有的问题都回答“yes”

         -Z   是否利用前4个扇区

  

  

  查看新建好的物理卷:

  指令:pvs、pvscan、pvdiplay

   

  第三步:将新创建的物理卷添加到卷组

  将物理卷添加到卷组(Volume Group,VG):

  指    令:vgcreate

  语       法:vgcreate [选项] [参数]

  功能介绍:vgcreate指令用于创建LVM卷组。

  主要参数:-l    卷组上允许创建的最大逻辑卷数

       -p   卷组中允许添加的最大物理卷数

       -s   卷组上的物理卷的PE大小

  

   查看添加好的卷组:

  指令:vgs、vgscan、vgdisplay

  

  第四步:在卷组中创建逻辑卷

  创建逻辑卷(Logical Volume,LV):

  指      令:lvcreate

  语      法:lvcreate [选项] [参数]

  功能介绍:lvcreate指令用于创建LVM的逻辑卷。

  主要参数:-L   指定逻辑卷的大小,单位为“kKmMgGtT”字节

       -l    指定逻辑卷的大小(LE数)

       -n   后面跟逻辑卷名 

       -s    创建快照

  

  查看创建好的逻辑卷:lvs、lvscan、lvdisplay

   

  对逻辑卷进行扩展:lvextend / lvresize

  指      令:lvextend

  语      法:lvextend [选项] [参数]

  功能介绍:lvextend指令用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。

  主要参数:-L  指定逻辑卷的大小,单位为“kKmMgGtT”字节

       -l    指定逻辑卷的大小(LE数)

  

  第五步:在逻辑卷中创建文件系统----格式化操作

  指       令:mkfs

  使用权限:超级使用者

  使用方式:mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable]

  说       明: 建立 linux 档案系统在特定的 partition 上

  参       数:device : 预备检查的硬盘 partition,例如:/dev/sda1

       -V : 详细显示模式

       -t : 给定档案系统的型式,Linux 的预设值为 ext2

       -c : 在制做档案系统前,检查该partition 是否有坏轨

       -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面

       block : 给定 block 的大小

       -L:建立lable

  补充说明:mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。例如,若在"-t" 参数中指定ext2,则mkfs会调用mke2fs来建立文件系统.使用时如省略指定【块数】参数,mkfs会自动设置适当的块数。

  

  第六步:创建挂载点(必须为空目录),对格式化的文件系统----进行挂载操作

  

   添加开机自动挂载: echo '/dev/testvg/testlv1  /testlv  ext4 defaults 0 0 ' >> /etc/fstab

  第七步:检查挂载是否成功----使用mount命令检查

   

  

  

  9、删除LVM系统的操作

  第一步:先卸载挂载点并删除 /etc/fstab 中的挂载记录

    指  令:umount

    功能说明:卸除文件系统。

    语  法:umount [-ahnrvV][-t <文件系统类型>][文件系统]

    补充说明:umount可卸除目前挂在Linux目录中的文件系统。

    参  数:  -a   卸除/etc/mtab中记录的所有文件系统。

           -h   显示帮助。

           -n   卸除时不要将信息存入/etc/mtab文件中。

           -r   若无法成功卸除,则尝试以只读的方式重新挂入文件系统。

           -t<文件系统类型>   仅卸除选项中所指定的文件系统。

           -v   执行时显示详细的信息。

           -V   显示版本信息。

           -l   懒惰的卸载。从文件系统层次分离文件系统,在不繁忙的情况下清理所有对文件系统的引用

      [文件系统]   除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统。

    

  第二步:删除逻辑卷(LV)

    指  令:lvremove

    语  法:lvremove [选项] [参数]

    功能介绍:lvremove指令用于删除指定LVM逻辑卷。

    参  数:-f 强制删除

  

  第三步:删除卷组(VG)

    指  令:删除卷组

    语  法:vgremove [选项] [参数]

    功能介绍:vgremove指令用户删除LVM卷组。

    参  数:-f   强制删除

  

  第四步:删除物理卷(PV)

    指  令:删除指定物理卷

    语  法:pvremove [选项] [参数]

    功能介绍:pvremove指令用于删除一个存在的物理卷。

    主要参数:-d  调试模式

         -f  强制删除

         -y  对提问回答“yes”

   

二、磁盘阵列(Redundant Arrays of Inexpensive Disks,RAID)

  RAID(Redundant Arrays of Inexpensive Disks)容错式廉价磁盘阵列。RAID技术可以通过软件或硬件实现,将多个磁盘整合成为一个较大的磁盘装置,该装置不仅有存储功能,还具有数据保护的功能。RAID具有多个不同的等级,每个等级的对整合后的磁盘实现不同的功能。常用等级有RAID5。

  1、磁盘阵列(RAID)的功能

    1)整合现有的磁盘空间

    2)提高磁盘读取效率

    3)提供容错性

  2、磁盘阵列的种类

    1)硬件磁盘阵列:使用磁盘阵列控制卡或使用dmraid工具管理。

    2)软件磁盘阵列:由Linux的内核仿真磁盘阵列的功能或使用mdadm工具管理。

    在Linux中常用的是使用mdadm工具管理来实现软件RAID

  3、磁盘阵列的级别

    

    1)RAID 0:RAID 0又称为Stripe或Striping,他代表了所有RAID级别中存储性能最高的。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。同时RAID 0的安全行最低,如果一个磁盘失效,将影响整个数据。因此RAID 0不可应有于需要数据高可用行的关键应用。

    2)RAID 1:RAID 1又称Mirrored,通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据损损毁时,可直接从镜像拷贝中读取数据,因此RAID 1安全性高。但RAID 1是磁盘阵列中应用成本最高的。特点是当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

    3)RAID 5:RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低,而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶效验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶效验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。

  4、创建软RAID

    1)确认操作系统是否安装mdadm包

      

      对于没有安装的,自行安装mdadm包。

    2)对进行需要创建软件的硬盘进行分区并设置分区类型为RAID

      硬盘分区详见:https://www.cnblogs.com/qiuyu666/p/11843634.html

     

      

    fdisk 命令只适合小于2T的硬盘,如大于2T则需要使用parted。

    3)使用mdadm创建RAID

      命 令:mdadm 用于建设,管理和监控RAID阵列

      用 法:mdadm --create device options...   用未使用的设备,创建raid选项,

          mdadm --assemble device options...    合并先前创建的raid阵列。

          mdadm --build device options...    创建或合并没有元数据的一个raid。

          mdadm --manage device options...    对现有阵列进行更改

          mdadm --misc options... devices    报告或修改各种MD相关设备的。

          mdadm --grow options device    调整以激活的raid阵列

          mdadm --incremental device    从一个raid中,添加/删除设备

          mdadm --monitor options...    监视一个或多个raid阵列的变化

          mdadm device options...    --manage的简写

          mdadm   --create 主要参数

                  --auto=yes :决定建立后面接的软体磁盘阵列设备,亦即/ dev/md0的,/ dev/md1上...

                  --raid-devices=N :使用几个磁盘 (partition) 作为磁盘阵列的设备

                  --spare-devices=N :使用几个磁盘作用磁盘阵列的备用设备

                  --level=[015] :设置磁盘阵列的等级,常用0,1,5

          mdadm      --manage 主要参数

                  --add    :会将后面的设备加入到这个MD中!

                  --remove :会将后面的设备由这个MD中移除

                  --fail   :会将后面的设备设定成为出错的状态

    

    该命令中各参数说明:

      -C/--create:新建阵列

      -a/--auto:允许mdadm创建设备文件,一般常用参数-a yes一次性创建

      -l/--levle:RAID模式,支持RAID0/1/4/5/6/10等

      -n/--raid-devices=:创建阵列中活动磁盘的数量

      /dev/md0:阵列的设备名称

      /dev/sd{b,c,d}1:创建阵列中的物理磁盘分区信息

    创建完后,查看阵列状态:
         
       

    4)创建md0配置文件

      

    5)格式化RAID分区

      

    6)添加开机自动挂载

      

  5、删除软RAID

    1)卸载挂载点

      

    2)停止软件RAID设备

      

    3)删除RAID中的磁盘

      

    4)删除mdadm配置文件

      

    5) 删除/etc/fstab中的挂载信息

      

  注:如果取消挂载设备的时候,显示设备正忙,可以使用 fuser  -mv  /mnt/xxx   看看是哪个进程在使用这个挂载点,然后杀死这个进程即可。

      

       

   以上即是在Linux中常见的两种将多个磁盘合并容量的方法,仅供为参考。在显示环境还是推荐使用硬件RAID,数据无价。 

posted @ 2019-11-25 16:50  秋语  阅读(4199)  评论(0编辑  收藏  举报