维护裸金属解决方案环境

裸金属解决方案环境正常运行后,请按照本指南中提供的信息维护裸金属解决方案服务器、存储和网络。

如果您在裸金属解决方案环境中运行 SAP HANA,请参阅裸金属解决方案上的 SAP HANA 规划指南

设置 Google Cloud 项目以使用 Bare Metal Solution API

Bare Metal Solution API 提供许多工具,可让您监控和维护裸金属解决方案环境。通常,您只需在首次使用 Bare Metal Solution API 时执行此过程。但是,您可以根据需要重复使用这些说明进行问题排查,以防该 API 未按预期响应。

  1. 为您的主账号分配 Bare Metal Solution Admin 或 Bare Metal Solution Editor 预定义 IAM 角色。如需了解如何映射 IAM 角色,请参阅授予 IAM 角色

  2. 在 Google Cloud 项目中启用 Bare Metal Solution API。

    控制台

    1. 转到 Google Cloud 控制台信息中心中的 Bare Metal Solution API。您也可以从此处在 API 库中搜索 Bare Metal Solution API:API 和服务 > 库
    2. Bare Metal Solution API 页面上,点击启用
    3. 点击浏览器上的返回按钮。如果 API 已启用旁边显示绿色对勾标记,则表示您可以使用该 API。

    gcloud

    • 如需通过 gcloud 启用 Bare Metal Solution API,请在以下命令中输入您的 gcloud CLI 项目 ID,复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键:

       gcloud services enable baremetalsolution.googleapis.com --project=PROJECT_ID
       

  3. 允许 Google Cloud CLI 使用您的 Google Cloud 项目。

    1. 在 Cloud Shell 窗口中,输入 gcloud auth login 命令。
      gcloud auth login
      
    2. 复制生成的网址并将其粘贴到单独的浏览器标签页或窗口中。
    3. 使用与您的 Google Cloud 项目关联的用户名登录该页面。
    4. 点击允许以启用 gcloud CLI。
    5. 复制授权代码。
    6. 将代码粘贴到 Cloud Shell 客户端命令行中。
    7. Enter 键或 Return 键。

如需详细了解在 Google Cloud 中设置 API 所需的一般步骤,请参阅 Google Cloud API 使用入门

运行裸金属解决方案服务器

您可以在裸金属解决方案服务器上执行以下操作:

  • 启动 - 开启服务器的电源。
  • 停止 - 关闭服务器的电源。
  • 重置 - 重启服务器。

控制台

如需在服务器上执行这些操作,请按照以下步骤操作:

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 对于要启动、停止或重置的服务器,请点击

  3. 执行以下操作:

    • 如需开启服务器的电源,请点击启动
    • 如需关闭服务器的电源,请点击停止
    • 如需重启服务器,请点击重置

gcloud

  1. 如需关闭并重启裸金属解决方案服务器,请按照以下步骤操作。

    1. 务必按照 API 设置步骤操作。

      重启服务器要求您启用裸金属解决方案 API 和 gcloud CLI。您还需要向主账号授予 Bare Metal Solution Admin 或 Bare Metal Solution Editor IAM 角色。如需完成设置步骤,请参阅设置 Google Cloud 项目以使用 Bare Metal Solution API

    2. 如需关闭并重启裸金属解决方案服务器,请发出 gcloud bms instances reset 命令:

      gcloud bms instances reset SERVER_NAME --project=PROJECT_ID --region=REGION
      

      输出会显示服务器重启请求的状态。

      Reset request issued for: [SERVER_NAME]

      Waiting for operation [operations/880d346a-4836-4467-acc4-29e6a430bfdd] to complete...done.

      输入该命令后,裸金属解决方案服务器会重启。重启需要 15 到 60 分钟才能完成,具体取决于您的服务器配置。

      此命令的输出提供了一个操作 ID,可用于检查重启状态。如需使用操作 ID 并查看重启状态,请参阅查看长时间运行的操作的状态

  2. 如需开启服务器的电源,请使用 gcloud bms instances start 命令。

    gcloud bms instances start SERVER_NAME --project=PROJECT_ID --region=REGION
    

    输出会显示服务器重启请求的状态。

    Start request issued for: [SERVER_NAME]

    Waiting for operation [operations/880d346a-4836-4467-acc4-29e6a430bfdd] to complete...done.

    大多数情况下,服务器的电源会保持开启。如果您需要关闭电源,请使用以下选项:

    • 使用服务器操作系统的关闭命令。
    • 某些应用在重新成像后会自动关闭服务器的电源。
  3. 如需关闭服务器的电源,请使用 gcloud bms instances stop 命令。

    gcloud bms instances stop --project=PROJECT_ID --region=REGION SERVER_NAME
    

API

  1. 如需关闭并重启裸金属解决方案服务器,请按照以下步骤操作。

    1. 务必按照 API 设置步骤操作。

      重启服务器要求您启用裸金属解决方案 API 和 gcloud CLI。您还需要授予 Bare Metal Solution Admin 或 Bare Metal Solution Editor IAM 角色。如需完成设置步骤,请参阅设置 Google Cloud 项目以使用 Bare Metal Solution API

    2. 登录裸金属解决方案服务器以观察服务器重启。

      • 打开 Google Cloud 控制台窗口。
      • 导航到您的跳转主机虚拟机实例:Compute Engine > 虚拟机实例
      • 点击 SSH 按钮以连接到跳板机虚拟机实例。
      • 如需登录裸金属解决方案服务器,请在跳板机命令行中输入 SSH 命令。

        [username@instance-jump-host ~]$ ssh customeradmin@bms-ip-address>
        customeradmin@bms-ip-address's password: bms-password
        Last login: Mon Mar 15 22:43:19 2022 from bms-ip-address
        [customeradmin@BMS_SERVER_NAME ~]$
        
      • 输入 top 命令以验证服务器是否正在运行。您可以使用此窗口来监控重新启动的进度。

    3. 运行重启命令

      • 打开 Cloud Shell 窗口。
      • 在以下命令中添加 Google Cloud 项目 ID、区域和裸金属解决方案服务器名称。

        curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "X-Goog-User-Project: PROJECT_ID" \
        -H "Content-Type: application/json" \
        "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/BMS_SERVER_NAME:reset"
        
      • 复制命令并粘贴到 Cloud Shell 窗口中,然后按 EnterReturn 键。

        裸金属解决方案服务器会重启。重启需要 15 到 60 分钟才能完成,具体取决于您的服务器配置。

        此命令的输出提供了一个操作 ID,可用于检查重启状态。如需使用操作 ID 并查看状态,请参阅查看长时间运行的操作的状态

        {
         "name": "operations/5c0c8b3f-5edc-4117-be9f-812af9740aaf"
        }
        

        服务器重新启动时,您无法在跳板机虚拟机实例上使用 ping 或 SSH 来访问裸金属解决方案服务器。几分钟后,裸金属解决方案服务器将恢复在线状态。

        服务器恢复在线状态后,您便可以成功从跳板机虚拟机实例发出 ping 或使用 SSH 来访问裸金属解决方案服务器。

    如需详细了解如何重启裸金属解决方案服务器,请参阅 Bare Metal Solution API

  2. 如需开启服务器的电源,请输入项目 ID、区域和服务器名称,然后发出以下 curl 命令。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:start"
    

    大多数情况下,服务器的电源会保持开启。如果您需要关闭电源,请使用以下选项:

    • 使用服务器操作系统的关闭命令。
    • 某些应用在重新成像后会自动关闭服务器的电源。
  3. 如需关闭服务器的电源,请输入项目 ID、区域和服务器名称,然后发出以下 curl 命令。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:stop"
    

由于启动、停止和重启服务器需要一段时间才能完成,因此您可以按照查看长时间运行的操作的状态中的步骤来检查状态。

检查服务器的状态

服务器会在其生命周期中转换多个状态。当您启动服务器时,裸金属解决方案会为服务器预配资源。接下来,服务器为启动序列做准备。服务器启动后,将进入运行状态。在服务器正常运行期间,您可以停止并重启正在运行的服务器。

服务器可能处于以下任一状态:

  • PROVISIONING:为服务器分配资源。服务器尚未运行。
  • STARTING:获取资源。服务器正在启动。

    启动操作通常需要 30 分钟,之后服务器状态会设置为 RUNNING

  • RUNNING:服务器已启动且正在运行

    如果服务器状态为 RUNNING,但您无法使用服务器,则它可能仍在启动。如果您的服务器很大或具有许多存储卷和 LUN,则可能会发生这种情况。如需了解详情,请参阅服务器需要很长时间才能启动

  • STOPPING:服务器正在停止。

  • SHUTDOWN:服务器已停止并关闭。

  • DELETED:服务器已删除。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 状态列中,您可以查看服务器的状态。

gcloud

如需检查服务器的状态,请发出 gcloud bms instances describe 命令。

gcloud bms instances describe --project=PROJECT_ID --region=REGION SERVER_NAME

您可以在输出的 state 字段中查看服务器的状态。例如:

state: RUNNING

API

如需检查服务器的状态,请在以下 curl 命令中输入项目 ID、区域和服务器名称。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME"

您可以在输出的 state 字段中查看服务器的状态。例如:

"state" : "RUNNING"

管理裸金属解决方案环境中的资源

借助 Bare Metal Solution Management API、gcloud 命令和 Google Cloud 控制台,您可以查看裸金属解决方案环境中的资源(例如服务器、网络和存储)的状态。

务必设置 Bare Metal Solution API

如需查看资源状态,您需要启用裸金属解决方案 API 和 gcloud CLI。您还需要向主账号授予一个裸金属解决方案 IAM 角色,例如 Bare Metal Solution Admin 或 Bare Metal Solution Editor。如需在管理资源之前完成 API 设置步骤,请参阅设置 Google Cloud 项目以使用 Bare Metal Solution API

列出组织和文件夹中的裸金属解决方案资源

有时,您可能需要在组织级层或文件夹级层查看裸金属解决方案资源。如需列出组织或文件夹层级的资源,您需要拥有 IAM 权限,才能在相应层级列出这些资源。

如需了解如何向用户授予 IAM 权限,请参阅使用 IAM 对组织资源进行访问权限控制

以下是一个 Python 脚本示例,其中列出了组织或文件夹中的存储卷。您可以根据需要修改此示例脚本并使用它。例如,使用 attached=false 等过滤条件,您可以列出所有未挂接的存储卷。

如需使用此脚本在组织级层列出存储卷,您需要拥有组织级层的以下 IAM 权限:

  • resourcemanager.folders.get
  • resourcemanager.folders.list
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • baremetalsolution.volumes.list
  • baremetalsolution.luns.list

#!/usr/bin/env python

# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This file is automatically generated. Please do not modify it directly.
# Find the relevant recipe file in the samples/recipes or samples/ingredients
# directory and apply your changes there.

from typing import Sequence
from typing import Tuple
from absl import app
from absl import flags
from google.api_core.exceptions import PermissionDenied
from google.cloud import resourcemanager_v3
from google.cloud.bare_metal_solution_v2.services.bare_metal_solution import BareMetalSolutionClient
from google.cloud.bare_metal_solution_v2.types import ListVolumesRequest

_ORGANIZATION_ID = flags.DEFINE_string(
    "organization-id",
    None,
    "Your organization id retrieved from its name:"
    " organizations/<organization-id>.",
)
_FOLDER_ID = flags.DEFINE_string(
    "folder-id",
    None,
    "Your folder id retrieved from its name: folders/<folder-id>.",
)
_FILTER = flags.DEFINE_string(
    "filter",
    "",
    "Filter for the resource list request. Syntax should be per"
    " https://google.aip.dev/160",
)

def get_projects(
    parent: str,
    folders_client: resourcemanager_v3.FoldersClient,
    projects_client: resourcemanager_v3.ProjectsClient,
) -> str:
  """Retrieves a list of all project IDs available in given organization or folder parent.

  Args:
      parent: Organization ID or Folder ID of the Cloud org or folder you want
        to recursively list project IDs from.
      folders_client: Resource manager folder API client.
      projects_client: Resource manager project API client.

  Yields:
      The list of project ids as a string.
  """
  projects_request = resourcemanager_v3.ListProjectsRequest(parent=parent)
  for project in projects_client.list_projects(request=projects_request):
    yield project.project_id

  folders_request = resourcemanager_v3.ListFoldersRequest(parent=parent)
  for folder in folders_client.list_folders(request=folders_request):
    get_projects(folder.name, folders_client, projects_client)

def get_volumes_list(parent: str, filter: str) -> Tuple[str, str]:
  """Retrieves a list of all volume names available in given project.

  Args:
      parent: Organization ID or Folder ID of the Cloud org or folder you want
        to recursively list volumes from.
      filter: Filter string for the resource list call. Syntax is per
        https://google.aip.dev/160.

  Returns:
      The list of volumes as a string and the list of PermissionDenied errors in
      individual folder or projects, if any.
  """
  folders_client = resourcemanager_v3.FoldersClient()
  projects_client = resourcemanager_v3.ProjectsClient()
  bms_client = BareMetalSolutionClient()
  output = []
  errors = []

  try:
    for project in get_projects(parent, folders_client, projects_client):
      volumes_list_request = ListVolumesRequest(
          parent="projects/" + project + "/locations/global",
          filter=filter,
      )
      try:
        for volume in bms_client.list_volumes(request=volumes_list_request):
          output.append(f" -  {volume.name}")
      # This could happen because BMS API is not enabled in a certain project.
      except PermissionDenied as e:
        errors.append(
            f"Unable to list bms resources for project {project}: {e}"
        )
  except PermissionDenied as e:
    errors.append(f"Unable to access folder or project: {e}")
  return "\n".join(output), "\n".join(errors)

def main(_: Sequence[str]):
  if _ORGANIZATION_ID.value is not None and _FOLDER_ID.value is not None:
    raise Exception("Only one of organization ID or folder ID must be provided")
  elif _ORGANIZATION_ID.value is None and _FOLDER_ID.value is None:
    raise Exception(
        "Either one of organization ID or folder ID must be provided"
    )
  elif _ORGANIZATION_ID.value is not None:
    parent = f"organizations/{_ORGANIZATION_ID.value}"
  else:
    parent = f"folders/{_FOLDER_ID.value}"
  volumes, errors = get_volumes_list(parent, filter=_FILTER.value)
  print(
      "=================== Flat list of volumes in the folder or organization"
      " ==================="
  )
  print(volumes)

  print(
      "=================== List of folders or projects with errors"
      " ==================="
  )
  print(errors)

if __name__ == "__main__":
  app.run(main)

管理服务器

您可以通过以下方式管理裸金属解决方案环境中的服务器:

查看服务器

如需查看裸金属解决方案服务器的详细信息,请按照以下步骤操作:

控制台

  1. 进入服务器页面。

    前往服务器

    服务器页面列出了所有服务器及以下详细信息:

    字段 说明 示例
    状态 表示服务器的可用性 带有对勾标记的绿色圆圈表示服务器已预配且可用。
    名称 服务器名称。点击该名称可查看有关服务器的其他信息。

    注意:如果您在预配服务器时未输入名称,则 ID 会显示在此字段中。
    server-1
    ID 分配给服务器的标识符。
    • 点击该 ID 可查看有关服务器的基本信息。
    • 排查此资源的问题时,请与 Google Cloud 支持团队共享该 ID。
    at-1234567-svr001
    位置 裸金属解决方案区域 asia-southeast1
    Pod

    包含服务器的 Pod。Pod 是一个包含裸金属解决方案资源的隔离单元。不同 Pod 中的资源无法连接。一个区域可以有多个 Pod。

    Pod 列默认处于停用状态。如需启用它,请执行以下操作:

    1. 点击列显示选项
    2. 选中 Pod 复选框。
    3. 点击确定

    如果您不想启用 Pod 列,可以点击服务器名称来查看服务器的 Pod。

    asia-southeast1-pod1
    服务器类型 服务器规格 o2-standard-32-metal
    客户端 IP 连接到 Google Virtual Private Cloud 的服务器 IP 地址 10.200.0.5
    专用 IP 连接到其他裸金属解决方案环境资源的服务器 IP 地址 192.168.2.5
    标签 显示您添加到此服务器的所有标签

    如果要使用标签来过滤控制台输出,您可以复制标签文本并将其粘贴到状态字段上方的过滤条件框。
    environment:test
    服务器活动 告知可能会影响您的工作负载的任何裸金属解决方案基础架构问题。如果您的服务器正常运行且没有问题,则服务器活动字段为空。

    但是,当服务器有问题时,它会显示检测到异常。在这种情况下,我们会进行调查并通知您。 在我们解决问题后,如果您的工作负载中断,请与客户服务联系。

  2. 如需查看有关服务器的其他详细信息,请点击服务器的名称

    服务器详情页面显示了以下其他详细信息:

    字段 说明
    超线程 指示服务器上是否启用了超线程。
    操作系统映像 在服务器上运行的操作系统。
    固件版本 服务器当前固件版本。
    网络模板 服务器所使用的网络模板。
    SSH 密钥 服务器的 SSH 密钥(如果您已配置)。
    密码加密密钥 服务器的加密密钥(如果您已配置)。
    登录信息 获取登录密码的过程。
    用户帐号 用户名及其对应的加密密码。
    网络 连接到服务器的网络的详细信息。
    LUN 连接到服务器的 LUN 的详细信息。

gcloud

  1. 如需列出裸金属解决方案环境中的服务器并查看它们的状态,请输入项目 ID 并发出 gcloud bms instances list 命令:

    gcloud bms instances list --project=PROJECT_ID
    

    以下输出示例显示了服务器的信息,例如服务器名称、类型、IP 地址和状态。

    NAME               PROJECT              REGION           MACHINE_TYPE          IP_ADDRESSES             STATE
    SERVER_NAME      PROJECT_ID        REGION         o2-standard-32-metal  192.168.1.1,192.168.2.1  RUNNING
    

    其他命令选项包括:

    • --region:查看特定 Google Cloud 区域中的设备。
    • --limit:限制输出以显示特定数量的设备
  2. 如需获取裸金属解决方案环境中特定服务器的网络和存储信息,请输入服务器名称、项目 ID 和区域,然后发出 gcloud bms instances describe 命令:

    gcloud bms instances describe SERVER_NAME --project=PROJECT_ID --region=REGION
    

    以下输出示例显示了一个运行中的服务器,该服务器具有 12 个 LUN,客户端网络为 192.168.1.1,专用网络为 192.168.2.1。

    luns:
    - bootLun: true
      name: SERVER_NAME-lun000-b1
      sizeGb: '200'
      state: READY
      storageVolume: SERVER_NAME-vol000-b1
    - name: STORAGE_DEVICE_NAME-lun001
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun002
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun003
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun004
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun005
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun006
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun007
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun008
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun009
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun010
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun011
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    - name: STORAGE_DEVICE_NAME-lun012
      sizeGb: '85'
      state: READY
      storageVolume: STORAGE_DEVICE_NAME-vol001
    machineType: o2-standard-32-metal
    name: projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME
    networks:
    - ipAddress: 192.168.1.1
      macAddress:
      - 34:80:0D:52:AF:28
      - 34:80:0D:15:3E:0D
      network: STORAGE_DEVICE_NAME-vlan001
    - ipAddress: 192.168.2.1
      macAddress:
      - 34:80:0D:52:AF:38
      - 34:80:0D:15:3E:1D
      network: STORAGE_DEVICE_NAME-vlan002
    state: RUNNING
    

API

  1. 打开 Google Cloud 控制台中的 Cloud Shell 终端窗口

  2. 如需列出裸金属解决方案环境中的服务器并查看其状态,请在以下 curl 命令中输入您的项目 ID 和区域,复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"
    
  3. 如需获取裸金属解决方案环境中的服务器的网络和存储信息,请发出以下命令:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME"
    

使用标签整理服务器

为帮助整理服务器,您可以使用标签。标签采用键值对形式,您可以将其附加到每个服务器,然后根据其标签过滤服务器。例如,您可以使用标签按用途、环境、位置、部门等对服务器进行分组。标签是可选项。

为服务器添加或更新标签

您可以为现有服务器添加或更新标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 对于要为其添加标签的服务器,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 点击 添加标签,然后添加键值对。
    2. 如需更新标签,请选择现有标签并修改其值。
    3. 点击提交
  5. 返回服务器页面后,刷新该页面即可查看您所做的更改。

gcloud

如需为服务器添加或更新标签,请将 gcloud bms instances update 命令与 --update-labels 选项结合使用。

以下示例命令会添加标签 environment = devlocation = branch

gcloud bms instances update SERVER_NAME --project=PROJECT_ID --region=REGION --update-labels environment=dev,location=branch

如果您为已存在的标签提供新值,则系统会使用新标签值更新现有键。如果您提供新标签,则系统会将新标签添加到标签列表中。

API

如需为服务器添加或更新标签,请在以下 curl 命令中输入项目 ID、区域、服务器名称和标签列表。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会分配标签 environment = test

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

移除服务器的标签

您可以移除服务器的标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 对于要移除其标签的服务器,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 如需删除标签,请点击
    2. 点击提交
  5. 返回服务器页面后,刷新该页面即可查看您所做的更改。

gcloud

如需移除服务器的标签,请将 gcloud bms instances update 命令与以下选项结合使用:

  • --remove-labels:移除指定的标签。
  • --clear-labels:移除所有标签。

以下示例命令会移除服务器的 department 标签:

gcloud bms instances update SERVER_NAME --project=PROJECT_ID --region=REGION --remove-labels=department

以下示例命令会移除服务器的所有标签:

gcloud bms instances update SERVER_NAME --project=PROJECT_ID --region=REGION --clear-labels

API

如需移除服务器的标签,请在以下 curl 命令中输入项目 ID、区域和服务器名称。提供一个空的标签列表以移除所有标签,或提供您要保留的标签列表(去掉您要移除的标签)。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会移除 environment = test 以外的所有标签。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

使用标签过滤服务器

您可以搜索服务器并使用标签过滤结果。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 点击服务器列表上方的 过滤条件栏。

  3. 属性列表中,选择标签

  4. 输入标签的键、值或键值对。

    例如,如需仅查看标签为 env:dev 的服务器,您可以输入以下任一项:

    • 输入键:env
    • 输入值:dev
    • 输入键值对:env:dev
  5. 如需应用标签过滤条件,请点击过滤条件栏外部的任意位置。

gcloud

如需使用标签过滤服务器,请将 gcloud bms instances list 命令与 --filter 选项结合使用。

--filter 选项的值必须采用 labels.KEY=VALUE 格式。例如,如果您要按键为 env、值为 dev 的标签进行过滤,请发出以下命令:

gcloud bms instances list --project=PROJECT_ID --region=REGION --filter labels.environment=dev

如需详细了解 gcloud CLI 中的过滤条件语法,请参阅 gcloud topic filters 文档

API

如需使用标签过滤服务器,请输入项目 ID 和区域,以及 filter=labels 和键值对标签。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会限制输出,以查找键值对标签为 environment = test 的服务器。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"?filter=labels.environment=test

重命名服务器

要重命名服务器,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,打开 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 点击服务器名称。

  3. 服务器详情页面的名称字段中,点击 修改名称

  4. 修改名称页面上,输入新名称。

  5. 点击保存

  6. 如需查看更改,请刷新页面。

gcloud

如需重命名服务器,请使用 gcloud bms instances rename 命令。

gcloud bms instances rename SERVER_NAME --new-name=NEW_NAME --project=PROJECT_ID --region=REGION

替换以下内容:

  • SERVER_NAME:服务器的当前名称。
  • NEW_NAME:服务器的新名称。
  • PROJECT_ID:您的项目 ID。
  • REGION:服务器的位置。

检索服务器的初始密码

当您首次接收裸金属解决方案服务器或更改操作系统时,服务器将以默认状态启动并且具有初始密码。首次访问服务器时必须使用此密码。输入初始密码后,服务器会提示您更改密码。

如需查找初始密码,请按以下步骤操作:

gcloud

  1. 在检索密码之前,请确保您已激活 Google Cloud 为您提供的服务帐号。
  2. 在包含裸金属解决方案资源的项目中,激活 Cloud Shell 并发出 gcloud bms instances describe 命令。

    gcloud bms instances describe SERVER_NAME --project=PROJECT_ID --region=REGION
    
  3. 在输出中找到 loginInfo 字段,然后按照说明操作。

  4. 如果 loginInfo 字段包含 gcloud beta secrets versions access 命令,请将该命令复制并粘贴到命令行提示符中,然后按 Enter 键或 Return 键。

  5. 检索用户名(通常为 customeradmin)和密码。

  6. 使用这些凭据登录服务器

  7. 更改密码。

API

  1. 在检索密码之前,请确保您已激活 Google Cloud 为您提供的服务帐号。
  2. 在包含裸金属解决方案资源的项目中,访问 Cloud Shell。
  3. 在以下 curl 命令中输入您的项目 ID、区域和服务器名称,将此命令复制并粘贴到命令行提示符中,然后按 Enter 键或 Return 键:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME"
    
  4. 在输出中找到 loginInfo 字段,然后按照说明操作。

  5. 如果 loginInfo 字段包含 gcloud beta secrets versions access 命令,请将该命令复制并粘贴到命令行提示符中,然后按 Enter 键或 Return 键。

  6. 检索用户名(通常为 customeradmin)和密码。

  7. 使用这些凭据登录服务器

  8. 更改密码。

查看操作系统详情

如需查看服务器的操作系统 (OS) 详细信息,请运行 gcloud bms os-images describe 命令以查看操作系统详细信息。

gcloud bms os-images describe OS_IMAGE --project=PROJECT_ID

替换以下内容:

  • OS_IMAGE:操作系统映像代码。如需获取适用于您的操作系统的操作系统映像代码,请参阅操作系统
  • PROJECT_ID:项目 ID。

示例:

gcloud bms os-images describe OEL8x --project=test-project

以下是示例输出:

applicableInstanceTypes:
- o2-highmem-224-metal
- o2-standard-112-metal
- o2-standard-16-metal
- o2-standard-32-metal
- o2-standard-48-metal
code: OEL8x
description: Oracle Linux 8.8 [5.4.17-2136.324.5.3.el8uek.x86_64]
name: projects/bmaas-testing/locations/global/osImages/OEL8x
supportedNetworkTemplates:
- s200-bondaa-bondaa
- s400-bondaa-bondaa

更改服务器的操作系统

您可以使用其他操作系统映像对裸金属解决方案服务器重装映像。更改操作系统映像需要很长时间才能完成,并且需要重启服务器。如需选择某个可用的操作系统映像,请使用操作系统选项。

控制台

您可以从 Google Cloud 控制台为裸金属解决方案服务器重装映像。

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器
  2. 对于您要重装映像的服务器,请点击 菜单。
  3. 点击修改
  4. 修改服务器页面上,执行以下操作:

    • 选中为服务器重装映像复选框。
    • 操作系统映像列表中,选择要安装的操作系统映像。
    • (可选)为服务器密码设置加密密钥。

      • 密码加密密钥列表中,选择一个密钥。
      • 版本列表中,选择加密密钥的版本。

      如需详细了解如何将加密密钥与裸金属解决方案搭配使用,请参阅为服务器设置加密密钥

    • (可选)为服务器设置或更改 SSH 密钥。

      • SSH 密钥列表中,选择相应密钥。该列表仅显示与您的服务器位于同一项目中的 SSH 密钥。

      如需更改服务器的现有 SSH 密钥,请取消选择要更改的密钥,然后选择新密钥。

      如需详细了解如何将 SSH 密钥与裸金属解决方案搭配使用,请参阅为服务器设置 SSH 密钥

    • 点击保存

gcloud

运行 gcloud bms instances update 命令以更改服务器上的操作系统映像。如需了解操作系统映像代码,请参阅操作系统

gcloud bms instances update SERVER_NAME --region REGION --os-image=OS_IMAGE

如需设置 SSH 密钥和/或加密密钥,请使用 gcloud alpha bms instances update 命令。您可以将键指定为名称,也可以指定为完整资源。

gcloud alpha bms instances update SERVER_NAME --region REGION --os-image=OS_IMAGE --kms-crypto-key-version=KMS_CRYPTO_KEY_VERSION --ssh-keys=KEY_1,KEY_2

示例:

gcloud alpha bms instances update server1 --region europe-west3 --os-image=OS_IMAGE --kms-crypto-key-version=projects/bmaas-testing/locations/global/keyRings/e2e-test/cryptoKeys/e2e-test-key/cryptoKeyVersions/1 --ssh-keys=e2e-test-key-1,e2e-test-key-2

API

如需更新裸金属解决方案方案服务器上的操作系统映像,请输入项目 ID、区域、服务器名称和操作系统映像,然后发出以下 curl 命令。如需了解操作系统映像代码,请参阅操作系统

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME?updateMask=os_image"
 -d "{
  'osImage' : 'OS_IMAGE'
}"

由于此更改需要一段时间才能完成,您可以按照查看长时间运行的操作的状态中的步骤检查状态。

在服务器上启用超线程

您可以在裸金属解决方案服务器上启用或停用超线程。此操作需要很长时间才能完成,并且需要重启服务器。

控制台

您可以在 Google Cloud 控制台中启用或停用裸金属解决方案服务器上的超线程。

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器
  2. 对于您要启用/停用超线程的服务器,点击 菜单。
  3. 点击 修改
  4. 修改服务器页面上:
    • 如需启用超线程,请选中启用超线程复选框。
    • 如需停用超线程,请取消选中启用超线程复选框。
    • 点击保存

gcloud

运行 gcloud bms instances update 命令以启用或停用超线程。

  • 添加 --enable-hyperthreading 选项可启用超线程。
  • 添加 –no-enable-hyperthreading 选项可停用超线程。
gcloud bms instances update SERVER_NAME --region REGION --enable-hyperthreading

API

如需更改服务器的当前超线程功能,请在以下 curl 命令中输入项目 ID、区域和服务器名称。如果要启用超线程,请为超线程值添加 true;如果要停用,请添加 false

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME?updateMask=hyperthreading_enabled"
 -d "{
  'hyperthreadingEnabled' : 'HYPERTHREADING_VALUE'
}"

由于此更改需要一段时间才能完成,您可以按照查看长时间运行的操作的状态中的步骤检查状态。

管理 VRF

裸金属解决方案环境中的每个客户端网络均连接到 VRF,以实现与 Google Cloud 中的 VPC 网络互连。而每个 VRF 都有 VLAN 连接对。

您可以通过以下方式管理裸金属解决方案环境中的 VRF 和 VLAN 连接:

查看 VRF

如需查看 VRF 的详细信息,请按以下步骤操作:

  1. 前往 VRF 页面。

    前往 VRF

    VRF 页面列出了您的所有 VRF,详细信息如下:

    字段 说明
    Status 表示 VRF 的可用性。
    名称 VRF 的名称。点击该名称可查看有关 VRF 的其他信息。

    注意:如果您在配置 VRF 时没有输入名称,ID 会显示在此字段中。
    ID 为您的 VRF 分配的标识符。
    • 点击 ID 可查看有关 VRF 的其他信息。
    • 对此资源进行问题排查时,请与 Google Cloud 支持团队分享此 ID。
    区域 (Region) VRF 所在的地区。
    Pod

    包含您的 VRF 的 Pod。Pod 是包含裸金属解决方案资源的隔离单元。不同 Pod 中的资源无法连接。一个区域可以有多个 Pod。

    Pod 列默认处于停用状态。如需启用它,请执行以下操作:

    1. 点击列显示选项
    2. 选中 Pod 复选框。
    3. 点击确定

    如果您不想启用 Pod 列,可以点击 VRF 名称或 ID 来查看 VRF 的 Pod。

  2. 如需查看有关 VRF 的更多详情,请点击 VRF 的名称ID

    VRF 详细信息页面显示了以下其他详细信息:

    字段 说明
    VLAN 连接对 与 VRF 关联的 VLAN 连接对的详细信息,例如对等 IP、路由器 IP 和带宽。
    成员网络 与 VRF 关联的网络的列表。您可以通过点击相应网络来查看其详细信息。

