הגדרת מדיניות אחסון

מדיניות אחסון של VM מאפשרת להגדיר מיקום אוטומטי של מאגר נתונים באשכולות של Google Distributed Cloud. במקום לציין מאגר נתונים ספציפי, אתם יכולים להשתמש בכללי מדיניות כדי להקצות מכונות וירטואליות באשכול לאחסון שעומד בדרישות הקיבולת והביצועים שלכם.

סקירה כללית

ב-vSphere, ניהול מבוסס-מדיניות של אחסון (SPBM) עוזר להתאים את האחסון לדרישות האפליקציה של מכונות וירטואליות. הוא מספק מסגרת למדיניות אחסון שמשמשת כלוח בקרה אחיד למגוון רחב של שירותי נתונים ופתרונות אחסון.

ב-Google Distributed Cloud, אתם יכולים לציין מדיניות אחסון במקום לציין datastores. אתם מגדירים את מדיניות האחסון בהתאם לדרישות של האפליקציה, ואז vSphere בוחר ומנהל את מאגרי הנתונים באופן אוטומטי. כך אפשר לצמצם את התקורה והתחזוקה שקשורות לאחסון.

ירושה

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

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

באשכול משתמש שבו מופעל Controlplane V2, מדיניות האחסון ברמת האשכול עוברת בירושה לצומתי מישור הבקרה. אם מציינים מדיניות אחסון או מאגר נתונים לצומתי מישור הבקרה, המערכת משתמשת במדיניות האחסון או במאגר הנתונים האלה במקום במדיניות האחסון ברמת האשכול.

החלת כללי מדיניות אחסון על מאגרי נתונים

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

דוגמה: יצירת מדיניות אחסון ואשכול משתמשים

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

הוספת תגים למאגרי נתונים

כדי לבצע את השלבים בדוגמה הזו, בסביבת vSphere שלכם צריכים להיות לפחות שני datastores.

לאשכול vSphere שיארח את הצמתים של אשכול המשתמשים, צריכה להיות גישה למאגרי הנתונים שבהם אתם מתכננים להשתמש בתרגיל הזה. יש בדיקה לפני ההפעלה שמאמתת את זה.

לחשבון vCenter שבו אתם משתמשים כדי להוסיף תגים צריכות להיות הרשאות התיוג של vSphere הבאות בשרת הבסיס של vCenter:

  • vSphere Tagging.Create vSphere Tag
  • vSphere Tagging.Create vSphere Tag Category
  • תיוג ב-vSphere.הקצאה או ביטול הקצאה של תג vSphere

ב-vSphere Client, מקצים את אותו תג לכל אחד ממאגרי הנתונים שבחרתם להשתמש בהם בתרגיל הזה. הוראות מפורטות זמינות במאמר הקצאת תגים למאגרי נתונים.

מידע נוסף זמין במאמר תגים ומאפיינים של vSphere.

יצירת מדיניות אחסון

ב-vSphere Client, יוצרים מדיניות אחסון של מכונות וירטואליות למיקום שמבוסס על תגים. במדיניות האחסון, מציינים את התג שהחלתם על מאגרי הנתונים שבחרתם. להוראות, קראו את המאמר יצירת מדיניות אחסון של VM למיקום מבוסס-תגים.

מידע נוסף זמין במאמר מדיניות האחסון של VM.

אם אתם משתמשים במאגר נתונים של vSAN, קראו את המאמר מדיניות האחסון של vSAN.

יצירת אשכול משתמשים

בתרגיל הזה תיצרו אשכול משתמש עם מישור בקרה בזמינות גבוהה, כך שיש שלושה צומתי מישור בקרה. בנוסף לצמתים של מישור הבקרה, יש שישה צמתים של עובדים, שלושה במאגר צמתים אחד ושלושה במאגר צמתים שני. כל הצמתים משתמשים בכתובות IP סטטיות.

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

