我在公司的网络上运行了几台Xen服务器。最近,在其中一台机器上,我一直在尝试(在Dom0控制台上)从另一台机器上同步一个大的服务器映像,但每次在30到100 GB之间的某个地方运行时都会遇到系统崩溃。syslog和内核日志显示了类似以下内容:
Sep 12 16:41:19 ampxen1 kernel: [ 1730.917516] attempt to access beyond end of device
Sep 12 16:41:19 ampxen1 kernel: [ 1730.917518] dm-1: rw=1, want=8878402463988083936, limit=3759505408
Sep 12 16:41:19 ampxen1 kernel: [ 1730.917520] EXT4-fs warning (device dm-1): ext4_end_bio:323: I/O error 10 writing to inode 33030164 (offset 47354740736 size 5881856 starting block 1109800307998510491)
...continuing每秒有几十万条类似的线路,最终使机器无法到达。EXT4-write操作的非常高的起始块数量(即10^18或be范围)显然是值得关注的,但我找不到任何可能的原因。
该服务器基于ubuntu-18.04.03,从存储库安装的标准xen。存储是RAID1中的两个2TB磁盘,配置如下,位于用于我们的服务器映像的大分区上的EXT4文件系统。我已经用smartctl检查了磁盘,用e2fsck检查了文件系统,看它是否有价值。这似乎是一个文件系统问题,但我想知道是否可能涉及到xen内核。任何关于寻找什么的想法都将不胜感激!
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 500G 0 loop
sda 8:0 0 1,8T 0 disk
├─sda1 8:1 0 476M 0 part /boot/efi
├─sda2 8:2 0 1,8T 0 part
│ └─md0 9:0 0 1,8T 0 raid1
│ ├─ampxen1.0-ampxen1.dom0 253:0 0 23,3G 0 lvm /
│ └─ampxen1.0-ampxen1.vms0 253:1 0 1,8T 0 lvm /srv/vms0
└─sda3 8:3 0 46,5G 0 part [SWAP]
sdb 8:16 0 1,8T 0 disk
├─sdb1 8:17 0 476M 0 part
├─sdb2 8:18 0 1,8T 0 part
│ └─md0 9:0 0 1,8T 0 raid1
│ ├─ampxen1.0-ampxen1.dom0 253:0 0 23,3G 0 lvm /
│ └─ampxen1.0-ampxen1.vms0 253:1 0 1,8T 0 lvm /srv/vms0
└─sdb3 8:19 0 46,5G 0 part [SWAP]
发布于 2020-06-12 11:46:10
我最终意识到这个问题就像一个有问题的RAM块一样微不足道--运行memtest会显示四个16 of的块中的一个有很多错误。似乎只有在复制大文件时内存才会用完,而我在机器上现有的虚拟服务器在所有其他时间都运行得很好。
https://stackoverflow.com/questions/57958945
复制