这可能是一个愚蠢的问题,但我在互联网上搜索过,没有找到任何可以给我明确答案的东西。
我很好奇当用户打开文件时文件服务器重新启动或崩溃的潜在后果。现在常识告诉我,只要在重新启动时没有保存或写入文件,就不太可能发生损坏。当用户打开文件(以读取和读写模式)时,我曾被迫重新启动服务器几次,但从未听到任何用户抱怨他们丢失了文件或遇到了问题。我的意思是,如果文件服务器出现故障并且文件处于打开状态,那么(理论上)这意味着他们将无法保存到网络共享,直到机器重新上线,对吗?
我的问题是,如果最终用户打开了文件,重新启动服务器是否安全?
答案1
你的常识对你很有用;尽管我总是试图在重启服务器之前警告人们,这样他们就可以保存并关闭,只要没有活动 I/O 发生,就不会发生任何事情。当然,这也是假设你正在关闭并重启,而不是仅仅拔掉电源线(在这种情况下,你需要担心缓存刷新问题)。
答案2
使用系统工具重新启动服务器绝不会损坏文件系统,但可能会破坏文件内数据的完整性。例如,如果您的应用程序使用 2 个文件,并且您在一个文件中引用了另一个文件中的数据,然后您重新启动了服务器,则在重新启动服务器时可能会破坏该引用。此外,如果您重新启动服务器并且文件事务(将文件中的数据从稳定状态转移到另一个稳定状态的操作)未完成,则可能会损坏文件。
答案3
交换文件不会被关闭(实际上不会坏的,很烦人),如果文件正在写入,则它们可能会被损坏。