创建 VRF

通过 Google Cloud 控制台信息录入表单预配新网络时,系统会隐式创建 VRF。不过,您也可以创建 VRF。

如需创建新的 VRF,请按以下步骤操作:

  1. 前往 VRF 页面。

    前往 VRF

  2. 点击创建

  3. 输入 VRF 的名称。

  4. 区域列表中,为 VRF 选择一个区域。

  5. Pod 列表中,为 VRF 选择一个 Pod。

    Pod 下拉列表还会显示所选位置的每个 Pod 中的现有裸金属解决方案资源的数量。

    如果不确定要选择哪个 Pod,请与 Google Cloud 销售人员联系。

  6. 添加 VLAN 连接对。

    创建 VRF 时,您只能添加一个 VLAN 连接对。创建 VRF 后,您可以按照添加 VLAN 连接对中的步骤添加更多 VLAN 连接对。

    1. 点击添加 VLAN 连接对
    2. 带宽列表中,选择要分配给 VLAN 连接对的带宽量。
    3. 如需从当前项目添加 VLAN 连接,请执行以下操作:
      1. 选中选择当前项目中的 VLAN 连接复选框。
      2. 第一个 VLAN 连接列表中,选择第一个 VLAN 连接。
      3. 第二个 VLAN 连接列表中,选择第二个 VLAN 连接。
    4. 如需添加其他项目的 VLAN 连接,请执行以下操作:
      1. 取消选中选择当前项目中的 VLAN 连接复选框。
      2. 第一个 VLAN 连接 ID 字段中,输入第一个 VLAN 连接的 ID。
      3. 第二个 VLAN 连接 ID 字段中,输入第二个 VLAN 连接的 ID。
    5. 点击完成
  7. 点击创建

删除 VRF

在删除 VRF 之前,必须删除其所有 VLAN 连接对和所连接的网络。请参阅删除 VLAN 连接对删除网络

如需删除 VRF,请按以下步骤操作:

  1. 前往 VRF 页面。

    前往 VRF

  2. 选择要删除的 VRF。

  3. 点击删除

  4. 点击确认

管理 VLAN 连接

您可以通过以下方式管理 VLAN 连接对:

添加 VLAN 连接对

一个 VRF 可以有多个 VLAN 连接对。但是,一个 VLAN 连接只能与一个 VRF 配对。

  1. 前往 VRF 页面。

    前往 VRF

  2. 点击 VRF 名称。

  3. VRF 详情页面的 VLAN 连接对部分中,点击创建

  4. 新建 VLAN 连接对页面上,执行以下操作:

  5. 带宽列表中,选择要分配给 VLAN 连接对的带宽量。

  6. 如需选择当前项目中的 VLAN 连接,请执行以下操作:

    1. 选中选择当前项目中的 VLAN 连接复选框。
    2. 第一个 VLAN 连接列表中,选择第一个 VLAN 连接。
    3. 第二个 VLAN 连接列表中,选择第二个 VLAN 连接。
  7. 如需从其他项目中添加 VLAN 连接,请执行以下操作:

    1. 清除选择当前项目中的 VLAN 连接复选框。
    2. 第一个 VLAN 连接 ID 字段中,添加第一个 VLAN 连接的 ID。
    3. 第二个 VLAN 连接 ID 字段中,添加第二个 VLAN 连接的 ID。
  8. 点击创建

由于创建 VLAN 连接对需要一段时间才能完成,因此您可以按照查看长时间运行的操作的状态中的步骤检查状态。

更新 VLAN 连接对

您只能更新 VLAN 连接对的带宽。

  1. 前往 VRF 页面。

    前往 VRF

  2. 点击 VRF 名称。

  3. VRF 详情页面的 VLAN 连接对部分中,选择要更新的 VLAN 连接对。

  4. 点击修改

  5. 修改 VLAN 连接对页面上,执行以下操作:

    1. 带宽列表中,选择要分配给 VLAN 连接对的带宽量。
    2. 点击保存

由于更新 VLAN 连接对需要一段时间才能完成,因此您可以按照查看长时间运行的操作的状态中的步骤检查状态。

删除 VLAN 连接对

按照此步骤中的步骤删除 VLAN 连接对只会取消 VLAN 连接对与 VRF 的关联,而不会将其删除。

  1. 前往 VRF 页面。

    前往 VRF

  2. 点击 VRF 名称。

  3. VRF 详情页面的 VLAN 连接对部分中,选择要删除的 VLAN 连接对。

  4. 点击删除

由于删除 VLAN 连接对需要一段时间才能完成,因此您可以按照查看长时间运行的操作的状态中的步骤检查状态。

管理网络

您可以通过以下方式管理裸金属解决方案环境中的网络:

查看网络

通过监控裸金属解决方案环境中的网络资源,您可以了解服务器如何连接到其他资源。

如需查看网络的详细信息,请按照以下步骤操作:

控制台

  1. 进入网络页面。

    前往“网络”页面

    网络页面列出了所有网络及以下详细信息:

    字段 说明 示例
    状态 指明网络的可用性 带有对勾标记的绿色圆圈表示网络已预配且可用。
    ID 分配给网络的标识符。
    • 点击该 ID 可查看有关网络的基本信息。
    • 排查此资源的问题时,请与 Google Cloud 支持团队共享该 ID。
    at-1234567-vlan001
    名称 网络名称。点击该名称可查看有关网络的其他信息。

    注意:如果您在预配网络时未输入名称,则 ID 会显示在此字段中。
    network-1
    位置 网络所在的区域 asia-southeast1
    Pod

    包含网络的 Pod。Pod 是一个包含裸金属解决方案资源的隔离单元。不同 Pod 中的资源无法连接。一个区域可以有多个 Pod。

    Pod 列默认处于停用状态。如需启用它,请执行以下操作:

    1. 点击列显示选项
    2. 选中 Pod 复选框。
    3. 点击确定

    如果您不想启用 Pod 列,则可以点击网络名称来查看网络的 pod。

    asia-southeast1-pod1
    类型 客户端或专用网络 Client
    CIDR 网络的 IP 地址范围 192.168.1.0/24
    VLAN ID Google Cloud 分配的 VLAN 标识符 100
    标签 显示您添加到此网络资源中的任何标签

    如果要使用标签来过滤控制台输出,您可以复制标签文本并将其粘贴到状态字段上方的过滤器框。
    environment:test
  2. 如需查看网络的更多详细信息,请点击相应网络的名称ID

    网络详情页面显示了以下其他详细信息:

    字段 说明
    网关 IP 网络中网关的 IP 地址。
    服务 IP 地址范围 您的服务器上运行的操作系统。
    MTU 网络的 MTU。
    视频录像机 (VRF) 与影音平台关联的 VRF。
    已使用的地址 通过该网络连接的服务器的 IP 地址。

gcloud

  1. 如需查看裸金属解决方案环境中的所有网络并查看其状态,请输入项目 ID 并发出 gcloud bms networks list 命令。

    gcloud bms networks list --project=PROJECT_ID
    
    以下输出示例展示了每个网络的网络名称、区域、IP 地址范围、网络类型和 VLAN ID。
    NAME                REGION           RANGE           TYPE     VLAN_ID
    at-1111111-vlan001  REGION         192.168.1.0/24  CLIENT   122
    at-1111111-vlan002  REGION         192.168.2.0/24  PRIVATE  123
    
  2. 如需查看单个网络的详细信息,请输入项目 ID、区域和网络名称,然后发出以下 gcloud bms networks describe 命令:

    gcloud bms networks describe NETWORK_NAME --project=PROJECT_ID --region=REGION
    
    以下输出示例展示了 IP 地址范围、网络名称、状态、网络类型、VLAN ID 以及虚拟路由和转发 (VRF) 详细信息。
    cidr: 192.168.1.0/24
    name: projects/PROJECT_ID/locations/REGION/networks/NETWORK_NAME
    state: PROVISIONED
    type: CLIENT
    vlanId: '122'
    vrf:
      autonomousSystemNumber: '65500'
      juniperAlias: g00000-at-1111111-ic001
      name: at-1111111-ic001
      routeTarget: '282'
      state: PROVISIONED
    

API

  1. 打开 Google Cloud 控制台中的 Cloud Shell 终端窗口。

  2. 如需查看裸金属解决方案环境中的所有网络并查看其状态,请在下面的 curl 命令中输入项目 ID 和区域。复制命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/networks"
    
  3. 如需查看单个网络的详细信息,请输入项目 ID、区域和网络名称,然后发出以下命令:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/networks/NETWORK_NAME"
    

使用标签整理网络

您可以使用标签来整理您的网络。标签采用键值对形式,您可以将其附加到每个服务器,然后根据其标签过滤网络。例如,您可以使用标签按用途、环境、位置、部门等对网络进行分组。标签是可选项。

为网络添加或更新标签

您可以为现有广告联盟添加或更新标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 网络页面。

  2. 对于要为其添加标签的网络,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 点击 添加标签,然后添加键值对。
    2. 如需更新标签,请选择现有标签并修改其值。
    3. 点击提交
  5. 返回网络页面后,刷新该页面即可查看您所做的更改。

gcloud

如需为网络添加或更新标签,请将 gcloud bms networks update 命令与 --update-labels 选项结合使用。

以下示例命令会添加标签 environment = devlocation = branch

gcloud bms networks update NETWORK_NAME --project=PROJECT_ID --region=REGION --update-labels environment=dev,location=branch

如果您为已存在的标签提供新值,则系统会使用新值更新现有标签。如果您提供新标签,则系统会将新标签添加到标签列表中。

API

如需为网络添加或更新标签,请在以下 curl 命令中输入项目 ID、区域、服务器名称和标签列表。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会分配标签 environment = test

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/networks/NETWORK_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

移除网络的标签

您可以移除网络的标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 网络页面。

  2. 对于要移除其标签的网络,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 如需删除标签,请点击
    2. 点击提交
  5. 返回网络页面后,刷新该页面即可查看您所做的更改。

gcloud

如需移除网络的标签,请将 gcloud bms networks update 命令与以下选项结合使用:

  • --remove-labels:移除指定的标签。
  • --clear-labels:移除所有标签。

以下示例命令会移除网络的 department 标签:

gcloud bms networks update NETWORK_NAME --project=PROJECT_ID --region=REGION --remove-labels=department

以下示例命令会移除网络的所有标签:

gcloud bms networks update NETWORK_NAME --project=PROJECT_ID --region=REGION --clear-labels

API

如需移除网络的标签,请在以下 curl 命令中输入项目 ID、区域和网络名称。提供一个空的标签列表以移除所有标签,或提供您要保留的标签列表(去掉您要移除的标签)。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会移除 environment = test 以外的所有标签。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/networks/NETWORK_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

使用标签过滤网络

您可以搜索网络并使用标签过滤结果。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 网络页面。

  2. 点击网络列表上方的 过滤条件栏。

  3. 属性列表中,选择标签

  4. 输入标签的键、值或键值对。

    例如,如需仅查看标签为 env:dev 的网络,您可以输入以下任一项:

    • 输入键:env
    • 输入值:dev
    • 输入键值对:env:dev
  5. 如需应用标签过滤条件,请点击过滤条件栏外部的任意位置。

gcloud

如需使用标签过滤网络,请将 gcloud bms networks list 命令与 --filter 选项结合使用。

--filter 选项的值必须采用 labels.KEY=VALUE 格式。例如,如果您要按键为 env、值为 dev 的标签进行过滤,请发出以下命令:

gcloud bms networks list --project=PROJECT_ID --region=REGION --filter labels.environment=dev

如需详细了解 gcloud CLI 中的过滤条件语法,请参阅 gcloud topic filters 文档

API

如需使用标签过滤网络,请输入项目 ID 和区域,以及 filter=labels 和键值对标签。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会限制输出,以查找键值对标签为 environment = test 的网络。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/networks"?filter=labels.environment=test

重命名网络

要重命名网络,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,打开 Compute Engine > 裸金属解决方案 > 网络页面。
  2. 点击网络名称。
  3. 网络详情页面的名称字段中,点击 修改名称
  4. 修改名称页面上,输入新名称。
  5. 点击保存
  6. 如需查看更改,请刷新页面。

gcloud

如需重命名网络,请使用 gcloud bms networks rename 命令。

gcloud bms networks rename NETWORK_NAME --new-name=NEW_NAME --project=PROJECT_ID --region=REGION

替换以下内容:

  • NETWORK_NAME:网络的当前名称。
  • NEW_NAME:网络的新名称。
  • PROJECT_ID:您的项目 ID。
  • REGION:网络的位置。

创建网络

您必须先创建 VRF,然后才能创建网络。请参阅创建 VRF

如需创建网络,请按以下步骤操作:

  1. 进入网络页面。

    前往“网络”页面

  2. 点击创建

  3. 输入网络的名称。

  4. 位置列表中,选择网络的区域。

  5. Pod 列表中,为该网络选择一个 Pod。

    Pod 下拉列表还会显示所选位置的每个 Pod 中的现有裸金属解决方案资源的数量。

    如果不确定要选择哪个 Pod,请与 Google Cloud 销售人员联系。

  6. 选择网络的类型:

    1. 如需创建客户端网络,请选择客户端
    2. 如需创建专用网络,请选择专用
  7. (仅在选择了客户端网络类型时适用)在 VRF 列表中,选择一个 VRF。

  8. 网络 IP 地址范围字段中,输入该网络的 IP 地址范围。

  9. (可选)在服务 IP 地址范围字段中,输入网络的服务 IP 地址范围。

  10. 为网络选择 MTU

    1. 1500 - 适用于标准大小的帧。
    2. 9000 - 适用于巨型帧。
  11. 点击保存

将网络连接到服务器

如果网络的 IP 地址范围与连接到服务器的另一个网络重叠,则您无法将该网络连接到服务器。

