שימוש באחסון קבצים ב-Google Cloud NetApp Volumes כדי להגדיר מופע של אשכול מעבר לגיבוי בעת כשל של SQL Server

במדריך הזה מוסבר איך להגדיר סביבה עמידה במיוחד Cloud de Confiance by S3NSל-SQL Server. אתם מתקינים את הסביבה הזו באחסון של שיתוף קבצים ב-פרוטוקול SMB‏ (SMB) באמצעות Google Cloud NetApp Volumes.

‫Always On availability groups ‏ (AG) של Microsoft SQL Server מאפשרים לשכפל מסדי נתונים בכמה מכונות של SQL Server Enterprise. בדרך כלל, כדי להשתמש במופעים מסורתיים של SQL Server Always On, כל צומת צריך לשמור עותק של הנתונים, והעלויות יכולות להצטבר במהירות ככל שמסדי הנתונים גדלים. לדוגמה, בפריסה מסורתית של SQL Server Always On, אם גודל מסדי הנתונים הוא ‎10TB, כל עותק צריך להקצות לפחות ‎10TB של אחסון. אחד היתרונות של פריסת Windows Server Failover Cluster ‏ (WSFC) עבור SQL Server הוא שצריך רק עותק אחד של הנתונים, שמשותף בין הצמתים של האשכול. לכן, הפעלת SQL Server Always On במופע של אשכול מעבר לגיבוי (FCI) ב-WSFC יכולה להוביל לחיסכון מיידי בעלויות, כי היא מפחיתה את כמות האחסון הנדרשת.

‫NetApp Volumes הוא פתרון לאחסון בענן להרצת עומסי עבודה של SQL Server עם ביצועים גבוהים בשילוב עם מופעים של Compute Engine. מסד נתונים של SQL Server דרך SMB ב-NetApp Volumes מספק רמה גבוהה מאוד של עמידות בין המופעים Cloud de Confiance by S3NS לבין שירות האחסון. המעבר השקוף לגיבוי בעת כשל ב-SMB מאפשר לבצע פעולות תחזוקה ב-NetApp Volumes בלי להפריע לקישוריות לאפליקציות של השרת שמאחסנות נתונים בנפחי SMB וניגשות אליהם. כדי לתמוך במעבר גיבוי שקוף של SMB, ‏ NetApp Volumes תומך באפשרות של שיתופי זמינות רציפה (CA) של SMB לשימוש עם עומסי עבודה של SQL Server. האפשרות הזו משפרת את הביצועים, את יכולת ההתאמה ואת העלויות של מופעים יחידים, מופעים של Always On failover cluster ‏ (AOFC) ופריסות של Always On availability group.

הדף הזה מיועד לאדמינים של NetApp Volumes ומסדי נתונים של SQL Server שאחראים על פריסת Microsoft SQL Server ב-Cloud de Confiance by S3NS. אנחנו יוצאים מנקודת הנחה ש:

  • אתם מכירים את הרכיבים השונים של הפתרון
  • כבר פרסתם את Active Directory ב-Google Cloud

מטרות

המדריך הזה נועד להשיג את המטרות הבאות:

  • יצירת נפח אחסון של NetApp ל-SQL Server
  • פריסת אשכול מעבר לגיבוי בעת כשל (Failover) שמופעל תמיד באמצעות SMB ב-NetApp Volumes

עלויות

במדריך הזה נעשה שימוש ברכיבים של Cloud de Confiance by S3NS, והשימוש בהם כרוך בתשלום, כולל:

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

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

