ניהול ONTAP במצב ONTAP

בדף הזה מוסבר איך לנהל את ONTAP במצב ONTAP.

מטעמי אבטחה ומטעמי רישום ביומן, NetApp Volumes לא מאפשר חיבורים ישירים ל-ONTAP management LIF. לכן, אי אפשר להשתמש בכלים כמו SystemManager או SSH כדי לנהל את מערכת ONTAP ישירות. במקום זאת, אפשר לשלוח פעולות ONTAP למאגר האחסון במצב ONTAP באמצעות השיטות הבאות:

כלי הניהול, כמו Terraform, משתמשים ב-proxy ל-API של Google כדי לנהל משאבי ONTAP.

לפני שמתחילים

כדי לנהל פעולות ONTAP במאגר האחסון במצב ONTAP, הגרסה של Google Cloud CLI צריכה להיות 559.0.0 לפחות. אם הגרסה שלכם ישנה יותר, Google Cloud CLI יחזיר שגיאה שהפקודה או הדגל לא מוגדרים.

שימוש ב-Google Cloud CLI ONTAP CLI proxy

אין אפשרות גישה ישירה ל-ONTAP CLI באמצעות SSH, אבל אפשר לשלוח פקודות של ONTAP CLI למאגר האחסון באמצעות Google Cloud CLI.

gcloud

מריצים פקודת ONTAP:

gcloud netapp storage-pools execute POOL-NAME ONTAP-COMMAND --project PROJECT \
  --location=LOCATION

מחליפים את המידע הבא:

  • ‫POOL-NAME: השם של מאגר האחסון במצב Flex Unified ONTAP.

  • ‫ONTAP-COMMAND: הפקודה של ONTAP שרוצים להריץ באשכול או במאגר האחסון.

  • PROJECT: מזהה הפרויקט.

  • ‫LOCATION: המיקום של מאגר האחסון.

שימוש ב-Google proxy API לקריאות ל-ONTAP REST API

‫NetApp Volumes מספק נקודת קצה ל-API של Google לכל מאגר אחסון במצב Flex Unified ONTAP, שמאפשרת לשלוח קריאות ל-API בארכיטקטורת REST של ONTAP לאשכול ONTAP הבסיסי. כך תוכלו לשלוט בתכונות של ONTAP באמצעות ממשקי API.

קריאות ל-proxy של ONTAP צריכות להיות בפורמט כתובת ה-URL הבא:

  https://netapp.googleapis.com/v1/projects/PROJECT/locations/LOCATION/storagePools/POOL_NAME/ontap/ONTAP_REST_URL
 

כתובת ה-URL הזו מורכבת מהרכיבים הבאים:

  • כתובת URL בסיסית: https://netapp.googleapis.com/v1

  • Google URN for the storage pool: /projects/PROJECT/locations/LOCATION/storagePools/POOL_NAME

    מחליפים את המידע הבא:

    • ‫PROJECT: מזהה הפרויקט או מספר הפרויקט.

    • ‫LOCATION: שם האזור למאגרי כתובות אזוריים או האזור למאגרי כתובות אזוריים.

    • ‫POOL_NAME: שם המאגר.

  • נתיב ONTAP API בארכיטקטורת REST: /ontap/ONTAP_REST_URL. מידע נוסף זמין במאמר בנושא ONTAP REST API.

הצגת רשימה של כל אמצעי האחסון במאגר אחסון

בדוגמה הבאה מוצגת כתובת ה-URL המלאה להצגת כל נפחי האחסון במאגר האחסון mypool ב-us-central1-a בפרויקט myproject.

https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes

כמו כל הקריאות ל-Google API, גם הקריאה הזו צריכה להיות מאומתת. בדוגמה הבאה ל-CLI, מתבצעת אחזור של אסימון API, ואז מתבצעת קריאה לכתובת ה-URL באמצעות curl כדי להציג רשימה של כל אמצעי האחסון במאגר:

   TOKEN=$(gcloud auth print-access-token)
   curl --location 'https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes' \
   --header "Authorization: Bearer $TOKEN" \
   --header "Content-Type: application/json"
  