要连接网络,请按以下步骤操作:

  1. 进入网络页面。

    前往“网络”页面

  2. 点击服务器名称。

  3. 服务器详情页面上,点击连接网络

  4. 连接网络页面上,执行以下操作:

    1. 如需从组织中的其他项目选择网络,请执行以下操作:
      1. 选中从组织中的其他项目中选择网络复选框。
      2. 选择现有广告联盟列表中,选择一个广告联盟。
    2. 要从当前项目中选择网络,请执行以下操作:

      1. 清除从组织中的其他项目中选择网络复选框。
      2. 选择现有广告联盟列表中,选择一个广告联盟。
    3. 设置接口配置:

      1. 接口列表中,为网络选择一个绑定接口。

        在大多数情况下,请为客户端网络选择 bond0,为专用网络选择 bond1

      2. IP 地址字段中,输入要连接的网络中的 IP 地址。

  5. (可选)如需将此网络设置为默认网关,请选中默认网关复选框。

  6. 点击连接网络

    服务器状态会更改为“正在预配”。连接网络是一项长时间运行的操作。如需查看状态,请在 Google Cloud 控制台中点击 通知。您还可以按照查看长时间运行的操作的状态中的步骤操作。 操作完成后,服务器状态会更改为“正在运行”。

  7. 更新裸金属解决方案服务器的操作系统配置。

    完成通过 Google Cloud 控制台连接网络的步骤且服务器状态更改为“正在运行”后,您必须更新裸金属解决方案服务器的操作系统配置。如果您不更新操作系统配置,则在 Google Cloud 控制台中所做的更改不会完全实现。此过程中的后续步骤将介绍如何更新操作系统配置。

    后续步骤仅供参考,可能会因操作系统而异。如果您遇到任何问题,请参阅操作系统配置指南。

    RHEL 和 Oracle Linux

    1. 以根用户身份登录。
    2. 创建新连接。运行以下命令:

      nmcli connection add type vlan con-name INTERFACE_NAME.VLAN_ID  ifname INTERFACE_NAME.VLAN_ID dev INTERFACE_NAME mtu MTU id VLAN_ID ip4 IP_ADDRESS/NETMASK ipv6.method "ignore"
      

      替换以下内容:

      • INTERFACE_NAME:您要将网络连接到的接口的名称。即您在此过程的第 6 步(设置接口配置)中选择的接口。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要连接的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络
      • IP_ADDRESS:网络中裸金属解决方案服务器的 IP 地址。该地址与您在此过程的第 6 步(设置接口配置)中输入的 IP 地址相同。 您可以从服务器详细信息页面的网络部分获取此 IP 地址。请参阅查看服务器
      • NETMASK:您要连接的网络的网络掩码。您可以从网络详情页面上的 CIDR 字段获取网络掩码。 请参阅查看网络
      • MTU:您要连接的网络的 MTU。您可以从网络详情页面获取 MTU。请参阅查看网络

      示例:

      nmcli connection add type vlan con-name bond0.114 ifname bond0.114 dev bond0 mtu 1500 id 114 ip4 172.16.80.1/24 ipv6.method "ignore"
      
    3. (可选)如果您已创建客户端网络,并且想要使用此网络从 VPC 连接到 VLAN 连接或其他环境(例如本地环境),请配置到特定子网的路由。以根用户身份运行以下命令:

      nmcli connection modify INTERFACE_NAME.VLAN_ID +ipv4.routes "SUBNET GATEWAY_IP"
      
      nmcli connection up INTERFACE_NAME.VLAN_ID
      

      替换以下内容:

      • INTERFACE_NAME:您要将网络连接到的接口的名称。即您在此过程的第 6 步(设置接口配置)中选择的接口。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要连接的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络
      • SUBNET:用于通过客户端网络连接到裸金属解决方案服务器的网络 IP 地址和掩码(采用 CIDR 表示法)。如果这是您的 VPC 网络,您可以从 VPC 网络页面的子网部分获取子网。请参阅列出子网。 如果这是其他环境,请与您的网络管理员联系。
      • GATEWAY_IP:您要连接的网络中的网关的 IP 地址。您可以从网络详情页面获取网关 IP。 请参阅查看网络

      示例:

      nmcli connection modify bond0.114 +ipv4.routes "192.168.122.0/24 172.16.80.254"
      
      nmcli connection up bond0.114
      
    4. (可选)如果您创建了一个客户端网络并在此过程的第 7 步(默认网关)中将其设置为默认网关,请按照以下步骤更新您的操作系统配置:

      1. 完成上一步,即第 9.c 步
      2. 确保您已通过新的客户端网络连接到裸金属解决方案服务器。例如,从此网络使用 VLAN 连接所连接到的 VPC 中的虚拟机连接到服务器。
      3. 如需将此网络设置为默认网关,请在旧网络上停用默认网关设置,然后在此网络上启用默认网关设置。以根用户身份运行以下命令:

        nmcli connection modify OLD_INTERFACE_NAME.OLD_VLAN_ID ipv4.gateway ""
        
        nmcli connection modify INTERFACE_NAME.VLAN_ID ipv4.gateway GATEWAY_IP
        
        nmcli connection up INTERFACE_NAME.VLAN_ID
        
        nmcli connection up OLD_INTERFACE_NAME.OLD_VLAN_ID
        

        替换以下内容:

        • OLD_INTERFACE_NAME:旧默认网关网络连接到的接口的名称。您可以从服务器详情页面的网络部分中或通过检查裸金属解决方案服务器操作系统配置来获取接口名称,即使用 ip anmcli connection show 命令。
        • OLD_VLAN_ID:旧默认网关网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。请参阅查看网络,或检查裸金属解决方案服务器操作系统配置,即使用 ip anmcli connection show commands
        • INTERFACE_NAME:新网络连接到的接口的名称。该接口就是您在此过程的第 11 步(设置接口配置)中选择的接口。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
        • VLAN_ID:新网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络
        • GATEWAY_IP:新网络中网关的 IP 地址。您可以从网络详情页面获取网关 IP。请参阅查看网络

        示例:

        nmcli connection modify bond0.143 ipv4.gateway ""
        
        nmcli connection modify bond0.114 ipv4.gateway 172.16.80.254
        
        nmcli connection up bond0.114
        
        nmcli connection up bond0.143
        

    SLES

    1. 以根用户身份登录。
    2. 按以下命名惯例在位置 /etc/sysconfig/network 处创建一个接口配置 (ifcfg) 文件:

      ifcfg-INTERFACE_NAME.VLAN_ID
      

      替换以下内容:

      • INTERFACE_NAME:您要将网络连接到的接口的名称。即您在此过程的第 6 步(设置接口配置)中选择的接口。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要连接的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络

      完成后,您的文件的路径如下所示:

      /etc/sysconfig/network/ifcfg-INTERFACE_NAME.VLAN_ID
      
    3. ifcfg 文件中为网络接口添加以下信息。

      NAME='INTERFACE_NAME.VLAN_ID'
      ETHERDEVICE='INTERFACE_NAME'
      STARTMODE='auto'
      USERCONTROL='no'
      BOOTPROTO='static'
      IPADDR='IP_ADDRESS/NETMASK'
      MTU=MTU
      VLAN='yes'
      

      替换以下内容:

      • INTERFACE_NAME:您要将网络连接到的接口的名称。即您在此过程的第 6 步(设置接口配置)中选择的接口。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要连接的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络
      • IP_ADDRESS:网络中裸金属解决方案服务器的 IP 地址。该地址与您在此过程的第 6 步(设置接口配置)中输入的 IP 地址相同。 您可以在网络部分的“服务器详细信息”页面中找到 IP 地址。
      • NETMASK:您要连接的网络的网络掩码。您可以从网络详情页面上的 CIDR 字段获取网络掩码。 请参阅查看网络
      • MTU:您要连接的网络的 MTU。您可以从网络详情页面获取 MTU。请参阅查看网络

      例如,示例文件 /etc/sysconfig/network/ifcfg-bond1.121 如下所示:

       NAME='bond1.121'
       ETHERDEVICE='bond1'
       STARTMODE='auto'
       USERCONTROL='no'
       BOOTPROTO='static'
       IPADDR='192.168.200.10/24'
       MTU=1500
       VLAN='yes'
      
      1. 调出相应接口以应用更改。

        ifup INTERFACE_NAME.VLAN_ID
        

        替换以下内容:

        • INTERFACE_NAME:您要将网络连接到的接口的名称。即您在此过程的第 6 步(设置接口配置)中选择的接口。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
        • VLAN_ID:您要连接的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络
    4. (可选)如果您已创建客户端网络,并且想要使用此网络从 VPC 连接到 VLAN 连接或其他环境(例如本地环境),请配置到特定子网的路由。

      1. 按以下命名惯例在位置 /etc/sysconfig/network 处创建一个接口路由配置 (ifroute) 文件:

        ifroute-INTERFACE_NAME.VLAN_ID
        

        完成后,您的文件的路径如下所示:

        /etc/sysconfig/network/ifroute-INTERFACE_NAME.VLAN_ID
        
      2. ifroute 文件中为网络接口添加以下信息。

        SUBNET   GATEWAY_IP    -       -
        

        替换以下内容:

        • SUBNET:用于通过客户端网络连接到裸金属解决方案服务器的网络 IP 地址和掩码(采用 CIDR 表示法)。如果这是您的 VPC 网络,您可以从 VPC 网络页面的子网部分获取子网。请参阅列出子网。 如果这是其他环境,请与您的网络管理员联系。
        • GATEWAY_IP:您要连接的网络中的网关的 IP 地址。您可以从网络详情页面获取网关 IP。请参阅查看网络
      3. 调出相应接口以应用更改。

        ifup INTERFACE_NAME.VLAN_ID
        

        替换以下内容:

        • INTERFACE_NAME:您要将网络连接到的接口的名称。即您在此过程的第 6 步(设置接口配置)中选择的接口。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
        • VLAN_ID:您要连接的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络
    5. (可选)如果您创建了一个客户端网络并在此过程的第 7 步(默认网关)中将其设置为默认网关,请按照以下步骤更新您的操作系统配置:

      1. 完成上一步,即第 9.c 步
      2. 确保您已通过此网络连接到裸金属解决方案服务器。例如,从此网络通过 VLAN 连接所连接到的 VPC 中的虚拟机连接到服务器。
      3. 如需将此网络设置为默认网关,请更改系统默认路由配置:

        修改文件 /etc/sysconfig/network/routes,将当前默认网关的 IP 地址替换为新默认网关的 IP 地址。

        更新文件内容以匹配以下内容:

        default   GATEWAY_IP    -       -
        

        替换以下内容:

        • GATEWAY_IP:新网络中网关的 IP 地址。您可以从网络详情页面获取网关 IP。请参阅查看网络
      4. 请重新加载网络配置以应用更改。

        systemctl reload network
        

将网络与服务器分离

一次只能从服务器分离一个网络,并且服务器可以正在运行或已关闭。

如需分离网络,请按以下步骤操作:

  1. 更新裸金属解决方案服务器的操作系统配置。

    在通过 Google Cloud 控制台分离网络之前,您必须先更新裸金属解决方案服务器的操作系统配置。如果您不更新操作系统配置,则在 Google Cloud 控制台中所做的更改不会完全实现。

    此步骤中的操作只是示例,可能会因您的操作系统而异。如果您遇到任何问题,请参阅操作系统配置指南。

    RHEL 和 Oracle Linux

    1. 删除要分离的网络的绑定接口。以根用户身份运行以下命令:

      nmcli connection delete INTERFACE_NAME.VLAN_ID
      

      替换以下内容:

      • INTERFACE_NAME:您要分离的网络的接口名称。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要分离的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络

      示例:

      nmcli connection delete bond0.148
      

    SLES

    1. 关闭接口。以根用户身份运行以下命令:

      ifdown INTERFACE_NAME.VLAN_ID
      

      替换以下内容:

      • INTERFACE_NAME:您要分离的网络的接口名称。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要分离的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络

      示例:

      ifdown bond1.121
      
    2. 将接口路由配置文件的信息备份到其他文件中,以免在下次启动时处理该文件。运行以下命令:

      mv /etc/sysconfig/network/ifcfg-INTERFACE_NAME.VLAN_ID /etc/sysconfig/network/ifcfg-INTERFACE_NAME.VLAN_ID.backup
      

      替换以下内容:

      • INTERFACE_NAME:您要分离的网络的接口名称。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要分离的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络

      示例:

      mv /etc/sysconfig/network/ifcfg-bond1.121 /etc/sysconfig/network/ifcfg-bond1.121.backup
      
    3. (可选)如果要分离客户端网络,并配置此网络的专用路由。将接口路由配置文件的信息备份到其他文件中,以免在下次启动时处理该文件。运行以下命令:

      mv /etc/sysconfig/network/ifroute-INTERFACE_NAME.VLAN_ID /etc/sysconfig/network/ifroute-INTERFACE_NAME.VLAN_ID.backup
      

      替换以下内容:

      • INTERFACE_NAME:您要分离的网络的接口名称。您可以从服务器详细信息页面的网络部分获取接口名称。请参阅查看服务器
      • VLAN_ID:您要分离的网络的 VLAN ID。您可以从网络详情页面获取 VLAN ID。 请参阅查看网络

      示例:

      mv /etc/sysconfig/network/ifroute-bond1.121 /etc/sysconfig/network/ifroute-bond1.121.backup
      
  2. 通过 Google Cloud 控制台分离网络:

    1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。
    2. 点击服务器名称。
    3. 服务器详情页面上,选择要分离的网络。
    4. 点击分离网络
    5. 出现提示时,点击确认

服务器状态会更改为“正在预配”。分离网络是一项长时间运行的操作。如需查看状态,请在 Google Cloud 控制台中点击 通知。您还可以按照查看长时间运行的操作的状态中的步骤操作。操作完成后,服务器状态会更改为“正在运行”。

删除网络

无法删除连接到同一 VRF 的多个客户端网络。在这种情况下,请与客户服务团队联系。

如需删除网络,请按照以下步骤操作:

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 网络页面。
  2. 选择要删除的版本。
  3. 点击删除
  4. 出现提示时,点击确认

删除网络是一项长时间运行的操作。如需查看状态,请在 Google Cloud 控制台中点击 通知。 您还可以按照查看长时间运行的操作的状态中的步骤操作。

查看裸金属解决方案环境的高级网络信息

如果您为裸金属解决方案环境中的复杂部署选择了高级网络选项,则可以使用以下服务器命令来查看此信息。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 点击服务器名称。

  3. 服务器详细信息页面上,您可以查看以下信息:

    1. 在“基本详情”下,您可以查看网络模板。
    2. 网络部分中,您可以查看以下信息:
      • 网络名称
      • 网络类型
      • IP 地址
      • 默认网关
      • 接口名称

gcloud

运行 gcloud bms instances describe 命令以查看服务器的高级网络设置。

gcloud bms instances describe SERVER_NAME --project=PROJECT_ID --region=REGION

API

如需查看服务器的高级网络设置,请输入项目 ID、区域和服务器名称,然后发出以下 curl 命令。在输出的网络部分中,您可以查看分配给每个接口的网络模板、逻辑接口、绑定接口和网络类型。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME"

在裸金属解决方案环境中实现 IP 地址管理

在裸金属解决方案环境中能够管理网络拓扑非常重要。IP 地址管理可帮助您创建、查看和删除资源的 IP 地址。您可以使用此信息来防止 IP 地址重叠以及解决请求新资源时的冲突。

查看 IP 地址预留

要查看现有预留的 IP 地址,请执行以下操作:

gcloud

运行 gcloud bms networks list-ip-reservations 命令:

gcloud bms networks list-ip-reservations --project=PROJECT_ID --region REGION

API

如需查看现有资源的 IP 地址预留,请输入项目 ID、区域和网络名称,然后发出以下 curl 命令。输出中的预留部分显示预留的 IP 地址范围。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/networks/NETWORK_NAME"

创建和更新 IP 地址预留

如需创建新的 IP 地址预留或更新现有 IP 地址预留,请执行以下操作:

gcloud

运行 gcloud bms networks update 命令以管理 IP 地址预留:

gcloud bms networks update NETWORK_NAME --project=PROJECT_ID --region REGION --add-ip-range-reservation=start-address=START_ADDRESS,end-address=END_ADDRESS,note="NOTE"
  • 如需移除所有 IP 地址预留,请添加 --clear-ip-range-reservations 选项。
  • 如需删除预留地址块之一,请添加 --remove-ip-range-reservation 选项并指定要移除的预留 IP 地址块的起始地址和结束地址。
gcloud bms networks update NETWORK_NAME --project=PROJECT_ID --region REGION --remove-ip-range-reservation=start-address=START_ADDRESS,end-address=END_ADDRESS

API

要创建新的 IP 地址预留或更新现有 IP 地址预留,请在以下命令中输入项目 ID、区域和网络名称。为您要预留的每个 IP 地址块添加起始地址、结束地址和备注,然后发出 curl 命令。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/networks/NETWORK_NAME?updateMask=reservations"
 -d "{
  'reservations' : [
    {
      'startAddress' : 'START_ADDRESS_1',
      'endAddress' : 'END_ADDRESS_1',
      'note' : 'NOTES_1'
    },
    {
      'startAddress' : 'START_ADDRESS_2',
      'endAddress' : 'END_ADDRESS_2',
      'note' : 'NOTES_2'
    }
  ]
}"
  • IP 地址预留块必须位于目标网络的 CIDR 范围内。
  • 请勿在预留块中使用 .1(网关 IP 地址)。
  • 每次运行此 curl 命令时,它都会覆盖上一组预留。如果您需要进行更新,请务必在发出命令之前添加所有预留块组。
  • 如需清除所有预留,请将命令末尾替换为以下内容:

    -d "{
    'reservations' : []
    }"
    

管理存储空间

您可以通过以下方式管理裸金属解决方案环境中的存储:

查看存储卷

留意裸金属解决方案环境中的存储资源有助于您确定服务器是否有足够的存储容量来容纳应用和工作负载。

如需查看存储卷的详细信息,请按照以下步骤操作:

控制台

  1. 进入页面。

    前往卷

    页面列出了所有存储卷及以下详细信息:

    字段 说明 示例
    状态 指明存储卷的可用性 带有对勾标记的绿色圆圈表示存储卷已准备就绪。
    ID 分配给存储卷的标识符。
    • 点击该 ID 可查看有关存储卷的基本信息,包括 LUN 和快照。
    • 排查此资源的问题时,请与 Google Cloud 支持团队共享该 ID。
    • 启动卷:
      at-1234567-svr001-vol000-b1
    • Fibre Channel 量:
      at-1111111-vol001
    • NFS 共享:
      at-2222222-nfs001-vol000
    名称 存储卷名称。点击名称可查看有关存储卷的其他信息,包括 LUN 和快照。

    注意:如果您在预配存储卷时未输入名称,则 ID 会显示在此字段中。
    • 启动卷:
      boot-volume-1
    • Fibre Channel 量:
      fibre-channel-volume-5
    • NFS 共享:
      nfs-share-7
    位置 存储卷所在的区域 asia-southeast1
    Pod

    包含存储卷的 Pod。Pod 是一个包含裸金属解决方案资源的隔离单元。不同 Pod 中的资源无法连接。一个区域可以有多个 Pod。

    Pod 列默认处于停用状态。如需启用它,请执行以下操作:

    1. 点击列显示选项
    2. 选中 Pod 复选框。
    3. 点击确定

    如果您不想启用 Pod 列,则可以点击存储卷名称来查看存储卷的 pod。

    asia-southeast1-pod1
    类型 硬盘或固态硬盘 HDD - Hard drive
    标签 显示您为此存储资源添加的所有标签

    如果要使用标签来过滤控制台输出,您可以复制标签文本并将其粘贴到状态字段上方的过滤条件框。
    environment:test

gcloud

  1. 如需查看裸金属解决方案环境中的所有存储卷并查看其状态,请输入项目 ID 并发出 gcloud bms volumes list 命令:

    gcloud bms volumes list --project=PROJECT_ID
    
    以下输出示例展示了三个存储卷、项目 ID、区域、卷大小和存储类型。
    NAME                         PROJECT              REGION           REQUESTED_SIZE_GIB  STORAGE_TYPE  STATE
    at-1234567-svr001-vol000-b1  PROJECT_ID         REGION         200                 SSD           READY
    at-1111111-vol001            PROJECT_ID         REGION         1024                SSD           READY
    at-2222222-nfs001-vol000     PROJECT_ID         REGION         400                 HDD           READY
    
  2. 如需查看单个存储卷,请输入存储卷名称、项目 ID 和区域,然后发出 gcloud bms volumes describe 命令:

    gcloud bms volumes describe VOLUME_NAME --project=PROJECT_ID --region=REGION
    
    以下输出示例展示了存储卷大小、名称、快照自动删除政策、状态和存储类型。
    currentSizeGib: '250'
    name: projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME
    requestedSizeGib: '250'
    snapshotAutoDeleteBehavior: OLDEST_FIRST
    snapshotReservationDetail:
      reservedSpaceGib: '50'
      reservedSpaceRemainingGib: '50'
    state: READY
    storageType: SSD
    
  3. 如需查看存储卷的所有 LUN,请输入项目 ID、区域和存储卷名称,然后发出 gcloud bms volumes luns list 命令:

    gcloud bms volumes luns list --project=PROJECT_ID --region=REGION --volume=VOLUME_NAME
    
    以下输出示例展示了 LUN 名称、区域、存储卷名称、卷大小和状态。
    NAME                         REGION           VOLUME       SIZE_GB  STATE
    at-11111111-vol001-lun000    REGION        VOLUME_NAME 200      READY
    
  4. 如需查看单个 LUN 的详细信息,请输入项目 ID、区域和 LUN 名称,然后发出 gcloud bms volumes luns describe 命令:

    gcloud bms volumes luns describe LUN_NAME --project=PROJECT_ID --region=REGION --volume=VOLUME_NAME
    
    以下输出示例展示了 LUN 名称和存储卷信息,例如大小、状态、存储类型、名称和 ID。
    bootLun: true
    name: projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/luns/LUN_NAME
    sizeGb: '200'
    state: READY
    storageType: SSD
    storageVolume: VOLUME_NAME
    wwid: 600a09803831434434244f774d616b94
    

API

  1. 打开 Google Cloud 控制台中的 Cloud Shell 终端窗口。

  2. 如需查看裸金属解决方案环境中的所有存储卷并查看其状态,请在下面的 curl 命令中输入项目 ID 和区域。复制命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes"
    
  3. 如需查看单个存储空间卷,请输入项目 ID、区域和存储空间卷名称并发出以下命令:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME"
    
  4. 如需查看存储空间卷的所有逻辑单元号 (LUN),请输入项目 ID、区域和存储空间卷名称,然后发出以下命令:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/luns
    
  5. 如需查看单个 LUN 的详细信息,请输入项目 ID、区域、存储空间卷名称和 LUN 名称,然后发出以下命令:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/luns/LUN_NAME"
    

使用标签整理存储卷

为帮助整理存储卷,您可以使用标签。标签采用键值对形式,您可以将其附加到每个存储卷,然后根据其标签过滤存储卷。例如,您可以使用标签按用途、环境、位置、部门等对存储卷进行分组。标签是可选项。

为存储卷添加或更新标签

您可以为现有存储卷添加或更新标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 页面。

  2. 对于要为其添加标签的存储卷,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 点击 添加标签,然后添加键值对。
    2. 如需更新标签,请选择现有标签并修改其值。
    3. 点击提交
  5. 返回页面后,刷新该页面即可查看您所做的更改。

gcloud

如需为存储卷添加或更新标签,请将 gcloud bms volumes update 命令与 --update-labels 选项结合使用。

以下示例命令会添加标签 environment = devlocation = branch

gcloud bms volumes update VOLUME_NAME --project=PROJECT_ID --region=REGION --update-labels environment=dev,location=branch

如果您为已存在的标签提供新值,则系统会使用新值更新现有标签。如果您提供新标签,则系统会将新标签添加到标签列表中。

API

如需为存储卷添加或更新标签,请在以下 curl 命令中输入项目 ID、区域、卷名称和标签列表。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会分配标签 environment = test

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

移除存储卷的标签

您可以移除存储卷的标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 页面。

  2. 对于要移除其标签的存储卷,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 如需删除标签,请点击
    2. 点击提交
  5. 返回页面后,刷新该页面即可查看您所做的更改。

gcloud

如需移除存储卷的标签,请将 gcloud bms volumes update 命令与以下选项结合使用:

  • --remove-labels:移除指定的标签。
  • --clear-labels:移除所有标签。

以下示例命令会移除存储卷的 department 标签:

gcloud bms volumes update VOLUME_NAME --project=PROJECT_ID --region=REGION --remove-labels=department

以下示例命令会移除存储卷的所有标签:

gcloud bms volumes update VOLUME_NAME --project=PROJECT_ID --region=REGION --clear-labels

API

如需移除存储卷的标签,请在以下 curl 命令中输入项目 ID、区域和存储卷名称。提供一个空的标签列表以移除所有标签,或提供您要保留的标签列表(去掉您要移除的标签)。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会移除 environment = test 以外的所有标签。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

使用标签过滤存储卷

您可以使用标签搜索存储卷并过滤结果。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 页面。

  2. 点击存储卷列表上方的 过滤栏。

  3. 属性列表中,选择标签

  4. 输入标签的键、值或键值对。

    例如,如需仅查看标签为 env:dev 的存储卷,您可以输入以下任一项:

    • 输入键:env
    • 输入值:dev
    • 输入键值对:env:dev
  5. 如需应用标签过滤条件,请点击过滤条件栏外部的任意位置。

gcloud

如需使用标签过滤存储卷,请将 gcloud bms volumes list 命令与 --filter 选项结合使用。

--filter 选项的值必须采用 labels.KEY=VALUE 格式。例如,如果您要按键为 env、值为 dev 的标签进行过滤,请发出以下命令:

gcloud bms volumes list --project=PROJECT_ID --region=REGION --filter labels.environment=dev

如需详细了解 gcloud CLI 中的过滤条件语法,请参阅 gcloud topic filters 文档

API

如需使用标签过滤存储卷,请输入项目 ID 和区域,以及 filter=labels 和键值对标签。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会限制输出,以查找键值对标签为 environment = test 的存储卷。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes"?filter=labels.environment=test

重命名存储卷

如需重命名存储卷,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,打开 Compute Engine > 裸金属解决方案 > 页面。
  2. 点击存储卷名称。
  3. 卷详情页面的名称字段中,点击 修改名称
  4. 修改名称页面上,输入新名称。
  5. 点击保存
  6. 如需查看更改,请刷新页面。

gcloud

如需重命名存储卷,请使用 gcloud bms volumes rename 命令。

gcloud bms volumes rename VOLUME_NAME --new-name=NEW_NAME --project=PROJECT_ID --region=REGION

替换以下内容:

  • VOLUME_NAME:存储卷的当前名称。
  • NEW_NAME:存储卷的新名称。
  • PROJECT_ID:您的项目 ID。
  • REGION:存储卷的位置。

在裸金属解决方案环境中预配存储卷资源

为裸金属解决方案环境订购存储资源后,您可以在资源可用后预配资源。您可以预配以下自助选项:

  • 创建新的 Fibre Channel 存储卷
  • 在卷上创建 LUN
  • 将存储卷挂接到服务器

创建新的存储卷

借助此功能,您可以预配之前订购的存储空间。如需订购存储服务,请联系 Google Cloud 销售团队

如需创建新的存储卷,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,点击 Compute Engine > 裸金属解决方案 > 菜单。

  2. 点击创建

  3. 请输入以下信息:

    字段 说明 示例
    区域 距离裸金属解决方案环境最近的 Google Cloud 区域。 us-central1
    名称 为您的存储卷指定一个名称。 volume-1
    类型 选择存储类型:
    • SSD - 固态硬盘
    • HDD - 硬盘
    SSD
    大小 选择硬盘大小(以 GiB 为单位),1024 GiB = 1 TiB。大小范围介于 100 GiB 到 16 TiB 之间。如果您需要超过 16 TiB,请根据需要创建更多卷。 16384
    快照已启用 每天对存储卷的备份副本执行一次保存操作。这对于自定义快照而言是必需的,但默认情况下该功能处于停用状态。 已勾选复选框以启用快照
    配置 选择所需的 LUN 配置类型:
    • 默认配置 - 创建大小相同的 LUN(推荐)。
    • 自定义配置 - 创建大小不同的 LUN。
    Default configuration
    目标服务器 选择服务器并挂接存储卷。 server-1
  4. 点击创建

  5. 控制台会检查所请求的存储空间是否有足够的可用空间。控制台会在有可用空间时实施更改,如果无法执行该操作,则会提醒您。如果存储卷请求成功,系统会自动开始计算额外存储空间的费用。

  6. 预配存储卷后,您可以将其与其他服务器共享

在存储卷上创建 LUN

如需为存储卷创建 LUN,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,点击 Compute Engine > 裸金属解决方案 > 菜单。

  2. 点击要在其中创建 LUN 的存储卷的名称。

  3. LUN 部分旁边,点击创建

  4. 请输入以下信息:

    字段 说明 示例
    LUN 数 您要创建特定大小的 LUN 的总数。 4
    大小 选择 LUN 大小(以 GiB 为单位),1024 GiB = 1 TiB。 1024
  5. 如果您需要创建多组 LUN,请点击添加一项

  6. 点击创建以部署新的 LUN。

将存储卷挂接到服务器

您可以一次将多个存储卷挂接到服务器。

如需将存储卷挂接到服务器,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,打开 Compute Engine > 裸金属解决方案 > 服务器页面。

  2. 点击要将存储卷挂接到的服务器的名称。

  3. LUN 部分中,点击挂接卷

  4. 目标卷列表中,选择要挂接的存储卷。您也可以选择多个存储卷。

  5. 点击挂接卷

您还可以将同一存储卷并行挂接到其他服务器。进入服务器页面,然后对所有其他服务器重复此过程。

删除存储卷资源

如果不再需要特定的存储卷资源,可以将其删除。您可以删除整个存储卷或其 LUN。但在执行此操作之前,您必须先将存储卷与其挂接到的服务器分离。

本部分介绍了以下任务:

将存储卷与服务器分离

您可以将存储卷与服务器分离。您无法将个别 LUN 与服务器分离。您可以一次分离多个存储卷。

