我已经设置了一个由几台服务器以及 SAN 组成的小型集群。这些服务器运行的是 Ubuntu 20.04 LTS。
根据供应商提供的说明(我找不到以前在哪里读到过),他们建议 SAN 和服务器之间的 iSCSI 连接应该(或者可能是“必须”?)与任何以太网流量分开。因此,我在交换机上配置了两个 VLAN — 一个用于 iSCSI 流量,一个用于服务器之间的以太网流量(SAN 不在上面)。
到目前为止,一切似乎都很好。假设以太网位于 172.16.100.XXX/24,iSCSI 位于 172.16.200.XXX/24。更具体地说,地址如下所示:
机器 | 以太网 | 互联网SCSI | 外部以太网也一样吗? |
---|---|---|---|
服务器 1 | 172.16.100.1 | 172.16.200.1 | 是的 |
服务器2 | 172.16.100.2 | 172.16.200.2 | 是的 |
服务器 3 | 172.16.100.3 | 172.16.200.3 | 是的 |
存储区域网络 | 不适用 | 172.16.200.4 | 不 |
毫不奇怪,我可以ssh
在服务器之间使用任一 VLAN。也就是说,从服务器 2 到服务器 1,我可以执行以下任何操作:
ssh 172.16.100.1
ssh 172.16.200.1
- 通过外部可见的 IP 地址进行 ssh
我担心的是,是否应该使用防火墙规则将非 iSCSI 流量与 172.16.200.X 子网分开,以便在所有服务器上阻止端口 22(ssh)。
我并不担心反向情况——SAN 仅在 VLAN 200 上。它不知道 VLAN 100 的存在,因此它不会突然将 iSCSI 流量发送到该 VLAN。
我正在使用 Oracle Cluster Filesystem,它似乎使用端口 7777——也许我应该阻止 VLAN 上的所有端口,以便只使用端口 7777?在 iSCSI 网络上进行以太网流量是否会产生问题(延迟或错误?)我应该注意吗?
谢谢你!
答案1
我担心的是,是否应该使用防火墙规则将非 iSCSI 流量与 172.16.200.X 子网分开,以便在所有服务器上阻止端口 22(ssh)。
如果您使用 DNS 名称连接到其他服务器,并且这些服务器解析为 LAN 地址,那么应该没问题。(当然,您也可以直接使用 LAN IP 地址。)
如果你真的想要禁用 SAN 上的所有非 iSCSI 流量,您需要
- 配置所有服务仅绑定到 LAN IP 地址
- 使用服务器上的本地防火墙来过滤所有不需要的流量
- 在 iSCSI 交换机端口上使用 ACL 来过滤所有不需要的流量
如果您确实进行过滤,则只允许 iSCSI 并拒绝其他所有内容是正确的方法。
iSCSI 网络上的以太网流量是否会产生问题(延迟或错误?)
分离 LAN 和 SAN 流量的主要原因是你要确保你的存储网络无论如何都不会堵塞。如果发生这种情况,它会迅速导致 I/O 错误,进而导致数据丢失甚至损坏。(非常)少量的杂散流量并不是什么值得担心的事情。
但是,如果服务绑定 (#1) 不切实际,或者其他服务器管理员不太在意,我会使用 ACL 方法。例如,动态 DNS 更新非常容易将您的 iSCSI IP 放入 DNS 中,并且任何服务器间流量都可以快速进入 SAN。