List all snapshots of a volume

בדוגמה הבאה מוצגת כתובת ה-URL המלאה להצגת רשימה של כל התמונות של מאגר האחסון mypool והנפח volume-uuid ב-us-central1-a בפרויקט myproject.

https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes/volume-uuid/snapshots

כמו כל הקריאות ל-Google API, גם הקריאה הזו צריכה להיות מאומתת. בדוגמה הבאה של CLI, מתבצעת אחזור של אסימון API, ואז מתבצעת קריאה לכתובת ה-URL באמצעות curl כדי להציג את כל התמונות של אמצעי האחסון:

   TOKEN=$(gcloud auth print-access-token)
   curl --location 'https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes/volume-uuid/snapshots' \
   --header "Authorization: Bearer $TOKEN" \
   --header "Content-Type: application/json"
  

יצירת נפח אחסון

בקטע הזה נסביר איך ליצור נפח אחסון בשם myvolume במאגר אחסון קיים במצב Flex Unified ONTAP, שמזוהה על ידי ה-URN: ‏/projects/myproject/locations/us-central1-a/storagePools/mypool, באמצעות ONTAP REST API.

הוראות ליצירת אמצעי אחסון מופיעות במסמכי התיעוד אונליין של ONTAP REST API. במסמכי התיעוד, עוברים לקטע אחסון ומרחיבים את ניהול נפח האחסון. בקטע הזה מופיעות כמה דוגמאות.

