ZFS over iSCSI + ZIL 的可行性、性能和安全性

2020-01-29 23:02:40 +08:00
 CloudRaft

新人贴,大家多多包涵

不知道有没有试过 ZFS over iSCSI + ZIL 实现高性能网络磁盘挂载的大佬?求分享一下经验! 目前有两台机器 A 和 B:A 为计算服务器( Debian10 + Proxmox ),B 为存储服务器。两台机器通过 10Gb 网卡直连,希望将 B 中的磁盘空间共享给 A 使用,同时提高性能。

目前方案: B 中 15 盘硬件阵列卡 Raid10+1 热备,然后通过共享 NFS 给 A。

问题: A 对小文件的读写较多,线程数一多就出现 IO Delay,实际看到网卡的流量并不高。

期望的方案: B 共享 iSCSI 给 A,然后 A 基于 iSCSI 磁盘做 ZFS 池,然后使用本地 SSD 做 ZIL 提高性能。 目前还在尝试中,如果有什么严重的设计 /安全性问题请务必提出,感激不尽!

2830 次点击
所在节点    问与答
4 条回复
Aliencn
2020-01-30 00:51:34 +08:00
我记得 ZFS 的写缓存用的是内存,ZIL 是只是用来存日志的。
ZFS 对内存要求很高,1T 的空间要搭配 1G 的内存,而且要建议是 ECC 内存。
CloudRaft
2020-01-30 01:18:45 +08:00
@Aliencn 感谢回复!内存是 ECC 的,服务器配置这里也说一下吧:

计算节点(其实是 5 台)
CPU:E5-1650V3
内存:8x RAM 32768 MB DDR4 ECC reg.
硬盘:3x SSD SAMSUNG MZ7LM480 其中 2 块组软 raid1,另一块打算用来做 ZIL
网卡:Intel I210 + Intel X540-T2

存储节点:
CPU:E5-1650V3
内存:4x RAM 32768 MB DDR4 ECC reg.
硬盘:15x HDD SATA 6,0 TB Enterprise 硬件 Radi10+1 热备
阵列卡:Adaptec 8405 SGL ( 1G 缓存) + Adaptec AEC-82885T Expander Card
网卡:Intel I210 + Intel X540-T2

内存肯定是够的,每个计算节点拿出 32G 做缓存。之前也组过 RAIDZ3、Z2,对内存缓存后的磁盘性能非常满意!
ungrown
2020-07-13 11:08:33 +08:00
@Aliencn #1
严格来讲 ZFS 没有写缓存,只有写缓冲,默认情况下内存中的缓冲区是一个很小的 buffer,级别和其他文件系统的缓冲区没什么不同。ZIL 无非是这个写缓冲区的外延。
ZFS 只有读缓存,而且 ZFS 的读缓存均会在系统关闭后丢失,包括 L2ARC 也如此。
ZFS 会大量占用内存,但是 ZFS 对已占用内存的释放非常迅速,并不会因此影响系统其他进程的运行效率。但会因此降低自身性能——相较于在有足够内存时的高性能而言。
ECC 内存可以消除内存错误导致的文件数据损坏,但请注意,非 ZFS 的其他文件系统,使用出错的非 ECC 内存时,同样会导致文件数据丢失损坏。所以,应该说,在需要确保文件数据安全的场景下,无论使用什么文件系统,都应该使用 ECC 内存,这也正是服务器的配置。而家用机非 ECC 内存的情况下,无论用 ZFS 还是其他文件系统,数据该受损一样会受损。
ungrown
2020-07-13 11:12:56 +08:00
linux 中提供 iscsi 服务的软件有几个,我之前在家里用过 ubuntu+tgt 的方式提供 iscsi 服务,在 windows 系统中连接,使用过程中一切都好,但是偶尔——很偶尔会出现连接错误,而这一现象会导致 ubuntu 整个网络功能失效,必须重启恢复。所以后来不用了,也许换个 iscsi 服务端程序不会有这个问题,但是当时没有动力去尝试了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/640904

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX