首页 > 其他分享 >重启机器导致lvm莫名丢失

重启机器导致lvm莫名丢失

时间:2024-09-09 09:21:43浏览次数:14  
标签:lvm2 -- 莫名 lvmetad 丢失 lvm disk 9.1

写在前面

喜欢ceph的话欢迎关注奋斗的cepher微信公众号阅读更多好文!

有段日志没更新了,最近又是扩容集群,又是上线新池,事情较多,尤其是其中一个比较大的项目,总计上线超过100PB,今天更新的诡异现象,就是在这个百PB项目中发现的。

发现问题

按部就班自动化部署、自动化配置、自动化测试,都进行得挺顺利的,测试结果一看,有一个集群cosbench性能明显比其他集群低,大概低了30%,其他集群的16K并发测试,基本都能跑到5w-6w之间,而这个集群却只有4w左右,性能低这么多肯定是有啥不可告人的隐患

检查了一遍,配置没啥问题,数据流入也挺平均,应该不是某些osd拖累的,嗯~~重启一下集群的所有集群?

说干就干,测试集群问题不大,马上来个ansible all -i hosts -m shell -a '/usr/sbin/reboot' -become

等了10分钟,一看集群,傻眼了,居然有900多个osd没起来!随机挑了一台进去看

[root@osd72 log]# lsblk
NAME                                                                                                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                                                                                                     8:0    0   1.1T  0 disk
├─sda1                                                                                                  8:1    0   300M  0 part /boot/efi
├─sda2                                                                                                  8:2    0     2G  0 part /boot
├─sda3                                                                                                  8:3    0    10G  0 part /
├─sda4                                                                                                  8:4    0   100G  0 part /home
├─sda5                                                                                                  8:5    0    16G  0 part [SWAP]
├─sda6                                                                                                  8:6    0    14G  0 part /tmp
├─sda7                                                                                                  8:7    0    10G  0 part /usr
└─sda8                                                                                                  8:8    0 964.4G  0 part /var
sdb                                                                                                     8:16   0   9.1T  0 disk
sdc                                                                                                     8:32   0   9.1T  0 disk
└─ceph--27a4b227--1005--4e0f--a947--412897e8c8b2-osd--block--58e2bc2c--dc21--4983--b1f3--3f7050941cbb 253:12   0   9.1T  0 lvm
sdd                                                                                                     8:48   0   9.1T  0 disk
└─ceph--9a6412f2--48ff--4966--8138--3eda754c3b50-osd--block--9ca1e1a3--0639--4451--8dfe--6dd382660b75 253:7    0   9.1T  0 lvm
sde                                                                                                     8:64   0   9.1T  0 disk
sdf                                                                                                     8:80   0   9.1T  0 disk
sdg                                                                                                     8:96   0   9.1T  0 disk
sdh                                                                                                     8:112  0   9.1T  0 disk
sdi                                                                                                     8:128  0   9.1T  0 disk
sdj                                                                                                     8:144  0   9.1T  0 disk
...
sdw                                                                                                    65:96   0   9.1T  0 disk
sdx                                                                                                    65:112  0   9.1T  0 disk
sdy                                                                                                    65:128  0   9.1T  0 disk
└─ceph--dbb2bbaa--1a2c--4452--bf38--afb0e565a99c-osd--block--fac47bc4--8955--4674--8c28--28de836d2cc5 253:1    0   9.1T  0 lvm

错落无致地显示,有很多osd盘光秃秃的,没有lvm…,更惨的是,有接近30台机器的盘全部变成了初始状态,没有任何lvm信息,其他机器则像上述机器一样,有的盘有lvm有的盘没有

这太可怕了!!

调查

查了一圈,没有任何报错,dmesg没有,message也没有,osd日志也没有,这就尴尬了-.-

网上查了一圈,说要重新命令扫描一下,手工激活,可是不管运行什么pvscan、vgscan,抛出的都是一样的信息

WARNING: Failed to connect to lvmetad. Falling back to device scanning

看来可能是这个进程搞的鬼,这个进程是什么呢

lvmetad is a metadata caching daemon for LVM. The daemon receives notifications from udev rules (which must be installed for LVM to work correctly when lvmetad is in use). Through these notifications, lvmetad has an up-to-date and consistent image of the volume groups available in the system.

原来是lvm的元数据管理器,手工起起来再看看

systemctl start lvm2-lvmetad.service

进程起起来了,然而并没有啥用,啥事也没有发生,osd的lvm没有回来,完了完了。。。

观察到一个现象,所有lvm都丢失的机器,重启起来后,这个lvm2-lvmetad.service都是dead状态的,而丢一部分不丢一部分lvm的机器,这个服务是running的,那是不是这个进程要在系统启动的时候就要跑上,否则就会有问题呢?

尝试一下,enable然后重启机器

systemctl enable lvm2-lvmetad.service

然而还是没有效果,它还是dead的,是不是其他服务拉它的呢?

[store@osd72 ~]$ systemctl cat lvm2-lvmetad.service
# /usr/lib/systemd/system/lvm2-lvmetad.service
[Unit]
Description=LVM2 metadata daemon
Documentation=man:lvmetad(8)
Requires=lvm2-lvmetad.socket
After=lvm2-lvmetad.socket
DefaultDependencies=no
Conflicts=shutdown.target

[Service]
Type=simple
NonBlocking=true
ExecStart=/usr/sbin/lvmetad -f
Environment=SD_ACTIVATION=1
Restart=on-abort
PIDFile=/run/lvmetad.pid