כדי ליצור אמצעי אחסון, פועלים לפי ההוראות הבאות.

  1. קובעים את נקודת הקצה ל-API בארכיטקטורת REST של ONTAP.

    אם משתמשים בדוגמה הבסיסית ב-NetApp Volumes, נקודת הקצה הנדרשת של ONTAP API היא /api/storage/volumes. נקודת הקצה הזו יוצרת את כתובת ה-URL: https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes.

  2. יוצרים את המטען הייעודי (payload) של הבקשה.

    משתמשים במטען הייעודי לדוגמה מתוך מסמכי ONTAP כדי להתאים את הסביבה הספציפית שלכם. לדוגמה:

    {
      "name": "vol1",
      "aggregates": [
        {
          "name": "aggr1"
        }
      ],
      "svm": {
        "name": "vs1"
      }
    }
    

    כשיוצרים אמצעי אחסון, משתמשים בשדה name כדי להקצות את שם אמצעי האחסון. מטען הייעודי (payload) ליצירת נפח אחסון דורש את השמות של האגרגט והמכונה הווירטואלית לאחסון (SVM) שהוקצו על ידי NetApp Volumes במהלך יצירת מאגר במצב ONTAP. במצב ONTAP, לכל מאגר אחסון יש SVM אחד ואגרגט אחסון אחד. אפשר לאחזר את המידע הזה על ידי שליחת שאילתה ל-ONTAP לגבי כל ה-SVM.

    כדי לאחזר את ה-SVM ואת שמות האגרגטים:

    1. שימוש ב-ontap_fields לבחירת שדות: במאגרי NetApp Volumes במצב ONTAP, משתמשים בפרמטר השאילתה ontap_fields= במקום בפרמטר ONTAP הרגיל fields= כדי לציין את השדות המבוקשים.

    2. אופציונלי: Usejq to extract fields: בדוגמה הבאה נעשה שימוש בכלי jq בקוד פתוח כדי לחלץ את name (שם ה-SVM) ואת aggregates מתגובת ה-JSON, וזה שימושי לעיבוד בסקריפטים של מעטפת.

      TOKEN=$(gcloud auth print-access-token)
      curl --location 'https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/svm/svms?ontap_fields=name,aggregates' \
      --header "Authorization: Bearer $TOKEN" \
      --header "Content-Type: application/json" | jq '.rawResponse.records[] | {name: .name, aggregates: .aggregates[].name}'
      

      דוגמה לתגובה:

      {
       "name": "gcnv-7cf6ee41c1a94f0-svm-01",
       "aggregates": "aggr1"
      }
      
  3. מריצים את הקריאה ל-API ליצירת נפח אחסון.

    בעזרת שם הצבירה (aggr1) ושם ה-SVM (gcnv-7cf6ee41c1a94f0-svm-01), יוצרים את מטען הייעוד הסופי של יצירת הנפח ושולחים את הקריאה ל-API. שימו לב: מטען הייעודי (payload) של ONTAP API צריך להיות כלול במעטפת body: {} עבור NetApp Volumes.

    בדוגמה הבאה נוצר נפח אחסון בשם myvolume בגודל 2GB:

    curl --location 'https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/storage/volumes' \
    --header "Authorization: Bearer $TOKEN" \
    --header "Content-Type: application/json" \
    --data '{
      "body": {
        "name": "myvolume",
        "aggregates": [
          {
            "name": "aggr1"
          }
        ],
        "svm": {
          "name": "gcnv-7cf6ee41c1a94f0-svm-01"
        },
        "size": "2GB"
      }
    }'
    

    יצירת נפח אחסון תומכת בהרבה פרמטרים אופציונליים, כמו size. לדוגמה, מטען הייעודי מציין גודל של 2GB. בדף התיעוד של המשאב מפורטים כל הפרמטרים הזמינים, כולל פרמטרים נדרשים ואופציונליים. היא גם כוללת דוגמאות מפורטות של מטען ייעודי (payload) וגופי תגובה.

    כדי להגדיר חלוקה אוטומטית לרמות ב-ONTAP API בארכיטקטורת REST, צריך לכלול את אובייקט ה-JSON‏ tiering בגוף הבקשה:

    • כדי להגדיר את מדיניות הסיווג של אמצעי האחסון לערך all, משתמשים ב-"tiering": {"policy": "all"}.

    • אופציונלי: כדי להגדיר את ימי הצינון, משתמשים במדיניות "tiering": {"policy": "auto", "min_cooling_days": 31}.

      אפשר לציין סף קירור בין 2 ל-183 ימים בשדה min_cooling_days. ערך ברירת המחדל של סף הקירור הוא 31 ימים.

    כדי לעקוף את רמת האחסון הפעילה ולכתוב נתונים ישירות לרמת האחסון בענן בכרכים של קריאה-כתיבה (RW), משתמשים בפרוקסי של Google Cloud CLI ONTAP CLI עם הרשאות מתקדמות:

    set -privilege advanced; volume modify -vserver SVM_NAME -volume VOLUME_NAME -tiering-policy all -is-cloud-write-enabled true
  4. עוקבים אחרי העבודה ב-ONTAP.

    רוב הקריאות ל-ONTAP API, כמו פעולות POST או PATCH שיוצרות או מעדכנות משאבים, לא מופעלות באופן סינכרוני. במקום זאת, השיחות האלה מחזירות משאב של משימת ONTAP, כמו שמוצג בדוגמה של יצירת נפח אחסון.

    דוגמה לתשובה לגבי משרה:

    {
      "body": {
        "job": {
          "_links": {
            "self": {
              "href": "curl --location
    'https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/cluster/jobs/15be1c46-fd2c-11f0-b3c2-7f15697be61c' \
    --header "Authorization: Bearer $TOKEN" \
    --header "Content-Type: application/json""
            }
          },
          "uuid": "15be1c46-fd2c-11f0-b3c2-7f15697be61c"
        }
      }
    }
    

    כדי לבדוק את סטטוס העבודה, שולחים שאילתה למשאב העבודה באמצעות uuid שהוחזר:

    curl --location 'https://netapp.googleapis.com/v1/projects/myproject/locations/us-central1-a/storagePools/mypool/ontap/api/cluster/jobs/15be1c46-fd2c-11f0-b3c2-7f15697be61c' \
    --header "Authorization: Bearer $TOKEN" \
    --header "Content-Type: application/json"
    

    דוגמה לתגובה:

    {
      "rawResponse": {
        "uuid": "15be1c46-fd2c-11f0-b3c2-7f15697be61c",
        "description": "POST
    /api/storage/volumes/15be0ad9-fd2c-11f0-b3c2-7f15697be61c",
        "state": "success",
        "message": "success",
        "code": 0,
        "start_time": "2026-01-29T16:03:43+00:00",
        "end_time": "2026-01-29T16:03:44+00:00",
        "svm": {
          "name": "gcnv-7cf6ee41c1a94f0-svm-01",
          "uuid": "8a29c15d-fb31-11f0-ab03-03e1bb49206d"
       }
      }
    }
    

    אם state הוא success, הכרך נוצר.

    בדוגמה הזו של תהליך העבודה מוסבר איך לחפש פעולות של ONTAP בתיעוד של ONTAP REST API. בנוסף, נסביר איך ליצור את פורמט המטען הייעודי (payload) הנדרש ולשלוח אותו למאגר האחסון באמצעות Google API. לבסוף, נדגים איך לעקוב אחרי עבודת ONTAP עד ליצירת המשאב. בגישה הזו, אתם יכולים לשלוט ברוב ההגדרות של ONTAP עבור מאגר האחסון.