במדריך הזה תצטרכו פרויקט Cloud de Confiance . אפשר ליצור פרויקט חדש או לבחור פרויקט שכבר יצרתם:

  1. בדף לבחירת הפרויקט במסוף Cloud de Confiance , בוחרים פרויקט ב- Cloud de Confiance או יוצרים אותו.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים

    כניסה לדף לבחירת הפרויקט

  2. מוודאים שהחיוב מופעל בפרויקט Cloud de Confiance .

  3. דומיין Active Directory עם בקר דומיין אחד לפחות. אתם יכולים ליצור דומיין Active Directory באמצעות שירות מנוהל ל-Microsoft AD. אפשרות אחרת היא לפרוס סביבת Active Directory בהתאמה אישית ב-Compute Engine ולהגדיר אזור העברת DNS פרטי שמעביר שאילתות DNS לבקרי הדומיין.
  4. משתמש ב-Active Directory שיש לו הרשאה לצרף מחשבים לדומיין ויכול להתחבר באמצעות RDP. אם אתם משתמשים בשירות מנוהל ל-Microsoft AD, אתם יכולים להשתמש במשתמש setupadmin.
  5. פרויקט Cloud de Confiance ו-VPC עם קישוריות לבקרי הדומיין של Active Directory.
  6. מוודאים ש-NetApp Volumes API מופעל בפרויקט שלכם ב-Google Cloud.
  7. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

הכנת הפרויקט והרשת

כדי להכין את פרויקט Cloud de Confiance ואת הענן הווירטואלי הפרטי (VPC) לפריסה של קבוצות זמינות של SQL Server Always On, מבצעים את הפעולות הבאות:

  1. במסוף Cloud de Confiance , לוחצים על הלחצן Activate Cloud Shell מפעילים את Cloud Shell. כדי לפתוח את Cloud Shell.

    כניסה ל Cloud de Confiance מסוף

  2. מאתחלים את המשתנים הבאים:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

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

    • ‫VPC_NAME: השם של ה-VPC
    • ‫SUBNET_NAME: השם של רשת המשנה
  3. מגדירים את מזהה הפרויקט שמוגדר כברירת מחדל:

    gcloud config set project PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה שלCloud de Confiance הפרויקט.

  4. מגדירים את האזור שמוגדר כברירת מחדל:

    gcloud config set compute/region REGION
    

    מחליפים את REGION במזהה האזור שבו רוצים לפרוס.

  5. מגדירים את האזור שמוגדר כברירת מחדל:

    gcloud config set compute/zone ZONE
    

    מחליפים את ZONE במזהה של התחום שבו רוצים לבצע את הפריסה.

יצירת SMB ב-NetApp Volumes ל-SQL Server

