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

במדריך הזה מוסבר איך להגדיר סביבה עמידה במיוחד Cloud de Confiance by S3NSל-SQL Server. אתם מתקינים את הסביבה הזו באחסון של שיתוף קבצים ב-פרוטוקול SMB‏ (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 וניגשות אליהם. כדי לתמוך במעבר גיבוי אוטומטי שקוף של 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) עם חיבור קבוע ל-VPN דרך 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. פרויקט ו-VPC עם קישוריות לבקרי הדומיין של Active Directory. Cloud de Confiance
  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. לוחצים על הלחצן יצירה.

    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 שנוצרה בשלב הקודם.

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

    נפח בענן

  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).
    

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

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

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

  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 VM כדי לבדוק את תרחיש היתירות כשל:

    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.