将 NFS 文件存储添加到 Bare Metal 解决方案环境

本指南介绍如何在裸金属解决方案环境中设置和使用网络文件系统 (NFS) 以用作文件存储空间。本文档假定您基本熟悉如何使用 NFS 文件系统并且大概了解 Linux 系统管理。

了解裸金属解决方案的 NFS 文件存储

您可以将 NFS 用作通用脚本、安装文件和备份文件的本地共享文件存储空间。NFS 卷通过 NFS 装载目录为一个或多个裸金属解决方案服务器提供存储空间。在裸金属解决方案服务器上装载 NFS 卷后,您可以如同访问其他任何文件系统一样访问该存储空间。

在裸金属解决方案中使用 NFS 文件存储需要两个步骤:

  1. 确定所需的 NFS 卷设置并与 Google Cloud 共享
  2. 在裸金属解决方案服务器上装载 NFS 卷

下面这些实用提示和信息可帮助您在裸金属解决方案中使用 NFS 文件存储:

  • 裸金属解决方案服务器通过从您分配给裸金属解决方案环境的客户端或专用网络中保留的服务子网与 NFS 卷通信。对于典型的 /24 网络,我们建议您将 /28 子网用于 NFS 等服务。
  • 您可以为每个子网分配一个 NFS 卷。因此,NFS 卷不能跨多个 VLAN 共享。
  • Google Cloud 在裸金属解决方案环境中使用 NFS v3。
  • 我们不建议使用 NFS 来存储 Oracle 数据文件或日志文件。
  • Google Cloud 在托管裸金属解决方案的区域扩展中提供 NFS。NFS 文件存储不跨 Google Cloud 区域。如果您需要多区域共享存储空间,请考虑使用 Filestore。我们不提供 NFS 卷或区域之间的基于存储的复制。
  • Google Cloud 会对静态数据进行加密。对于裸金属解决方案服务器和存储设备之间传输的数据,数据不会加密。如果您需要为传输流量对数据进行数据加密,我们建议您在应用级层配置加密。如需了解详情,请参阅如何加密通过 Cloud Interconnect 传输的流量?
  • 裸金属解决方案的 NFS 文件存储不会限制网络带宽。由于大量高并发的批处理工作负载(例如备份)可能会影响其他工作负载的性能,因此请考虑限制此类批处理工作负载的带宽用量和同时处理。
  • Google Cloud 提供的其他共享存储选项包括裸金属解决方案服务器上的 Filestore使用 FUSE 装载的 Google Cloud Storage 存储分区。您可以使用 Google Cloud Console 在 Google Cloud 中动态分配此存储空间,并使用 Cloud Interconnect 将区域扩展加入 Google Cloud 区域。

如需详细了解 NFS,请参阅网络文件系统

如需详细了解如何将 NFS 文件存储与 Oracle 数据库搭配使用,请参阅以下文章(需要 Oracle 账号):

请求裸金属解决方案的 NFS 文件存储

如果您要将 NFS 文件存储添加到裸金属解决方案环境,则需要通过 Google Cloud 销售团队订购 NFS 卷。在订购 NFS 卷并将为您分配后,您可以按照创建 NFS 卷中的步骤进行设置。

您可以在 Google Cloud 控制台登记表部分中查看可用的卷配额,如以下示例所示:

Google Cloud 控制台登记表突出显示了可用配额消息

如果您没有足够的卷配额可用于预配,请与 Google Cloud 销售团队联系以订购更多。

卷配额可用后,您需要收集并提供以下信息,以便为裸金属解决方案环境预配 NFS 文件存储:

字段 说明 示例
Google Cloud 项目 ID 访问 Google Cloud 项目的“欢迎”页面,找到您的项目 ID。 我的项目
区域 托管您的裸金属解决方案环境的区域扩展附近的 Google Cloud 区域。 us-central1
客户端和专用网络 您在设置裸金属解决方案环境时选择的两个子网。 在我们的文档示例中,192.168.1.0/24连接到 Google Cloud 的客户端网络,192.168.2.0/24用于区域扩展内服务的专用网络。
名称 NFS 卷的名称。 选择卷的名称。如果您未选择名称,Google Cloud 会自动为您生成 NFS 卷名称,例如 at-1234567-nfs001
类型 您请求保存数据的存储类型。选项包括全闪存(用于选择固态硬盘 (SSD))和所有磁盘(用于选择硬盘驱动器 (HDD))。 全闪存
大小 选择所需硬盘的大小。您可以选择最少 100 GiB、最多 16 TiB 的存储空间容量。 1 TiB (1024 GiB)
启用快照 选择(如果您要启用每日快照),或者选择以停用。
  • 如果您启用此功能,则 Google Cloud 会每天执行 NFS 卷的快照并保留 7 天。7 天后,较新的快照会覆盖较旧快照。此外,我们还会为快照保留 20% 请求的 NFS 存储空间。
  • 如果您未启用此功能,则必须自行执行 NFS 卷备份。
