假设我有一个传统的 web 应用程序,它有两台服务器,一台是 web 服务器,一台是 mysql 服务器。使用 VPS 或基于云的提供商,我该如何扩展我的数据库?如果没有传统的 SAN,我该如何让我的 mysql 数据库知道数据文件的存储位置?
答案1
你有没有考虑过亚马逊 RDS?
Amazon Relational Database Service (Amazon RDS) 是一种 Web 服务,让您能够轻松地在云中设置、操作和扩展关系数据库。它提供经济高效且可调整大小的容量,同时管理耗时的数据库管理任务,让您能够专注于应用程序和业务。
Amazon RDS 为您提供访问熟悉的 MySQL 数据库的全部功能。这意味着您目前在现有 MySQL 数据库中使用的代码、应用程序和工具可以与 Amazon RDS 无缝协作……
答案2
在许多云环境(Google App Engine、Windows Azure)中,您无法安装完整的 SQL RDBM,而必须使用云供应商为您设置的存储 API。
在 Amazon EC2 上,您可以获得类似于“完整”PC 的东西,您可以自行安装操作系统和应用程序。您必须使用弹性块存储 (EBS)如果您想要“硬盘空间”,即在节点崩溃后仍能保留的存储卷。
据我所知,EBS 的实现方式尚未公开。很可能它不是 SAN,而是由 Amazon 创建的软件层。这并不重要,就每个 EC2 托管操作系统而言,它看起来就像本地硬盘。不过性能并不是很好,所以大多数人将多个 EBS 卷条带化在一起以提高速度。
正如 Traveling Tech Guy 指出的那样,如果你不想使用 EBS,那么亚马逊很方便地提供了一个托管 MySQL 服务。
其他云提供商可能有完全不同的处理方式,请参阅他们的文档...
答案3
您的 MySQL 数据库目前是裸机物理系统。如果您要安装传统的云存储,那将是一个巨大的瓶颈,因为它的性能远不及本地存储的性能。
有些云提供商提供高速存储,这可能就是您正在寻找的。如果您想要高速和动态存储,我建议完全虚拟化服务器,以减少不同通道上的延迟。
如果您需要一些解决方案的建议,我非常乐意提供这些建议。