银河麒麟系统安装设备类型选择lvm简单模式之后,数据写入导致失败导致系统重启无法正常加载

一 系统环境

1.1 系统版本信息
[root@localhost ~]# nkvers 
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Lance)

Kernel:
4.19.90-52.22.v2207.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 (SP3) /(Lance)-x86_64-Build23/20230324
#################################################
1.2 通过镜像安装的过程中选择设备类型选择的是lvm简单模式

在这里插入图片描述

二 问题描述

(1)业务组在上传数据(18G)之后,进行系统重启,无法正常进入系统,系统的根分区开机无法自动挂载,到Control-D界面(由于是根分区挂载不上,所以在此界面输入root密码也无法正常验证)
(2)在修复完成之后,正常进入系统。业务组再次上传数据(18G)之后,重启系统发现又出现开始的问题。
#机器在之前做过/分区扩容的操作,使用lvextend扩容的klas-root这个卷,扩容了200G

在这里插入图片描述

三 问题修复过程

3.1 挂载ISO镜像,引导到字符终端界面

挂载系统的iso镜像文件,将虚拟机第一引导模式更改为cdrom,从光盘进行引导。引导,选择“Install Kylin Linux Advanced Server V10”(如下图1所示)。到语言选择界面(如下图2所示),按ctrl+alt+f2组合键到字符界面(如下图3所示)。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.2 修复逻辑卷并挂载测试
(1)激活系统盘中的逻辑卷
vgchange -ay
(2)查看激活的逻辑卷
lvs
(3)修复root逻辑卷
xfs_repair -L /dev/klas/root
(4)创建临时挂载点
mkdir a/
(5)挂载测试
mount /dev/klas/root a/
(6)查看挂载情况
df -h
(7)修改硬盘为第一引导项,重启正常进入系统

在这里插入图片描述
在这里插入图片描述

四 问题排查

在修复完成之后,进入系统。业务组再次上传数据(18G)之后,重启系统发现又出现开始的问题

4.1 使用vgs lvs查看逻辑卷状态
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree 
  klas   2   3   0 wz--n- 297.99g <219.60g
[root@localhost ~]# lvs
  LV     VG   Attr       LSize   Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert
  pool00 klas twi-aotz-- <62.32g               100.00 97.11                           
  root   klas Vwi-aotz-- 281.92g pool00        22.11                                  
  swap   klas -wi-ao----  16.00g                                  
4.2 使用df查看分区使用
[root@localhost log]# df -h
Filesystem              size Used Avail Use% Mounted on
devtmpfs                7.2G    0  7.2G   0% /dev
tmpfs                   7.3G  20K  7.3G   1% /dev/shm
tmpfs                   7.3G 9.3M  7.2G   1% /run
tmpfs                   7.3G    0  7.3G   0% /sys/fs/cgroup
/dev/mapper/klas-root   282G  64G  219G  23% /
tmpfs                   7.3G 340K  7.3G  18  /tmp
/dev/sda1               2.0G 187M  1.9G  10% /boot
tmpfs                   1.5G  52K  1.5G  18% /run/user/0 
/dev/sr0                4.1G 4.1G  0    100% /run/media/root/Kylin-Server-10
4.3 使用lsblk查看分区情况
[root@localhost ~]# lsblk
NAME                    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                       8:0    0   100G  0 disk 
├─sda1                    8:2    0     2G  0 part /boot
└─sda2                    8:3    0    98G  0 part 
  ├─klas-pool00_tmeta   253:0    0    36M  0 lvm  
  │ └─klas-pool00-tpool 253:2    0  62.3G  0 lvm  
  │   ├─klas-root       253:3    0 281.9G  0 lvm  /
  │   └─klas-pool00     253:5    0  62.3G  1 lvm  
  └─klas-pool00_tdata   253:1    0  62.3G  0 lvm  
  │ └─klas-pool00-tpool 253:2    0  62.3G  0 lvm  
  │   ├─klas-root       253:3    0 281.9G  0 lvm  /
  │   └─klas-pool00     253:5    0  62.3G  1 lvm  
  ├─klas-swap           253:4    0    16G  0 lvm  [SWAP]
sr0                      11:0    1   4.3G  0 rom  /run/media/root/Kylin-Server-10
4.4 根据查询情况总结

(1)vgs,lvs发现在vg卷组中创建了一个精简池,在精简池中创建了一个精简卷。并非采用在vg卷组中创建lv逻辑卷的方式去管理。
(2)lvs显示pool00这个精简池的Data%数值为100.00%,Meta%数值为97.11%
(2)df -h查看/分区实际200多GB,可用空间还有70%多。
(3)在排查过程中使用dmesg命令发现dm-3设备一直有磁盘I/O error相关的报错。

五 具体结论

1、系统在安装的时候,设备类型选择了lvm简单配置,导致系统在安装过程中创建了精简池和精简卷(实际使用者不知道创建了精简卷)。
2、按照传统的扩容方式去对跟分区进行扩容,也就是使用lvextend命令对klas-root这个精简卷去操作,df -h查看确实是扩容成功了。
3、导致出现的情况是:精简池的大小为 63GB左右,精简池下边精简卷(klas-root)的精简卷大小为 281GB。由于精简卷是由精简池管理,所以给klas-root卷扩容的200多GB空间虽然扩容成功了,但是无法使用。
4、系统跟分区63GB,已经使用了55GB,在传输18GB数据的过程中,把根分区写满了,导致根分区出现异常。重启无法过程中无法正常挂载。
5、正常来说的话应该是要扩容精简池(pool00),而不是卷(klas-root)。

六 LVM精简池和精简卷的概念

6.1 LVM精简配置介绍

精简配置(Thin Provisioning)指分配的资源量超过实际的物理资源量,类似于现实社会中的“超售”概念。

LVM的精简配置中有两个要素,分别是精简池和精简卷。

6.2 精简池概念

精简池是一个特殊的普通LV,在它建立时会立即从VG中分配空间,与正常的LV没有什么不同;但是这个LV不能被创建文件系统直接使用,而是处于一种特殊的格式,包含数据和元数据两个部分。

6.3 精简池作用

是为精简卷提供空间,而精简卷本身不能从VG中直接获取空间

6.4 精简卷概念

精简卷和普通卷的根本差异,在于其创建时,并不从VG中真的分配空间,而是虚拟的分配空间,当进行写入时,则会写入到对应的精简池中。

需要注意的是,虽然精简池可以实现自动扩展,但是VG并不能自动扩展,因为PV提供的空间是有限的。在使用精简配置时,需要注意VG的剩余量,对于大型的生产环境,必须使用服务器监控工具进行监视,来避免资源耗尽无法写入的情况。

七 后续建议

(1)创建新的虚拟机模板,删除旧的。并且在安装的时候设备类型选择lvm模式而不是lvm简单模式。
(2)现有的虚拟机不要将扩容的200GB进行缩容,可能会出现未知问题导致根分区无法修复。
(3)如果现有机器还需要使用的话,添加磁盘,扩容精简池(pool00)的空间,而不是卷(klas-root)。

  • 15
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值