【发布时间】:2011-04-30 19:01:12
【问题描述】:
有没有一种通过 Java 检测 Linux 服务器上特定磁盘脱机的好方法?
我有一个应用程序,由于性能原因,它直接写入所有磁盘(中间没有任何 RAID)。
我需要检测 Linux 在运行时是否会因磁盘崩溃而卸载任何磁盘,因此我将停止使用它。问题是每个挂载都有一个根目录,所以如果没有正确检测,应用程序只会填满根分区。
将不胜感激任何关于此的建议。
【问题讨论】:
-
我对此没有任何经验,因此可能有更好的方法,但一种选择是直接从 Java 运行诸如 mount 之类的命令并读取输出。见:download.oracle.com/javase/1.5.0/docs/api/java/lang/…
-
如果它仅适用于 linux,您可以读取并解析 /proc/mounts 并在那里检查该目录。
-
顺便说一句,请记住,您的操作系统(有或没有 RAID 控制器)可以做一些惊人的事情来优化 IO(缓存、延迟写入、预读......)所以绕过时要小心它以获得表演......
-
我实际上使用的是标准 Java 调用,所以这里没有绕过操作系统。