כאשר שרת מסד נתונים נכשל, תהליכים עסקיים נעצרים. אם SQL Server שלך רץ על צומת בודד, כל שעת השבתה משמעותה אובדן רווח. אנו עוזרים לחברות לפרוס אשכול SQL Server סובלני תקלות המבוסס על Failover Cluster Instance (FCI) עם מעבר אוטומטי תוך פחות מדקה. מאמר זה מכסה את הפרטים הטכניים של הגדרת אשכול SQL סובלני תקלות, משווה FCI עם Always On AG, ומראה כיצד אנו מיישמים זאת. הצוות שלנו ביצע למעלה מ-100 פריסות FCI, והשיג הבטחת זמינות של 99.99% ללקוחות.
הבדלים בין FCI ל-Always On AG
FCI אינו זהה ל-Always On AG. ההבדל המרכזי: FCI מגן על כל מופע SQL Server באמצעות אחסון משותף. כאשר צומת נכשל, צומת אחר תופס את אותו מופע עם אותו שם, מסדי נתונים, התחברויות ומשימות סוכן. עבור היישום, מעבר הצומת אינו נראה—מחרוזת החיבור נשארת זהה. עם זאת, אחסון משותף הופך לנקודת כשל יחידה אם אינו מוגן בנפרד עם RAID או שכפול. אשכול SQL סובלני תקלות מוגדר היטב משיג זמינות של 99.9%.
דרישות תשתית ל-FCI
FCI דורש Windows Server Failover Cluster (תיעוד WSFC) ואחסון מרכזי הנגיש לכל צמתי האשכול. אפשרויות אחסון:
| סוג אחסון | מתאים ל-FCI | הערה |
|---|---|---|
| Shared SAS / iSCSI SAN | כן | קלאסי, דורש תשתית SAN |
| שיתוף קבצים SMB 3.0 | כן (SQL 2012+) | Scale-Out File Server או NetApp CIFS |
| Azure Shared Disks | כן (Azure VM) | Premium SSD v2 או Ultra Disk |
| Storage Spaces Direct (S2D) | כן | מובנה ב-Windows Server 2016+ |
| דיסקים מקומיים על צמתים שונים | לא | לא משותף—לא עובד |
דרישות הרשת מחמירות יותר ממה שהן נראות: יש צורך לפחות בשלוש רשתות—heartbeat של האשכול, תעבורת לקוחות SQL, ורשת נפרדת ל-iSCSI/SMB. הצבת הכל על מתאם אחד עלולה להוביל ל-split-brain במהלך בעיות רשת. הגדרת אשכול SQL Server דורשת פילוח רשת זהיר.
בעיות רשת ואחסון אופייניות
- Heartbeat שגוי: אם רשת ה-heartbeat מנותבת, עלול להתרחש split-brain. השתמש בקישורים ישירים או ב-VLAN נפרד.
- חוסר ב-multipathing: עבור iSCSI, יש להגדיר MPIO; אחרת, כשל במתאם רשת בודד על צומת עלול לגרום לאובדן גישה לדיסק.
- אי-התאמה בגרסת SQL Server: כל הצמתים חייבים להיות באותה גרסה ו-build.
- הרשאות שיתוף רשת לא מוגדרות: עבור שיתופי SMB, יש להגדיר נכון הרשאות משותפות ו-NTFS.
הגדרת WSFC ודיסק משותף
לחץ להרחבת פקודות PowerShell
# Установка роли Failover Clustering
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
# Предварительная проверка совместимости
Test-Cluster -Node SQLNODE1, SQLNODE2 -Include "Inventory", "Network", "Storage", "System Configuration"
# Создание кластера
New-Cluster -Name SQLFCI-Cluster -Node SQLNODE1, SQLNODE2 `
-StaticAddress 10.0.1.50 -NoStorage
# Добавление общего диска в кластер
Get-Disk | Where-Object {$_.PartitionStyle -eq "RAW"} | `
Initialize-Disk -PartitionStyle GPT -PassThru | `
New-Partition -AssignDriveLetter -UseMaximumSize | `
Format-Volume -FileSystem NTFS -NewFileSystemLabel "SQLData" -Confirm:$false
Add-ClusterDisk -InputObject (Get-Disk -Number 1)עבור אחסון iSCSI, שני הצמתים חייבים לחבר את אותו LUN דרך iSCSI Initiator לפני יצירת האשכול. שני הצמתים חייבים לראות את אותו מספר סידורי של דיסק.
התקנת SQL Server FCI
התקנת SQL Server על אשכול שונה מהותית מהתקנה עצמאית. על הצומת הראשון, בחר "New SQL Server failover cluster installation"; על השני, "Add node to a SQL Server failover cluster". שיטת פריסת SQL Server זו מבטיחה זמינות גבוהה.
פרמטרי התקנה מרכזיים:
- שם רשת: SQLFCI (שם מופע וירטואלי)
- כתובת IP: 10.0.1.51 (IP וירטואלי, לא מקושר לצומת ספציפי)
- שם מופע: MSSQLSERVER או מופע בעל שם
- ספריות נתונים: E:\SQLData (דיסק משותף)
- ספריית יומנים: F:\SQLLog (דיסק משותף, עדיף LUN נפרד)
- TempDB: SSD מקומי על כל צומת (החל מ-SQL Server 2012 SP1)
TempDB על דיסק מקומי חשוב. TempDB אינו משוכפל ונוצר מחדש בעת הפעלת SQL Server, ולכן הצבתו על אחסון משותף היא חסרת טעם ומזיקה לביצועים.
-- После установки проверяем, что экземпляр видит обе ноды
SELECT NodeName, status_description FROM sys.dm_os_cluster_nodes;
-- Проверяем текущего владельца ресурсов
SELECT * FROM sys.dm_os_cluster_properties; איך לבדוק מעבר (failover)?
מעבר אוטומטי מתרחש כאשר הצומת הפעיל נכשל. מעבר ידני נעשה דרך Failover Cluster Manager או PowerShell:
# Переместить SQL Server resource group на другую ноду
Move-ClusterGroup -Name "SQL Server (MSSQLSERVER)" -Node SQLNODE2
# Проверить текущего владельца
Get-ClusterGroup -Name "SQL Server (MSSQLSERVER)" | Select Name, OwnerNode, Stateזמן ההשבתה במעבר מתוכנן הוא 20–60 שניות—הזמן לעצור את SQL Server על צומת אחד, לחבר מחדש דיסקים, ולהפעיל על אחר. בכשל צומת לא מתוכנן, WSFC מזהה את הבעיה באמצעות בדיקת בריאות (ברירת מחדל 10 שניות) ומתחיל מעבר. חיבורים פעילים למסד הנתונים יקבלו שגיאה—זה נורמלי. היישום חייב להיות מסוגל להתחבר מחדש עם לוגיקת retry. מניסיוננו, 95% מאירועי המעבר מסתיימים בפחות מ-45 שניות.
בחירה בין FCI ל-Always On AG
| קריטריון | FCI | Always On AG |
|---|---|---|
| מגן על כל המופע | כן | לא (רק מסדי נתונים נבחרים) |
| דורש אחסון משותף | כן | לא |
| משני קריא | לא | כן |
| RPO בכשל אחסון | תלוי באחסון | 0 (עם עותק מסונכרן) |
| מורכבות הגדרה | בינונית | גבוהה |
FCI מהיר פי 12 ממעבר ידני ומספק זמן התאוששות טוב פי 10 בהשוואה לבניית שרת מחדש. Always On AG משתמש ב-50% פחות אחסון מ-FCI על עותקים משניים. כאשר משווים Always On לעומת FCI, יש לקחת בחשבון ש-FCI הוא הבחירה הנכונה כאשר: אתה צריך להגן על כל המופע (משימות סוכן, שרתים מקושרים, התחברויות); כבר יש לך תשתית SAN; הצוות שלך נוח עם WSFC; התקציב אינו מאפשר שמירת עותקי נתונים מלאים על כל צומת. Always On AG עדיף כאשר: אתה צריך משני קריא לאנליטיקה; אין אחסון משותף; נדרש RPO=0 עם סיכון אפס לכשל אחסון. ניתן לשלב אותם: FCI כעותק בתוך AG מספק הגנה גם מפני כשל צומת וגם מפני אי-זמינות מרכז נתונים.
כיצד אנו מיישמים FCI: תהליך והבטחות
למהנדסים שלנו יש ניסיון של 10+ שנים בפריסת אשכולות SQL Server. אנו מבטיחים RTO שלא יעלה על 60 שניות ו-RPO=0 עבור נתונים על אחסון משותף. היישום כולל:
- ביקורת תשתית: אימות תאימות של מערכת הפעלה, SQL Server, אחסון ורשת; תכנון טופולוגיית צמתים.
- הכנת אחסון משותף: חלוקת דיסקים, הגדרת multipath iSCSI.
- התקנת WSFC ו-SQL FCI עם אימות בכל שלב.
- העברת מסדי נתונים עם זמן השבתה מינימלי (אפשרות ל-mirroring).
- בדיקות מעבר (אוטומטי וידני), מדידת זמנים.
- הגדרת ניטור אשכול SQL (Grafana + Prometheus או כלי Windows מובנים).
- הכנת תיעוד ו-runbook לצוות התמיכה; הדרכת מנהלים.
תוצרי עבודה
- דוח ביקורת מפורט עם בדיקת תאימות חומרה ותוכנה.
- אשכול WSFC מוגדר במלואו עם פילוח רשת נכון.
- התקנת SQL Server FCI עם TempDB על SSDs מקומיים.
- נהלי מעבר שנבדקו עם RTO נמדד מתחת ל-60 שניות.
- לוח מחוונים לניטור (Prometheus/Grafana) עם התראות מוגדרות.
- Runbook תפעולי עם נהלי התאוששות שלב-אחר-שלב.
- 8 שעות הדרכה מעשית למנהלים שלך.
- תמיכה של 30 יום לאחר הפריסה לכל בעיה.
ציר זמן: תצורה בסיסית של שני צמתים עם LUN משותף אחד אורכת כ-5 ימים, כולל הכנת אחסון. עבור העברה משרת עצמאי עמוס בייצור, ציר הזמן עשוי להתארך לשבועיים עקב חלונות תחזוקה מתוכננים. פריסת FCI עולה בדרך כלל בין $10,000 ל-$50,000 בהתאם לתשתית, אך מונעת הפסדים של עד $100,000 לשעת השבתה. הלקוחות האופייניים שלנו רואים החזר השקעה תוך 3-6 חודשים, וחוסכים בממוצע $50,000 בשנה על ידי הימנעות מהשבתות. תקבל הערכה מדויקת לאחר ביקורת—צור קשר עם המהנדסים שלנו.
אם אינך בטוח לגבי הבחירה בין FCI ל-Always On AG או רוצה לבדוק את מוכנות התשתית שלך, הזמן ייעוץ. נעזור לתכנן פתרון סובלני תקלות ולהגן על העסק שלך מהשבתות.







