我有几个 iscsi 驱动器连接到 debian。iscsi 驱动器(sde、sdg,每个路径一个)和多路径设备 (dm-25) 的“write_cache”属性(/sys/devices/virtual/block/dm-XX/queue/write_cache 或 /sys/block/sdX/queue/write_cache )设置为“回写”。我可以将 writecache 模式设置为“直写”。
我想知道 iscsi 上下文中“writeback”和“writethrough”的含义。iscsi 驱动程序是否提供某种本地缓存?
如果我将其设置为“writethrough”,这是否意味着如果命令通过 iscsi TCP 连接成功传达,iscsi 写入命令将被确认?
谢谢!
答案1
我想知道 iscsi 上下文中“writeback”和“writethrough”的含义。iscsi 驱动程序是否提供某种本地缓存?
有可能。文件系统级别也可能存在一些缓存,其含义相同。
直写意味着写入操作是同步的 - 数据被放入缓存并写入磁盘。一旦完成,控制权将返回到文件系统或应用程序 - 这样它就始终知道哪些数据已进入永久存储。
回写是异步写入操作 - 数据被放入缓存中,写入磁盘操作正在排队控制权立即返回到文件系统/应用程序。无法知道所有数据是否都已进入永久存储。最终应该如此,但如果中途断电或发生严重崩溃,则可能不会。
回写对于本地存储来说有点危险(所以我们使用电池供电的缓存),但对于网络存储来说危险得多——因为出错的可能性更大。如果没有正确的设置,回写缓存会严重损坏甚至毁掉一个良好的日志文件系统。
正确的设置包括:
- 服务器冗余电源
- 存储冗余电源
- 冗余UPS
- 冗余网络路径
- 良好的监控,因此任何故障都不会因为冗余而被忽视