כדי ליצור NetApp Volumes, צריך ליצור מדיניות של Active Directory, גישה לשירותים פרטיים, מאגר אחסון ונפח אחסון.

  1. יוצרים גישה לשירותים פרטיים חדשה ל-NetApp Volumes באמצעות ההוראות שמפורטות במאמר הגדרת הגישה לשירותים פרטיים.

  2. כדי ליצור מדיניות חדשה של Active Directory:

    1. נכנסים לדף NetApp Volumes במסוף Cloud de Confiance .

      מעבר אל NetApp Volumes

    2. בחלונית הניווט, לוחצים על Active Directory policies (מדיניות של Active Directory) בקטע Policies (מדיניות).

    3. לוחצים על הלחצן Create (יצירה).

    4. מציינים שם למדיניות של Active Directory.

    5. בקטע Region (אזור), בוחרים את האזור הזמין שהכי קרוב למיקום שבו יתארחו מופעי SQL Server.

    6. בקטע פרטי החיבור ל-Active Directory, מספקים את הפרטים הבאים:

      1. שם הדומיין
      2. כתובות של שרת DNS של Active Directory
      3. שם האתר ב-Active Directory
      4. שם היחידה הארגונית
      5. תחילית של שם NetBIOS
    7. בקטע Active Directory credentials (פרטי הכניסה ל-Active Directory), מציינים את פרטי הכניסה של משתמש שיש לו הרשאה לצרף מחשבים לדומיין שצוין.

    8. בקטע SMB settings (הגדרות SMB), מציינים את Backup Operators (מפעילים של גיבוי) ואת Security privilege users (משתמשים עם הרשאת אבטחה), אם רלוונטי.

    9. לוחצים על יצירה כדי להשלים את תהליך היצירה של מדיניות חדשה של Active Directory.

  3. כדי ליצור מאגר אחסון חדש:

    1. בחלונית הניווט, לוחצים על מאגרי אחסון בקטע אחסון.
    2. לוחצים על הלחצן Create (יצירה).
    3. מזינים שם למאגר האחסון.
    4. בקטע מיקום, בוחרים את האזור הזמין שהכי קרוב למיקום שבו יתארחו מופעי SQL Server.
    5. בוחרים רמת שירות שתעמוד בדרישות הביצועים של האחסון.

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

    7. ברשימה Network, בוחרים את ה-VPC שבו יתארחו מופעי SQL Server.

    8. בקטע Active Directory policy, בוחרים באפשרות Assign an Active Directory policy to the storage pool ובוחרים את מדיניות Active Directory שנוצרה בשלב הקודם.

    9. לוחצים על הלחצן יצירה כדי להשלים את תהליך היצירה של מאגר אחסון חדש.

  4. כדי לבדוק את החיבור בין מאגר האחסון לבין Active Directory:

    1. נכנסים לדף Active Directory policy במסוף Cloud de Confiance .

      מעבר למדיניות של Active Directory

    2. לוחצים על מדיניות Active Directory שהקציתם למאגר האחסון בשלב הקודם.

    3. מאתרים את Associated storage pools (מאגרי אחסון משויכים) ולוחצים על Test Active Directory connection (בדיקת החיבור ל-Active Directory).

  5. כדי ליצור נפח אחסון חדש:

    1. בחלונית הניווט, לוחצים על כרכים בקטע אחסון.
    2. לוחצים על הלחצן Create (יצירה).
    3. מציינים שם לנפח האחסון.
    4. בקטע פרטי מאגר אחסון, לוחצים על בחירת מאגר אחסון כדי לבחור את מאגר האחסון שיצרתם בשלב הקודם.
    5. בקטע פרטי נפח, מספקים את הפרטים הבאים:
      1. שם השיתוף
      2. קיבולת נפח
    6. בקטע Protocol(s) configuration (הגדרת פרוטוקולים), בוחרים בפרוטוקול SMB ובאפשרות Enable CA share support for SQL Server, FSLogix (הפעלת תמיכה בשיתוף CA עבור SQL Server,‏ FSLogix).
    7. לוחצים על הלחצן יצירה כדי להשלים את תהליך היצירה של נפח אחסון חדש.

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

כדי לאפשר ללקוחות להתחבר ל-SQL Server, צריך לאפשר תקשורת בין הצמתים של Windows Server Failover Cluster ‏ (WSFC) וכדי לאפשר למאזן העומסים לבצע בדיקות תקינות, צריך ליצור כמה כללים של חומת האש. כדי לפשט את יצירת הכללים האלה בחומת האש, אפשר להשתמש בתגי רשת:

  • התגים wsfc-node מציינים את ה-WSFC שבהם אתם משתמשים.
  • כל השרתים, כולל השרת העד, מתויגים בתג wsfc.

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

  1. חוזרים לסשן הקיים של Cloud Shell.
  2. יוצרים כללים לחומת האש עבור צמתי ה-WSFC.

    SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\))
    
    gcloud compute firewall-rules create allow-all-between-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp,udp,icmp \
      --enable-logging \
      --source-tags=wsfc \
      --target-tags=wsfc \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:1433 \
      --enable-logging \
      --source-ranges=$SUBNET_CIDR \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    
  3. יוצרים כלל חומת אש שמאפשר בדיקות תקינות מטווחי כתובות ה-IP של Cloud de Confiance by S3NS הבודקים:

    gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp \
      --source-ranges=130.211.0.0/22,35.191.0.0/16 \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    

יצירת מכונות וירטואליות

עכשיו תפרסו שלוש מכונות וירטואליות לאשכול המעבר לגיבוי.

‫Node-1 יארח את העותק הראשי של מסד הנתונים של SQL Server ו-node-2 יארח את העותק המשני. שתי המכונות הווירטואליות צריכות:

  • לשכון באותו אזור כדי שמאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי יוכל לגשת אליהם
  • מערכת WSFC ו-SQL Server 2022 מותקנות באמצעות קובץ אימג' של SQL Server Premium

  • הפעלת תמיכה ב-WSFC ב-Compute Engine

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

  1. חוזרים לסשן הקיים של Cloud Shell.
  2. יוצרים סקריפט לצמתי WSFC. הסקריפט מתקין את התכונה הנדרשת של Windows ויוצר כללי חומת אש עבור WSFC ו-SQL Server:

    cat << "EOF" > specialize-node.ps1
    
    $ErrorActionPreference = "stop"
    
    # Install required Windows features
    Install-WindowsFeature Failover-Clustering -IncludeManagementTools
    Install-WindowsFeature RSAT-AD-PowerShell
    
    # Open firewall for WSFC
    netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997
    
    # Open firewall for SQL Server
    netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433
    
    # Open firewall for SQL Server replication
    netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
    
    EOF
    
  3. יוצרים את המכונות הווירטואליות. ב-2 המכונות הווירטואליות שמשמשות כצמתים של WSFC, צריך לצרף דיסק נתונים נוסף ולהפעיל את Windows Server Failover Clustering (אשכולות למעבר גיבוי אוטומטי של Windows Server) על ידי הגדרת מפתח המטא-נתונים enable-wsfc ל-true:

    REGION=$(gcloud config get-value compute/region)
    PD_SIZE=200
    MACHINE_TYPE=n2-standard-8
    
    gcloud compute instances create node-1 \
      --zone $REGION-a \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-1" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create node-2 \
      --zone $REGION-b \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-2" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create "witness" \
      --zone $REGION-c \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family=windows-2022 \
      --image-project=windows-cloud \
      --tags wsfc \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
    
  4. כדי לצרף את 3 המכונות הווירטואליות ל-Active Directory, מבצעים את הפעולות הבאות לכל אחת מ-3 המכונות הווירטואליות:

    1. כדי לעקוב אחרי תהליך האתחול של המכונה הווירטואלית, אפשר לצפות בפלט של היציאה הטורית:

      gcloud compute instances tail-serial-port-output NAME
      

      מחליפים את NAME בשם של מופע המכונה הווירטואלית.

      מחכים כמה דקות עד שרואים את הפלט Instance setup finished, ואז לוחצים על Ctrl+C. בשלב הזה, המכונה הווירטואלית מוכנה לשימוש.

    2. יצירת שם משתמש וסיסמה למכונה הווירטואלית

    3. מתחברים למכונה הווירטואלית באמצעות Remote Desktop ונכנסים באמצעות שם המשתמש והסיסמה שנוצרו בשלב הקודם.

    4. לוחצים לחיצה ימנית על לחצן ההתחלה (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).

    5. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.

    6. מצטרפים למופע ה-VM לדומיין Active Directory ומפעילים מחדש:

      Add-Computer -Domain DOMAIN -Restart
      

      מחליפים את DOMAIN בשם ה-DNS של דומיין Active Directory.

      מחכים שהמכונה הווירטואלית תופעל מחדש.

הקצאת הרשאות אחסון

כדי להקצות הרשאות לאחסון נפח בענן:

  1. במסוף Cloud de Confiance , בוחרים באפשרות Cloud Volumes (נפחי אחסון בענן) ואז בוחרים את נפח האחסון שנוצר.

    נפח אחסון בענן

  2. מתחברים אל node-1 באמצעות Remote Desktop. נכנסים באמצעות חשבון המשתמש בדומיין.

  3. פותחים את סייר Windows ולוחצים לחיצה ימנית על המחשב הזה.

  4. בוחרים באפשרות מיפוי כונן רשת.

  5. מדביקים את נתיב ה-SMB שהועתק בתיקייה.

    נפח אחסון בענן

  6. במסך הכניסה, משביתים את האפשרות 'חיבור מחדש'.

  7. לוחצים על סיום.

  8. לוחצים לחיצה ימנית על הכונן הממופה ברשת ובוחרים באפשרות מאפיינים.

    נפח אחסון בענן

  9. בכרטיסייה אבטחה, לוחצים על עריכה.

  10. מסירים את Everyone ומוסיפים את קובץ ההתקנה של SQL Server ואת חשבונות השירות של SQL Server עם הרשאות שליטה מלאות.

    נפח אחסון בענן

  11. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.

