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 常用命令集

任务PVVGLV
创建pvcreatevgcreatelvcreate
删除pvremovevgremovelvremove
显示信息pvsvgslvs
扫描列表pvscanvgscanlvscan
显示属性pvdisplayvgdisplaylvdisplay
更改属性pvchangevgchangelvchange
扩展 vgextendlvextend / lvresize
缩减 vgreducelvreduce / 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,数据无价。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值