应该就是lvm2-lvmetad.socket了,看了一眼,它自己也没有起来,也没有enable,于是再systemctl enable lvm2-lvmetad.socket,重启机器,嗯!好了!lvm2-lvmetad.socketlvm2-lvmetad.service都起来了,只是lvm仍然没有回来

猜想

会不会是当初建osd的时候,这个lvm2-lvmetad.service没有正常运行,建立lvm的时候,操作实际上没有落盘(这有点不科学,不过也只能这么猜测了),导致重启后丢失了这些内容?它管理的是元数据,如果元数据出问题了,很有可能就会导致这个现象

查了一下建osd时候的日志,果然,如果lvm2-lvmetad.service没有正常运行,就会一直报上面那个WARNING

实践

在enable了lvm2-lvmetad并正常运行的情况下,重新对整个集群的osd做了重建,并且做了性能测试,然后进行重启验证。多次重启后,lvm信息均没有丢失,集群正常,认为问题解决

总结

第一次遇到这种重启导致lvm信息丢失的问题,后来经过排查,是集群在建设过程中的某个步骤,将默认的所有服务都disable了,然后对只必须的服务做重新的enable,但是这个集群不知道怎么回事(因为其他集群也是这样操作,没有重新enable lvm2-lvmetad服务,但一直未有问题),lvm2-lvmetad不在运行时建立osd就会导致lvm丢失,真是个有价值的坑!这要上了线才发现,这锅得多大!!所以,在测试阶段,一定要进行多次重启测试

喜欢ceph的话欢迎关注奋斗的cepher微信公众号阅读更多好文!

标签:lvm2,--,莫名,lvmetad,丢失,lvm,disk,9.1
From: https://blog.csdn.net/strugglesquirrel/article/details/142046782

相关文章

  • GraalVM的资料
    官网AnadvancedJDKwithahead-of-timeNativeImagecompilation.代码社区下载主页文档主页GraalVMcompilesyourJavaapplicationsaheadoftimeintostandalonebinaries.Thesebinariesaresmaller,startupto100xfaster,providepeakperforman......
  • 天翼云存储SpinTires问题解析:d3dx9_43.dll文件丢失应对指南
    在使用天翼云存储或运行SpinTires等游戏时,有时会遇到系统提示“d3dx9_43.dll文件丢失”的错误。这个问题通常是由于DirectX组件中的d3dx9_43.dll文件未正确安装、损坏或丢失所导致的。以下是一些应对指南,帮助您解决这一问题:一、了解d3dx9_43.dll文件的重要性d3dx9_43.dll是D......
  • 【紧急修复】二之国2:亡魂之国 UnityPlayer.dll 丢失?《二之国2:亡魂之国》UnityPlayer.d
    在使用《二之国2:亡魂之国》这款基于Unity引擎开发的游戏时,如果遇到“UnityPlayer.dll丢失”的错误提示,这通常意味着游戏无法正确加载Unity引擎的核心组件,导致游戏无法正常启动。以下是对该问题的深度剖析及修复方法:问题剖析依赖项缺失:UnityPlayer.dll可能依赖于其他DLL文件,......
  • 《魔兽世界》divxdecoder.dll丢失怎么办?轻松解决指南
    在深入艾泽拉斯大陆的冒险旅途中,每一位玩家都希望拥有流畅且无碍的游戏体验。然而,技术问题偶尔会像突如其来的部落突袭一样打断我们的探索。其中,“divxdecoder.dll丢失”错误便是不少玩家可能遇到的一个小障碍。别担心,本文将为您提供一套简单易行的解决方案。divxdecoder.dll......
  • libcef.dll是什么意思?libcef.dll丢失重新安装的方法
    今天,我们将深入探讨一个对于某些应用程序至关重要,却常被普通用户忽视的组件——libcef.dll。本文旨在解析libcef.dll的含义、它在软件运行中的作用、丢失这一文件可能导致的问题,以及遇到此类问题时的有效修复策略。Libcef.dll的含义libcef.dll,全称为ChromiumEmbeddedFrame......
  • Long类型精度丢失
    当实体类中的字段为Long类型,且值超过前端js显示的长度范围时会导致前端回显错误。方法1使用@JsonSerialize注解的时候把Long自动转为String@JsonSerialize(using=ToStringSerializer.class)privateLongid;方法2使用@JsonFormat注解的时候把Long自动转为String@J......
  • fhuxpresentation.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个fhuxpresentation.dll文件(挑选合适的版本文......
  • Windows11系统fhuxcommon.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个fhuxcommon.dll文件(挑选合适的版本文件)把......
  • CentOS 7环境下启动clvmd服务
    案例说明:在CentOS7环境部署gfs2共享存储应用,启动clvmd服务。系统环境:[root@node201~]#cat/etc/centos-releaseCentOSLinuxrelease7.9.2009(Core)系统架构:[root@node203~]#cat/etc/hosts192.168.1.201node201192.168.1.202node202192.168.1.203node203is......
  • 达梦建包含匿名块的匿名代码块时莫名的报错
    有时候,我们只需要建执行执行一次的存储过程。那建匿名代码块是比较好的实现方式。但是在达梦在建包含匿名块的匿名代码块时会有莫名的报错。例如,以下匿名代码块,执行就会报错,但是在oracle执行是可以的。beginforfin(selecttable_namefromuser_tables)loopbegindbms_ou......