שמירת כתובות IP של אשכול

מזמינים שתי כתובות IP סטטיות ב-VPC, אחת לכתובת ה-IP של אשכול WSFC ואחת למאזן העומסים הפנימי.

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

    gcloud compute addresses create wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --subnet $SUBNET_NAME
    
    LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\))
    
    echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
    

    חשוב לשים לב לכתובת ה-IP, כי תצטרכו אותה בהמשך.

  2. שומרים כתובת IP סטטית אחרת שמשמשת ככתובת IP של האשכול:

    gcloud compute addresses create wsfc-cluster \
      --subnet $SUBNET_NAME \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev)
    
    CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\))
    
    echo "Cluster IP: $CLUSTER_ADDRESS"
    

    חשוב לשים לב לכתובת ה-IP, כי תצטרכו אותה בהמשך.

הפרויקט וה-VPC מוכנים עכשיו לפריסה של WSFC ו-SQL Server.

יצירת שיתוף קבצים של עדים

כדי להכין את witness לשמש כעדות לשיתוף קבצים, יוצרים שיתוף קבצים ומעניקים לעצמכם ולשני צמתי WSFC גישה לשיתוף הקבצים:

  1. מתחברים אל witness באמצעות Remote Desktop. נכנסים באמצעות חשבון המשתמש בדומיין.
  2. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).
  3. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.
  4. יוצרים את תיקיית העדים ומשתפים אותה:

    New-Item "C:\QWitness" –type directory
    
    icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)'
    icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)'
    
    New-SmbShare `
      -Name QWitness `
      -Path "C:\QWitness" `
      -Description "SQL File Share Witness" `
      -FullAccess  $env:username,node-1$,node-2$
    

פריסת אשכול המעבר לגיבוי

עכשיו תשתמשו במכונות הווירטואליות כדי לפרוס WSFC ו-SQL Server.

פריסת WSFC

עכשיו אפשר ליצור את אשכול הגיבוי:

  1. מתחברים אל node-1 באמצעות Remote Desktop. נכנסים באמצעות חשבון המשתמש בדומיין.
  2. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).
  3. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.
  4. יוצרים אשכול חדש:

    New-Cluster `
      -Name windows-fci `
      -Node node-1,node-2 `
      -NoStorage `
      -StaticAddress CLUSTER_ADDRESS
    

    מחליפים את CLUSTER_ADDRESS בכתובת ה-IP של האשכול שיצרתם קודם.

  5. חוזרים לסשן PowerShell ב-witness ומעניקים לאובייקט המחשב הווירטואלי של האשכול הרשאה לגשת לשיתוף הקבצים:

    icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)'
    Grant-SmbShareAccess `
      -Name QWitness `
      -AccountName 'windows-fci$' `
      -AccessRight Full `
      -Force
    
  6. חוזרים להפעלת PowerShell ב-node-1 ומגדירים את האשכול כך שישתמש בשיתוף הקבצים ב-witness כקבוצת קוורום של האשכול:

    Set-ClusterQuorum -FileShareWitness \\witness\QWitness
    
  7. מוודאים שהאשכול נוצר בהצלחה:

    Test-Cluster
    

    יכול להיות שיופיעו אזהרות שאפשר להתעלם מהן בבטחה:

    WARNING: System Configuration - Validate All Drivers Signed: The test
    reported some warnings..
    WARNING: Network - Validate Network Communication: The test reported some
    warnings..
    WARNING:
    Test Result:
    HadUnselectedTests, ClusterConditionallyApproved
    Testing has completed for the tests you selected. You should review the
    warnings in the Report.  A cluster solution is supported by Microsoft only
    if you run all cluster validation tests, and all tests succeed (with or
    without warnings).
    

    אפשר גם להפעיל את התוסף Failover Cluster Manager MMC כדי לבדוק את תקינות האשכול על ידי הפעלת הפקודה cluadmin.msc.

  8. אם אתם משתמשים ב-Managed AD, צריך להוסיף את חשבון המחשב שמשמש את WSFC לקבוצה Cloud Service Domain Join Accounts כדי שיוכל להצטרף למופעי VM לדומיין:

    Add-ADGroupMember `
      -Identity "Cloud Service Domain Join Accounts" `
      -Members windows-fci$
    

