创建内存 RAM 磁盘

Google Compute Engine 实例具有高性能的企业级内存,可用于运行应用。您可以分配一部分内存,用于创建一个延迟极低且吞吐量极高的 RAM 磁盘。如果您的应用需要使用文件系统结构,但又不能简单地将其数据存储在系统内存中,您不妨使用 RAM 磁盘。单独的 RAM 磁盘不提供任何存储冗余或灵活性,因此最好将 RAM 磁盘与其他实例存储方案结合使用。

RAM 磁盘与您的应用共享实例内存。如果您的实例没有足够的内存来容纳 RAM 磁盘和应用,请创建高内存机器类型的实例,或者升级现有实例以添加更多内存。

准备工作

创建 RAM 磁盘

您可以使用 tmpfs 工具创建 RAM 磁盘,该工具默认安装在多个 Linux 操作系统上。

  1. 如果您的实例没有足够的可用内存,则可以选择将实例的机器类型更改为配备了更多内存的机器类型。

  2. 通过 SSH 连接您的实例。对于本示例,转到“虚拟机实例”页面,点击想要添加 RAM 磁盘的实例旁边的 SSH 按钮。

  3. 为您的 RAM 磁盘创建一个装载点。

    $ sudo mkdir /mnt/ram-disk
    
  4. 创建并装载新的 tmpfs RAM 磁盘。您必须确定 size 属性的值,该值既要满足存储要求,又不会导致与应用竞争内存或耗尽所有可用内存。在本示例中,此实例的机器类型为 n1-highmem-32,配备了 208 GB 的内存,因此将 RAM 磁盘大小设为 50g 比较合适。

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. 将 RAM 磁盘添加到 /etc/fstab 文件,以便设备在您重启实例时自动重新装载:

    $ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
    

删除 RAM 磁盘

您可以卸载 tmpfs RAM 磁盘,就像卸载其他任何卷一样。该操作会删除 RAM 磁盘及其中存储的所有数据。对于此示例,请移除在 /mnt/ram-disk 处装载的 RAM 磁盘:

$ sudo umount /mnt/ram-disk

在实例重启前自动备份 RAM 磁盘数据

您可以在实例重启之前备份 RAM 磁盘以保留其中的数据,以便实例重启后再次使用这些数据。将您的数据备份到永久性磁盘以保留这些数据。

  1. 创建并装载永久性磁盘,以用作 RAM 磁盘的备份磁盘。确保磁盘足够大,可容纳 RAM 磁盘中的信息。

  2. 为您的实例创建一个关闭脚本,在其中使用 rsync 命令来将 RAM 磁盘内容写入备份卷。对于本示例,使用 gcloud 工具将 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"
    
  3. 或者,您还可以创建启动脚本,以便在实例再次启动时将文件还原到 RAM 磁盘。使用 gcloud 工具将 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"
    
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档