2019独角兽企业重金招聘Python工程师标准>>>
4.10/4.11/4.12 lvm讲解
4.13 磁盘故障小案例
一、lvm讲解
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
LVM工作原理:LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
- 进行实验:
fdisk /dev/sdc
(n)分成三个分区,每个分区1G
(t)把分区类型改为8e,8e类型表示就是lvm。只有这样才能做物理卷
重复创建3个分区,并修改类型为8e,创建完成后"w"保存退出
- 查看创建分区的文件
ls /dev/sdc1 /dev/sdc2/ /dev/sdc3
如果这些文件不存在,可以执行:partprobe 命令来进行生成
- 创建物理卷
命令:pvcreate
如果此命令无法使用,需要安装lvm:yum install -y lvm2
ps:如果yum安装的时候只知道命令不知道包名可以用:yum provides "/*/使用的命令" 来进行查找安装。
如:以上我们只知道pvcreate这个命令,但是不知道包名就可以 yum provides "/*/pvcreate" 这样来进行查找安装。
进行创建:
pvcreate /dev/sdc1
pvcreate /dev/sdc2
pvcreate /dev/sdc3
查看创建的物理卷:
命令: pvdisplay
或者使用pvs命令查看,这样更加直观:
- 创建物理卷卷组:
命令:vgcrate 卷组名 物理卷
使用两个物理卷创建一个卷组:
vgcreate vg1 /dev/sdb1 /dev/sdb2
创建完成后使用vgdisplay查看卷组信息:
或者使用vgs命令查看
- 创建逻辑卷
命令:lvcreate -L 大小M -n 逻辑卷名 物理卷卷组(表示从哪个卷组中划分)
lvcreate -L 100M -n lv1 vg1
- 格式化逻辑卷
命令:mkfs.ext4 /dev/卷组/逻辑卷
mkfs.ext4 /dev/vg1/lv1
- 挂载
命令:mount /dev/vg1/lv1 /mnt
- 扩容逻辑卷
命令:lvsize -L 大小 /dev/卷组/逻辑卷
lvresize -L 200M /dev/vg1/lv1
/dev/vg1/lv1已经挂载最好是先取消挂载,再进行扩容才符合规范
检查磁盘是否有错误:
e2fsck -f /dev/vg1/lv1
更新逻辑卷信息:
命令:resize2fs /dev/vg1/lv1
更新完后再查看大小发现已经变成190M了
- 缩减逻辑卷
先取消挂载,然后进行检测逻辑卷是否有错误
把逻辑卷大小改为100M,和之前扩容类似:
更新逻辑卷信息:resize2fs /dev/vg1/lv1 100M
指定缩减逻辑卷大小:lvresize -L 100M /dev/vg1/lv1
查看逻辑卷信息: lvdisplay
大小已经变为100m
再进行挂载:
挂载后查看大小已经变为了100M
扩容和缩减并不会导致目录文件损坏,除非是在缩减时目录文件大于缩减大小,如目录本身150M你把它缩减到100M肯定会出问题的。
以上操作的命令只针对ext4及以下文件系统。
- 扩容xfs类型文件系统
取消逻辑卷挂载目录:umount /mnt/
格式化逻辑卷为xfs:mkfs.xfs -f /dev/vg1/lv1 /mnt/
挂载逻辑卷: mount /dev/vg1/lv1 /mnt/
查看逻辑卷信息:lvs
指定逻辑卷大小:lvreszie -L 300M /dev/vg1/lv1
xfs_growfs同步:
xfs_growfs /dev/vg1/lv1
查看一下扩容情况:
- 扩展卷组:
把之前物理卷sdc3添加到卷组vg1里
命令:vgextend 卷组名 /dev/物理卷
vgextend vg1 /dev/sdc3
添加完后查看,已经增加到3g
二、磁盘故障小案例
如果出现以上或者类似的信息,往往是因为挂载点出现问题。
解决方法:
在光标处输入root密码,登录系统
编辑/etc/fstab配置文件
删除:/dev/sdb 这一行
重启:reboot 即可。