הסרת ההתקנה של SQL Server שמוגדרת כברירת מחדל

עכשיו תסירו את התקנת ברירת המחדל של SQL Server משני הצמתים ותחליפו אותה בהגדרת FCI חדשה.

לכל אחד משני הצמתים של WSFC, ‏ node-1 ו-node-2, מבצעים את השלבים הבאים:

  1. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).
  2. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.
  3. מסירים את המכונה של SQL Server שמוגדרת כברירת מחדל:

    C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
    
  4. הסרת מנהל התקן של Microsoft OLE:

    Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
    
  5. הסרת מנהל התקן Microsoft ODBC:

    Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
    
  6. מפעילים מחדש את המחשב:

    Restart-Computer
    
  7. מחכים שהמכונה הווירטואלית תופעל מחדש.

התקנת SQL Server FCI

לפני שמתקינים את הגדרת ה-FCI החדשה, צריך לוודא ש-node-1 הוא הצומת הפעיל באשכול:

  1. מתחברים מחדש ל-node-1 באמצעות Remote Desktop ונכנסים באמצעות משתמש הדומיין.
  2. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ובוחרים באפשרות Run.
  3. מזינים cluadmin.msc ולוחצים על אישור.
  4. בחלונית הימנית, עוברים אל Failover Cluster Manager > windows-fci ופועלים לפי השלבים הבאים:

    1. מוודאים שהשרת המארח הנוכחי מוגדר ל-node-1.

    2. אם current host server מוגדר ל-node-2, לוחצים לחיצה ימנית על windows-fci בחלונית הימנית ובוחרים באפשרות More actions > Move core cluster resources > Select node… > node-1 (פעולות נוספות > העברת משאבי ליבה של אשכול > בחירת צומת… > צומת 1) ואז לוחצים על OK (אישור).

תצטרכו ליצור התקנה חדשה של אשכול מעבר לגיבוי בענן של SQL Server ב-node-1:

  1. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).
  2. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.

  3. מתחילים בהגדרה של SQL Server:

    & c:\sql_server_install\setup.exe
    
  4. בתפריט הימני, לוחצים על התקנה.

  5. בוחרים באפשרות New SQL Server failover cluster installation (התקנה חדשה של אשכול מעבר לגיבוי בענן של SQL Server).

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

  7. בדף License Terms, בודקים את התנאים ואם הם מקובלים עליכם, לוחצים על Next.

  8. בדף Microsoft Update, לוחצים על Next (הבא) כדי להתחיל בהתקנה.

  9. בדף Install Failover Cluster Rules (התקנת כללים של אשכולות מעבר לגיבוי בעת כשל), מוצגת אזהרה MSCS cluster verification warnings (אזהרות לגבי אימות אשכול MSCS) ו-Windows firewall (חומת האש של Windows). אפשר להתעלם מהאזהרות האלה וללחוץ על הבא.

  10. בדף Feature Selection (בחירת תכונות), בוחרים באפשרות Database Engine Services (שירותי מנוע מסד נתונים) ולוחצים על Next (הבא).

  11. בדף Instance Configuration, מזינים sql בתור שם הרשת ולוחצים על Next.

  12. בדף Cluster Resource Group, אפשר להתעלם מאזהרות ההסמכה וללחוץ על Next.

  13. בדף Cluster Disk Selection, לוחצים על Next.

  14. בדף Cluster Network Configuration, מגדירים את ההגדרות הבאות ולוחצים על Next:

    • DHCP: clear
    • כתובת IP: מזינים את כתובת ה-IP של מאזן העומסים הפנימי
  15. בדף Server configuration, מגדירים את ההגדרות הבאות גם ל-SQL Server Agent וגם ל-SQL Server Database Engine:

    • שם החשבון: DOMAIN\sql_server כאשר DOMAIN הוא שם NetBIOS של דומיין Active Directory
    • סיסמה: מזינים את הסיסמה של המשתמש sql_server
  16. בוחרים בכרטיסייה Collation (מיון) ובוחרים את המיון שרוצים להשתמש בו. לאחר מכן לוחצים על Next.

  17. בדף Database Engine Configuration (הגדרת מנוע מסד הנתונים), בוחרים באפשרות Add current user (הוספת המשתמש הנוכחי) כדי להגדיר את המשתמש הנוכחי כאדמין של SQL Server. בכרטיסייה ספריות נתונים, מזינים את נתיב ה-SMB בשדה ספריית הבסיס של הנתונים ולוחצים על הבא. יופיע חלון הודעה שבו תתבקשו לוודא שלחשבון השירות של SQL Server יש הרשאת שיתוף של שליטה מלאה. בוחרים באפשרות כן כדי להמשיך.

    נפח אחסון בענן

  18. בדף Ready to Install, בודקים את ההגדרות ולוחצים על Install.

  19. אחרי שההתקנה מסתיימת, בוחרים באפשרות סגירה.