שימוש ב-Terraform לניהול מצב ONTAP

אפשר לנהל משאבים במצב ONTAP באמצעות CLI proxy. שרת ה-Proxy של ה-CLI יעיל לשימוש אינטראקטיבי, אבל אוטומציה יכולה להיות מורכבת יותר. ‫Terraform מנהל באופן עקבי את מחזור החיים של משאבי הענן, ואפשר להשתמש בו כדי לנהל גם את NetApp Volumes וגם משאבי ONTAP.

כדי להחליט באיזה ספק להשתמש, אפשר להיעזר בטבלה שבמאמר סקירה כללית של ניהול תכונות.

  • ספק Google מנהל משאבים באמצעות NetApp Volumes API.

  • ספק NetApp-ONTAP מנהל משאבים באמצעות ממשקי ONTAP REST API.

לדוגמה, אתם יוצרים מאגר אחסון במצב ONTAP באמצעות ספק Google, גרסה 7.27.0 ואילך. לאחר מכן, כדי ליצור נפח במאגר הזה במצב ONTAP, משתמשים בספק NetApp-ONTAP, בגרסה 2.6.0 ואילך.

מידע נוסף על הגדרות ודוגמאות מופיע במאמרי העזרה לספק NetApp-ONTAP.

פעולות מותרות ב-ONTAP

כשניגשים למאגר במצב ONTAP דרך ה-API או ה-CLI proxy, אין הרשאות מלאות ואי אפשר להריץ את כל הפקודות של ONTAP. ההגבלה הזו עוזרת להגן על שלמות המערכת ולמנוע שינויים במשאבים הפיזיים הבסיסיים שמנוהלים על ידי השירות.

בממשקי API מסוימים, המערכת מסננת את נתוני הבקשות והתגובות של API. לדוגמה, מכיוון ש-NetApp Volumes מחייב על קיבולת לוגית, המערכת חוסמת פרמטרים להגדרת קיבולת פיזית. אם שולחים פרמטר שלא מותר, ה-API מחזיר שגיאה.

מידע נוסף על החיוב זמין במאמר חיוב: קיבולת לוגית לעומת קיבולת פיזית.

פקודות ONTAP נתמכות

אפשר לנהל את מצב ONTAP על ידי שליחת פקודות ONTAP באמצעות פרוקסי ONTAP CLI של Google Cloud CLI. ‫NetApp Volumes תומך ברוב הפקודות לניהול של SVM,‏ LUN,‏ volumes ותכונות ONTAP. חלק מהפקודות חסומות כדי להגן על שלמות המערכת או כי הן מנהלות משאבים פיזיים שלא רלוונטיים בשירות מנוהל כמו NetApp Volumes.

