ONTAP MySQL Enterprise NFS iSCSI FCP
7G 5.X Supported Supported Supported
7G 4.X Supported Supported Supported
MySQL Enterprise versions 4.X and 5.X are supported on all NetApp fabric
attached storage models running any release of Data ONTAP 7G for any server
platform supported by MySQL that is listed in the NetApp host compatibility
matrix for each protocol.
对您来说,第一条好消息是,现在以太空间中的信息比您在一年前提出的相同问题要多。我从痛苦的经历中知道这一点。
Netapp 的官方说法是 MySQL 支持所有三种协议。
第二个好消息是你没有说 MyISAM。否则,这将是一个非常不同和更加模糊的故事,包括糟糕的表现和没有支持信息。除了使用基于块的 iSCSI 或 FCP 之外,没有太多选择。并不是说它们效果不好,而是它们与基于文件的鱼略有不同。
相反,Netapp 已经发布了 MySQL 5.0 的一些OLTP 基准测试,涵盖了所有三种存储协议。结果表明 InnoDB 引擎表现良好,并且符合 Oracle 中看到的协议差异。FCP 在吞吐量方面名列前茅。而 iSCSI 和 NFS 分别落后 FCP 9% 和 16%。这并没有我们预期的那么大的差异。
更有帮助的是,同一份文档详细介绍了 NFS 和 InnoDB 为实现该基准数据而采取的具体步骤。其中包括在源卷上修改
innodb_buffer_pool_size
NFSinnodb_flush_method
的属性缓存超时no_atime_update
以及(如 Richard 上面所说)为日志指定不同的挂载点。就个人而言,我不建议将日志完全存储在不同的存储上,例如本地磁盘。日志与任何已经写入磁盘的数据密切相关。如果您将它们完全分开,那么您可能会跌倒。更重要的是,如果您希望执行快照,请更改运行 MySQL 的机器,否则您的本地磁盘证明不如文件管理器可靠。
尽管如此,你能做的下一件最好的事情就是吸吮它并看看。根据文档中的最佳实践设置环境,并使用您自己的数据执行一些基准测试。与今天的本地磁盘相比,评估它的性能。
--
注意:第一个链接现在受到限制。您没有说您是否已经是 Netapp 客户。无论如何,您应该能够查看第二个链接。
如果可以使用 NFS4 将是最好的。我至少会立即安装。您还应该考虑在本地磁盘上指定日志文件位置。如果您没有本地存储(这在 VM 中很常见),您可能会尝试将日志存储在通过与主存储不同的网络接口路由的挂载点上。
就个人而言,从 NetApp for MySQL 安装磁盘时,我会使用 iSCSI 而不是 NFS。非常高效,您可以直接访问 LUN 的文件系统。
MySQL InnoDB 提交性能很大程度上取决于底层 IO 将数据同步到磁盘的速度;这受到网络延迟的巨大影响,因此无论服务器是什么,在 NFS 上运行 MySQL 都会产生巨大的影响。即使您的网络尽可能快,它仍然可能比本地磁盘慢很多(我假设您的本地磁盘将是电池支持的 RAID 控制器)。
另一方面,读取性能主要取决于数据库中有多少内存适合内存。如果您可以将整个数据库放入 RAM(或其中大部分,取决于使用模式),那么性能将非常好,因为您只需将 innodb_buffer_pool 设置为大于数据,理论上不会读取永远需要在 NFS 上完成。
只要您不使用 berkleydb,MySQL/InnoDB 就可以很好地用于 NFS。我不确定 Netapp NFS 文档中的内容,但如果您使用“异步”选项安装 NFS 卷,则应用程序将不会被阻止等待写入磁盘。