עכשיו מוסיפים את node-2 לקלאסטר למעבר אוטומטי לגיבוי של SQL Server:

  1. מתחברים אל node-2 באמצעות Remote Desktop ונכנסים באמצעות משתמש הדומיין.
  2. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).
  3. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.
  4. מתחילים בהגדרה של SQL Server:

    & c:\sql_server_install\setup.exe
    
  5. בתפריט הימני, לוחצים על התקנה.

  6. בוחרים באפשרות הוספת צומת לאשכול מעבר לגיבוי בענן של SQL Server.

  7. פועלים לפי ההוראות באשף ההתקנה ומאשרים את הגדרות ברירת המחדל עד שמגיעים לדף Service Accounts.

  8. בדף Service Accounts (חשבונות שירות), מזינים את הסיסמה שיצרתם קודם גם עבור SQL Server Agent וגם עבור SQL Server Database Engine. לוחצים על הבא.

  9. בדף Ready to Install, בודקים את ההגדרות ולוחצים על Install.

  10. אחרי שההתקנה מסתיימת, בוחרים באפשרות סגירה.

הגדרת בדיקות תקינות

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

  1. חוזרים לסשן PowerShell ב-node-2
  2. מאתחלים משתנה עם כתובת ה-IP של מאזן העומסים.

    $LoadBalancerIP = 'IP_ADDRESS'
    

    מחליפים את IP_ADDRESS בכתובת ה-IP של wsfcהכתובת שהזמנתם קודם.

  3. מגדירים את אשכול הגיבוי למעבר אוטומטי כך שיגיב לשירות בדיקת תקינות:

    $SqlGroup = Get-ClusterGroup |
      Where-Object {$_.Name.StartsWith("SQL Server")}
    $SqlIpAddress = Get-ClusterResource |
      Where-Object {$_.Name.StartsWith("SQL IP Address")}
    
    $SqlIpAddress | Set-ClusterParameter -Multiple @{
     'Address'=$LoadBalancerIP;
     'ProbePort'= 59997;
     'SubnetMask'='255.255.255.255';
     'Network'= (Get-ClusterNetwork).Name;
     'EnableDhcp'=0; }
    
  4. מפעילים מחדש את משאב האוסף:

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. מפעילים מחדש את קבוצת האשכולות:

    $SqlGroup | Stop-ClusterGroup
    $SqlGroup | Start-ClusterGroup
    

