《Linux就该这么学》培训笔记_ch07_RAID和LVM

 

《Linux就该这么学》培训笔记_ch07_RAID和LVMlinux

文章最后会post上书本的笔记照片。vim

文章主要内容安全

RAID(独立冗余磁盘阵列)

RAID技术经过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不一样的物理硬盘设备上,而后利用分散读写技术来提高磁盘阵列总体的性能,同时把多个重要数据的副本同步到不一样的物理硬盘设备上,从而起到了很是好的数据冗余备份效果。架构

冗余备份意味着成本增多,但数据安全提升,相对于数据自己的价值,这点成本值得投入。布局

最多见的RAID磁盘阵列方案:post

RAID 0(可以有效地提高硬盘数据的吞吐速度,可是不具有数据备份和错误修复能力:把多块物理硬盘设备(至少两块)经过硬件或软件的方式串联在一块儿,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。数据被分别写入到不一样的硬盘设备中,即disk1和disk2硬盘设备会分别保存数据资料,实现提高读取、写入速度的效果。若任意一块硬盘发生故障将致使整个系统的数据都受到破坏性能

RAID 1(没有提升读写速度,硬盘空间真实可用率减半,数据安全性提升:把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(能够将其视为数据的镜像或备份,增大系统负载)。当其中某一块硬盘发生故障后,通常会当即自动以热交换的方式来恢复数据的正常使用ui

RAID 5(“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题:把硬盘设备的数据奇偶校验信息保存到其余硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并非单独保存到某一块硬盘设备中,而是存储到除自身之外的其余每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;parity部分存放的就是数据的奇偶校验信息,RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后经过奇偶校验信息来尝试重建损坏的数据spa

 

RAID 10(RAID 1+RAID 0技术的“组合体”须要至少4块硬盘来组建,其中先分别两两制做成RAID 1磁盘阵列,以保证数据的安全性;而后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提升硬盘设备的读写速度。只要坏的不是同一组中的全部硬盘,那么最多能够损坏50%的硬盘设备而不丢失数据。因为RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性,在不考虑成本的状况下RAID 10的性能都超过了RAID 5,所以当前成为普遍使用的一种存储技术。code

 

 

部署磁盘阵列

mdadm命令:用于管理Linux系统中的软件RAID硬盘阵列。格式:mdadm [模式] <RAID设备名称> [选项] [成员设备名称]。

mdadm命令的经常使用参数和做用:

参数 做用
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 建立
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 中止RAID磁盘阵列

实例:添加4块硬盘(每块硬盘大小10G),建立RAID 10磁盘阵列。

1 mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-e] #建立RAID 10,命名为/dev/md0,由4个盘(/dev/sd[b-e])组成显示建立过程自动建立设备文件 2 mkfs.ext4 /dev/md0 #把RAID 10磁盘阵列格式化为ext4格式 3 mkdir /RAID #建立挂载点 4 mount /dev/md0 /RAID #把RAID 10磁盘阵列挂载到/RAID目录 5 df -h #查看挂载状态和硬盘使用量信息,能够看到,4个10G的硬盘,组成RAID 10后,可用空间为20G 6 mdadm -D /dev/md0 #查看/dev/md0磁盘阵列的详细信息 7 echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab    #往/etc/fstab文件中追加挂载信息,实现永久挂载

 

损坏磁盘阵列及修复

实例:承接上面实例,移除阵列中一块硬盘来模拟一块硬盘损坏。

1 mdadm /dev/md0 -f /dev/sdb #把/dev/sdb从磁盘阵列/dev/md0中移除 2 mdadm -D /dev/md0 #查看磁盘这列/dev/md0详细信息,发现/dev/sdb状态从active变为faulty 3 umount /RAID #先重启系统,卸载/RAID目录 4 mdadm /dev/md0 -a /dev/sdb #把新硬盘添加到RAID磁盘阵列中 5 mdadm -D /dev/md0             #查看磁盘阵列/dev/md0详细信息,/dev/sdb正在 spare rebuilding,而后变回active
6 mount -a                      #从新挂载

 

磁盘阵列+备份盘

部署RAID 5 磁盘阵列时,至少须要用3块硬盘,还须要再加一块备份硬盘。

实例:还原虚拟机,部署RAID 5 + 1备份盘 。

1 mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e] #用3块硬盘建立RAID 5磁盘阵列,再用1块做为备份盘 2 mdadm -D /dev/md0 #查看磁盘阵列详细信息,显示3个盘为actvie,1个盘为spare,RAID类型为RAID 5 3 mkfs.ext4 /dev/md0 4 echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab #往/etc/fstab文件追加挂载信息,以实现永久挂载 5 mkdir /RAID 6 mount -a 7 mdadm /dev/md0 -f /dev/sdb #故意移除RAID 5阵列中的其中一个盘(active的盘) 8 mdadm -D /dev/md0                                        #再查看磁盘阵列/dev/md0详细信息,显示备份盘自动定提上去并开始数据同步(spare rebuilding)。

 

LVM(逻辑卷管理器)

RAID硬盘设备管理技术虽然可以有效地提升硬盘设备的读写速度以及数据的安全性,可是在硬盘分好区或者部署为RAID磁盘阵列以后,再想修改硬盘分区大小就不容易了

当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制。

LVM(逻辑卷管理器)能够容许用户对硬盘资源进行动态调整。(让用户灵活的变动分区的大小)

逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其建立初衷是为了解决硬盘设备在建立分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来说是可行的,可是却可能形成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,能够把多块硬盘进行卷组合并。这样一来,用户没必要关心物理硬盘设备的底层架构和布局,就能够实现对硬盘分区的动态调整。

第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。

LVM核心概念:

  • 物理卷处于LVM中的最底层,能够将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列;
  • 卷组创建在物理卷之上,一个卷组能够包含多个物理卷,并且在卷组建立以后也能够继续向其中添加新的物理卷;
  • 逻辑卷是用卷组中空闲的资源创建的,而且逻辑卷在创建后能够动态地扩展或缩小空间;

LVM的原理(我的理解):由几个物理卷(即几块硬盘)组成一个卷组,再从这个卷组中按本身的须要切割出必定大小的空间做为逻辑卷。建立好的逻辑卷还能扩容缩容。

老刘的比喻简直一流,LVM就比如作馒头,由于不知道要作多少,因此先把若干包面粉(硬盘,即pv)揉成大面团(gv),再分割成一个个不大不小的馒头(lv),家里有大人小孩,大人的馒头要大点,多加点面团(lv扩容),小孩馒头吃得小,少点面团(lv缩容)

 

部署逻辑卷

经常使用的LVM部署命令

功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
创建 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展   vgextend lvextend
缩小   vgreduce lvreduce

部署逻辑卷步骤:(PV -> VG -> LV)

  1. 让硬盘设备支持LVM技术(pvcreate)。
  2. 把硬盘设备加入到卷组(vgcreate)。
  3. 从卷组中切割必定空间做为逻辑卷(lvcreate)。
  4. 把生成好的逻辑卷进行格式化,而后挂载使用(mkfs,mount,/etc/fstab)。
 1 pvcreate /dev/sdb /dev/sdc #建立物理卷,让硬盘设备支持LVM  2 vgcreate storage /dev/sdb /dev/sdc #把建立好的物理卷组成卷组,命名为storge  3 vgdisplay #查看卷组状态  4 lvcreate -n vo -l 40 storage #从卷组storge切割出40个基本单元(默认大小4M)建立一个160M的逻辑卷,命名为vo。-l 40效果等同于-L 160M  5 lvdisplay #查看逻辑卷状态  6 mkfs.ext4 /dev/storage/vo  #格式化逻辑卷vo  7 echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab #往/etc/fatab文件追加挂载信息,实现永久挂载  8 mkdir /linuxprobe #建立挂载点  9 mount -a #挂载 10 df -h                                                                 #查看挂载状态

 

扩容逻辑卷

扩容前,先卸载设备和挂载点的关联

  1. 扩容逻辑卷(lvextend);
  2. 检查硬盘完整性(e2fsck),并重置硬盘容量(resize2fs);
  3. 从新挂载硬盘设备并查看挂载状态。

实例:承接上面实例,把逻辑卷vo扩容至400M。

1 umount /linuxprobe #卸载设备和挂载点关联 2 lvextend -L 400M /dev/storage/vo #扩容逻辑卷vo至400M 3 e2fsck -f /dev/storage/vo #检查硬盘完整性 4 resize2fs /dev/storage/vo #重置硬盘容量若是明明执行了屡次e2fsck命令仍是提示“运行e2fsck命令”,重启系统再试5 mount -a #从新挂载 6 df -h                               #查看挂载状态

 

缩小逻辑卷

缩容前,先卸载设备和挂载点的关联

  1. 检查硬盘完整性(e2fsck);
  2. 先向系统报备一下即将要执行逻辑卷缩容的操做(resize2fs),再缩容逻辑卷(lvreduce);
  3. 从新挂载硬盘设备并查看挂载状态。

实例:承接上面实例,把逻辑卷vo缩容至120M。

1 umount /linuxprobe #卸载 2 e2fsck -f /dev/storage/vo #检查文件系统完整性 3 resize2fs /dev/storage/vo 120M #先通知系统,即将要执行对逻辑卷vo缩容到120M的操做,看有没有问题 4 lvreduce -L 120M /dev/storage/vo #把逻辑卷vo缩容至120M 5 mount -a #从新挂载 6 df -h                               #查看挂载状态

 

逻辑卷快照

LVM快照:相似于虚拟机软件的还原时间点功能。

能够对某一个逻辑卷设备作一次快照,若是往后发现数据被改错了,就能够利用以前作好的快照卷进行覆盖还原。

LVM的快照卷功能有两个特色:

  • 快照卷的容量必须等同于逻辑卷的容量;
  • 快照卷仅一次有效,一旦执行还原操做后则会被当即自动删除。不过一个逻辑卷能够作多个快照卷。

实例:承接上面例子,往逻辑卷设备新建一个文件。而后为逻辑卷建立快照卷。再在逻辑卷目录生成一个垃圾文件。后先卸载逻辑卷与挂载点关联,再尝试快照还原操做(lvconvert --merge),再从新挂载,查看逻辑卷目录是否回到建立快照前的状态。

1 echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt #往逻辑卷设备写入一个文件 2 ls -l /linuxprobe #查看逻辑卷目录的内容 3 lvcreate -L 120M -s -n SSS /dev/storage/vo #为逻辑卷vo生成一个快照卷,命名为SSS,指定切割大小为120M, 4 lvdisplay #查看逻辑卷详细信息,能够看到SSS是vo的快照卷(snapshot) 5 dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M #在逻辑卷vo的目录下建立一个100M的文件
6 lvdisplay                                                    #查看逻辑卷详细信息,能够发现vo的空间占用量上升
7 umount /linuxprobe #卸载逻辑卷与挂载点关联 8 lvconvert --merge /dev/storage/SSS                           #对逻辑卷vo进行快照还原操做9 mount -a #从新挂载 10 ls /linuxprobe/                                             #查看逻辑卷目录,能够发现建立快照后再建立的100M文件不见了,逻辑卷恢复成设置快照前的状态

 

删除逻辑卷

删除LVM前记得提早备份。

删除逻辑卷,要依次删除逻辑卷(lvremove )、卷组(vgremove )、物理卷设备(pvremove ),顺序不可颠倒。

实例:承接上面例子,删除逻辑卷。

1 umount /linuxprobe #卸载 2 vim /etc/fstab 3 /dev/storage/vo /linuxprobe ext4 defaults 0 0 #删除挂载信息
4 lvremove /dev/storage/vo #删除逻辑卷,要按y确认 5 vgremove storage #删除卷组 6 pvremove /dev/sdb /dev/sdc                       #删除物理卷

 

书本笔记

 

相关文章
相关标签/搜索