如需将存储卷与服务器分离,请按照以下步骤操作:

  1. 更新裸金属解决方案服务器的操作系统配置。

    在通过 Google Cloud 控制台分离存储卷之前,您必须更新裸金属解决方案服务器的操作系统配置。如果您不更新操作系统配置,则在 Google Cloud 控制台中所做的更改不会完全实现,您的数据可能会损坏,并且服务器可能会在下次重新启动时遇到问题。

    此步骤举例说明了如何更新操作系统配置。具体说明可能因操作系统而异。如果您遇到任何问题,请参阅操作系统配置指南。

    逻辑卷管理器 (LVM)

    通过适用于 RHEL7.x、RHEL 8.x、Oracle Linux 7.x、Oracle Linux 8.x、SLES 12 SP4、SLES 12 SP5、SLES 15 和 SLES 15 SP1 的 LVM 分离存储卷。

    以下示例过程展示了如何通过 LVM 分离文件系统 (/testvol02) 及其关联的逻辑卷、物理卷和底层 LUN。

    请按照以下步骤操作:

    1. 确定与文件系统 /testvol02 关联的 LVM 卷和底层 LUN。

        df -h|grep testvol02
        

      示例输出:

        /dev/mapper/testvg01-lv02                         99G   33M   99G   1% /testvol02
        

      输出结果显示文件系统 /testvol02 与设备 /dev/mapper/testvg01-lv02 相关联。

    2. 确定设备 testvg01-lv02 的 WWID。

        sudo dmsetup ls --tree
        

      示例输出:

        testvg01-lv02 (253:10)
        └─3600a0980383146354a2b522d53374236 (253:6)
            ├─ (8:176)
            ├─ (8:112)
            ├─ (8:240)
            └─ (8:48)
        testvg01-lv01 (253:9)
        └─3600a0980383146354a2b522d53374235 (253:5)
            ├─ (8:160)
            ├─ (8:96)
            ├─ (8:224)
            └─ (8:32)
        

      输出结果显示设备 testvg01-lv02 的 WWID 为 3600a0980383146354a2b522d53374236

    3. 确定文件系统 /testvol02 的逻辑卷、物理卷和底层 LUN 的 WWID。

        sudo vgdisplay -v
        

      示例输出:

          --- Volume group ---
          VG Name               testvg01
          System ID
          Format                lvm2
          Metadata Areas        2
          Metadata Sequence No  4
          VG Access             read/write
          VG Status             resizable
          MAX LV                0
          Cur LV                2
          Open LV               2
          Max PV                0
          Cur PV                2
          Act PV                2
          VG Size               199.99 GiB
          PE Size               4.00 MiB
          Total PE              51198
          Alloc PE / Size       50688 / 198.00 GiB
          Free  PE / Size       510 / 1.99 GiB
          VG UUID               W42Rle-9sER-jpS1-dwBC-xbtn-1D2b-FNRDMA
      
          --- Logical volume ---
          LV Path                /dev/testvg01/lv01
          LV Name                lv01
          VG Name                testvg01
          LV UUID                W8bzQQ-Qtyf-CDJA-AXPt-P1b1-X4xL-2WDq92
          LV Write Access        read/write
          LV Creation host, time at-5176205-svr001, 2022-12-06 22:14:56 +0000
          LV Status              available
          # open                 1
          LV Size                99.00 GiB
          Current LE             25344
          Segments               1
          Allocation             inherit
          Read ahead sectors     auto
          - currently set to     8192
          Block device           253:9
      
          --- Logical volume ---
          LV Path                /dev/testvg01/lv02
          LV Name                lv02
          VG Name                testvg01
          LV UUID                B1vtMm-RAKx-3S92-mHfx-98xc-gKwR-XWOavH
          LV Write Access        read/write
          LV Creation host, time at-5176205-svr001, 2022-12-07 17:02:53 +0000
          LV Status              available
          # open                 1
          LV Size                99.00 GiB
          Current LE             25344
          Segments               1
          Allocation             inherit
          Read ahead sectors     auto
          - currently set to     8192
          Block device           253:10
      
          --- Physical volumes ---
          PV Name               /dev/mapper/3600a0980383146354a2b522d53374235
          PV UUID               ieY2Cr-HNrg-dj2G-wHgP-lsuh-PTAH-hNemRq
          PV Status             allocatable
          Total PE / Free PE    25599 / 255
      
          PV Name               /dev/mapper/3600a0980383146354a2b522d53374236
          PV UUID               AMrtZa-TZHO-w0h6-Uf1G-NCwa-UtFY-83rZen
          PV Status             allocatable
          Total PE / Free PE    25599 / 255
        

      输出展示了以下内容:

      • 文件系统 /testvol02 正在使用卷组 testvg01 中的逻辑卷 (LV) lv02
      • 正在使用的物理卷 (PV) 为 /dev/mapper/3600a0980383146354a2b522d53374236
      • 底层 LUN 的 WWID 为 3600a0980383146354a2b522d53374236
    4. 卸载文件系统 /testvol02

        sudo umount /testvol02
        
    5. 如果需要,通过注释或删除相关行,从文件 /etc/fstab 中查找并移除文件系统 /testvol02 的对应条目。

        grep testvol02 /etc/fstab
        

      示例输出:

        /dev/mapper/testvg01-lv02 /testvol02                    xfs     defaults        0 0
        
    6. 停用逻辑卷 lv02

        sudo lvchange -an /dev/testvg01/lv02
        
    7. 从卷组 testvg01 中移除逻辑卷 lv02

        sudo lvremove /dev/testvg01/lv02
        

      示例输出:

        Logical volume "lv02" successfully removed
        
    8. 从音量组 testvg01 中移除物理卷 /dev/mapper/3600a0980383146354a2b522d53374236

    9.   sudo vgreduce testvg01 /dev/mapper/3600a0980383146354a2b522d53374236
        

      示例输出:

        Removed "/dev/mapper/3600a0980383146354a2b522d53374236" from volume group "testvg01"
        
    10. 可选:移除逻辑卷和物理卷后,请使用命令 vgdisplay -vdmsetup ls -tree 确认 LVM 已不再使用相应设备。如果设备不再被使用,它将不会出现在 vgdisplay 命令输出的“物理卷”部分中,也不会与 dmsetup 命令输出中的任何卷关联。

    本地文件系统

    通过适用于 RHEL7.x、RHEL 8.x、Oracle Linux 7.x 和 Oracle Linux 8.x 的本地文件系统分离存储卷。

    以下示例过程展示了如何移除文件系统 (/localfs01) 和底层 LUN。

    请按照以下步骤操作:

    1. 确定与文件系统 /localfs01 关联的底层 LUN。

      df -h|grep localfs01
      

      示例输出:

      /dev/mapper/3600a0980383146354a2b522d53374236    100G   33M  100G   1% /localfs01
      

      df 命令的输出显示文件系统 /localfs01 与设备 /dev/mapper/3600a0980383146354a2b522d53374236 相关联。

    2. 卸载文件系统 /localfs01

      sudo umount /localfs01
      
    3. 如果需要,从文件 /etc/fstab 中查找并移除文件系统 /localfs01 的对应条目,只需注释掉相关行即可。

      grep localfs01 /etc/fstab
      

      示例输出:

      grep localfs01 /etc/fstab
      /dev/mapper/3600a0980383146354a2b522d53374236 /localfs01    xfs defaults 0 0
      

    Oracle ASM

    通过适用于 RHEL7.x、RHEL 8.x、Oracle Linux 7.x 和 Oracle Linux 8.x 的 Oracle ASM 分离存储卷。

    以下示例过程展示了如何在 Oracle ASM 中移除磁盘 (DEMO_0001) 和关联的 LUN。

    请按照以下步骤操作:

    1. 确定要移除的 Oracle ASM 中的磁盘。

      sqlplus / as sysasm
      
      set lines 999;
      col diskgroup for a15
      col diskname for a15
      col path for a35
      select a.name DiskGroup,b.name DiskName, b.total_mb, (b.total_mb-b.free_mb) Used_MB, b.free_mb,b.path,b.header_status
      from v$asm_disk b, v$asm_diskgroup a
      where a.group_number (+) =b.group_number
      order by b.group_number,b.name;
      
      DISKGROUP   DISKNAME      TOTAL_MB    USED_MB    FREE_MB PATH                    HEADER_STATU
      --------------- --------------- ---------- ---------- ---------- ----------------------------------- ------------
      DATA        DATA_0000        25600   5676      19924 /dev/asmdisks/DATA1             MEMBER
      DEMO        DEMO_0000        25600     16      25584 /dev/asmdisks/DEMO1             MEMBER
      DEMO        DEMO_0001       102400     51     102349 /dev/asmdisks/DEMO2             MEMBER
      RECO        RECO_0000        25600   3896      21704 /dev/asmdisks/RECO1             MEMBER
      

      示例输出:

      DISKGROUP   DISKNAME      TOTAL_MB    USED_MB    FREE_MB PATH                    HEADER_STATU
      --------------- --------------- ---------- ---------- ---------- ----------------------------------- ------------
      DATA        DATA_0000        25600   5676      19924 /dev/asmdisks/DATA1             MEMBER
      DEMO        DEMO_0000        25600     16      25584 /dev/asmdisks/DEMO1             MEMBER
      DEMO        DEMO_0001       102400     51     102349 /dev/asmdisks/DEMO2             MEMBER
      RECO        RECO_0000        25600   3896      21704 /dev/asmdisks/RECO1             MEMBER
      

      查询的输出显示,与磁盘 DEMO_0001 关联的设备为 /dev/asmdisks/DEMO2

    2. 确定与磁盘及其 WWID 关联的多路径设备。

      ls -l /dev/asmdisks/DEMO2
      lrwxrwxrwx 1 root root 8 Dec 29 17:52 /dev/asmdisks/DEMO2 -> ../dm-18
      
      sudo multipath -ll|grep dm-18
      3600a0980383146354a2b522d53374247 dm-18 NETAPP  ,LUN C-Mode
      
    3. 从磁盘组中移除该磁盘。

      SQL> alter diskgroup DEMO drop disk DEMO_0001 rebalance power 5;
      
      Diskgroup altered.
      
      col diskgroup for a15
      col diskname for a15
      col path for a35
      select a.name DiskGroup,b.name DiskName, b.total_mb, (b.total_mb-b.free_mb) Used_MB, b.free_mb,b.path,b.header_status
      from v$asm_disk b, v$asm_diskgroup a
      where a.group_number (+) =b.group_number
      order by b.group_number,b.name;
      
      DISKGROUP   DISKNAME      TOTAL_MB    USED_MB    FREE_MB PATH                    HEADER_STATU
      --------------- --------------- ---------- ---------- ---------- ----------------------------------- ------------
                0     0          0 /dev/asmdisks/DEMO2             FORMER
      DATA        DATA_0000        25600   5676      19924 /dev/asmdisks/DATA1             MEMBER
      DEMO        DEMO_0000        25600     64      25536 /dev/asmdisks/DEMO1             MEMBER
      RECO        RECO_0000        25600   3896      21704 /dev/asmdisks/RECO1             MEMBER
      
      SQL> exit
      
    4. (对集群中的所有节点执行此步骤)。从 /etc/udev/rules.d/99-oracle-asmdevices.rules 文件中移除对磁盘的所有引用。

      在本例中,我们移除了第 9 行和第 10 行,因为它们与此过程的第 1.b 步中标识的磁盘 DEMO_00013600a0980383146354a2b522d53374247 的 WWID 相关联。

      cat -n /etc/udev/rules.d/99-oracle-asmdevices.rules
       1  # BEGIN ASM disk udev rules for /dev/mapper/3600a0980383146354a2b522d53374244
       2  ACTION=="add|change", ENV{DM_UUID}=="mpath-3600a0980383146354a2b522d53374244", SYMLINK+="asmdisks/DATA1", GROUP="asmadmin", OWNER="grid", MODE="0660"
       3  # END ASM disk udev rules for /dev/mapper/3600a0980383146354a2b522d53374244
       4  # BEGIN ASM disk udev rules for /dev/mapper/3600a0980383146354a2b522d53374243
       5  ACTION=="add|change", ENV{DM_UUID}=="mpath-3600a0980383146354a2b522d53374243", SYMLINK+="asmdisks/RECO1", GROUP="asmadmin", OWNER="grid", MODE="0660"
       6  # END ASM disk udev rules for /dev/mapper/3600a0980383146354a2b522d53374243
       7  # BEGIN ASM disk udev rules for /dev/mapper/3600a0980383146354a2b522d53374242
       8  ACTION=="add|change", ENV{DM_UUID}=="mpath-3600a0980383146354a2b522d53374242", SYMLINK+="asmdisks/DEMO1", GROUP="asmadmin", OWNER="grid", MODE="0660"
       9  # BEGIN ASM disk udev rules for /dev/mapper/3600a0980383146354a2b522d53374247
      10  ACTION=="add|change", ENV{DM_UUID}=="mpath-3600a0980383146354a2b522d53374247", SYMLINK+="asmdisks/DEMO2", GROUP="asmadmin", OWNER="grid", MODE="0660"
      11  # END ASM disk udev rules for /dev/mapper/3600a0980383146354a2b522d53374247
      
    5. (对集群中的所有节点执行此步骤)。应用 udev 规则集更改。

      sudo udevadm control -R
      

    Oracle Linux 虚拟化管理器

    通过 Oracle Linux 虚拟化管理器 4.4.10.7 分离存储卷。

    不支持从 Oracle Linux 虚拟化管理器存储网域中移除单独的光纤通道设备。您需要先移除存储网域,然后才能移除底层 LUN。

    以下示例过程演示了如何移除 WWID 为 3600a0980383146354a2b522d533742443600a0980383146354a2b522d53374245(属于 Oracle Linux 虚拟化管理器存储域 olvm-domain-02 的一部分)的 LUN。

    1. 在 Oracle Linux 虚拟化管理器中,转到存储 > 网域
    2. 选择存储网域 olvm-domain-02
    3. 点击 Manage Domain(管理域名)。
    4. 记下要移除的光纤通道 LUN 的 WWID。 在这种情况下,WWID 为 3600a0980383146354a2b522d533742443600a0980383146354a2b522d53374245
    5. 关闭 Manage Domain(管理网域)窗格。
    6. 将存储网域设为维护模式,如下所示:
      1. 点击相应存储网域。
      2. 选择数据中心标签页。
      3. 点击维护,然后点击确定
      4. 如需详细了解此步骤,请参阅 Oracle 文档:如何从环境中安全地移除存储网域

    7. 点击分离,然后点击确定
    8. 移除存储网域:
      1. 返回存储 > 网域
      2. 选择存储网域。
      3. 点击移除,然后点击确定

    Oracle 虚拟机服务器

    通过 Oracle 虚拟机服务器 3.4.6 版本分离存储卷。

    以下示例过程展示了如何移除 WWID 为 3600a0980383146354a2b522d53374236 的 LUN。

    请按照以下步骤操作:

    1. 在 Oracle 虚拟机管理器中,删除关联的物理磁盘。请参阅 Oracle 文档:删除物理磁盘

      在此示例中,WWID 为 3600a0980383146354a2b522d53374236 的物理磁盘的 OVM 控制台名称为 NETAPP (10)

      1. 服务器和虚拟机中,选择物理磁盘。
      2. 点击删除物理磁盘,然后点击确定
  2. 在 Google Cloud 控制台中,进入 Compute Engine > 裸金属解决方案 > 服务器页面。

  3. 点击包含要分离的存储卷的服务器的名称。

  4. LUN 部分中,点击分离卷

  5. 目标卷列表中,选择要分离的存储卷。您也可以选择多个存储卷。

  6. 可选:默认情况下,服务器会在您分离存储卷后重新启动。如果您不想重新启动服务器,请选中对服务器跳过重新启动复选框。

  7. 点击分离卷

    如果您在第 6 步中未选择为服务器跳过重新启动选项,则服务器会重新启动并分离存储卷及其 LUN。

  8. (如果您在第 6 步中跳过了重新启动,请执行此步骤)。通过 Google Cloud 控制台分离存储卷后,请在操作系统上执行 SCSI 重新扫描和设备清理。

    具体说明可能会因操作系统而异。如果您遇到任何问题,请参阅操作系统配置指南。

    逻辑卷管理器 (LVM)

    此示例适用于 RHEL7.x、RHEL 8.x、Oracle Linux 7.x、Oracle Linux 8.x、SLES 12 SP4、SLES 12 SP5、SLES 15 和 SLES 15 SP1。

    1. 移除与 LUN 关联的路径。

      以下是裸金属解决方案环境的示例:

          sudo /bin/rescan-scsi-bus.sh -r
          Syncing file systems
          Scanning SCSI subsystem for new devices and remove devices that have disappeared
          Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
          Scanning host 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
          Scanning host 2 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
          ...
          Scanning host 17 for all SCSI target IDs, all LUNs
          0 new or changed device(s) found.
          0 remapped or resized device(s) found.
          4 device(s) removed.
            [14:0:2:1]
            [14:0:3:1]
            [16:0:0:1]
            [16:0:1:1]
          
    2. 重新加载多路径映射。

        sudo /sbin/multipath -r
        

    本地文件系统

    此示例适用于 RHEL7.x、RHEL 8.x、Oracle Linux 7.x 和 Oracle Linux 8.x。

    1. 移除与 LUN 关联的路径。

      以下是裸金属解决方案环境的示例:

        sudo /bin/rescan-scsi-bus.sh -r
        Syncing file systems
        Scanning SCSI subsystem for new devices and remove devices that have disappeared
        Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
        Scanning host 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
        Scanning host 2 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
        ...
        Scanning host 17 for all SCSI target IDs, all LUNs
        0 new or changed device(s) found.
        0 remapped or resized device(s) found.
        4 device(s) removed.
          [14:0:2:1]
          [14:0:3:1]
          [16:0:0:1]
          [16:0:1:1]
        
    2. 重新加载多路径映射。

       sudo /sbin/multipath -r
       

    Oracle ASM

    此示例适用于 RHEL7.x、RHEL 8.x、Oracle Linux 7.x 和 Oracle Linux 8.x。

    对集群中的所有节点执行这些步骤。

    1. 移除与 LUN 关联的路径。

      以下是裸金属解决方案环境的示例:

        sudo /bin/rescan-scsi-bus.sh -r
        Syncing file systems
        Scanning SCSI subsystem for new devices and remove devices that have disappeared
        Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
        Scanning host 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
        Scanning host 2 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
        ...
        Scanning host 17 for  all SCSI target IDs, all LUNs
        0 new or changed device(s) found.
        0 remapped or resized device(s) found.
        4 device(s) removed.
          [14:0:2:8]
          [14:0:3:8]
          [16:0:0:8]
          [16:0:3:8]
      
    2. 重新加载多路径映射。

      sudo /sbin/multipath -r
      

    Oracle Linux 虚拟化管理器

    此示例适用于 Oracle Linux Virtualization Manager 4.4.10.7。

    此示例使用安装 Oracle Linux 虚拟化管理器时提供的 remove_stale_lun.yml Ansible Playbook。该 playbook 使用 Ansible 角色,该角色会从 Oracle Linux 虚拟化管理器构建 KVM 主机清单,然后从这些 KVM 主机中移除指定的 WWID。如需了解详情,请参阅 Ansible 操作手册

    1. 在适合 Ansible 环境的方法中,使用 KVM 主机的密码更新文件 passwords.yml
    2. 修改文件 remove_stale_lun.yml,使用 data_centerlun_wwid 的值更新 vars 部分,以匹配此过程的第 1.d 步中标识的 WWID 值。
        vars:
         ansible_ssh_common_args: "-o StrictHostKeyChecking=no"
         ansible_user: root
         ansible_ssh_private_key_file: /etc/pki/ovirt-engine/keys/engine_id_rsa
      
         engine_fqdn: manager.olvm.test
         engine_user: admin@internal
      
         data_center: default
         lun_wwid: 3600a0980383146354a2b522d53374244 3600a0980383146354a2b522d53374245
        
    3. 从 Oracle Linux Virtualization Manager 引擎,运行 Ansible Playbook。

          ansible-playbook /usr/share/ansible/collections/ansible_collections/ovirt/ovirt/roles/remove_stale_lun/examples/remove_stale_lun.yml
      
          PLAY [oVirt remove stale LUN] ***********************************************************************************************************************************************************
      
          ... [output skipped]
      
          TASK [ovirt.ovirt.remove_stale_lun : Logout from oVirt] *********************************************************************************************************************************
          skipping: [localhost]
      
          PLAY RECAP ******************************************************************************************************************************************************************************
          localhost                  : ok=7    changed=3    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0
      
        

      Ansible Playbook 完成后,系统会安全地从 KVM 主机中移除与 LUN 关联的路径。

    Oracle 虚拟机服务器

    此示例适用于 Oracle 虚拟机服务器 3.4.6 版。

    在挂接了 LUN 的所有 Oracle 虚拟机服务器上执行这些步骤。

    1. 移除与 LUN 关联的路径。
      sudo /usr/bin/rescan-scsi-bus.sh -r
      Syncing file systems
      Scanning SCSI subsystem for new devices and remove devices that have disappeared
      Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
      Scanning host 1 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
      Scanning host 2 for  SCSI target IDs  0 1 2 3
      [output skipped]
      Scanning host 17 for  all SCSI target IDs, all LUNs
      0 new or changed device(s) found.
      0 remapped or resized device(s) found.
      4 device(s) removed.
        [14:0:2:2]
        [14:0:3:2]
        [16:0:2:2]
        [16:0:3:2]
      
    2. 重新加载多路径映射。

      sudo /sbin/multipath -r
      

