Compute Engine 实例具有高性能的企业级内存,可用于运行应用。您可以分配一部分内存,用于创建一个延迟极低且吞吐量极高的 RAM 磁盘。如果您的应用需要使用文件系统结构,但又不能简单地将其数据存储在系统内存中,您不妨使用 RAM 磁盘。单独的 RAM 磁盘不提供任何存储冗余或灵活性,因此最好将 RAM 磁盘与其他实例存储方案结合使用。
RAM 磁盘与您的应用共享实例内存。如果您的实例没有足够的内存来容纳 RAM 磁盘和应用,请创建具有 highmem
机器类型(例如 N2)的实例,或 升级现有实例以添加更多内存。
准备工作
- 了解 RAM 磁盘与其他 Compute Engine 存储方案之间的区别。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
如果您的实例没有足够的可用内存,则可以选择将实例的机器类型更改为配备了更多内存的机器类型。
通过 SSH 连接您的实例。对于本示例,转到“虚拟机实例”页面,然后点击您要为其添加 RAM 磁盘的实例旁边的 SSH 按钮。
为您的 RAM 磁盘创建一个装载点。
$ sudo mkdir /mnt/ram-disk
创建并装载新的
tmpfs
RAM 磁盘。您必须确定size
属性的值,该值既要满足存储要求,又不会导致与应用竞争内存或耗尽所有可用内存。在本示例中,此实例的机器类型为n1-highmem-32
,配备了 208 GB 的内存,因此将 RAM 磁盘大小设为50g
比较合适。$ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
将 RAM 磁盘添加到
/etc/fstab
文件,以便设备在您重启实例时自动重新装载:$ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
创建并装载永久性磁盘,以用作 RAM 磁盘的备份磁盘。确保磁盘足够大,可容纳 RAM 磁盘中的信息。
为您的实例创建一个关闭脚本,在其中使用
rsync
命令来将 RAM 磁盘内容写入备份卷。对于本示例,使用 gcloud CLI 将shutdown-script
元数据添加到实例。在该实例中,RAM 磁盘的装载位置为/mnt/ram-disk
,永久性磁盘的装载位置为/mnt/ram-disk-backup
。gcloud compute instances add-metadata example-instance --metadata shutdown-script="#! /bin/bash rsync -a --delete --recursive --force /mnt/ram-disk/ /mnt/ram-disk-backup/ EOF"
或者,您还可以创建启动脚本,以便在实例再次启动时将文件还原到 RAM 磁盘。使用 gcloud CLI 将
startup-script
元数据添加到实例。gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/ EOF"
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
创建 RAM 磁盘
您可以使用
tmpfs
文件系统创建 RAM 磁盘,大多数 Linux 发行版默认包含该文件系统。删除 RAM 磁盘
您可以卸载
tmpfs
RAM 磁盘,就像卸载其他任何卷一样。该操作会删除 RAM 磁盘及其中存储的所有数据。对于此示例,请移除在/mnt/ram-disk
处装载的 RAM 磁盘:$ sudo umount /mnt/ram-disk
在实例重启前自动备份 RAM 磁盘数据
您可以在实例重启之前备份 RAM 磁盘以保留其中的数据,以便实例重启后再次使用这些数据。将您的数据备份到永久性磁盘以保留这些数据。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-18。
-