שימוש בנפחי NFS כמאגרי נתונים של vSphere ב-VMware Engine

בדף הזה מוסבר איך להשתמש בנפחי NFS כמאגרי נתונים של vSphere ב-VMware Engine. אתם יכולים ליצור ולנהל מאגרי נתונים של NFS שמגובים על ידי מכונות Filestore, נפחי אחסון של Google Cloud NetApp Volumes או שיתופי NFS של צד שלישי באמצעות VMware Engine API,‏ Google Cloud CLI או Terraform. נקודת הקצה ב-API היא vmwareengine.googleapis.com. פעולות של API ו-gcloud CLI ליצירה, לעדכון, למחיקה, להרכבה ולביטול הרכבה של Datastore הן אסינכרוניות. כשמפעילים אחת מהפעולות האלה, VMware Engine מחזיר אובייקט פעולה שאפשר להשתמש בו כדי לעקוב אחרי סטטוס הבקשה.

מעקב אחר פעולה

כדי לעקוב אחרי הסטטוס של פעולה, משתמשים ב-API או ב-CLI של gcloud.

API

curl -X GET \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של הפעולה.
  • OPERATION_ID: המזהה של הפעולה שמתבצעת.

gcloud

gcloud vmware operations describe OPERATION_ID --location=LOCATION --project=PROJECT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של הפעולה.
  • OPERATION_ID: המזהה של הפעולה שמתבצעת.

יצירת מאגר נתונים של NFS

כדי ליצור Datastore שמגובה על ידי מכונת Filestore, נפח של Google Cloud NetApp Volumes או שיתוף NFS של צד שלישי, צריך להשתמש ב-Terraform, ב-API או ב-CLI של gcloud. כדי ליצור מאגר נתונים באמצעות ה-API, שולחים את בקשת POST הבאה:

POST https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores?datastoreId=DATASTORE_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של Datastore.
  • ‫DATASTORE_ID: השם של Datastore.

גוף הבקשה חייב להיות אובייקט JSON שמכיל את הפרטים של נפח ה-NFS שיגבה את מאגר הנתונים.

  • ‫description: (אופציונלי) תיאור קצר של Datastore.
  • ‫nfs_datastore: (חובה) קונטיינר להגדרת מאגר הנתונים של NFS.

Filestore

בקטעים הבאים מוסבר איך ליצור Datastore עם Filestore באמצעות ה-API, ה-CLI של gcloud או Terraform.

API

אם Datastore מגובה על ידי Filestore, צריך לספק את הפרטים הבאים ב-google_file_service:

  • ‫filestore_instance: (חובה) שם המשאב המלא של מופע Filestore בפורמט projects/{project}/locations/{location}/instances/{instance}.

גוף בקשה לדוגמה:

{
  "description": "Filestore Datastore example",
  "nfs_datastore": {
    "google_file_service": {
      "filestore_instance": "projects/FILESTORE_PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫FILESTORE_PROJECT_ID: מזהה הפרויקט שבו נמצא מופע Filestore.
  • ‫LOCATION: המיקום של מופע Filestore. המיקום הזה צריך להיות זהה למיקום של Datastore שצוין בכתובת ה-URL של הבקשה.
  • ‫INSTANCE_NAME: השם של מכונת Filestore.

gcloud

gcloud vmware datastores create DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID \
--filestore=projects/FILESTORE_PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • ‫DATASTORE_ID: השם של Datastore.
  • ‫LOCATION: המיקום של Datastore ושל מופע Filestore.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫FILESTORE_PROJECT_ID: מזהה הפרויקט שבו נמצא מופע Filestore.
  • ‫INSTANCE_NAME: השם של מכונת Filestore.

Terraform

מידע נוסף זמין במאמר בנושא משאב Terraform‏ google_vmwareengine_datastore.

resource "google_vmwareengine_datastore" "DATASTORE_ID" {
  name        = "DATASTORE_ID"
  location    = "LOCATION"
  description = "DESCRIPTION"

  nfs_datastore {
    google_file_service {
      filestore_instance = "projects/FILESTORE_PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫DATASTORE_ID: השם של Datastore.
  • ‫LOCATION: המיקום של Datastore ושל מופע Filestore.
  • ‫DESCRIPTION: תיאור של Datastore.
  • ‫FILESTORE_PROJECT_ID: מזהה הפרויקט שבו נמצא מופע Filestore.
  • ‫INSTANCE_NAME: השם של מכונת Filestore.

Google Cloud NetApp Volumes

בקטעים הבאים מוסבר איך ליצור Datastore שמגובה על ידי Google Cloud NetApp Volumes באמצעות ה-API או ה-CLI של gcloud.

API

אם מאגר הנתונים מגובה על ידי Google Cloud NetApp Volumes, צריך לספק את הפרטים הבאים ב-google_file_service:

  • ‫netapp_volume: (חובה) שם המשאב המלא של נפח האחסון ב-Google Cloud NetApp Volumes בפורמט projects/{project}/locations/{location}/volumes/{volume}.

גוף בקשה לדוגמה:

{
  "description": "NetApp Volumes Datastore example",
  "nfs_datastore": {
    "google_file_service": {
      "netapp_volume": "projects/NETAPP_PROJECT_ID/locations/LOCATION/volumes/VOLUME_NAME"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫NETAPP_PROJECT_ID: מזהה הפרויקט שבו נמצא נפח האחסון של Google Cloud NetApp Volumes.
  • ‫LOCATION: המיקום של נפח האחסון ב-Google Cloud NetApp Volumes. המיקום הזה צריך להיות זהה למיקום של Datastore שצוין בכתובת ה-URL של הבקשה.
  • ‫VOLUME_NAME: השם של נפח האחסון שלכם ב-Google Cloud NetApp Volumes.

gcloud

gcloud vmware datastores create DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID \
--netapp=projects/NETAPP_PROJECT_ID/locations/LOCATION/volumes/VOLUME_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • ‫DATASTORE_ID: השם של Datastore.
  • ‫LOCATION: המיקום של Datastore והנפח של Google Cloud NetApp Volumes.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫NETAPP_PROJECT_ID: מזהה הפרויקט שבו נמצא נפח האחסון של Google Cloud NetApp Volumes.
  • ‫VOLUME_NAME: השם של נפח האחסון שלכם ב-Google Cloud NetApp Volumes.

Terraform

מידע נוסף זמין במאמר בנושא משאב Terraform‏ google_vmwareengine_datastore.

resource "google_vmwareengine_datastore" "DATASTORE_ID" {
  name        = "DATASTORE_ID"
  location    = "LOCATION"
  description = "DESCRIPTION"

  nfs_datastore {
    google_file_service {
      netapp_volume = "projects/NETAPP_PROJECT_ID/locations/LOCATION/volumes/VOLUME_NAME"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫DATASTORE_ID: השם של Datastore.
  • ‫LOCATION: המיקום של Datastore והנפח של Google Cloud NetApp Volumes.
  • ‫DESCRIPTION: תיאור של Datastore.
  • ‫NETAPP_PROJECT_ID: מזהה הפרויקט שבו נמצא נפח האחסון של Google Cloud NetApp Volumes.
  • ‫VOLUME_NAME: השם של נפח האחסון שלכם ב-Google Cloud NetApp Volumes.

NFS של צד שלישי

בקטעים הבאים מוסבר איך ליצור Datastore שמגובה בשיתוף NFS של צד שלישי באמצעות ה-API או ה-CLI של gcloud.

API

אם Datastore מגובה בשיתוף NFS של צד שלישי, צריך לספק את הפרטים הבאים ב-nfs_datastore:

  • ‫third_party_nfs: (חובה) מכיל הגדרה של NFS של צד שלישי.
    • ‫network: השם של רשת ה-VPC בפורמט projects/{project}/global/networks/{network}.
    • ‫file_share: שם שיתוף הקבצים.
    • ‫servers: רשימה של כתובות IP של שרתים.

גוף הבקשה דומה לזה שמופיע בהמשך:

{
  "description": "Third-party NFS Datastore example",
  "nfs_datastore": {
    "third_party_nfs": {
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "file_share": "FILE_SHARE_NAME",
      "servers": ["SERVER_ADDRESS_1"]
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫NETWORK_NAME: השם של רשת ה-VPC עבור מאגר הנתונים של NFS של צד שלישי.
  • ‫FILE_SHARE_NAME: שם שיתוף הקבצים של מאגר הנתונים של צד שלישי ב-NFS.
  • ‫SERVER_ADDRESS_1: כתובת ה-IP של השרת עבור מאגר הנתונים של NFS של צד שלישי. אם צריך, מוסיפים עוד כתובות לרשימה.

gcloud

gcloud vmware datastores create DATASTORE_ID \
--third-party-nfs-network=NETWORK_NAME \
--third-party-nfs-file-share=FILE_SHARE_NAME \
--third-party-nfs-servers=SERVER_ADDRESSES \
--location=LOCATION --project=PROJECT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫DATASTORE_ID: השם של Datastore.
  • ‫NETWORK_NAME: השם של רשת ה-VPC של מאגר הנתונים של צד שלישי ב-NFS.
  • ‫FILE_SHARE_NAME: שם שיתוף הקבצים של מאגר הנתונים של צד שלישי ב-NFS.
  • ‫SERVER_ADDRESSES: רשימה מופרדת בפסיקים של כתובות IP של שרתים עבור מאגר הנתונים של NFS של צד שלישי.
  • LOCATION: המיקום של Datastore.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

הצגת רשימה או קבלת Datastore

כדי לראות רשימה של כל מאגרי Datastore בפרויקט ובמיקום נתונים, משתמשים ב-CLI של gcloud או שולחים בקשת GET:

API

כדי להציג רשימה של כל מאגרי הנתונים של Datastore בפרויקט ובמיקום נתונים, שולחים בקשת GET:

GET https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores

כדי לאחזר פרטים על Datastore ספציפי, שולחים בקשת GET:

GET https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של Datastore.
  • ‫DATASTORE_ID: השם של Datastore.

gcloud

כדי לראות את כל מאגרי הנתונים של Datastore בפרויקט ובמיקום מסוימים, משתמשים בפקודה gcloud vmware datastores list:

gcloud vmware datastores list \
--location=LOCATION --project=PROJECT_ID

כדי לאחזר פרטים על Datastore ספציפי, משתמשים בפקודה gcloud vmware datastores describe:

gcloud vmware datastores describe DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫LOCATION: המיקום של Datastore.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫DATASTORE_ID: השם של Datastore.

טעינה של Datastore

אחרי שיוצרים מאגר נתונים, צריך לצרף אותו לאשכול vSphere כדי שהוא יהיה זמין למארחי ESXi. כדי לטעון NFS Datastore, משתמשים ב-CLI של gcloud, ב-API או ב-Terraform.

API

POST https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/clusters/CLUSTER_ID:mountDatastore

גוף בקשה לדוגמה:

{
  "datastore_mount_config": {
    "datastore": "projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID",
    "datastore_network": {
      "subnet": "projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/subnets/SERVICE_SUBNET_NAME",
      "connection_count": 4
    },
    "access_mode": "READ_WRITE",
    "nfs_version": "NFS_V3"
  }
}
  • ‫datastore: שם המשאב של Datastore להרכבה.
  • ‫subnet: שם המשאב של רשת המשנה של השירות שבה יש להשתמש לתעבורת NFS.
  • ‫connection_count: (אופציונלי) מספר החיבורים. ערך ברירת המחדל הוא 4.
  • ‫access_mode: (אופציונלי) מצב הגישה, READ_WRITE או READ_ONLY. ערך ברירת המחדל הוא READ_WRITE.
  • ‫nfs_version: (אופציונלי) גרסת ה-NFS. ערך ברירת המחדל הוא NFS_V3.

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של המשאבים.
  • ‫PRIVATE_CLOUD_ID: השם של הענן הפרטי.
  • ‫CLUSTER_ID: שם האשכול.
  • ‫DATASTORE_ID: השם של Datastore להרכבה.
  • ‫SERVICE_SUBNET_NAME: השם של תת-הרשת של השירות שבה יש להשתמש לתעבורת NFS.

gcloud

gcloud vmware private-clouds clusters mount-datastore CLUSTER_ID \
--location=LOCATION --project=PROJECT_ID \
--private-cloud=PRIVATE_CLOUD_ID \
--datastore=projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID \
--subnet=SERVICE_SUBNET_NAME

אפשר גם לספק את פרטי תצורת הרשת באמצעות קובץ JSON עם הדגל --datastore-network:

gcloud vmware private-clouds clusters mount-datastore CLUSTER_ID \
--location=LOCATION --project=PROJECT_ID \
--private-cloud=PRIVATE_CLOUD_ID \
--datastore=projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID \
--datastore-network=network-config.json

כאשר network-config.json מכיל:

{
    "subnet": "SERVICE_SUBNET_NAME",
    "mtu": 1500,
    "connection-count": 4
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CLUSTER_ID: שם האשכול.
  • ‫LOCATION: המיקום של המשאבים.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫PRIVATE_CLOUD_ID: השם של הענן הפרטי.
  • ‫DATASTORE_ID: השם של Datastore להרכבה.
  • ‫SERVICE_SUBNET_NAME: השם של תת-הרשת של השירות שבה יש להשתמש לתעבורת NFS.

Terraform

מידע נוסף זמין במשאב Terraform‏ google_vmwareengine_cluster, כולל דוגמאות להרכבת מאגרי נתונים של Filestore והרכבת מאגרי נתונים של Google Cloud NetApp Volumes.

resource "google_vmwareengine_cluster" "CLUSTER_ID" {
  name    = "CLUSTER_ID"
  parent  = "projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID"
  ...
  datastore_mount_config {
    datastore = "projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID"
    datastore_network {
      subnet           = "projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/subnets/SERVICE_SUBNET_NAME"
      connection_count = 4
      mtu              = 1500
    }
    nfs_version = "NFS_V3"
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CLUSTER_ID: שם האשכול.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של המשאבים.
  • ‫PRIVATE_CLOUD_ID: השם של הענן הפרטי.
  • ‫DATASTORE_ID: השם של Datastore להרכבה.
  • ‫SERVICE_SUBNET_NAME: השם של תת-הרשת של השירות שבה יש להשתמש לתעבורת NFS.

אחרי פעולת טעינה מוצלחת, אפשר לראות את ההגדרה של Datastore שנטען במשאב האשכול. משאב האשכול כולל רשומה של DatastoreMountConfig שמתאימה לנקודת העיגון. לדוגמה:

...
datastoreMountConfig:
- accessMode: READ_WRITE
  datastore: projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID
  datastoreNetwork:
    connectionCount: 4
    mtu: 1500
    networkPeering: projects/PROJECT_ID/locations/global/networkPeerings/PEERING_NAME
    subnet: projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/subnets/SUBNET_NAME
  fileShare: FILE_SHARE_NAME
  nfsVersion: NFS_V3
  servers:
  - SERVER_IP
...

אחרי פעולת טעינה מוצלחת, הרשימה clusters של משאב מאגר הנתונים מתעדכנת. אתם יכולים לתאר Datastore כדי לראות באילו אשכולות הוא מותקן.

API

GET https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

gcloud

gcloud vmware datastores describe DATASTORE_ID --location=LOCATION --project=PROJECT_ID

אחרי שמתארים Datastore, מחפשים את השדה clusters בתשובה כדי לראות באילו אשכולות Datastore מותקן. הפלט הבא לדוגמה מציג Datastore שמוטמע באשכול אחד:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID",
  ...
  "clusters": [
    "projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/clusters/CLUSTER_ID"
  ],
  ...
}

צירוף מאגר נתונים מסוג NFS לאשכול הניהול

הבלוק datastore_mount_config שמשמש להרכבת מאגרי נתונים של NFS הוא מאפיין של המשאב google_vmwareengine_cluster. עם זאת, אשכול הניהול מוגדר בהתחלה בתוך הבלוק management_cluster של המשאב google_vmwareengine_private_cloud, ולא כמשאב google_vmwareengine_cluster עצמאי. המשמעות היא שאי אפשר להגדיר ישירות את datastore_mount_config עבור אשכול הניהול בזמן יצירת הענן הפרטי.

כדי לטעון מאגר נתונים של NFS באשכול הניהול באמצעות Terraform, צריך לייבא את אשכול הניהול הקיים למצב Terraform כמשאב google_vmwareengine_cluster נפרד אחרי הקצאת הענן הפרטי.

השלבים:

  1. ייבוא אשכול הניהול: אחרי שיצרתם את הענן הפרטי ואת אשכול הניהול, מריצים את פקודת Terraform הבאה כדי לייבא את אשכול הניהול למצב:
terraform import google_vmwareengine_cluster.imported_management_cluster "projects/{your_project}/locations/{private_cloud_location}/privateClouds/{your_private_cloud_id}/clusters/{your_management_cluster_id}"

מחליפים את ערכי ה-placeholder‏ {your_project},‏ {private_cloud_location},‏ {your_private_cloud_id} ו-{your_management_cluster_id} בפרטים הספציפיים של הסביבה שלכם.

  1. הגדרת משאב האשכול בתצורה: מוסיפים בלוק resource "google_vmwareengine_cluster" "imported_management_cluster" לקובץ התצורה של Terraform. הבלוק הזה צריך לשקף בצורה מדויקת את ההגדרה הנוכחית של אשכול הניהול המיובא (למשל, סוג הצומת, מספר הצמתים).

  2. מוסיפים הגדרת Datastore Mount: בתוך בלוק המשאבים google_vmwareengine_cluster.imported_management_cluster החדש, מוסיפים את הבלוק datastore_mount_config כדי להגדיר את ההגדרות של מאגר הנתונים של NFS שרוצים לטעון.

דוגמה לקטע קוד של הגדרה:

# Assume google_vmwareengine_private_cloud "my_pc" is already defined and created

# Resource block for the imported Management Cluster
resource "google_vmwareengine_cluster" "imported_management_cluster" {
  provider = google
  name     = "{your_management_cluster_id}" # Must match the imported cluster's ID
  parent   = google_vmwareengine_private_cloud.my_pc.id

  # Ensure these match the existing management cluster's configuration
  node_type_configs {
    node_type_id = "standard-72"
    node_count   = 3
    # Add other configs like custom_core_count if set
  }

  # Add the datastore mount configuration
  datastore_mount_config {
    datastore = data.google_vmwareengine_datastore.my_nfs_datastore.id
    datastore_network {
      subnet = data.google_vmwareengine_subnet.my_service_subnet.id
      connection_count = 4
      mtu = 1500
    }
    nfs_version = "NFS_V3"
    access_mode = "READ_WRITE"
    ignore_colocation = true
  }

  # Optional: Prevent accidental destruction of this imported resource
  lifecycle {
    ignore_changes = [
      # Ignore changes to attributes managed by the private_cloud resource
      # to prevent conflicts. Adjust as needed.
    ]
    prevent_destroy = true
  }
}

# Data sources for datastore and subnet would be defined elsewhere
# data "google_vmwareengine_datastore" "my_nfs_datastore" { ... }
# data "google_vmwareengine_subnet" "my_service_subnet" { ... }

עדכון של Datastore

אפשר לעדכן רק את השדה description של Datastore. כדי לעדכן Datastore, משתמשים ב-CLI של gcloud או שולחים בקשת PATCH:

API

PATCH https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

גוף בקשה לדוגמה:

{
  "description": "New datastore description"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של Datastore.
  • ‫DATASTORE_ID: המזהה של Datastore.

gcloud

gcloud vmware datastores update DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID \
--description="DESCRIPTION"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫DATASTORE_ID: השם של Datastore.
  • ‫LOCATION: המיקום של Datastore.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫DESCRIPTION: תיאור של Datastore.

ביטול הטעינה של מאגר נתונים

כדי לבטל את הקישור של מאגר נתונים מסוג NFS מאשכול, משתמשים ב-CLI של gcloud, ב-API או ב-Terraform:

API

POST https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/privateClouds/PRIVATE_CLOUD_ID/clusters/CLUSTER_ID:unmountDatastore

גוף בקשה לדוגמה:

{
  "datastore": "projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של המשאבים.
  • ‫PRIVATE_CLOUD_ID: השם של הענן הפרטי.
  • ‫CLUSTER_ID: שם האשכול.
  • DATASTORE_ID: השם של Datastore שרוצים לבטל את ההרכבה שלו.

gcloud

gcloud vmware private-clouds clusters unmount-datastore CLUSTER_ID \
--location=LOCATION --project=PROJECT_ID \
--private-cloud=PRIVATE_CLOUD_ID \
--datastore=projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CLUSTER_ID: שם האשכול.
  • ‫LOCATION: המיקום של המשאבים.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫PRIVATE_CLOUD_ID: השם של הענן הפרטי.
  • DATASTORE_ID: השם של Datastore שרוצים לבטל את ההרכבה שלו.

Terraform

כדי לבטל את הקישור של Datastore באמצעות Terraform, מסירים את הבלוק datastore_mount_config שמשויך ל-Datastore מהמשאב google_vmwareengine_cluster בהגדרות של Terraform.

אם מסירים את הבלוק datastore_mount_config, ‏ Terraform מבטל את הקישור של Datastore מהאשכול במהלך ההפעלה הבאה.

מחיקה של Datastore

כדי למחוק משאב Datastore, משתמשים ב-CLI של gcloud או מפעילים DELETEבקשה. אסור שה-Datastore יהיה מחובר לאף אשכול.

API

DELETE https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datastores/DATASTORE_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫LOCATION: המיקום של Datastore.
  • ‫DATASTORE_ID: השם של Datastore שרוצים למחוק.

gcloud

gcloud vmware datastores delete DATASTORE_ID \
--location=LOCATION --project=PROJECT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ‫DATASTORE_ID: השם של Datastore שרוצים למחוק.
  • ‫LOCATION: המיקום של Datastore.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

פתרון בעיות

בטבלאות הבאות מפורטות שגיאות נפוצות במהלך יצירה והרכבה של Datastore:

יצירת שגיאות ב-Datastore

בטבלה הבאה מתוארות שגיאות שאולי תיתקלו בהן כשאתם יוצרים מאגרי נתונים:

הודעת השגיאה מטרה פתרון
מופע של שרת קבצים של filestore NFS לא יכול להיות ריק. השדה filestore_instance בגוף הבקשה ריק. צריך לציין את השם המלא של המשאב של מופע Filestore.
הנפח של שרת הקבצים netapp NFS לא יכול להיות ריק. השדה netapp_volume בגוף הבקשה ריק. צריך לציין את השם המלא של המשאב של נפח האחסון ב-Google Cloud NetApp Volumes.
פורמט שדה לא תקין בשדה מסוג filestore_instance השדה filestore_instance לא תואם לפורמט הנדרש. מוודאים ששם המשאב הוא בפורמט projects/{project}/locations/{location}/instances/{instance}.
פורמט שדה לא תקין בשדה מסוג netapp_volume… השדה netapp_volume לא תואם לפורמט הנדרש. מוודאים ששם המשאב הוא בפורמט projects/{project}/locations/{location}/volumes/{volume}.
‫Datastore ונפח NFS נמצאים במיקומים שונים. המופע של Filestore או הנפח של Google Cloud NetApp Volumes נמצא במיקום אחר מזה של Datastore שאתם מנסים ליצור. מוודאים שנפח ה-NFS ומאגר הנתונים נמצאים באותו מיקום.
למשתמש חסרות ההרשאות הנדרשות file.instances.get לחשבון השירות אין את הרשאות ה-IAM הנדרשות כדי לגשת למופע Filestore. מקצים את התפקיד roles/file.viewer לסוכן השירות של VMware Engine.
ההרשאה 'netapp.volumes.get' נדחתה במשאב… לחשבון השירות אין את הרשאות ה-IAM הנדרשות כדי לגשת לנפח של Google Cloud NetApp Volumes. מקצים את התפקיד roles/netapp.viewer לסוכן השירות של VMware Engine.
מופע Filestore ‏… לא קיים. לא נמצאה דוגמה של Filestore שצוינה. מוודאים שמופע Filestore קיים וששם המשאב נכון.
הנפח Netapp ‏… לא קיים. לא נמצא נפח האחסון שצוין ב-Google Cloud NetApp Volumes. מוודאים שנפח האחסון של Google Cloud NetApp Volumes קיים וששם המשאב נכון.
המופע של Filestore הוא ברמת שירות שלא נתמכת מופע Filestore משתמש ברמת שירות שהתכונה הזו לא תומכת בה. יוצרים מופע Filestore חדש עם רמת שירות נתמכת: אזורית או אזורית.
למופע Filestore יש גרסת NFS שלא נתמכת מופע Filestore משתמש בגרסת NFS שלא נתמכת. יוצרים מכונת Filestore חדשה עם NFS גרסה 3.
נפח Netapp ‏… הוא גרסת NFS לא נתמכת … הנפח של Google Cloud NetApp Volumes משתמש בגרסת NFS לא נתמכת. יצירת נפח אחסון חדש ב-Google Cloud NetApp Volumes עם NFS גרסה 3.
ההגנה מפני מחיקה של הנפח Netapp ... מושבתת. ההגנה מפני מחיקה מושבתת בנפח האחסון של Google Cloud NetApp Volumes. הפעלת הגנה מפני מחיקה בנפח האחסון של Google Cloud NetApp Volumes.
אי אפשר ליצור Datastore. כבר קיים משאב ... עם אותה הגדרה. כבר קיים Datastore עם אותו שם ואותה הגדרה. צריך לבחור שם אחר ל-Datastore או לשנות את ההגדרה.

שגיאות בהרכבה ובפירוק של Datastore

בטבלה הבאה מפורטות שגיאות שאתם עשויים להיתקל בהן כשאתם מבצעים פעולות של צירוף או ביטול צירוף של מאגרי נתונים:

הודעת השגיאה מטרה פתרון
אימות DatastoreFormat נכשל. הפורמט שצוין של מאגר הנתונים לא נתמך או לא תקין. מוודאים שהפורמט של מאגר הנתונים תואם ל-VMware Engine (לדוגמה, NFSv3).
טווח MTU לא תקין, הטווח צריך להיות בין 1,300 ל-9,000 הערך של MTU (יחידת שידור מקסימלית) שצוין לרשת של מאגר הנתונים נמצא מחוץ לטווח המקובל של 1,300 עד 9,000. מציינים ערך MTU בין 1,300 ל-9,000.
פרויקט Datastore לא שווה לפרויקט האשכול מזהה הפרויקט של Datastore‏ ( Google Cloud ) לא תואם למזהה הפרויקט של אשכול vSphere‏ ( Google Cloud ). Google Cloud מוודאים ש-Datastore והאשכול שייכים לאותו Google Cloud פרויקט.
ערך MTU לא תקין, ערך MTU צריך להיות זהה לערך MTU של מאגר הנתונים הקיים שמוטמע באשכול ערך ה-MTU של רשת Datastore החדשה לא עקבי עם ערך ה-MTU של מאגרי נתונים אחרים של NFS שכבר הותקנו באותו אשכול. התאמה של ה-MTU של מאגר הנתונים החדש ל-MTU של מאגרי נתונים קיימים שמוצמדים באשכול.
מאגר הנתונים צריך להיות קיים ובמצב 'מוכן' משאב Datastore שצוין לא קיים או שהוא לא במצב READY. מוודאים שמאגר הנתונים נוצר בהצלחה והסטטוס שלו הוא READY באמצעות Get או List Datastore API.
במקרה של צד ראשון, צריך להיות קובץ filestore או netapp בהפניה, והוא צריך להיות במצב מוכן מופע Filestore או נפח Google Cloud NetApp Volumes שמוגדרים כבסיס חסרים או שהם לא במצב READY. מוודאים שנפח ה-NFS שאליו יש הפניה קיים ובמצב READY בפרויקט Google Cloud שלו.
צריך להיות קישור בין רשת ה-VPC של שיתוף הקבצים לבין רשת VMware Engine של הענן הפרטי של האשכול במצב פעיל נדרש קישור בין רשת ה-VPC שבה נמצא נפח ה-NFS לבין רשת VMware Engine של הענן הפרטי, והקישור הזה חסר או שהוא לא במצב ACTIVE. מוודאים שיש חיבור פעיל של קישור בין רשתות VPC שכנות בין ה-VPC של שיתוף הקבצים לבין רשת VMware Engine של הענן הפרטי.
פעולת הטעינה נכשלת ברשתות מדור קודם ברשתות מדור קודם, החיבור הפרטי לפרויקט הדייר של נפח ה-NFS חסר או לא פעיל. לפני שמנסים לטעון את Datastore, צריך לוודא שקיים חיבור פרטי פעיל לפרויקט הדייר. אל תמחקו חיבור פרטי שמאגר נתונים מוצמד משתמש בו.
במקרה של צד ראשון, צריך להוסיף אפשרות ייצוא כדי לאפשר שימוש ברשת משנה של מחשב לצורך טעינה מדיניות הייצוא של נפח ה-NFS לא כוללת את רשת המשנה של שירות הענן הפרטי לצורך גישה. משנים את מדיניות הייצוא של נפח ה-NFS כדי לאפשר גישה מרשת המשנה של השירות בענן הפרטי, שתשמש להרכבה.
צריך לציין תת-רשת עם כתובת IP CIDR חוקית שמוגדרת בה תת-הרשת של השירות שצוינה לרשת Datastore חסרה או שלא הוגדר בה טווח CIDR תקין של כתובות IP. מוודאים שרשת המשנה של השירות המיועד קיימת ושיש לה טווח CIDR מוגדר כראוי, שמספיק להקצאת כתובות IP לכל המארחים של ESXi באשכול.
פורמט Datastore לא תקין שם המשאב שצוין ב-Datastore לא בפורמט מוכר או נכון, ולכן פעולת הביטול של הקישור לא מתבצעת. מוודאים ששם המשאב של Datastore שצוין בבקשת הביטול מדויק ושהוא בפורמט projects/{project}/locations/{location}/datastores/{datastore_id}.
מאגר הנתונים לא מותקן באשכול ה-Datastore שניסיתם לבטל את ההרכבה שלו לא מורכב באשכול שצוין. לפני שמנסים לבטל את הניתוק, צריך לוודא שמאגר הנתונים מחובר לאשכול היעד של vSphere.