标签: corruption

诊断 Linux 上孤立 inode 的原因,繁忙的 MySQL?

我们的一台服务器最近遇到了一些文件系统损坏,我们的根文件系统自动重新挂载为只读。我采取的恢复步骤是:

  1. 尝试remount > mount -n -o remount /失败
  2. 重新启动了服务器
  3. 提示执行手动操作fsck,有 5 个孤立的 inode 需要修复。

执行这些步骤后,我能够获得访问权限并且文件系统再次可写。不幸的是,我没有任何内容丰富的日志,因为没有写过,否则我会包含这些日志。

建议的一个原因是我们的数据库太忙而无法将数据正确写入磁盘,这导致了问题,高级别缓存内存表明可能是这种情况。但是我不确定这一点,因为虽然缓存很高,但我们根本没有使用交换(free下面的输出)。

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2041       1879        162          0         62       1599
-/+ buffers/cache:        216       1825
Swap:          471          0        471
Run Code Online (Sandbox Code Playgroud)

故障发生后有什么方法可以诊断故障吗?MySQL 看起来像一个可能的候选者吗?

如果没有,如果再次发生这种情况,我将来应该采取什么措施?

mysql linux filesystems corruption inode

6
推荐指数
2
解决办法
7513
查看次数

使用 FTP 时奇怪的文件损坏。有什么理论吗?

有时当我通过 FTP 上传大量小文件时,一些文件的内容会被 FTP 控制消息替换。例如,上传网站后,我会注意到没有显示图像。当我检查服务器上的图像时,我发现它的内容已被替换为类似

Response:   125 Data connection already open; Transfer starting.
Response:   226 Transfer complete.
Status:     Directory listing successful
Run Code Online (Sandbox Code Playgroud)

很难复制。我注意到任何损坏的文件,我通常可以重新传输它们。如果我重新传输整个站点,可能会损坏不同的文件,可能根本不会损坏。

这个问题已经困扰我好几年了,在那段时间里,我更换了我的电脑(两次)、我的路由器、我的电缆调制解调器,而且我已经搬到了半个国家。我最近没有遇到这个问题,但这可能只是因为我已经学会了避免它的方法,比如在传输之前将所有东西拉上拉链。顺便说一下,我使用 FileZilla。

我曾经将这个问题描述给我的一位网络主机。他们从来没有听说过这样的事情,没有任何线索。我很想知道发生了什么。事实上,我对将 FTP 用于处理少数文件以外的任何内容非常谨慎。

ftp corruption

6
推荐指数
2
解决办法
1万
查看次数

如何诊断 Internet 路径上的网络损坏?

我在网络 A 上运行了几台主机,这些主机向网络 B 上的服务器(我不拥有)发出请求,该服务器位于 Internet 的某处。不幸的是,这些请求中的许多都被破坏了。如果我通过未加密的 HTTP 发出请求,我会收到暗示请求损坏的奇怪错误。如果我通过 HTTPS 发出请求,则会收到 SSL 级别的错误。我可以通过运行来重现问题:

sh -e -c 'while true; do curl $SERVER > /dev/null; sleep 1; done'
Run Code Online (Sandbox Code Playgroud)

通常在 20 个请求内,curl 失败并显示“未知 SSL 协议错误”或“tlsv1 警报解密错误”等错误。我可以在网络 A 中的多个主机上重现这个,访问网络 B 上的多个服务器。但我无法从网络 A 复制到其他服务器,或从其他主机复制到网络 B。在这些情况下,循环将永远运行而不会出错。

所以很明显我的 TCP 流在 A 和 B 之间被破坏了。顺便说一下,这已经持续了 3 天多。

第一个问题:这怎么可能发生?TCP 具有数据包级校验和,通过校验和的损坏数据包应该比我看到的要少得多。此外,如果我运行网络捕获,我不会看到很多重新传输(根据wireshark 的 tcp.analysis.retransmit 过滤器),如果数据包被损坏并且 TCP 校验和失败,您会期望这些。我想某些路由器必须进行更高级别的数据处理(NAT?透明代理?)并破坏数据但修复校验和?

第二个问题:我可以使用任何工具来隔离问题吗?我找不到任何。如果我知道网络拓扑结构并且可以在 A 和 B 之间的每一跳后面找到 HTTPS 服务器,我就可以对它们进行测试。但我没有。还有哪些测试会显示网络损坏?

我已经联系了网络 A 和网络 B 的所有者,但到目前为止他们没有帮助。

更新:对于任何建议路径中可能存在哪种错误设备的人,除了联系所有者之外,还有其他方法可以检测到这种情况吗?

networking internet https corruption tcp

6
推荐指数
1
解决办法
3586
查看次数