协议 指定要使用的存储协议。使用此字段来告诉我们您需要 NFS。 NFS(网络文件系统)
网络 可以访问 NFS 卷的子网。通常,这是裸金属解决方案环境中的客户端网络。 客户端和专用网络中重复使用您在上面选择的值。
目标 允许从单个裸金属解决方案服务器(单服务器)或子网上的所有服务器 (CIDR) 访问 NFS 卷。 CIDR
服务器 可以访问 NFS 卷的裸金属解决方案服务器的名称。 例如,at-7654321-svr001
服务 IP 地址范围 从客户端网络或专用网络中选择网络 IP 地址范围的一个子集来用于存储空间和其他服务。Google Cloud 会为 NFS 等服务预留此范围。服务 IP 地址范围通常使用 /26、/27 或 /28 子网。

对于 Oracle 安装,请将裸金属解决方案客户端网络用于 NFS 文件存储,并保留专用网络用于 Oracle 应用。
在此示例中,192.168.1.240/28 是客户端网络的子网。
装载权限 选择读写权限或只读权限。 读写
无 root 用户废除 对于新的 NFS 卷,我们建议您将此选项设置为 True。默认情况下,NFS 卷具有权限 755 和所有者 root(0)。启用根用户废除后,无法将文件写入新的 NFS 卷,因为所有新的 NFS 卷都归根用户(“root”)所有。因此,请先创建 NFS 卷并设置 no_root_squash=True,构建目录结构,更改 NFS 卷的权限或所有权,然后通过移除并重新添加允许的客户端,修改 NFS 卷并设置 no_root_squash=False。请参阅更新 NFS 卷 True
允许 SUID 选择此选项可让用户在执行文件、程序或命令时暂时获得文件所有者权限。如果您不选择此选项,则 NFS 不会提供临时文件所有者权限。 False
允许 dev 选择此选项可让文件系统解读字符或阻止特殊设备。如果您不选择此选项,则系统仍然可以向 NFS 卷写入数据,但无法创建字符或阻止特殊设备。 True

Google Cloud 处理完您的订单后,会向您发送 NFS 卷路径。它将以如下格式显示:

NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME

例如,如果 NFS 服务器 IP 地址为 192.168.1.240,NFS 共享名称为 at-1234567-nfs001,则生成的 NFS 卷路径如下所示:

192.168.1.240:/at-1234567-nfs001

为裸金属解决方案配置 NFS 文件存储