从存储卷中删除 LUN

在从存储卷中删除 LUN 之前,请先将存储卷与其挂接到的所有服务器分离。请参阅将存储卷与服务器分离

如需从存储卷中删除 LUN,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,进入 Compute Engine > 裸金属解决方案 > 页面。

  2. 点击包含要删除的 LUN 的存储卷的名称。

  3. LUN 部分中,选择要删除的 LUN。

  4. 点击删除

    删除 LUN 后,它会进入七天的冷却期。只有在冷却期过后,LUN 才会被删除。如果您要在冷却期内恢复 LUN,请与客户服务联系。

    如果要跳过冷却期并永久删除 LUN,请继续执行以下步骤:

  5. 选择要跳过冷却期的 LUN。

  6. 点击逐出

  7. 点击确认

    删除和逐出是长时间运行的操作。如需查看状态,请在 Google Cloud 控制台中点击 通知。删除操作完成后,LUN 状态会更改为“冷却”,并且在逐出操作完成后,LUN 会从 LUN 列表中移除。

    LUN 删除后,相应存储空间将返还到存储卷以供使用。但是,仅当您删除或逐出存储卷时,才会返还配额。如果您删除 LUN,配额将在七天冷却期后返还给您。但若您是逐出 LUN,配额将在逐出操作完成后立即返还给您。

如果要在删除 LUN 后重新挂接存储卷,请参阅将存储卷挂接到服务器

删除存储卷

您可以一次删除多个存储卷。

在删除存储卷之前,请先将其与挂接到的所有服务器分离。请参阅将存储卷与服务器分离

如需删除存储卷,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,进入 Compute Engine > 裸金属解决方案 > 页面。

  2. 选择存储卷。

  3. 点击删除

    删除存储卷后,它会进入七天的冷却期。只有在冷却期过后,存储卷才会被删除。如果要在冷却期内恢复存储卷,请与客户服务联系。

    如果要跳过冷却期并永久删除存储卷,请继续执行以下步骤:

  4. 选择要跳过冷却期的卷。

  5. 点击逐出

  6. 点击确认

    删除和逐出是长时间运行的操作。如需查看状态,请在 Google Cloud 控制台中点击 通知。删除操作完成后,存储卷状态会更改为“冷却”,并且在逐出操作完成后,存储卷会从存储卷列表中移除。

    删除存储卷后,相应配额将在七天冷却期后返还给您。但若您是逐出存储卷,配额将在逐出操作完成后立即返还给您。

管理启动卷快照

您可以通过以下方式管理启动卷快照:

查看启动卷快照及其详细信息

您可以查看启动卷快照的列表及其详细信息,其中包括:

  • ID
  • 名称
  • 说明
  • 创建时间
  • 关联卷
  • 类型

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 页面。
  2. 点击卷名称。
  3. 卷详情页面上的快照部分中,您可以查看快照列表及其详细信息。

gcloud

如需列出启动卷的所有快照,请发出 gcloud bms volumes snapshots list 命令。

gcloud bms volumes snapshots list --project=PROJECT_ID --region=REGION --volume=VOLUME_NAME

如需查看特定启动卷快照的详细信息,请发出 gcloud bms volumes snapshots describe 命令。

gcloud bms volumes snapshots describe --project=PROJECT_ID --region=REGION --volume=VOLUME_NAME --snapshot=SNAPSHOT_NAME

API

如需列出所有启动卷快照,请在以下 curl 命令中输入项目 ID、区域和卷名称。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/snapshots"

如需查看启动卷快照的详细信息,请在以下 curl 命令中输入项目 ID、区域、卷名称和快照名称。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/snapshots/SNAPSHOT_NAME"

创建启动卷快照

您可以为启动卷创建快照。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 页面。
  2. 点击卷名称。
  3. 卷详情页面上的快照部分中,点击创建
  4. 创建新的卷快照页面上,执行以下操作:
    1. 名称字段中,为快照输入一个唯一的名称。
    2. 说明字段中,输入快照的说明。
  5. 点击创建

gcloud

如需创建启动卷快照,请发出 gcloud bms volumes snapshot 命令。

gcloud bms volumes snapshot --project=PROJECT_ID --region=REGION --volume=VOLUME_NAME --snapshot=SNAPSHOT_NAME --description=DESCRIPTION

API

如需创建启动卷快照,请在以下 curl 命令中输入项目 ID、区域、卷名称、快照名称和快照说明。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/snapshots"
 -d \
'{\''name\'':
\''projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/snapshots/SNAPSHOT_NAME\'', \''description\'': \''DESCRIPTION\''}' \

删除启动卷快照

您可以删除启动卷快照。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 页面。
  2. 点击卷名称。
  3. 卷详情页面上的快照部分中,选择要删除的快照。
  4. 点击删除
  5. 出现提示时,点击确认

gcloud

如需删除启动卷快照,请发出 gcloud bms volumes snapshots delete 命令。

gcloud bms volumes snapshots delete --project=PROJECT_ID --region=REGION --volume=VOLUME_NAME --snapshot=SNAPSHOT_NAME

出现提示时,输入“Y”并按 EnterReturn 键。

API

如需删除启动卷快照,请在以下 curl 命令中输入项目 ID、区域、卷名称和快照名称。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/snapshots/SNAPSHOT_NAME"

恢复启动卷快照

您可以通过快照恢复启动卷。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > 服务器页面。
  2. 停止连接到要恢复的卷的服务器。请参阅运行裸金属解决方案服务器

    等待关停完成后再继续执行下一步。

  3. 进入 Compute Engine > 裸金属解决方案 > 页面。

  4. 针对要恢复的卷,点击卷名称。

  5. 卷详情页面上,执行以下操作:

    1. 对于要恢复的快照,请点击
    2. 点击恢复
    3. 出现提示时,点击确认

gcloud

如需恢复启动卷快照,请发出 gcloud bms volumes restore 命令。

gcloud bms volumes restore --project=PROJECT_ID --region=REGION --volume=VOLUME_NAME --snapshot=SNAPSHOT_NAME

API

如需恢复启动卷快照,请在以下 curl 命令中输入项目 ID、区域、卷名称和快照名称。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
-H "Content-Length:0" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/volumes/VOLUME_NAME/snapshots/SNAPSHOT_NAME:restoreVolumeSnapshot"

由于恢复启动卷需要一段时间才能完成,您可以按照查看长时间运行的操作的状态中的步骤检查状态。

管理 NFS 文件存储

您可以通过以下方式管理 NFS 文件存储:

查看 NFS 卷

为裸金属解决方案订购和预配 NFS 后,您可以查看 NFS 文件存储的状态,并确认 Google Cloud 按预期实现了您配置的设置。

如需查看 NFS 卷的详细信息,请按照以下步骤操作:

控制台

  1. 进入 NFS 共享页面。

    前往 NFS 共享

    NFS 共享页面列出了所有 NFS 卷及以下详细信息:

  2. 查看可用信息。

    字段 说明 示例
    状态 指明 NFS 卷的可用性 带有对勾标记的绿色圆圈表示已预配 NFS 卷。
    ID 分配给托管卷的 NFS 存储设备的标识符。
    • 点击该 ID 可查看有关存储卷的其他信息,包括允许的客户端和 NFS 属性。
    • 排查此资源的问题时,请与 Google Cloud 支持团队共享该 ID。
    at-2222222-nfs001
    名称 托管卷的 NFS 存储设备的名称。点击该名称可查看有关存储卷的其他信息,包括允许的客户端和 NFS 属性。

    注意:如果在预配 NFS 存储设备时未输入名称,则 ID会显示在此字段中。
    nfs-share-7
    位置 NFS 存储卷的区域 asia-southeast1
    Pod

    包含 NFS 卷的 Pod。Pod 是一个包含裸金属解决方案资源的隔离单元。不同 Pod 中的资源无法连接。一个区域可以有多个 Pod。

    Pod 列默认处于停用状态。如需启用它,请执行以下操作:

    1. 点击列显示选项
    2. 选中 Pod 复选框。
    3. 点击确定

    如果您不想启用 Pod 列,则可以点击 NFS 卷名称来查看 NFS 卷的 pod。

    asia-southeast1-pod1
    NFS 存储卷的名称。点击该名称可查看有关 NFS 存储卷的其他信息,例如快照。 at-2222222-nfs001-vol000
    标签 显示您添加到此 NFS 文件存储资源中的任何标签

    如果要使用标签来过滤控制台输出,您可以复制标签文本并将其粘贴到状态字段上方的过滤器框。
    environment:test

gcloud

  1. 如需查看裸金属解决方案环境中 NFS 文件存储的状态,请发出 gcloud bms nfs-shares list 命令:

    gcloud bms nfs-shares list --project=PROJECT_ID --region=REGION
    

    其他命令选项包括:

    • --limit: 限制输出以显示特定数量的设备
    • --filter: 限制输出,以显示具有特定标签或其他过滤条件参数的设备。

    输出会提供有关 NFS 文件存储的详细信息,包括名称、ID、卷和允许的客户端。

    NAME: nfs-share-7
    ID: at-2222222-nfs001
    PROJECT: PROJECT_ID
    REGION: REGION
    VOLUME_NAME: at-2222222-nfs001-vol000
    STATE: PROVISIONED
    ALLOWED_CLIENTS: [{"allowedCidr": "192.168.1.1/32", "networkName": "at-1111111-vlan001", "shareIp": "192.168.1.240"}]
    

  2. 如需查看特定 NFS 文件存储设备的状态,请发出 gcloud bms nfs-shares describe 命令。您可以将 NFS 共享名称或 ID 用作 NFS_SHARE 变量:

    gcloud bms nfs-shares describe NFS_SHARE --project=PROJECT_ID --region=REGION
    
    输出内容提供有关允许的客户端、NFS 设置、NFS 服务器及其状态以及存储卷的详细信息。
    allowedClients:
    – allowDev: true
      allowedClientsCidr: 192.168.1.1/32
      mountPermissions: READ_WRITE
      network: projects/PROJECT_ID/locations/REGION/networks/at-1111111-vlan001
      noRootSquash: true
      shareIp: 192.168.1.240
    name: projects/PROJECT_ID/locations/REGION/nfsShares/NFS_SHARE
    nfsShareId: at-2222222-nfs001
    state: PROVISIONED
    volume: projects/PROJECT_ID/locations/REGION/volumes/at-2222222-nfs001-vol000
    

API

  1. 如需查看裸金属解决方案环境中 NFS 文件存储的状态,包括允许的客户端和 NFS 属性,请在下面的 curl 命令中输入项目 ID 和区域。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares"
    
  2. 如需查看特定 NFS 文件存储设备的状态,请输入您的项目 ID、区域和 NFS 服务器名称或 ID,然后发出以下命令:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares/NFS_SHARE"
    

使用标签整理 NFS 文件存储

为帮助整理 NFS 文件存储,您可以使用标签。标签采用键值对形式,您可以将其附加到每个 NFS 卷,然后根据其标签过滤 NFS 卷。例如,您可以使用标签按用途、环境、位置、部门等对 NFS 卷进行分组。标签是可选项。

为 NFS 卷添加或更新标签

您可以为现有 NFS 卷添加或更新标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > NFS 共享页面。

  2. 对于要为其添加标签的 NFS 卷,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 点击 添加标签,然后添加键值对。
    2. 如需更新标签,请选择现有标签并修改其值。
    3. 点击提交
  5. 返回NFS 共享页面后,刷新该页面即可查看您所做的更改。

gcloud

如需为 NFS 卷添加或更新标签,请将 gcloud bms nfs-shares update 命令与 --update-labels 选项结合使用。

以下示例命令会添加标签 environment = devlocation = branch

gcloud bms nfs-shares update NFS_VOLUME_NAME --project=PROJECT_ID --region=REGION --update-labels environment=dev,location=branch

如果您为已存在的标签提供新值,则系统会使用新值更新现有标签。如果您提供新标签,则系统会将新标签添加到标签列表中。

API

如需为 NFS 卷添加或更新标签,请在以下 curl 命令中输入项目 ID、区域、NFS 卷名称和标签列表。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会分配标签 environment = test

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares/NFS_VOLUME_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

移除 NFS 卷的标签

您可以移除 NFS 卷的标签。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > NFS 共享页面。

  2. 对于要移除其标签的 NFS 卷,请点击

  3. 点击 修改标签

  4. 标签编辑器页面上,执行以下操作:

    1. 如需删除标签,请点击
    2. 点击提交
  5. 返回NFS 共享页面后,刷新该页面即可查看您所做的更改。