为什么我在 ESXi RDM 上遇到 ZFS 文件系统校验和错误?

我有一台 VMware ESXi 4.1 服务器,我最近在其中添加了 2x1TB SATA 驱动器。这台机器运行一个NexentaStor Community VM,它承载 ZFS 文件系统。在添加新驱动器之前,所有 ZFS zpool 都驻留在虚拟磁盘(VMDK 文件)中,该磁盘驻留在服务器的 Vmware 数据存储中,该数据存储位于硬件 RAID10 上。

新的 SATA 驱动器没有硬件冗余,所以我的目标是将它们直接连接到 NexentaStor VM 并从中创建一个 RAID1 zpool。

按照这些说明为新的 SATA 驱动器创建了两个物理 RDM 文件,使用vmkfstools -z /vmfs/devices/disks/idnumber RDM1.vmdk -a lsilogic

将两个 RDM 磁盘添加到 VM 并在其上创建 raidz1 zpool 后,我开始将数据复制到 zpool。该池已脱机,我被告知有数千个校验和错误。

我在网上搜索,发现很多人抱怨同样的情况。(示例)我已经放弃使用 RDM 并创建了两个数据存储和两个 930GB VMDK 文件,我将把它们放在 RAIDz1 中。但是我想知道我哪里出错了。网上很多人说他们有这个配置工作。

我使用 RDM 而不是 VMDK 的目标是:

  1. 使 VM 能够监视 SMART 状态
  2. 允许 ZFS 访问整个磁盘(因为我知道这些不会用于其他任何事情)
  3. 使驱动器在出现故障时易于热插拔
  4. 如果需要,请允许我删除这些驱动器并将它们放置在另一个 ZFS 服务器中

我曾计划在我将在本周晚些时候设置的全新 ESXi …

zfs corruption vmware-esxi nexenta

6
推荐指数
2
解决办法
1735
查看次数

raidz1 vdev 中的 zfs 校验和错误,但不在磁盘中

我正在备份存储在 zpool 中的数据,该 zpool 由一个带有 2 个硬盘的 raidz vdev 组成。在这个操作过程中,我得到了校验和错误,现在状态如下:

  pool: tmp_zpool
 state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: none requested
config:

    NAME                  STATE     READ WRITE CKSUM
    tmp_zpool             ONLINE       0     0     2
      raidz1-0            ONLINE       0     0     4
        tmp_cont_0        ONLINE       0     0     0
        tmp_cont_1        ONLINE       0     0     0

errors: Permanent errors …
Run Code Online (Sandbox Code Playgroud)

zfs filesystems hard-drive corruption checksum

6
推荐指数
1
解决办法
1577
查看次数

读/写 2.6.32-22-server 上的文件损坏(发生在许多内核中)

我遇到了一个问题,在服务器启动一段时间(~一周/几天)后,服务器将开始读取损坏的数据。例如,当我在全新启动后运行文件的 sha1sum 时,它保持不变。然而,一段时间后,我将开始出现段错误,从那时起,每当我阅读此文件时,我都会得到一个不同的 sha1sum。

我已经通过长时间的测试检查了 SMART,并且我已经运行了一个扩展的 memtest86+(12 次通过)

我的 lspci 如下:

00:00.0 主机桥:Advanced Micro Devices [AMD] RS780 主机桥
00:01.0 PCI 桥:Advanced Micro Devices [AMD] RS780 PCI 到 PCI 桥(int gfx)
00:06.0 PCI 桥:Advanced Micro Devices [AMD] RS780 PCI 到 PCI 桥(PCIE 端口 2)
00:07.0 PCI 桥:Advanced Micro Devices [AMD] RS780 PCI 到 PCI 桥(PCIE 端口 3)
00:11.0 SATA 控制器:ATI Technologies Inc SB700/SB800 SATA 控制器 [AHCI 模式]
00:12.0 USB 控制器:ATI Technologies Inc SB700/SB800 USB OHCI0 控制器
00:12.1 USB 控制器:ATI Technologies Inc …

linux raid mdadm corruption kvm-virtualization

5
推荐指数
1
解决办法
375
查看次数

删除文件名错误的损坏文件 Linux

昨晚我有一个 Dovecot 服务器锁定,它损坏了用户邮件目录中的一个文件。文件名现在包含特殊字符并且无法删除,所有命令行工具都说找不到该文件,即使它是通过 LS 命令显示的。

1386141318.M854059P?3?62.email.vantagetitle.com,S?11304,W11473:2,Sc
Run Code Online (Sandbox Code Playgroud)

您可以看到名称中的特殊字符,例如“?” 或者 ”?”。

我似乎找不到任何方法来删除此文件。

我应该做fsck吗?

编辑 1:

