linux – 如何获得mdadm RAID问题的通知?

我正在运行Ubuntu 12.04 LTS.昨天我在邮箱中发现一条消息说我的服务器已关闭.我继续重新启动系统,但几分钟后它没有出现,我没有硬件KVM系统来查看内核打印到终端的内容.所以我重新启动系统到 Linux救援映像,我看到软件RAID 1阵列不同步.救援系统也开始重建RAID阵列.

到目前为止,没有证据表明任何磁盘存在硬件错误.到目前为止,SMART状态看起来很好.

即使在/etc/mdadm/mdadm.conf中打开了电子邮件通知,我也从未收到过mdadm的电子邮件通知.

此服务器还配置为将所有系统日志消息转发到日志主机,因此我检查了我的日志主机.相关部分是:

May 20 15:38:40 kernel: [    1.869825] md0: detected capacity change from 0 to 536858624
May 20 15:38:40 kernel: [    1.870687]  md0: unknown partition table
May 20 15:38:40 kernel: [    1.877412] md: bind
May 20 15:38:40 kernel: [    1.878337] md/raid1:md1: not clean -- starting background reconstruction
May 20 15:38:40 kernel: [    1.878376] md/raid1:md1: active with 2 out of 2 mirrors
May 20 15:38:40 kernel: [    1.878418] md1: detected capacity change from 0 to 3000052808704
May 20 15:38:40 kernel: [    1.878575] md: resync of RAID array md1
[snip]
May 20 15:52:33 kernel: Kernel logging (proc) stopped.
May 20 15:52:33 rsyslogd: [origin software="rsyslogd" swVersion="5.8.6" x-pid="845" x-info="http://www.rsyslog.com"] exiting on signal 15.

如您所见,系统(正常的系统,而不是救援系统)已经在系统启动期间检测到RAID阵列出现问题.然后,不久之后,某些东西(不是我)停止了系统.

所以我的问题是:

>什么可能导致磁盘突然变得不同步?
>为什么我没有收到电子邮件通知?
>为什么在暂停系统之前错误未正确记录到syslog中?可能是系统尝试登录到syslog,但是在停止syslog守护进程后这样做了吗?如果是这样我该怎么做才能防止这种情况?
>我能做些什么来了解发生了什么?或者,如果我现在无法找到发生的事情,我怎样才能改进日志记录和通知,以便下次我可以做更好的验尸?

我的问题不是适当的备份实践.我已经知道RAID不是备份等.我的问题仅仅是通知和诊断.

解决方法

What could cause the disks to suddenly become out of sync?

它可能是驱动器盘片与内存中数据之间路径中的任何硬件或软件故障.这可能意味着,但不限于:驱动器头,驱动器控制器,电缆上的连接头,电缆本身(内部断线),电缆插入驱动器的端口,主板上的端口或子卡,主板或子卡上的控制器芯片,甚至是软件故障(某处).

真实的故事:我曾经有一个片状的RAID镜像,无缘无故地放下了一个驱动器.驱动器检查完好,盘片很干净(重复SMART传递没有任何结果),一切都运行良好 – 直到它再次剥落.我更换了3美元的SATA线缆,问题立即消失了.故事的道德:如果不检查数据路径中的每个组件,就会出现很多可能出错的情况,并且你不能总是认为“一切都很好”.

Why was I not notified by email?

电子邮件通知仅在以下情况下发生:(a)主动监视阵列,或(b)询问阵列时.

我的建议是:你需要让mdadm主动监视驱动器阵列作为一个过程.这可以用类似于(但不完全像)的东西来完成:

mdadm --monitor --scan --syslog

您需要将上述行调整为特定安装.

Why was the error not properly logged to syslog before halting the system? Could it be that the system tried to log to syslog,but did so after stopping the syslog daemon? If so what can I do to prevent that?

可能存在导致日志记录被丢弃的各种问题.

首先,整个syslog如何工作的问题;虽然多年来已经使其变得强大和可靠,但是在某些边缘情况下数据可能无法进入磁盘.这是一个众所周知的设计问题,并且通过监督式服务管理(又名daemontools及其同类)积极解决.解决方案是完全绕过syslog并将输出写入始终具有打开文件描述符的记录器,因此不会丢弃任何内容,并且记录器会尽快将输出转储到磁盘;虽然它不是100%有效的解决方案,但它确实显着提高了在内核发生混乱或关闭之前将事件写入驱动器的几率.

其次,内核可能会出现彻底的恐慌,或者发生一些会导致机器进入角落的其他事件.即使是有故障的硬件也可能导致问题 – 我见过机器动力学不足的机器会导致Windows 8自发停机.更换PSU会永久性地解决停机问题.显然,内核无法做到的任何事情都可以防范刚刚决定“我已经受够了”的机器并且蹒跚着重新启动了陆地.

What can I do to find out what happened? Or,if there’s no way for me now to find out what happened,how can I improve logging and notifications so that next time I can do a better post-mortem?