כשממלאים את קובץ התצורה של אשכול המשתמש:

  • מגדירים את הערך של vCenter.storagePolicyName לשם של מדיניות אחסון קיימת. אל תגדירו ערך ל-vCenter.datastore.

  • מציינים שני מאגרי צמתים. במאגר הצמתים הראשון, אל תציינו מאגר נתונים ואל תציינו מדיניות אחסון. במאגר הצמתים השני, מגדירים את הערך של vsphere.datastore לשם של מאגר נתונים קיים.

קובץ תצורה לדוגמה של אשכול

דוגמה לקובץ בלוקים של כתובות IP ולחלק מקובץ תצורה של אשכול משתמש:

user-ipblock.yaml

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.21.1
    ips:
    - ip: 172.16.21.2
    - ip: 172.16.21.3
    - ip: 172.16.21.4
    - ip: 172.16.21.5
    - ip: 172.16.21.6
    - ip: 172.16.21.7
    - ip: 172.16.21.8

user-cluster-yaml

apiVersion: v1
kind: UserCluster
...
vCenter:
  storagePolicyName: "my-storage-policy"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.2"
    - "198.51.100.2"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "user-ipblock.yaml"
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.9"
      hostname: "cp-vm-1"
    - ip: "172.16.21.10"
      hostname: "cp-vm-2"
    - ip: "172.16.21.11"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: MetalLB
  metalLB:
    addressPools:
    - name: "address-pool-1"
      addresses:
    - "172.16.21.30-172.16.21.39"
...
enableControlplaneV2: true
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 3
nodePools:
- name: "worker-pool-1"
  enableLoadBalancer: true
- name: "worker-pool-2"
  vSphere:
    datastore: "my-np2-datastore"
...

אלה הנקודות החשובות שצריך להבין בדוגמה שלמעלה:

  • כתובות ה-IP הסטטיות של צומתי העובדים מצוינות בקובץ של טווח כתובות IP. בקובץ של בלוק ה-IP יש שבע כתובות, למרות שיש רק שישה צומתי עובד. כתובת ה-IP הנוספת נדרשת במהלך שדרוג, עדכון ותיקון אוטומטי של האשכול.

  • כתובות ה-IP הסטטיות של שלושת הצמתים של מישור הבקרה מצוינות בקטע network.controlPlaneIPBlock של קובץ התצורה של אשכול המשתמש. אין צורך בכתובת IP נוספת בבלוק הזה.

  • השדה masterNode.replicas מוגדר ל-3, כך שיהיו שלושה צומתי מישור בקרה. ב-masterNode, לא צוין שום דבר בשביל vsphere.datastore או vsphere.storagePolicyName. לכן הצמתים של מישור הבקרה ישתמשו במדיניות האחסון שצוינה ב-vCenter.storagePolicyName.

  • קובץ התצורה של אשכול המשתמשים כולל ערך ל-vCenter.storagePolicy, אבל לא כולל ערך ל-vCenter.datastore. מדיניות האחסון שצוינה תשמש את הצמתים בכל מאגר שלא צוינה בו מדיניות אחסון משלו או מאגר נתונים משלו.

  • בקטע node-pool-1, לא צוין שום דבר לגבי vsphere.datastore או vsphere.storagePolicyName. לכן הצמתים ב-node-pool-1 ישתמשו במדיניות האחסון שצוינה ב-vCenter.storagePolicyName.

  • ב-node-pool-2, הערך של vsphere.datastore הוא my-np2-datastore, ולכן הצמתים ב-node-pool-2 משתמשים במאגר הנתונים הזה ולא במדיניות אחסון.

ממשיכים ליצור את אשכול המשתמשים כמו שמתואר במאמר יצירת אשכול משתמשים.

יצירת אשכול משתמשים במרכז נתונים נפרד מאשכול האדמין

אשכול המשתמש יכול להיות במרכז נתונים נפרד מאשכול האדמין. שני מרכזי הנתונים יכולים להשתמש באותו מופע של vCenter Server או במופעים שונים של vCenter Server.

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

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

