语境
该公司出售一种收银机 Web 应用程序的访问权限。通过 VPN 可以访问该应用程序。客户端的 VPN 入口点是运行 Voyage Linux(Debian 的精简版)的 Soekris 主板。这些主板已经运行了 3 年的 MySQL,并带有复制功能和 RoR 应用程序堆栈。
这些板的存储支持是 Compact Flash 4GB 卡。
问题
这些主板经常出现错误和随机应用程序崩溃。最常见的错误如下:
8 月 24 日 14:54:44 box45 puppetd[3669]: 无法运行 Puppet::Network::Client::Master: 过时的 NFS 文件句柄 - /var/lib/puppet/state/state.yaml
8 月 24 日 13:37:01 box76 内核:[2091.575622] EXT2-fs 错误(设备 hda1):read_block_bitmap:无法读取块位图 - block_group = 30,block_bitmap = 983040
如果这些是基于 HDD 的,我会运行 SMART 监控工具来检查坏扇区和一般磁盘健康状况。但由于它们是 CF 卡,我对此一无所知,很难衡量情况有多糟糕(或多好!)。
我可以做些什么来监控这些卡的健康状况并衡量它们的健康状况?我坚持“衡量”,因为我需要提供一些确凿的事实,最终促使所有 CF 卡的更换。
为了使事情变得更加复杂,我无法物理访问 Soekris 板,因此所有这些都需要远程进行。
答案1
该错误似乎非常明确地指向了 CF 卡介质的某个部分的问题。如果它已经运行了一段时间而没有任何问题,现在却出现这些问题,我认为卡已经开始出现问题了。最简单的测试方法是派一名技术人员带着替换卡出去更换它,特别是如果你在有限数量的系统上看到这种情况。所有介质都有使用寿命和故障率;卡的读/写周期越多,它们损坏得越快。
另外要看的是:每次读取时的错误是否都出现在相同位置附近?这说明卡的特定部分也可能存在坏单元。
我不知道 fsck 在这些卡上是否能以同样的方式工作。看到这个错误我的第一个想法是更换它。
答案2
你为什么要用 CF 卡来运行东西?如果你需要闪存,请使用固态介质(为此目的而设计的)。CF 卡的技术标准不包括监控。你最多能做的就是检查磁盘并检查是否有坏扇区。