手册页fsync
说:
如果底层硬盘启用了写入缓存,那么当 fsync() / fdatasync() 返回时,数据可能不会真正在永久存储中。
有什么方法可以确保数据物理写入磁盘?
手册页fsync
说:
如果底层硬盘启用了写入缓存,那么当 fsync() / fdatasync() 返回时,数据可能不会真正在永久存储中。
有什么方法可以确保数据物理写入磁盘?
不,那里没有。
当fsync
您告诉您的操作系统将其写入磁盘时,就操作系统而言,它已被写入磁盘。
如果磁盘是伪造的,那么不幸的是,您无法真正改变它。使用适当的磁盘系统(即 BBU RAID 设置),您可以简单地启用/禁用写入缓存来避免这种情况。
请注意,如果您指定O_DIRECT
andO_SYNC
标志,它应该将其写入磁盘:http ://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html