כשממלאים את קובץ התצורה של אשכול המשתמש:

  • מגדירים את הערך של vCenter.storagePolicyName לשם של מדיניות אחסון קיימת. אל תגדירו ערך ל-vCenter.datastore.

  • בקטע vCenter, מציינים ערכים ל-address,‏ datacenter,‏ cluster ו-resourcePool.

  • צריך לציין ערך בשדה network.vCenter.networkName.

  • מציינים שני מאגרי צמתים. במאגר הצמתים הראשון, אל תציינו מאגר נתונים ואל תציינו מדיניות אחסון. במאגר הצמתים השני, מגדירים את הערך של vsphere.datastore לשם של מאגר נתונים קיים.

קובץ תצורה לדוגמה של אשכול

דוגמה לקובץ בלוקים של כתובות IP ולחלק מקובץ תצורה של אשכול משתמש:

user-ipblock.yaml

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.21.1
    ips:
    - ip: 172.16.21.2
    - ip: 172.16.21.3
    - ip: 172.16.21.4
    - ip: 172.16.21.5
    - ip: 172.16.21.6
    - ip: 172.16.21.7
    - ip: 172.16.21.8

user-cluster-yaml

apiVersion: v1
kind: UserCluster
...
vCenter:
  address: "my-vcenter-server-2.my-domain.example"
  datacenter: "my-uc-data-center"
  cluster: "my-uc-vsphere-cluster"
  resourcePool: "my-uc-resource-pool"
  storagePolicyName: "my-storage-policy"
network:
  vCenter:
    networkName: "my-uc-network"
  hostConfig:
    dnsServers:
    - "203.0.113.2"
    - "198.51.100.2"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "user-ipblock.yaml"
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.9"
      hostname: "cp-vm-1"
    - ip: "172.16.21.10"
      hostname: "cp-vm-2"
    - ip: "172.16.21.11"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: MetalLB
  metalLB:
    addressPools:
    - name: "address-pool-1"
      addresses:
    - "172.16.21.30-172.16.21.39"
...
enableControlplaneV2: true
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 3
nodePools:
- name: "worker-pool-1"
  enableLoadBalancer: true
- name: "worker-pool-2"
  vSphere:
    datastore: "my-np2-datastore"
...

אלה הנקודות החשובות שצריך להבין בדוגמה שלמעלה:

  • קובץ התצורה של אשכול המשתמשים כולל ערך ל-vCenter.storagePolicy, אבל לא כולל ערך ל-vCenter.datastore. מדיניות האחסון שצוינה תשמש את הצמתים בכל מאגר צמתים שלא צוינה בו מדיניות אחסון משלו או מאגר נתונים משלו.

  • בקטע vCenter, יש ערכים שצוינו בשביל address,‏ datacenter,‏ cluster ו-resourcePool. לכן, אשכול המשתמש ישתמש בשרת vCenter, במרכז נתונים, באשכול vSphere ובמאגר משאבים שונים מאלה של אשכול האדמין.

  • צוין ערך בשדה network.vCenter.networkName.

  • השדה masterNode.replicas מוגדר ל-3, כך שיהיו שלושה צומתי מישור בקרה. ב-masterNode, לא צוין שום דבר בשביל vsphere.datastore או vsphere.storagePolicyName. לכן הצמתים של מישור הבקרה ישתמשו במדיניות האחסון שצוינה ב-vCenter.storagePolicyName.

  • ב-node-pool-1, לא צוין שום דבר ב-vsphere.datastore או ב-vsphere.storagePolicyName. לכן הצמתים ב-node-pool-1 ישתמשו במדיניות האחסון שצוינה ב-vCenter.storagePolicyName.

  • ב-node-pool-2, הערך של vsphere.datastore הוא my-np2-datastore, כך שהצמתים ב-node-pool-2 משתמשים במאגר הנתונים הזה, ולא במדיניות אחסון.

ממשיכים ליצור את אשכול המשתמשים כמו שמתואר במאמר יצירת אשכול משתמשים.

המאמרים הבאים