gcloud

如需移除 NFS 卷的标签,请将 gcloud bms nfs-shares update 命令与以下选项结合使用:

  • --remove-labels:移除指定的标签。
  • --clear-labels:移除所有标签。

以下示例命令会移除 NFS 卷的 department 标签:

gcloud bms nfs-shares update NFS_VOLUME_NAME --project=PROJECT_ID --region=REGION --remove-labels=department

以下示例命令会移除 NFS 卷的所有标签:

gcloud bms nfs-shares update NFS_VOLUME_NAME --project=PROJECT_ID --region=REGION --clear-labels

API

如需移除 NFS 卷的标签,请在以下 curl 命令中输入项目 ID、区域和 NFS 卷名称。提供一个空的标签列表以移除所有标签,或提供您要保留的标签列表(去掉您要移除的标签)。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会移除 environment = test 以外的所有标签。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares/NFS_VOLUME_NAME?updateMask=labels"
 -d "{
  'labels' : {'environment': 'test'}
}"

如果您在发出 curl 命令时不使用任何标签或值,则将清除所有标签。

'labels' : {
}

如果您在发出 curl 命令时使用新标签值,则新值会覆盖先前的值。

'labels' : {
     'user': 'production',
     'env': 'production',
     'purpose': 'shared_data_store'
}

使用标签过滤 NFS 卷

您可以使用标签搜索 NFS 卷并过滤结果。

控制台

  1. 进入 Compute Engine > 裸金属解决方案 > NFS 共享页面。

  2. 点击 NFS 卷列表上方的 过滤栏。

  3. 属性列表中,选择标签

  4. 为标签输入键、值或键值对。

    例如,如需仅查看标签为 env:dev 的 NFS 卷,您可以输入以下任一项:

    • 输入键:env
    • 输入值:dev
    • 输入键值对:env:dev
  5. 如需应用标签过滤条件,请点击过滤条件栏外部的任意位置。

gcloud

如需使用标签过滤 NFS 卷,请将 gcloud bms nfs-shares list 命令与 --filter 选项结合使用。

--filter 选项的值必须采用 labels.KEY=VALUE 格式。例如,如果您要按键为 env、值为 dev 的标签进行过滤,请发出以下命令:

gcloud bms nfs-shares list --project=PROJECT_ID --region=REGION --filter labels.environment=dev

如需详细了解 gcloud CLI 中的过滤条件语法,请参阅 gcloud topic filters 文档

API

如需使用标签过滤 NFS 卷,请输入项目 ID 和区域,以及 filter=labels 和键值对标签。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

以下示例命令会限制输出,以查找键值对标签为 environment = test 的 NFS 卷。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares"?filter=labels.environment=test

重命名 NFS 卷

如需重命名 NFS 卷,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,打开 Compute Engine > 裸金属解决方案 > NFS 共享页面。
  2. 点击 NFS 卷名称。
  3. NFS 共享详情页面的名称字段中,点击 修改名称
  4. 修改名称页面上,输入新名称。
  5. 点击保存
  6. 如需查看更改,请刷新页面。

gcloud

如需重命名 NFS 卷,请使用 gcloud bms nfs-shares rename 命令。

gcloud bms nfs-shares rename NFS_VOLUME_NAME --new-name=NEW_NAME --project=PROJECT_ID --region=REGION

替换以下内容:

  • NFS_VOLUME_NAME:NFS 卷的当前名称。
  • NEW_NAME:NFS 卷的新名称。
  • PROJECT_ID:您的项目 ID。
  • REGION:NFS 卷的位置。

创建 NFS 卷

您可以使用一个或多个允许的客户端创建 NFS 卷。

控制台

  1. 进入 NFS 共享页面。

    前往 NFS 共享

  2. 点击创建

  3. 名称字段中,输入 NFS 卷的名称。

  4. 区域下拉列表中,选择要创建 NFS 卷的 Google Cloud 区域。

  5. 选择存储类型。

  6. 大小字段中,输入硬盘的大小(以 GiB 为单位)。

    大小范围介于 100 GiB 到 16 TiB 之间。如果您需要超过 16 TiB,请根据需要创建更多 NFS 卷。

  7. 允许的客户端部分中,添加允许的客户端网络:

    1. 点击添加一项
    2. 选中从组织中的其他项目中选择网络复选框,以启用从其他项目中选择网络的功能。
    3. 选择现有网络下拉列表中,选择一个网络。
    4. 输入允许访问 NFS 卷的 IP 地址范围。
    5. 装载权限下拉列表中,选择允许的客户端网络的装载权限。
    6. 选中允许开发者复选框以允许创建设备。
    7. 选中允许 SUID 复选框以启用 SUID。
    8. 选中无根用户废除复选框以启用根用户废除。

      我们建议您为新的 NFS 卷停用根用户废除。默认情况下,NFS 卷具有权限 755 和所有者 root(0)。启用根用户废除 (root squash) 后,无法将文件写入新的 NFS 卷,因为所有新的 NFS 卷都归 root 用户所有。因此,请先停用根用户废除并创建 NFS 卷,构建目录结构,更改 NFS 卷的权限或所有权。然后,通过移除并重新添加允许的客户端,在 NFS 卷上启用根用户废除。请参阅更新 NFS 卷

    9. 点击完成

  8. 点击创建

gcloud

如需创建 NFS 卷,请发出 gcloud bms nfs-shares create 命令。使用 --allowed-client 选项可指定允许的客户端。如需指定多个允许的客户端,请重复 --allowed-client 选项。

在发出命令之前,输入以下值:

  • NFS_VOLUME_NAME:NFS 卷的名称。
  • REGION:NFS 卷所在的区域。
  • SIZE_GIB:NFS 卷的大小(以 GiB 为单位)。
  • STORAGE_TYPE:底层卷的存储类型。
  • NETWORK_NAME:要允许的网络的名称。
  • (可选)PROJECT_ID:允许的客户端网络的项目 ID。如果您未提供项目 ID,则默认为 NFS 卷所属的项目。
  • IP_ADDRESS_RANGE:允许访问 NFS 卷的 IP 地址的子网。通常是客户端网络。
  • MOUNT_PERMISSIONS:允许的客户端网络的装载权限。
  • ALLOW_DEV:允许创建设备(是/否)。
  • ALLOW_SUID:允许使用 SUID(是/否)。
  • ENABLE_ROOT_SQUASH:启用根用户废除(是/否)。我们建议您为新的 NFS 卷停用根用户废除。默认情况下,NFS 卷具有权限 755 和所有者 root(0)。启用根用户废除后,无法将文件写入新的 NFS 卷,因为所有新的 NFS 卷都归 root 用户所有。因此,请先停用根用户废除并创建 NFS 卷,构建目录结构,更改 NFS 卷的权限或所有权。然后,通过移除并重新添加允许的客户端,在 NFS 卷上启用根用户废除。请参阅更新 NFS 卷
gcloud bms nfs-shares create --project=PROJECT_ID --region=REGION NFS_VOLUME_NAME \
--size-gib=SIZE_GIB --storage-type=STORAGE_TYPE \
--allowed-client=network=NETWORK_NAME,\
network-project-id=PROJECT_ID,cidr=IP_ADDRESS_RANGE,\
mount-permissions=MOUNT_PERMISSIONS,allow-dev=ALLOW_DEV,allow-suid=ALLOW_SUID,\
enable-root-squash=ENABLE_ROOT_SQUASH \

API

如需创建 NFS 卷,请将变量的值输入以下 curl 命令。您可以使用 allowedClients 列表指定允许的客户端。

在发出命令之前,输入以下值:

  • NFS_VOLUME_NAME:NFS 卷的名称。
  • REGION:NFS 卷所在的区域。
  • SIZE_GIB:NFS 卷的大小(以 GiB 为单位)。
  • STORAGE_TYPE:底层卷的存储类型。
  • NETWORK_NAME:要允许的网络的名称。
  • (可选)PROJECT_ID:允许的客户端网络的项目 ID。如果您未提供项目 ID,则默认为 NFS 卷所属的项目。
  • IP_ADDRESS_RANGE:允许访问 NFS 卷的 IP 地址的子网。通常是客户端网络。
  • MOUNT_PERMISSIONS:允许的客户端网络的装载权限。
  • ALLOW_DEV:允许创建设备(是/否)。
  • ALLOW_SUID:允许使用 SUID(是/否)。
  • ENABLE_ROOT_SQUASH:启用根用户废除(是/否)。我们建议您为新的 NFS 卷停用根用户废除。默认情况下,NFS 卷具有权限 755 和所有者 root(0)。启用根用户废除后,无法将文件写入新的 NFS 卷,因为所有新的 NFS 卷都归 root 用户所有。因此,请先停用根用户废除并创建 NFS 卷,构建目录结构,更改 NFS 卷的权限或所有权。然后,通过移除并重新添加允许的客户端,在 NFS 卷上启用根用户废除。请参阅更新 NFS 卷

复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares"
 -d \
'{
  "name": "projects/PROJECT_ID/locations/REGION/nfsShares/NFS_VOLUME_NAME",
  "labels": {
    "nfsKey1": "some_value",
    "key2": "another_value",
  },
  "requestedSizeGib": "SIZE_GIB",
  "storageType": "STORAGE_TYPE",
  "allowedClients": [
    {
      "network": "projects/PROJECT_ID/locations/REGION/networks/NETWORK_NAME",
      "allowedClientsCidr": "IP_ADDRESS_RANGE",
      "mountPermissions": "MOUNT_PERMISSIONS",
      "allowDev": ALLOW_DEV,
      "allowSuid": ALLOW_SUID,
      "noRootSquash": ENABLE_ROOT_SQUASH,
    }
  ],
}'

由于创建 NFS 卷需要一段时间才能完成,您可以按照查看长时间运行的操作的状态中的步骤检查状态。

更新 NFS 卷

NFS 卷创建后,您只能更新其允许的客户端。

控制台

  1. 进入 NFS 共享页面。

    前往 NFS 共享

  2. 点击 NFS 卷的名称。

  3. 如需添加允许的客户端,请执行以下操作:

    1. 允许的客户端部分中,点击添加
    2. 添加允许的客户端页面上,点击添加一项
    3. 选中从组织中的其他项目中选择网络复选框,以启用从其他项目中选择网络的功能。
    4. 选择现有网络下拉列表中,选择一个网络。
    5. 输入允许访问 NFS 卷的 IP 地址范围。
    6. 装载权限下拉列表中,选择允许的客户端网络的装载权限。
    7. 选中允许开发者复选框以允许创建设备。
    8. 选中允许 SUID 复选框以启用 SUID。
    9. 选中无根用户废除复选框以启用根用户废除。

      我们建议您为新的 NFS 卷停用根用户废除。默认情况下,NFS 卷具有权限 755 和所有者 root(0)。启用根用户废除 (root squash) 后,无法将文件写入新的 NFS 卷,因为所有新的 NFS 卷都归 root 用户所有。因此,请先停用根用户废除并创建 NFS 卷,构建目录结构,更改 NFS 卷的权限或所有权。然后,通过移除并重新添加允许的客户端,在 NFS 卷上启用根用户废除。请参阅更新 NFS 卷

    10. 点击完成

    11. 点击添加

  4. 如需更新允许的客户端,请执行以下操作:

    1. 选择允许的客户端网络。
    2. 点击更新
    3. 更新允许的客户端页面上,点击客户端网络以展开其详细信息。
    4. 更新必填字段。
    5. 点击完成
    6. 点击更新

gcloud

如需更新 NFS 卷允许的客户端列表,您可以将以下选项与 gcloud bms nfs-shares update 命令结合使用:

  • --add-allowed-client:添加允许的客户端。重复使用此选项可添加多个允许的客户端。
  • --remove-allowed-client:移除允许的客户端。您需要使用此选项提供 NETWORK_NAMEIP_ADDRESS_RANGE 的值。重复使用此选项可移除多个允许的客户端。
  • --clear-allowed-client:移除所有允许的客户端。

如需更新 NFS 卷,请在发出 gcloud bms nfs-shares update 命令时使用适当的选项。例如:

gcloud bms nfs-shares update --project=PROJECT_ID --region=REGION NFS_VOLUME_NAME --remove-allowed-client=network=NETWORK_NAME,network-project-id=PROJECT_ID,cidr=IP_ADDRESS_RANGE

如需更新允许的客户端的特性,请使用 --remove-allowed-client 选项移除该客户端,然后使用 --add-allowed-client 选项再次添加更新了特性的客户端。

API

如需更新 NFS 卷,请将变量的值输入以下 curl 命令。如需查看完整的变量列表,请参阅创建 NFS 卷。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares/NFS_VOLUME_NAME?updateMask=allowed_clients%2Clabels"
 -d \
'{
  "name": "projects/PROJECT_ID/locations/REGION/nfsShares/NFS_VOLUME_NAME",
  "labels": {
    "newKey": "newVal",
  },
  "allowedClients": [
    {
      "network": "projects/PROJECT_ID/locations/REGION/networks/NFS_VOLUME_NAME",
      "allowedClientsCidr": "IP_ADDRESS_RANGE",
      "mountPermissions": "MOUNT_PERMISSIONS",
      "allowDev": ALLOW_DEV,
      "allowSuid": ALLOW_SUID,
      "noRootSquash": ENABLE_ROOT_SQUASH,
    }
  ],
}'

由于更新 NFS 卷需要一段时间才能完成,您可以按照查看长时间运行的操作的状态中的步骤检查状态。

删除 NFS 卷

删除 NFS 卷会自动触发 7 天的冷却期,在此期间 Google Cloud 会阻止使用该卷。

控制台

  1. 进入 NFS 共享页面。

    前往 NFS 共享

  2. 点击 NFS 卷的名称。

  3. 允许的客户端部分中,选择允许的客户端网络。

  4. 点击移除

  5. 点击确认

gcloud

要删除 NFS 卷,请发出 gcloud bms nfs-shares delete 命令。

gcloud bms nfs-shares delete --project=PROJECT_ID --region=REGION NFS_VOLUME_NAME

API

如需删除 NFS 卷,请在以下 curl 命令中输入项目 ID、区域和 NFS 卷名称。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键。

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/nfsShares/NFS_VOLUME_NAME"

由于删除 NFS 卷需要一段时间才能完成,您可以按照查看长时间运行的操作的状态中的步骤检查状态。

查看长时间运行的操作的状态

某些 gcloud 或 API 命令(如服务器重置)可能需要很长时间才能完成。生成长时间运行的操作的命令也会生成包含操作 ID 的输出。您可以使用操作 ID 来检查长时间运行的操作的状态。

在输出的 name 字段中,您可以找到位于 operations 目录后面的操作 ID。例如,reset API 命令的以下输出显示操作 ID 为 eb0056e2-b6f6-4792-8255-59cd79d5c686

{
"name": "projects/PROJECT_ID/locations/REGION/operations/eb0056e2-b6f6-4792-8255-59cd79d5c686",
"done": true
}

如需检查长时间运行的操作的状态,请使用以下选项:

gcloud

如需查看长时间运行的操作的状态,请使用 gcloud bms operations describe 命令。

gcloud bms operations describe --project=PROJECT_ID --region=REGION OPERATION_ID

API

  1. 打开 Google Cloud 控制台中的 Cloud Shell 终端窗口。

  2. 如需查看裸金属解决方案环境中长时间运行的操作的状态,请在以下 curl 命令中输入项目 ID、区域和操作 ID。复制该命令,将其粘贴到 Cloud Shell 提示符中,然后按 EnterReturn 键:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json" \
    "https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID"
    
    操作完成后,完成字段在输出中显示为 true
    {
      "name": "operations/OPERATION_ID",
      "done": true
    }