0

我目前正在 Hyper-V 环境中运行 Debian 8.6 的 VM 实例。VM 用于许多 cron 任务,这些任务将文件从一台已安装的机器复制到我们的 NAS,并在这些复制的文件上运行一些 md5 校验和。

我遇到的问题是,每隔几周,文件系统似乎就会损坏,因此我的 cronjobs 停止执行。如果我尝试通过 编辑 crontab crontab -e,我会收到以下错误:

/tmp/crontab.Vvp59T: Input/output error
Creation of temporary crontab file failed - aborting

我还注意到某些命令无法被识别:

root@srv-schl-008:/home/ilienert# dmesg | lpr
bash: lpr: command not found

然后我尝试运行文件系统检查,但没有任何效果。这是我所做的日志:

root@srv-schl-008:/home/ilienert# parted /dev/sda 'print'
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system     Name  Flags
 1      1049kB  538MB   537MB   fat32                 boot, esp
 2      538MB   51.5GB  51.0GB  ext4
 3      51.5GB  53.7GB  2145MB  linux-swap(v1)
root@srv-schl-008:/home/ilienert# fsck /dev/sda2
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/dev/sda2: recovering journal
fsck.ext4: Bad magic number in super-block while trying to re-open /dev/sda2
/dev/sda2: ********** WARNING: Filesystem still has errors **********
root@srv-schl-008:/home/ilienert# echo $? # status of last command
12

最后,当我们重新启动 VM 时,我们会看到这个 splash。而且,在这一点上,我们被迫从较早的状态恢复虚拟机,从那时起它又可以正常工作几周,然后再次失败。知道为什么会这样吗?

以下是我们环境的规格:

Debian 版本:8.6.0
Hyper-V 在两台具有 Windows Server 2016 数据中心的集群服务器上运行
硬件规格 Hyper-V 主机:2x E5-2650v2 8 核,256GB DDR3 RAM
备份解决方案:Veeam Backup & Replication 9.5
VM 规格:
集群:是
代:2
动态内存:16834MB
虚拟处理器数量:4
硬盘类型:VHDX

编辑:这是我之前挖出的截图,当时我能够dmesg在失败后立即执行:dmesg 输出

4

1 回答 1

0

仅从您发布的信息中很难说出了什么问题(随着时间的推移而破坏)。恐怕你将不得不做更多的调查。这里有两件事浮现在脑海:

1) 我们不能放弃托管虚拟机的物理硬盘开始出现故障的可能性。如果可能的话,我建议自己检查磁盘(而不是通过虚拟机)。

2) 在您恢复您的机器后,请每天关注主要系统日志,它们可能包含(错误)消息,可能有助于解释机器出了什么问题。我通常会运行一些 bash 命令来检查主日志并将结果附加到文件中,就像这样(你的机器上可能没有所有这些日志,有些可能需要安装你没有的包,随时适应您自己使用):

echo '---------Dmesg-----------' >> /var/log/mylog.txt
dmesg --level=emerg,alert,crit,err >> /var/log/mylog.txt 2>&1
echo '---------systemctl-----------' >> /var/log/mylog.txt
systemctl --state=failed --all -q >> /var/log/mylog.txt 2>&1
echo '---------grep Xorg.0.log-----------' >> /var/log/mylog.txt
grep -wi 'error\|fail\|fault\|corruption\|hung\|lockup\|unkown\|segmentation\|critical\|missing\|(EE)' /var/log/Xorg.0.log >> /var/log/mylog.txt 2>&1
echo '---------journalctl - the last report-----------' >> /var/log/mylog.txt
journalctl -q --boot -0 --priority=3 >> /var/log/mylog.txt 2>&1
echo '---------grep var/log/boot.log -----------------' >> /var/log/mylog.txt
grep -wi 'error\|fail\|fault\|corruption\|hung\|lockup\|unkown\|segmentation\|critical\|missing' /var/log/boot.log >> /var/log/mylog.txt 2>&1
echo '---------end of mylog reports-----------' >> /var/log/mylog.txt

我还建议每天重新启动机器,直到发现问题为止。

我希望这有帮助!

于 2017-05-02T18:42:20.923 回答