מריצים פקודות ברמת ההרשאות של האדמין ב-ONTAP. כדי לשנות את רמת ההרשאה ל'מתקדמת', מוסיפים set advanced; או set -privilege advanced; לתחילת הפקודה. קבוצה מוגבלת של פקודות תומכת גם ברמת ההרשאה לאבחון (diag), שאפשר לגשת אליה על ידי הוספת set diag; לתחילת הפקודה. השינויים האלה בהרשאות לא קבועים.

מכיוון שהפרוקסי הוא לא מעטפת אינטראקטיבית, אפשר להריץ רק פקודה אחת בכל פעם. המשמעות של המגבלה הזו היא שהפרוקסי לא תומך בפקודות אינטראקטיביות שמבקשות מידע נוסף. לדוגמה, אי אפשר ליצור CIFS או SMB vserver ‏ (SVM) שדורש פרטי כניסה של אדמין ב-Active Directory. בנוסף, פרוקסי של CLI לא תומך בחיבור בין אשכולות כי זו פקודה אינטראקטיבית. כדי לבצע את הפעולות האלה, צריך להשתמש ב-ONTAP REST API.

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

משפחת פקודות מטרה פקודות נתמכות הערות
אשכול קבוצות עמיתים ל-SnapMirror ול-FlexCache, והצגת מידע נבחר על האשכול cluster peer – גישה מלאה

cluster show,‏ identity show,‏ date show,‏ ha show,‏ statistics show ו-time-service ntp server show – קריאה בלבד
הפרוקסי של CLI לא תומך בפקודה האינטראקטיבית cluster peer create, ולכן צריך להשתמש ב-API בארכיטקטורת REST. אפשר להשתמש בפקודות אחרות של cluster peer, כמו show.
ניפוי באגים תמיכה במעקב אחר מנות (tcpdump), LUN ופתרון בעיות נעילה ‫debug network tcpdump,‏ debug san lun ו-debug lock persistence – גישה מלאה כל פקודות הניפוי באגים המותרות דורשות את רמת ההרשאה diag. אלה פקודות נפוצות לניפוי באגים.
אירוע יצירת מסננים לשליחת אירועים מעניינים ב-ONTAP ליעדי SMTP או syslog ‫event catalog show ו-יומן אירועים show – גישת קריאה בלבד

‫event config,‏ event filter ו-התראה לגבי אירוע – גישה מלאה
מאפשר לכם לתעד אירועים ביעדים מותאמים אישית. אפשר להשתמש ב-event log show כדי להציג אירועים ביומן לפי זמן או סוג.
משימה ניהול עבודות ONTAP ברמת הצומת והאשכול ‫job show,‏ job schedule,‏ job private,‏ job stop ו-job resume – גישה מלאה
LUN יצירה וניהול של LUN וקבוצות של יוזמים, וייבוא של LUN חיצוני ‫lun create,‏ lun bind ו-igroup – גישה מלאה אפשר לייבא LUN, אבל אי אפשר לחבר דיסקים חיצוניים למערכת במצב ONTAP.
רשת הצגת הגדרות של יציאת רשת, ממשק, נתיב ומרחב כתובות IP, הפעלת פקודות ping ו-traceroute לכתובות IP חיצוניות והצגת חיבורי לקוח לפי פרוטוקול ‫network ping,‏ network traceroute,‏ network port interface,‏ network ipspace ו-network connections – קריאה בלבד
QoS יצירה וניהול של קבוצות מדיניות QoS והצגת הביצועים שלהן כל פקודות ה-QoS – לקריאה בלבד הגדרות ה-QoS הן לקריאה בלבד.
אבטחה הצגת הגדרות הביקורת, הפעלת התכונה להגנה מפני תוכנות כופר ויצירה והתקנה של אישורים בדיקת אבטחה – גישת קריאה בלבד

