Google compute engine 无盘服务器的存储选项

Google compute engine 无盘服务器的存储选项,google-compute-engine,Google Compute Engine,我正在尝试构建一个在几个高CPU无盘实例上运行的神经网络模拟。我计划使用一个永久磁盘来存储我的模拟代码和训练数据,并将它们装载到所有服务器实例上。它基本上是一种map-reduce任务,多个节点处理相同的训练数据,所有节点的结果都需要收集到一个结果文件中 现在我唯一的问题是,我有什么选项可以在模拟过程中的某些点或在模拟结束时永久保存不同服务器的模拟结果。理想情况下,我希望将它们写入安装在所有服务器上的单个永久磁盘,但这是不可能的,因为我只能以只读方式将其安装到多个服务器上 将所有服务器的所有模拟

我正在尝试构建一个在几个高CPU无盘实例上运行的神经网络模拟。我计划使用一个永久磁盘来存储我的模拟代码和训练数据,并将它们装载到所有服务器实例上。它基本上是一种map-reduce任务,多个节点处理相同的训练数据,所有节点的结果都需要收集到一个结果文件中

现在我唯一的问题是,我有什么选项可以在模拟过程中的某些点或在模拟结束时永久保存不同服务器的模拟结果。理想情况下,我希望将它们写入安装在所有服务器上的单个永久磁盘,但这是不可能的,因为我只能以只读方式将其安装到多个服务器上


将所有服务器的所有模拟结果收集回一个永久磁盘的最聪明、最便宜的方法是什么?

如果你想留在谷歌的产品空间,那如何


另外,我使用了S3,对于这类任务,Google云存储是在Google云中永久存储信息的好方法。您只需为项目启用该产品,就可以直接从计算引擎虚拟机访问云存储。如果您使用“storage rw”服务帐户创建实例,访问将更加容易,因为您可以使用内置在虚拟机中的gsutil命令,而无需执行任何显式授权

更具体地说,请转到,选择要使用计算引擎和云存储的项目,并确保这两个服务都已启用。然后在创建虚拟机时使用“storage rw”服务帐户范围。如果使用gcutil创建虚拟机,只需添加-storage\u account\u scope=storage rw。如果使用云控制台启动虚拟机,还可以直观地设置服务帐户范围。一旦VM启动并运行,您就可以自由地使用gsutil命令,而不用担心执行交互式登录或OAuth步骤。您还可以通过将任何所需的gsutil请求集成到应用程序中来编写使用脚本gsutil也可以在启动脚本中工作


有关GCE服务帐户功能的更多背景信息,请参见。

作为更通用的选项,您需要某种通用对象存储。正如在之前的回复中提到的,谷歌提供了一个不错的软件包,但几乎所有的云提供商都提供了一些存储选项。确保云提供商同时拥有两个关键选项—卷存储、类似于虚拟磁盘的数据存储和对象存储、密钥/值存储。两者各有长处和短处。卷存储是虚拟磁盘的直接替代品。如果可以使用stdio,则很可能可以使用远程卷存储。问题是,它们通常具有磁盘的结构。如果你想要更多的东西,你需要一个数据库。对象存储是磁盘和数据库之间的中间地带。它是快速的,半结构化的


我自己也是一个OpenStack用户——首先,因为它同时提供了两个存储系列,其次,它受到各种供应商的支持,因此,如果您决定从供应商a迁移到供应商B,您的代码可以保持不变。您甚至可以在自己的机器上运行它的副本。请访问www.openstack.org。注意,openstack确实喜欢内存。你不会在4GB笔记本电脑上运行你的私有云!考虑两个16GB的机器。

< P>贾景晖的答案绝对是最好的长期存储结果。根据您的I/O和可靠性需要,您还可以将一台服务器设置为NFS服务器,并使用它在其他节点上远程装载卷

通常,NFS服务器是您的主节点,它可以同时提供二进制文件和配置服务。工作人员将定期重新扫描从主机导出的目录,以获取新的二进制文件或配置。如果您不需要大量的磁盘I/O(您提到的神经模拟),那么我假设数据集适合内存,并且您只输出最终结果,那么只需将输出写入主节点上的NFS目录,然后将主节点的备份结果备份到GCS之类的某个地方,速度可以接受

与GCS相比,使用NFS的主要优点是NFS提供了熟悉的文件系统语义,如果您使用的是希望从文件系统读取文件的第三方软件,这将有所帮助。定期将文件从GCS同步到本地存储非常容易,但确实需要在主机上运行额外的代理

设置NFS的缺点是,您可能需要在主机之间同步UID,NFS可能是一个安全漏洞,我只会在我的专用网络上公开NFS,不向10/8以外的任何对象公开,并且需要在客户端和服务器上安装额外的包来设置共享。此外,NFS将只与主机一样可靠,而像GC这样的对象存储
S或S3将通过冗余服务器甚至地理多样性来实现。

非常感谢您的回答。您知道哪种解决方案读写速度更快:远程NFS共享或GCS?