en-UShe-IL
You are here:   Blog

Awared MVP 

Microsoft® Community Contributor 


Microsoft® Community Contributor


Blog Archive:

הגדל
* Can be used in order to search for older blogs Entries

Search in blogs


Blog Categories:

הגדל
* Can be used in order to search for blogs Entries by Categories

Blog Tags:

הגדל
* Can be used in order to search for blogs by keywords

TNWikiSummit


הגדל מה בעמוד?

דצמ23

Written by: ronen ariely
23/12/2017 15:54 RssIcon

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

כדי לחסוך לעצלנים את קריאת הבלוג (שהוא גם כך קצר מאוד), הרשו לי להתחיל מהסוף:

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

כמובן שכמו תמיד כל מקרה לגופו של עניין...

בוא נעבור על כמה נקודות שיכולות לכוון אתכם להבנת הנושא

כיצד, היכן, ידע, והשליטה

השאלה הראשונה שצריך לשאול כאשר מדברים על הנושא היא, כיצד\היכן נמצאות המכונות הוירטואליות שלנו והאם (או כמה) יש לנו הבנה ו\או שליטה של מה קורה מאחורי הקלעים.

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

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

* הערה: הפרדה ל"דיסקים" שונים גם במכונה מקומית היא אמנם פיזית, אבל לא פחות חשוב מכך (גם בעולם הויראטולי) שהיא גם הפרדה ניהולית. יש סיבה שאנחנו מחלקים את הדיסק הפיזי למחיצות למשל ולא רק בשביל ניהול התכנים אלא גם בשל מיטוב ביצועים.

הקצאת משאבים

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

דוגמה טובה לכך ב Azure היא בחירת סוג הדיסק. הרבה פעמים השימוש במספר דיסקים מסוג P30 או P40 יהיה עדיף על השימוש בדיסק בודד מסוג P50. כך למשל, אם אנחנו צריכים קובץ של 3 טרה ביייט, אל תמהרו לקפוץ לעשות שימוש ב P50 במקרה של שרתי SQL, מכיוון שלמרות סוגים נמוכים יותר כמו P30 או P40 לא מאפשרים גודל כזה ביחידה אחת, הרי שכמות ה IOPS המקסימלי של P50 זהה לזו של P40. לכן שימוש בחלוקה לשני דיסקים יכול להביא מיטוב משמעותי בביצועים ולאפשר לנו את הגודל של 3 טרה.

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

אם אני צריך לבחור את שלושת כללי הזהב הראשונים בנושא - ספציפית למכונות ב azure, אז אני מניח שהייתי מציג את הכללים הבאים:

>> Use Premium Storage, P30 or P40 type

>> Keep the storage account and SQL Server VM in the same region
     * yes we can control the disks and even create disks in several different regions in the world, which in some RARE cases might be the right configuration!.

>> Enable read caching on the disk(s) hosting the data files and TempDB, but do not enable caching on disk(s) hosting the log file.
     * In order to keep the last rule, you need to keep log files and data files in separate disks.

מקורות מידע

אני ממליץ בחום לעבור על הקישורים הבאים לעומק:

>> Performance best practices for SQL Server in Azure Virtual Machines
      https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-performance

>> Base on the above document shw hoe to implement i practice
     https://akawn.com/blog/2014/06/sql-server-configuration-in-azure/

>> High-performance Premium Storage and managed disks for VMs
     https://docs.microsoft.com/en-us/azure/virtual-machines/windows/premium-storage

>> Performance best practices for SQL Server in VMware
      https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/solutions/sql-server-on-vmware-best-practices-guide.pdf