以下示例可帮助您为裸金属解决方案服务器配置 NFS 文件存储,并使用 Red Hat Enterprise Linux 命令。如果您使用的是其他操作系统,则需要使用的命令可能不同。

  1. 在装载 NFS 卷之前。

    1. 确保您已创建用于访问裸金属解决方案服务器的跳转主机虚拟机实例。如需了解相关信息,请参阅在 Google Cloud 上创建跳转主机虚拟机实例
    2. 提供对裸金属解决方案服务器的互联网访问权限,使得可以下载任何必需的安装软件包。如需了解互联网访问权限,请参阅访问互联网

    3. 导航到裸金属解决方案服务器控制台。

      1. 在 Google Cloud 项目中,转到 Compute Engine > 虚拟机实例

      2. 点击跳转主机虚拟机实例的 SSH 按钮。

      3. 使用 SSH 连接到裸金属解决方案服务器,并使用您的用户名和密码登录。

        [USERNAME@INSTANCE_JUMP_HOST ~]$ ssh ADMIN_USER@BMS_SERVER_IP_ADDRESS
        ADMIN_USER@BMS_SERVER_IP_ADDRESS's password:
        Last login: Wed May 26 22:25:47 2021 from JUMP_HOST_IP_ADDRESS
        [ADMIN_USER@BMS_SERVER_NAME ~]$
        
    4. 在裸金属解决方案服务器中添加 DNS 服务器条目以访问 DNS。

      sudo bash -c "echo \"nameserver DNS_SERVER_IP_ADDRESS\" >> /etc/resolv.conf"
      

      您还可以使用 Cloud DNS 并指定入站转发器入口点来代替 DNS 服务器 IP 地址。如需详细了解 Cloud DNS,请参阅 Cloud DNS 概览

    5. 将操作系统配置为允许软件包更新。

    6. 在裸金属解决方案服务器中安装 NFS 软件包。

      sudo yum install -y nfs-utils
      
  2. 装载 NFS 卷。

    1. 在裸金属解决方案服务器中创建装载目录。

      sudo mkdir -p /mnt/DIRECTORY_NAME
      
    2. 找到 Google Cloud 发送给您的 NFS 卷路径。

    3. 装载 NFS 卷。对于 NFS 的一般用法,请使用以下命令:

       sudo mount -t nfs NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
      根据您的工作负载,您可以添加 nconnect 选项以实现最佳性能。使用以下命令和 nconnect 选项装载 NFS 卷。对于 RHEL 7,请使用多个 NFS 客户端实现类似性能。
       sudo mount -t nfs -o \
         rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,nconnect=8 \
         NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
      对于裸金属解决方案环境中的大多数 Oracle 实现,请使用以下命令来装载卷。
       sudo mount -t nfs -o \
         rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600 \
         NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
      如果您的 Oracle 实现需要在 NFS 卷上存储实时 Oracle RAC 二进制文件或数据文件,请输入以下命令以使用 actimeo 选项。这会在从多个客户端并发写入时停用客户端特性缓存,但可能会影响 I/O 性能。
       sudo mount -t nfs -o \
        -rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 \
        NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
    4. 如需在服务器重新启动时自动装载 NFS 卷,请将以下条目添加到 fstab 文件的末尾。此文件位于裸金属解决方案服务器的 /etc 目录中。使用 sudo 管理员权限和文本编辑器修改该文件,并确保每个条目之间有 3 个空格。

      NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME   /mnt/DIRECTORY_NAME   nfs    defaults,nofail   0 0
      
      [ADMIN_USER@BMS_SERVER_NAME ~]$ sudo -i
      [root@BMS_SERVER_NAME ~]# cd /etc
      [root@BMS_SERVER_NAME etc]# vi fstab
      [root@BMS_SERVER_NAME etc]# cat fstab
      #
      # /etc/fstab
      # Created by anaconda on Sun Feb 16 10:06:11 2020
      #
      # Accessible filesystems, by reference, are maintained under '/dev/disk'
      # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
      #
      /dev/mapper/rootvg-rootlv /                       xfs     defaults        0 0
      UUID=bc39a085-d080-488e-9402-d22558bc88ae /boot                   xfs     defaults        0 0
      UUID=4127-64CB          /boot/efi               vfat    defaults,uid=0,gid=0,umask=0077,shortname=winnt 0 0
      /dev/mapper/rootvg-homelv /home                   xfs     defaults        0 0
      /dev/mapper/rootvg-optlv /opt                    xfs     defaults        0 0
      /dev/mapper/rootvg-tmplv /tmp                    xfs     defaults        0 0
      /dev/mapper/rootvg-varlv /var                    xfs     defaults        0 0
      /dev/mapper/rootvg-swaplv swap                    swap    defaults        0 0
      **NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME   /mnt/DIRECTORY_NAME   nfs    defaults,nofail   0 0**
      
    5. 验证您可以访问该卷。

      mount -l | grep nfs
      
      NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME on /mnt/DIRECTORY_NAME type nfs
      (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,
      hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=NFS_SERVER_IP_ADDRESS,
      mountvers=3,mountport=635,mountproto=udp,local_lock
      =none,addr=NFS_SERVER_IP_ADDRESS)
      
    6. 在 NFS 目录中添加一个测试文件。

      cd /mnt/DIRECTORY_NAME
      echo 'testing' | sudo tee -a testfile
      sudo cat testfile
      sudo rm testfile
      

查看裸金属解决方案的 NFS 文件存储

  • 使用以下命令来查看卷。

    mount | grep NFS_SHARE_NAME
    
    NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME on /mnt/DIRECTORY_NAME type nfs
    (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,
    hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=NFS_SERVER_IP_ADDRESS,
    mountvers=3,mountport=635,mountproto=udp,local_lock
    =none,addr=NFS_SERVER_IP_ADDRESS)
    

卸载裸金属解决方案的 NFS 文件存储

  • 使用以下命令来卸载 NFS 卷并确认其已被移除。

    sudo umount /mnt/DIRECTORY_NAME
    mount | grep NFS_SHARE_NAME