在使用 iSCSI 的服务器上运行事务数据库是一个好主意吗?
他们的主要论点是你可以让两台服务器访问同一个磁盘阵列,因此如果一台服务器发生故障,另一台服务器可以启动并执行工作。
因此,我有一台服务器处于某种冷备用模式。这种设置真的比在同一台机器上安装磁盘和服务器更安全吗?
这意味着 iSCSI 机器不会像服务器那样容易损坏。
另一点是 WAL,如果网络延迟,可能会对 WAL 产生负面影响。有经验吗?
我很高兴听到你对这个话题的看法。
答案1
您的问题需要分为两个部分:内部存储与外部存储,以及 iSCSI 与替代方案(FC、FCoE、NFS)。我的经验是与主要运行 Oracle 的大型企业客户打交道,因此这可能不适用于较小的环境或其他数据库。在我看来,外部存储具有很大的价值;iSCSI 是提供这种存储的一种选择,但它不如某些替代方案那么成熟。
内部存储与外部存储
外部存储通常配置在磁盘阵列中并通过存储区域网络 (SAN) 呈现,具有许多优点:
- 性能快速,通常具有硬件加速 RAID 和大型电池支持的缓存。
- 轻松扩展卷以使用更多磁盘来提高性能和容量。
- 集中访问存储资源,避免资源浪费。
- 能够为高性能或高可用性集群(例如 Oracle RAC)共享存储。
- 可能具有快照和将数据复制到远程站点的功能。
- 可能配备合适的分析工具来跟踪性能。
外部存储的主要缺点是建立和维护存储区域网络和存储阵列的复杂性和成本。
iSCSI 与替代方案
光纤通道目前是访问数据库外部存储的标准机制。SAS(串行连接 SCSI)通常用于不太重要的数据,更多地是作为内部磁盘的扩展而不是 SAN 中的磁盘。这些技术的关键点在于它们在专用存储网络上运行。
FCoE 和 iSCSI 等较新的替代方案实际上提供了与 FC 和 SAS 相同的协议,但它们运行在以太网上,因此可以使用与主机到主机网络相同的基础设施。其理念是通过融合以太网,公司可以降低拥有外部存储的成本和复杂性。然而,以太网作为传输方式是否能提供专用技术的速度和可靠性仍存在疑问。
NFS 是一种文件级协议,也可通过以太网运行。过去,人们认为它对数据库的开销太大,但随着新网络适配器中的硬件卸载、更好的操作系统网络堆栈以及数据库的直接支持(例如 Oracle 中的 Direct NFS 功能),它对一些公司来说也是一个可行的选择。NFS 特别好,因为它减少了调整卷大小所涉及的管理工作,并且也适合虚拟化存储模型,例如 EMC VNX 和 Oracle ZFS Storage。
答案2
在我的观点作为存储网络传输,iSCSI 的稳定性不如光纤通道或以太网光纤通道。假设您已进行必要的优化,它应该可以工作。如果 iSCSI 连接通过专用以太网,且没有非 iSCSI 流量干扰,则效果最佳。如果您愿意,ISCSI 启动器多年来已经变得更好,现在甚至支持多路径。
至于通过 iSCSI 运行事务数据库,我对此表示怀疑。冷备用服务器应该能够从热服务器停止的地方继续工作,前提是它让数据库文件处于可恢复状态。话虽如此,专用存储传输网络真正发挥作用的一个用例是这种“大量小事务”用例。
最后,根据我的评估,它会起作用,但可能比使用 FC 或 FCoE 更容易发生灾难性故障。
答案3
您提出了几个不同的问题。首先,iSCSI 是否适用于事务数据库?是的,绝对可以。但这是一个有条件的答案。在大多数实施中,光纤的性能会更好。您需要了解您的 IO 要求,以确定您是否真的需要这种性能。如果不是,iSCSI 可能是完美的选择。话虽如此,有时人们看到 iSCSI 实施起来很容易,所以他们只是推出它而没有考虑太多设计。在 Google 上很容易找到 iSCSI 的最佳实践,但您应该考虑如何将该流量与其他流量(专用交换机或 VLAN)分开,如何实施巨型帧,是否使用 MCS 或 MPIO(您的供应商可能会为您规定这一点),等等。
第二个问题是您将如何为数据库设计冗余。是的,如果主服务器发生故障,您可以将这些磁盘分配给另一个服务器,但我不会将其作为我的 HA 解决方案,因为您不能保证主服务器发生故障时这些数据库仍处于良好状态。有很多方法可以实现 HA,其中大多数方法可以很好地与 iSCSI 配合使用,但您需要对此进行更多的思考。
答案4
多年来,我们在 Oracle 事务数据库环境中使用 iSCSI 到外部存储,没有出现任何问题,性能也非常出色。但是,iSCSI 组件不属于我们的冗余计划。正如其他人所说明的那样,我们解决了这个问题。此外,出于其他原因,我们正在使用 Oracle 的 DNFS 迁移到基于 NFS 的存储。在 11gR1 中,我们发现了不少问题,而 11gR2 中似乎不存在这些问题。我们还没有足够的用户来了解性能究竟会如何。这可能会在未来几周内发生。