הגדרת SQL Server ב-Cloud de Confiance by S3NS באמצעות Google Cloud NetApp Volumes

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

‫Microsoft SQL Server Always On availability groups ‏(AG) מאפשרים לשכפל מסדי נתונים בכמה מופעים של 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 Volumes וניגשות אליהם. כדי לתמוך במעבר שקוף לגיבוי בענן (failover) ב-SMB, ‏ NetApp Volumes תומך באפשרות של שיתופי זמינות רציפה (CA) ב-SMB לשימוש עם עומסי עבודה של SQL Server. השימוש ב-SQL Server Always Encrypted מספק שיפורים בביצועים, יכולת הרחבה ויתרונות בעלויות עבור מופעים יחידים, מופעים של 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) עם חיבור קבוע ל-VPN דרך SMB ב-NetApp Volumes

עלויות

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

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

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

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

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  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. In the Cloud de Confiance console, activate Cloud Shell.

    Activate 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. לוחצים על הלחצן יצירה.

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

      5. בקטע אזור, בוחרים את האזור הזמין שהכי קרוב למיקום שבו יתארחו מופעי 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. בחלונית הניווט, לוחצים על Storage pools (מאגרי אחסון) בקטע Storage (אחסון).
      2. לוחצים על הלחצן יצירה.
      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 למאגר האחסון) ובוחרים את מדיניות 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. לוחצים על הלחצן יצירה.
      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 שבהם אתם משתמשים מסומנים בתג wsfc-node.
    • כל השרתים, כולל השרת העד, מתויגים בתג 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. מתחברים למכונה הווירטואלית באמצעות שולחן עבודה מרוחק ונכנסים באמצעות שם המשתמש והסיסמה שנוצרו בשלב הקודם.

      4. לוחצים לחיצה ימנית על Start (או מקישים על 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 installer עם הרשאות שליטה מלאה.

      עוצמת הקול בענן

    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 כדי שהוא יוכל להצטרף למכונות וירטואליות בדומיין:

      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 ולוחצים על OK.
    4. בחלונית הימנית, עוברים אל Failover Cluster Manager > windows-fci ופועלים לפי השלבים הבאים:

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

      2. אם שרת המארח הנוכחי מוגדר ל-node-2, לוחצים לחיצה ימנית על windows-fci בחלונית הימנית ובוחרים באפשרות פעולות נוספות > העברת משאבי ליבה של אשכול > בחירת צומת… > node-1 ולוחצים על אישור.

    תצטרכו ליצור התקנה חדשה של אשכול יתירות כשל של 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. פועלים לפי ההוראות באשף ההתקנה ומאשרים את הגדרות ברירת המחדל עד שמגיעים לדף חשבונות שירות.

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

    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. יוצרים מופע חדש של VM:

      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
      

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

    הרצת הבדיקה

    משתמשים ב-VM מספר 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 ומפסיקים את מכונת ה-VM 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. In the Cloud de Confiance console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.