Debian VM定期崩溃

时间:2017-05-02 17:39:01

标签: debian hyper-v hypervisor debian-jessie

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

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

/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时,我们会看到this splash。而且,此时我们被迫从较早的状态恢复VM,从那时起它可以再工作几周,然后再次失败。知道为什么会这样吗?

以下是我们环境的规格:

  

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

编辑:以下是我在失败后立即执行dmesg之前挖掘的屏幕截图:dmesg output

1 个答案:

答案 0 :(得分: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

我还建议每天重启机器,直到找到问题为止。

我希望这有帮助!