יצירת מאזן עומסים פנימי

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

  1. חוזרים לסשן הקיים של Cloud Shell.
  2. יוצרים קבוצה של מופעי מכונה לא מנוהלים ומוסיפים לקבוצה את שני הצמתים:

    REGION=$(gcloud config get-value compute/region)
    
    gcloud compute instance-groups unmanaged create wsfc-group-a \
      --zone $REGION-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a \
      --zone $REGION-a --instances node-1
    
    gcloud compute instance-groups unmanaged create wsfc-group-b \
      --zone $REGION-b
    gcloud compute instance-groups unmanaged add-instances wsfc-group-b \
    --zone $REGION-b --instances node-2
    
  3. יוצרים בדיקת תקינות שמאזן העומסים יכול להשתמש בה כדי לקבוע איזה צומת פעיל.

    gcloud compute health-checks create tcp wsfc-healthcheck \
      --check-interval="2s" \
      --healthy-threshold=1 \
      --unhealthy-threshold=2 \
      --port=59997 \
      --timeout="1s"
    

    בדיקת תקינות המערכת בודקת את יציאה 59997, שהיא היציאה שהגדרתם קודם כ-ProbePort לכתובת ה-IP של אשכול WSFC.

  4. יוצרים שירות לקצה העורפי ומוסיפים את קבוצת המכונות:

    gcloud compute backend-services create wsfc-backend \
      --load-balancing-scheme internal \
      --region $REGION \
      --health-checks wsfc-healthcheck \
      --protocol tcp
    
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-a \
      --instance-group-zone $REGION-a \
      --region $REGION
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-b \
      --instance-group-zone $REGION-b \
      --region $REGION
    
  5. יוצרים את מאזן העומסים הפנימי:

    gcloud compute forwarding-rules create wsfc-sql \
      --load-balancing-scheme internal \
      --address $LOADBALANCER_ADDRESS \
      --ports 1433 \
      --network $VPC_NAME \
      --subnet $SUBNET_NAME \
      --region $REGION \
      --backend-service wsfc-backend
    

בדיקה של אשכול הגיבוי

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

הכנת לקוח

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

  1. חוזרים לסשן הקיים של Cloud Shell.
  2. יוצרים מכונה וירטואלית חדשה:

    gcloud compute instances create sqlclient \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd
    
  3. כדי לעקוב אחרי תהליך האתחול של המכונה הווירטואלית, אפשר לצפות בפלט של היציאה הטורית:

    gcloud compute instances tail-serial-port-output sqlclient
    

    מחכים כמה דקות עד שרואים את הפלט Instance setup finished, ואז מקישים על Ctrl+C. בשלב הזה, המכונה הווירטואלית מוכנה לשימוש.

  4. יצירת שם משתמש וסיסמה למכונה הווירטואלית

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

  6. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).

  7. לוחצים על כן כדי לאשר את ההנחיה להעלאת הרשאות.

  8. מצטרפים למכונת ה-VM לדומיין Active Directory:

    Add-Computer -Domain DOMAIN
    

    מחליפים את DOMAIN בשם ה-DNS של דומיין Active Directory.

  9. מפעילים מחדש את מכונת ה-VM:

    Restart-Computer
    

    מחכים שהמכונה הווירטואלית תופעל מחדש.

הרצת הבדיקה

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

  1. מתחברים אל sqlclient באמצעות Remote Desktop ונכנסים באמצעות משתמש הדומיין.
  2. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell.
  3. מתחברים לאשכול SQL Server באמצעות שם הרשת שלו sql ומריצים שאילתה בטבלה dm_os_cluster_nodes:

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    הפלט אמור להיראות כך:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   0 up                                1
    NODE-2                                   0 up                                0
    
    (2 rows affected)
    

    שימו לב ש-node-1 הוא הבעלים הנוכחי של משאב אשכול הגיבוי האוטומטי של SQL Server.

  4. חוזרים אל Cloud Shell ומפסיקים את מכונת node-1 כדי לבדוק את תרחיש היתירות כשל:

    gcloud compute instances stop node-1
    
  5. חוזרים על השאילתה:

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    עכשיו הפלט אמור להיראות כך:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    

    שימו לב שלמרות האובדן של node-1, השאילתה מצליחה ומראה שnode-2 הוא הבעלים הנוכחי של אשכול הגיבוי.

הסרת המשאבים

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

מחיקת הפרויקט

הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.

כדי למחוק את הפרויקט:

  1. במסוף Cloud de Confiance , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.