נפח האנטי-תוכנה כופרת לאבטחה ואישור אבטחה – גישה מלאה
אפשר להגדיר פרמטרים למניעת תוכנות כופר כשיוצרים את אמצעי האחסון. אפשר ליצור רק אישורי שרת ואישורי לקוח.
SnapLock ניהול השעון והיומנים של SnapLock, ושליטה בפעולות של שמירה מבוססת-אירועים והחזקה לצורך משפטי ב-SnapLock ‫snaplock compliance-clock ו-snaplock log – גישה מלאה משתמשים בפקודה volume snaplock modify כדי להגדיר את SnapLock בכרכים נפרדים. אפשר לנהל את הפקודות של SnapLock‏ snaplock event-retention ו-snaplock legal-hold רק באמצעות ONTAP API בארכיטקטורת REST.
SnapMirror יצירה וניהול של קשרי SnapMirror ‫snapmirror create,‏ snapmirror initialize,‏ snapmirror break ו-snapmirror resync – גישה מלאה
נתונים סטטיסטיים הצגת נתונים סטטיסטיים תקופתיים של המערכת או יצירת דוגמאות של נתונים סטטיסטיים ספציפיים ‫statistics samples,‏ statistics start,‏ statistics stop ו-statistics show-periodic – גישה מלאה

‫statistics volume,‏ statistics lun,‏ statistics aggregate,‏ statistics qtree ו-statistics SVM – גישה לקריאה בלבד
בפקודות רבות צריך להשתמש במצב מתקדם כדי לציין את הפרמטרים שלהן.
מערכת בדרך כלל אין תמיכה בפקודות מערכת, אבל אפשר להפעיל את AutoSupport ואת השידור של ארכיון הביצועים ‫system node autosupport invoke ו-system node autosupport invoke-performance-archive – גישה מלאה קובצי AutoSupport זמינים לתמיכה של NetApp.
עוצמת הקול יצירה וניהול של נפחים ‫volume create, ‏ volume delete, ‏ volume modify, ‏ volume clone, ‏ volume expand (FlexGroup), ‏ volume flexcache, ‏ volume flexgroup, ‏ qtree, ‏ quota, ‏ snaplock, ‏ snapshot – גישה מלאה יכולות מסוימות שקשורות לנפח, כמו דיווח על נפח לוגי ואכיפה של נפח לוגי, וגם הבטחת נפח (אין), מנוהלות באופן אוטומטי על ידי המערכת. מגדירים את מדיניות הסיווג לפי נפח לשימוש בסיווג אוטומטי לפי נפח ברמת המאגר.
Vserver ניהול ה-SVM (vserver) לגישה לנפחים של קבצים (SMB,‏ NFS), בלוקים (iSCSI,‏ NVMe) ואובייקטים (S3).

ניהול מדיניות שמשמשת לנפחים, כמו מדיניות ייצוא ל-NFS.

הפעלה של תכונות SVM כמו יומני ביקורת (גישה לקבצים), קבוצות עקביות, מדיניות, שירותי שמות (DNS,‏ LDAP) ואנטי וירוס (vscan).

הגדרת SVMs עמיתים ל-SnapMirror ול-FlexCache.
‫vserver cifs create (הצטרפות לדומיין Active Directory),‏ vserver nfs create,‏ vserver iscsi create ו-vserver nvme create – גישה מלאה

vserver object-store-server – גישה מלאה
משתמשים בפקודה vserver modify כדי להגדיר את שפת ברירת המחדל, את סגנון האבטחה ואת מדיניות ה-snapshot והמכסה לכל הנפחים.

vserver create לא נתמכת בשלב הזה.
אי אפשר להריץ פקודות לשינוי סיסמה באופן אינטראקטיבי, והן צריכות להיות מוגדרות באמצעות פרמטרים של פקודות או באמצעות API בארכיטקטורת REST.
פקודות קודמות ‫timezone ו-version – גישה מלאה

מחיקת מאגר במצב ONTAP

כדי למחוק מאגר במצב ONTAP, צריך קודם למחוק את כל אמצעי האחסון במאגר.