我最终创建了一个新的“cur”目录并将所有好的电子邮件移到它上面。我将旧的“cur”目录重命名为“bad cur”

我尝试了以下...

sh-3.2# rm -rf badcur
rm: badcur: Directory not empty
sh-3.2# cd badcur
sh-3.2# ls
1386141318.M854059P?3?62.email.vantagetitle.com,S?11304,W?11473:2,Sbc
sh-3.2# rm -rf 1386141318.M854059P?3?62.email.vantagetitle.com,S?11304,W?11473:2,Sbc
sh-3.2# ls
1386141318.M854059P?3?62.email.vantagetitle.com,S?11304,W?11473:2,Sbc
sh-3.2# ls -i
ls: 1386141318.M854059P?3?62.email.vantagetitle.com,S?11304,W11473:2,Sbc: No such file or directory
sh-3.2#  
Run Code Online (Sandbox Code Playgroud)

linux files corruption

5
推荐指数
1
解决办法
2万
查看次数

损坏的 WiredTiger MongoDB 文件

我正在 ext4 文件系统上使用 WiredTiger 引擎运行 MongoDB。我做的最后一件事是开始构建索引,但后来发生了一些事情,我需要取消索引构建并重新启动机器。我通过在运行索引构建的 MongoDB 控制台中按 Ctrl+C 来完成此操作。它很好地问我是否要终止索引构建,我说是,然后我等待它关闭,这花了几秒钟,所以看起来一切都很好。然后(我猜是 13 秒后)我使用 关闭了服务器systemctl

相关日志:

2015-06-04T22:41:56.176Z I -        [conn1]   Index Build: 5950100/253027947 2%
2015-06-04T22:41:59.022Z I -        [conn1]   Index Build: 5968100/253027947 2%
2015-06-04T22:42:02.002Z I -        [conn1]   Index Build: 5999700/253027947 2%
2015-06-04T22:42:05.086Z I -        [conn1]   Index Build: 6043300/253027947 2%
2015-06-04T22:42:08.114Z I -        [conn1]   Index Build: 6067900/253027947 2%
2015-06-04T22:42:11.006Z I -        [conn1]   Index Build: 6096800/253027947 2%
2015-06-04T22:42:14.007Z I -        [conn1]   Index Build: 6153800/253027947 2%
2015-06-04T22:42:16.588Z I COMMAND  [conn3] going to kill op: …
Run Code Online (Sandbox Code Playgroud)

corruption mongodb

5
推荐指数
0
解决办法
5039
查看次数

检测到内存数据损坏:问题出在哪里?

我们的 SSD VPS 遇到崩溃,所有这些 VPS 都在 KVM 上运行:崩溃发生的原因有多种;为了急于恢复我的团队使用的服务来重新加载计算机的先前快照,并且从不保存日志。

不管怎样,在所有不同的崩溃情况中,一个反复出现的事实是corruption of in-memory data:我们的 VPS 提供商告诉我们他们的硬件运行良好,但我不知道如何阅读给我的糟糕日志。

在此输入图像描述

检测到“内存数据损坏”时涉及什么?是否是因为 RAM 损坏,或者存在其他类型的内存损坏?

有趣的是:使用 VMware 的 VPS 提供商从来没有给我们带来麻烦,而使用 KVM 的 VPS 提供商却因为这些崩溃而让我们发疯。

编辑1:我决不要求你们从这个悲惨的日志中推断出解决方案。我遇到了这个问题,没有提供像样的日志,memtest这是无用的,因为硬件是模拟的,并且 VPS 提供商承认他们的硬件很好,并且没有 KVM 或 QEMU 实例崩溃。corruption of in-memory data detected困扰着我,我想不出任何有效的方法来进一步调查这个问题。

xfs vps corruption kvm-virtualization centos7

5
推荐指数
1
解决办法
2万
查看次数

Windows 重复数据删除:确定哪些文件使用给定的块文件?

使用Windows Server的重复数据删除功能:

给定块存储中的特定块文件,是否可以确定哪个文件包含该块?

这里的用例是磁盘上的不可读块可以映射回块文件,这意味着该特定块文件中可能发生损坏,我想知道哪些文件使用该块,因此我可以手动检查这些文件是否以任何方式损坏,和/或假设它们已损坏并恢复它们等。

***Logical sector 4298505920 (0x10035fec0) on drive X is in file number 144581.
\System Volume Information\Dedup\ChunkStore\{F3F1DCDF-134B-4A3E-AFD5-5F698E42667A}.ddp\Data\000004ad.00000001.ccc
Run Code Online (Sandbox Code Playgroud)

换句话说,我可以找出哪些文件正在使用上述块文件中的数据吗?

corruption data-recovery deduplication bad-blocks

5
推荐指数
1
解决办法
145
查看次数