是否可以在一台服务器上托管数据库,但将实际数据托管在另一台服务器上?

是否可以在一台服务器上托管数据库,但将实际数据托管在另一台服务器上?

我们计划使用 HPC 进行 AI 研究。该 HPC 将使用我们创建的数据集。这些数据集是整个数据集的相当大的子集(约 1TB)。我们从实验中收集的所有数据都将存储在 SQL 数据库中。我们希望使用 SQL 查询从数据库中获取在给定时间相关的相关子集 - 因此我们开发了 RESTful 服务,允许人们发送经过清理的查询。

目前存在一些限制,阻碍了我们的设置。

我们有一个 RESTful 服务的主机,但使用约 1TB 的存储空间有点不得已,我们更愿意寻找其他方法来做事。我想知道是否可以将数据库托管在一台服务器上,但将实际数据存储在另一台服务器上?这样,当研究人员向 RESTful 服务发送查询时,SQL 服务器会选择要发送的文件,并将它们返回给 RESTful 服务,然后 RESTful 服务会返回所有数据集的下载链接。

我们目前正在使用 MySQL 来存储数据,并使用 Flask 实例来允许研究人员提交新的实验并获取它们。

答案1

这里有三个组成部分

  • Flask,为你的 REST API 提供服务,
  • mysqld,正在运行的数据库实例,以及
  • 数据文件管理由该数据库实例。

Flask 没有理由与其他两个服务器共享服务器,而且出于安全方面的考虑,它不应该共享服务器。只要有正确的 ConnectionString 连接到另一台服务器上运行的 mysql 实例,它就会非常高兴。
这可能是“拆分”您的架构的最佳位置。

数据库实例及其数据文件应尽可能“靠近”,即尽可能少地“妨碍”和破坏数据库的稳定性。(事实上,我更进一步建议你应该把它们视为一个单一的实体,即数据库,完全忘记“文件”)。

拥有带有附加磁盘设备的数据库服务器就可以了。

答案2

所以基本上您希望将数据放在一个 SQL-Server 上,而另一个 SQL-Server 从“主”SQL-Server 中提取数据进行插入、更新、选择等?

如果是的话,是的。您可以将另一台服务器的数据库链接到您的 MySQL 服务器。

答案3

让我问你一个问题 - 你认为曾经建造的任何 SAN 是什么?存储区域网络意味着数据驻留在另一台专门为此而建的机器上。ISCSI 是一种用于公开基于块的存储(即虚拟磁盘,而不是文件共享)的协议。你认为它为什么存在?

因此,显然答案是肯定的。

相关内容