银河麒麟系统安装设备类型选择lvm简单模式之后,数据写入导致失败导致系统重启无法正常加载
- 一 系统环境
- 1.1 系统版本信息
- 1.2 通过镜像安装的过程中选择设备类型选择的是lvm简单模式
 
 
- 二 问题描述
- 三 问题修复过程
- 3.1 挂载ISO镜像,引导到字符终端界面
- 3.2 修复逻辑卷并挂载测试
- (1)激活系统盘中的逻辑卷
- (2)查看激活的逻辑卷
- (3)修复root逻辑卷
- (4)创建临时挂载点
- (5)挂载测试
- (6)查看挂载情况
- (7)修改硬盘为第一引导项,重启正常进入系统
 
 
 
- 四 问题排查
- 4.1 使用vgs lvs查看逻辑卷状态
- 4.2 使用df查看分区使用
- 4.3 使用lsblk查看分区情况
- 4.4 根据查询情况总结
 
 
- 五 具体结论
- 六 LVM精简池和精简卷的概念
- 6.1 LVM精简配置介绍
- 6.2 精简池概念
- 6.3 精简池作用
- 6.4 精简卷概念
 
 
- 七 后续建议
 
 
一 系统环境
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)。



