有几种方法:

>将日志记录放在单独的分区上.虽然这不能保证您将获得完整的日志,但它确实有助于隔离文件系统问题,例如磁盘完全无法写入,导致重新装入只读的损坏等.它肯定有助于那些具体案例.>查看远程日志记录重要系统信息.同样,这不是一个保证,但如果最后一个数据包可以在重启之前“突破门”,这将有所帮助,并且该数据包具有重新启动发生原因的关键线索.>对于特定的关键服务,请查看使用其他内容替换输出到syslog,例如监督样式的日志记录,其中专用记录器拦截输出并尽快将其写入磁盘.这增加了输出的可靠性,使其成为存储.只需一点点工作,就可以与其他服务管理安排并存.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限!!!粘滞位!!!超详解!!!
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Windows、Linux、MacBook_mack book 安装qt
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Linux——了解操作系统的发展历史以及初次体验Linux编程环境
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,个人学习时很认真的记录的,觉得好的麻烦点个赞。
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)_openssh_9.5p1
文章浏览阅读3.5k次,点赞93次,收藏78次。初识Linux中的线程,理解线程的各种概念,理解进程地址空间中的页表转换,介绍pthread线程库并理解线程库!
文章浏览阅读863次。出现此问题为Linux文件权限问题,解决方案为回到引擎目录执行命令。输入用户密码后运行./UnrealEditor。_increasing per-process limit of core file size to infinity.
文章浏览阅读2.9k次。使用文本编辑器:打开CSV文件,并使用文本编辑器(如Notepad++、Sublime Text、Visual Studio Code等)来查看文件的字符编码格式。通常在编辑器的底部状态栏或设置中可以找到当前编码的显示。请注意,上述方法并非绝对准确,特别是当文件没有明确的编码标识时。因此,如果你发现CSV文件在不同的工具或方法中显示不同的编码格式,可能需要进行进一步的分析和判断,或者尝试使用不同的编码转换方法。该命令将输出文件的MIME类型和编码信息。使用命令行工具:在命令行中,你可以使用。_shell读取csv文件逐行处理
本文介绍了如何在Linux系统中升级gcc版本,以便更好地支持C++11及以上版本的新特性。通过升级gcc,可以提升编译器的功能和性能,获得更好的开发体验。详细的步骤和方法请参考原文链接。
文章浏览阅读4.4k次,点赞6次,收藏19次。Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。_linux mosquitto
文章浏览阅读7.2k次,点赞2次,收藏12次。Linux中,用于根目录下有一个.ssh目录,保存了ssh相关的key和一些记录文件。_~/.ssh/
文章浏览阅读4.5k次,点赞5次,收藏18次。首先需要安装 snmp ,使用下面的命令进行安装安装完毕之后,使用下面的命令查看是否安装成功当命令行显示如图即为安装成功。_snmp工具
文章浏览阅读3.5k次,点赞7次,收藏24次。本地部署和使用llama.cpp进行量化Llama2,linux和Windows平台方案,支持CPU和GPU多版本。_llama cpp gpu
文章浏览阅读1.4k次,点赞46次,收藏44次。在vim中,最为常见的有三种模式,分别是:命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+: 即可进入该模 式。在进入vim后,使用 i 进入插入模式,插入模式就是vim的编辑模式,可以在vim中进行内容的编辑和修改。vim的核心模式,使用vim进入文件编辑时的最初模式,在该模式中只能移动光标和使用命令对文件内容进行编辑。
Linux常用命令大全,包括目录操作命令和文件操作命令,以及查看登录用户命令和文件内容查看命令等。
文章浏览阅读1.7k次,点赞57次,收藏50次。Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用.本地部署,注重隐私,简单高效的MYSQL审计平台。下面介绍Linux 简单部署Yearning 并结合cpolar 内网穿透工具实现远程访问,破除访问限制,提高工作效率!!
文章浏览阅读1.9w次,点赞7次,收藏18次。Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能,为用户带来更加流畅的浏览体验。Edge最近推出了分屏功能,支持一个窗口同时显示两个选项卡,这可以大大提高生产力和多任务处理能力。欢迎大家使用分屏及其他新功能后分享自己的使用心得与建议。首先,使用Microsoft Edge的分屏功能确实能够提高生产力,尤其是在需要同时浏览两个不同网页的情况下。分屏功能使得在一个窗口中同时显示两个选项卡,用户可以在两个网页之间快速切换,而无需打开新的窗口或使用多个浏览器窗口。_edge linux
文章浏览阅读1.8k次,点赞83次,收藏71次。C语言实现倒计时和进度条并进行演示。_linux不换行输出倒计时
文章浏览阅读1.5k次,点赞28次,收藏25次。基于嘉立创泰山派开发板,本机使用VMware+Unbuntu,编译泰山派的Linux SDK。详细教程,0基础小白可操作!内涵大量基础操作和linux基本知识。_立创泰山派sdk编译