1.1. بیان مسئله و ضرورت تحقیق 1
1.2. دامنه تحقیق 7
1.3. پیشینه تحقیق 7
1.4. اهداف تحقیق 8
1.5. سوالات تحقیق 8
1.6. مراحل و روش تحقیق 9
1.7. دستاوردهای تحقیق 10
1.8. نگاهی کلی بر پایان نامه 10
فصل دوم: معرفی و بررسی ابزار فرمال برای مدل سازی سیستم ها 12
Abstract State Machine (ASM) 14
LOTOS 17مقدمه ای بر جبر پروسه ها 18
VDM-SL 22
شبکه های پتری 23خصوصیات رفتاری 25Reachability 26
Boundedness 26
Liveness 26
Reversibility 28
Coverability 28
زیر مجموعه های شبکه های پتری 29State Machine (SM) 30
Marked Graph (MG) 30
Free-choice net (FC) 31
Extended Free-choice net (EFC) 31
Asymmetric choice net (AC) 31
قضایا و فرضیات 32
مقایسه و جمع بندی 35
فصل سوم: بررسی معماری دیتا سنترها 38
Microsoft Hyper-V 39بررسی اجزاء معماری Hyper-V 42APIC 43
Child Partition 43
Hypercall 43
Hypervisor 43
IC 43
I/O stack 44
Root Partition 44
VID 44
VMBus 44
VMMS 44
VMWP 44
VSC 45
VSP 45
WinHv 45
WMI 45
نقاط ضعف 46
Xen 46بررسی اجزاء معماری Xen 48Xen Hypervisor 48
Domain 0 48
Domain U 49
Xenstored 50
ارتباطات مابین دامنه صفر و دامنه های U 50
VMware ESXi 50بررسی اجزاء معماری VMware ESX 52VMkernel 52
File System 52
CIM 53
طراحی یک معماری برای دیتا سنتر 54
مختصری درباره vSphere 56سرویس های زیر ساختی vSphere 58
سرویس های کاربردی vSphere 59سرور VMware vCenter 59
Client ها 59
ESX 59
vCenter Server 59
VMFS 59
SMP 60
VCMS 60
VI Client 60
VMware VMotion 60
Storage VMotion 60
VMware HA 61
DRS 62
Consolidated Backup 63
vSphere SDK 63
Fault Tolerance 64
سرویس های توزیع شده در vSphare 64
معماری شبکه 64
معماری محل ذخیره سازی داده ها 66
معماری سرور مدیریت VirtualCenter 69User Access Control 70
Core Service 71
جمع بندی 71
فصل چهارم: ارائه مدل فرمال برای دیتا سنتر و تحلیل آن 72
تشریح دیتا سنتر نمونه 73
ارائه مدلی از رفتار کلی دیتا سنتر 77ارزیابی و تحلیل مدل فرمال 87
4.2.1.1. Liveness 87
4.2.1.2. Safeness 87
4.2.1.3. Reversibility 89
بررسی لایه های پایینتر مدل فرمال 90
بررسی نحوه کار سرویس HA 91شرح سرویس VMware HA 91
ارائه مدل فرمال از نحوه کار سرویس HA 95
تحلیل و ارزیابی مدل 98
4.3.3.1. Liveness 99
4.3.3.2. Safeness 101
4.3.3.3. Reversibility 102
بررسی نحوه کار سرویس Fault Tolerance 106تشریح ساختار سرویس Fault Tolerance 106
ارائه مدل فرمال از نحوه کار سرویس Fault Tolerance 110
تحلیل و ارزیابی مدل 111
4.4.3.1. Liveness 112
4.4.3.2. Safeness 113
4.4.3.3. Reversibility 113
بررسی نحوه کار سرویس VMotion 114تشریح ساختار سرویس VMotion 114
ارائه مدل فرمال از نحوه کار سرویس VMotion 118
تحلیل و ارزیابی مدل 119
4.5.3.1. Liveness 120
4.5.3.2. Safeness 121
4.5.3.3. Reversibility 122
بررسی ساختار داخلی ESX hypervisor 124تشریح ساختار ESX 124
ارائه یک مدل فرمال از نحوه کار ESX 125
بررسی و تحلیل مدل 129
4.6.3.1. Liveness 129
4.6.3.2. Safeness 131
4.6.3.3. Reversibility 132
تشریح ساختار سیستم ذخیره سازی در ESX 133تشریح ساختار سیستم ذخیره سازی 133
ارائه یک مدل فرمال از نحوه کار سیستم ذخیره سازی در ESX 138
بررسی و تحلیل مدل 144
4.7.3.1. Liveness 144
4.7.3.2. Safeness 145
4.7.3.3. Reversibility 146
معماری ساختار شبکه در ESX 148تشریح ساختار شبکه 148
ارائه مدل فرمال برای ساختار شبکه در ESX 155
بررسی و تحلیل مدل 161
4.8.3.1. Reversibility 161
4.8.3.2. Liveness 163
4.8.3.3. Safeness 165
معماری سوئیچ مجازی در ساختار شبکه 165تحلیل ساختار سوئیچ مجازی 165
ارائه یک مدل فرمال برای سوئیچ مجازی 169
بررسی و تحلیل مدل 172
4.9.3.1. Liveness 172
4.9.3.2. Safeness 173
4.9.3.3. Reversibility 174
جمع بندی 175
فصل پنجم: نتیجه گیری و پیشنهادات 176
مراجع 180
پیوست: مجموعه کامل مدل های پتری طراحی شده در پایان نامه 186
چکیده به زبان انگلیسی 195
فهرست جدول ها
عنوان و شماره صفحه
جدول 2.1. خلاصه مقایسه ابزار توصیف فرمال 36
جدول 3.1. سیستم های عامل قابل پشتیبانی توسط Hyper-V R2 41
جدول 3.2. سیستم های عامل قابل پشتیبانی توسط Xen نسخه 3. 47
جدول 4.1. گزارهای فعال در وضعیت های M0 الی M15 از مدل پتری 4.30 164
جدول 5.1. خلاصه نتایج به دست آمده از تحلیل رفتار زیر سیستم ها و سرویس های VMware ESX 177
فهرست شکل ها
عنوان صفحه
شکل 1.1. نحوه قرارگیری لایه های نرم افزاری بر روی سرور 4
شکل 1.2. شمای کلی دیتا سنتر با معماری مجازی 5
شکل 2.1. مثال هایی از زبان های فرمال و تقسیم بندی آنها ]10[ 13
شکل 2.2. روال طراحی یک سیستم نمونه به کمک زبان های فرمال ]10[ 14
شکل 2.3. نقطه gate در جبر پروسه ها ]4[ 18
شکل 2.4. مدل تولید کننده- مصرف کننده به کمک LOTOS ]17[ 19
شکل 2.5. مثالی از مدل سازی یک پروتکل به کمک شبکه های پتری ]23[ 25
شکل 2.6. نمونه ای از شبکه پتری non-Live ]23[ 27
شکل 2.7. نشانه گزاری برای: a) مجموعه موقعیت های ورودی و خروجی برای t و b) مجموعه گزارهای ورودی و خروجی برای p ]23[ 30
شکل 2.8. مثال هایی از زیر مجموعه های شبکه های پتری ]23[ 32
شکل 2.9. یک شبکه پتری و گراف نشانه دار مربوط به آن ]23[ 33
شکل 3.1. معماری سطح بالای Hyper-V ]40[ 42
شکل 3.2. شمایی از معماری Xen ]51[ 47
شکل 3.3. نحوه سرویس دهی به ماشین میزبان توسط Qemu-DM ]51[ 49
شکل 3.4. شمایی از معماری VMware ESXi ]3[ 52
شکل 3.5. ساختار شماتیک مدیریت CIM ]3[ 54
شکل 3.6. مثالی از مفاهیم میزبان، کلاستر و مخزن منابع ]60[ 58
شکل 3.7. طرز کار سرویس HA ]61[ 62
شکل 3.8. شمایی از معماری شبکه در محیط مجازی ]60[ 65
شکل 3.9. شمایی از معماری ذخیره سازی ]60[ 66
شکل 3.10. طرز کار RDM ]60[ 68
شکل 3.11. شمایی از ساختار سرور مدیریت VirtualCenter ]60[ 70
شکل 4.1. زیر ساخت دیتا سنتر مجازی ]63[ 73
شکل 4.2. یک الگوی نمونه برای زیر ساخت دیتا فیزیکی سنتر ]60[ 75
شکل 4.3. ساختار شماتیک دیتا سنتر نمونه 76
شکل 4.4. مدل پتری طراحی شده برای دیتا سنتر نمونه 78
شکل 4.5. گراف پوشا برای مدل پتری شکل 4.4 88
شکل 4.6. نتیجه تحلیل فضای حالت به وسیله نرم افزار PIPE 89
شکل 4.7. مدل پتری نحوه کار سرویس HA 96
شکل 4.8. عضویت شبکه 4.7 در زیرکلاس های شبکه های پتری 100
شکل 4.9. گراف پوشای مدل 4.7 101
شکل 4.10. نتیجه تحلیل فضای حالت بر روی مدل 102
شکل 4.11. نحوه توزیع توکن در وضعیت S8 103
شکل 4.12. شبیه سازی شبکه پتری شکل 4.7 104
شکل 4.13. چندین نمونه از شبیه سازی اجرای شبکه پتری 105
شکل 4.14. مدل پتری نحوه کار سرویس Fault Tolerance 110
شکل 4.15. نحوه توزیع توکن ها در M3 و M4 112
شکل 4.16. گراف پوشای مدل پتری شکل 4.14 114
شکل 4.17 مدل پتری نحوه کار سرویس VMotion 118
شکل 4.18. گراف نشانه دار (G, ) مربوط به مدل 4.17 120
شکل 4.19. گراف پوشای مدل 4.17 123
شکل 4.20. مدل پتری طرز کار ESX 125
شکل 4.21. گراف جهت دار معادل شبکه پتری 4.20 130
شکل 4.22. گراف پوشای کدل پتری 4.20 132
شکل 4.23. نمای شماتیک مدل چند لایه ای سیستم ذخیره سازی در ESX ]63[ 134
شکل 4.24. مدل پتری ارائه شده از نحوه کار سیستم ذخیره سازی در ESX 139
شکل 4.25. گراف جهت دار متناظر با مدل پتری 4.24 144
شکل 4.26. گراف پوشای شبکه پتری 4.24 146
شکل 4.27. نرم افزار تحلیلگر گراف، در حال اجرای الگوریتم اول عمق 147
شکل 4.28. نحوه ارتباط کارت شبکه مجازی و سوئیچ مجازی ]62[ 149
شکل 4.29. شمای کلی از ساختار شبکه در سرور ESX 153
شکل 4.30. مدل پتری تهیه شده از ساختار شبکه در ESX 156
شکل 4.31. گراف پوشای مدل پتری شکل 4.30 162
شکل 4.32. جستجوی اول عمق گراف شکل 4.31 163
شکل 4.33 مدل فرمال از نحوه کار سوئیچ مجازی 170
شکل 4.34. گراف جهت دار متناظر با مدل پتری 4.33 173
شکل 4.35. گراف پوشای مدل پتری 4.33 174
فصل اول: مقدمه
1.1. بیان مسئله و ضرورت تحقیق
نیاز بشر به پردازش و ذخیره سازی اطلاعات در دهه های گذشته همواره رشد صعودی و شتابدار داشته است. به گونه ای که حرکت از سیستم های توزیع شده بر روی سوپرکامپیوترهای گران قیمت به شبکه های بسیار پر قدرت و ارزان در مدت نسبتا کوتاهی صورت گرفته است. همچنین نیاز به مدیریت اطلاعات، پردازش، گردش کار و دیگر ابزار مدیریتی همواره رشد فزاینده داشته است. به طبع این نیاز، ساختار سیستم های کامپیوتری در سطوح فنی و مدیریتی نیز رشد کرده و پیچیده تر شده است.
به منظور جوابگویی به این حجم فزاینده درخواست ها و نیاز بازار به منابع پردازش و ذخیره سازی اطلاعات و نیز به منظور ارائه سرویس های مورد نیاز با کیفیت مناسب و قابل رقابت، یکی از بهترین راه های پیشنهاد شده، متمرکز نمودن این منابع و مدیریت صحیح آنها است. به این منظور و برای به حداکثر رساندن کیفیت خدمات و حداقل نمودن هزینه ها یکی از رایج ترین راهکارهای موجود راه اندازی مراکز داده یا دیتا سنتر ها می باشد. در این طرح با آماده سازی زیر ساخت های فیزیکی، امنیتی، شبکه ای، سخت افزاری و نرم افزاری، مجموعه ای از سرورهای قدرتمند برای ارائه سرویس های مورد نیاز مشتریان در نظر گرفته می شود. این سرورها با خطوط بسیار پر سرعت بر حسب نیاز به اینترنت یا شبکه های سازمانی متصل می گردند و با نصب سیستم های عامل و نرم افزارها و سرویس های مورد نیاز به کاربران خدمات لازم را ارائه می نمایند. با وجود چنین مراکزی دیگر سازمان ها و مراکز تجاری، صنعتی، دانشگاهی و غیره نیازی به راه اندازی مراکز سرویس دهی محلی[1] و نیز متحمل شدن هزینه های نگهداری، به روز رسانی و استخدام متخصصین نخواهند داشت. در ادامه به بررسی اجمالی دیتا سنترها خواهیم پرداخت تا بتوانیم طرح پیشنهادی را تشریح نمائیم.
تعریف دیتا سنتر: مجموعه ای از سیستمهای پشتیبانی (از جمله زیر ساخت سخت افزاری passive، زیرساخت خنک کننده، زیر ساخت تامین انرژی، اطفاء حریق و غیره)، منابع پردازشی سخت افزاری شامل سرورها، تجهیزات زیرساخت شبکه، زیرساخت ذخیره سازی داده ها و زیرساخت نرم افزاری شامل ابزار یک پارچه سازی[2]، مجموعه ای از سیستم های عامل، مجموعه ای از نرم افزارهای کاربردی شامل سرویس ها، تعدادی پایگاه داده، مجموعه ای از ابزارهای امنیتی نرم افزاری و سخت افزاری و یک ساختار مدیریتی است. این سیستم به کمک خطوط پرسرعت به شبکه های خارجی (Intranet، Extranet یا اینترنت) متصل است ]1[.
با توجه به رشد نیازها و احتیاج کاربران به انعطاف پذیری و تحمل خطای بالا در این مراکز پردازشی، در سال های اخیر تکنولوژی مجازی سازی[3] به عنوان پاسخی به این نیازها و بهترین شیوه یکپارچه سازی ارائه شده و بسیار رشد کرده است. در حقیقت، این تکنولوژی به عنوان لایه مدیریت نرم افزاری و سیستم عاملی دیتا سنتر مورد استفاده قرار می گیرد. در ادامه به تشریح تکنولوژی مجازی سازی و نحوه استفاده از آن در این طرح خواهیم پرداخت.
تکنولوژی مجازی سازی یکی از جوانترین نظریه های مطرح شده در علم کامپیوتر می باشد که در ده سال اخیر توجه زیادی را به خود جلب نموده است. این تکنولوژی از این بابت بسیار جذاب است که انعطاف پذیری و امکانات خارق العاده ای را بر روی همان بستر سخت افزاری موجود ارائه می دهد و استفاده از آن هزینه بسیار ناچیزی برای سازمان دارد.
معماری مجازی سازی، همه منابع پردازشی از جمله سرورها، منابع ذخیره سازی[4] و شبکه را به یک ساختار مجازی نگاشت می دهد. این زیر ساخت با گردآوری همه منابع و نمایش مجموعه ای ساده شده و یکپارچه از آنها، مدیر را در درک بهتر ساختار فنی دیتا سنتر و مدیریت و تغییر آن یاری می رساند. به کمک این ساختار می توان منابع توزیع شده در یک دیتا سنتر را به صورت مجموعه ای یکپارچه از ابزار مدیریت نمود. همچنین می توان از دیتا سنتر برای مصارف گوناگونی استفاده کرد بدون اینکه نگران گوناگونی سخت افزارها و نحوه اتصال آن ها به سیستم باشیم؛ ]2[ و ]3[.
از این تکنولوژی برای طراحی زیر ساخت نرم افزاری دیتا سنتر استفاده خواهد شد. با این توضیح که به جای نصب یک سیستم عامل بر روی هر دستگاه سرور، از یک نرم افزار مجازی سازی به نام Hypervisor استفاده می شود. این نرم افزار شبه سیستم عامل به مدیر سیستم اجازه می دهد که به تعداد دلخواه کامپیوتر مجازی[5] بر روی سرور مذکور راه اندازی کرده و سیستم عامل و سرویس های دلخواه را بر روی آن نصب نماید (شکل 1.1).
شکل 1.1. نحوه قرارگیری لایه های نرم افزاری بر روی سرور
با این ترکیب می توان امکانات بسیار زیادی از جمله قابلیت دسترسی دائمی به سرویس ها (HA)[6] و مقاوم سازی سرویس ها در مقابل خطا[7] که از ضروریات چنین دیتا سنتری می باشد را با کمترین هزینه میسر نمود. همچنین امکان انتقال این کامپیوترهای مجازی در حال کار از روی یک سرور به سرور دیگر را بدون تاخیر زمانی وجود دارد[8].
در دیتاسنتری با این ابعاد، اغلب سرویس های در حال کار بسیار حیاتی و حساس بوده و از کار افتادن آن ها هزینه های هنگفت و بعضا جبران ناپذیری برای سازمان مربوطه به دنبال خواهد داشت. به همین دلیل لازم است امکانات حرفه ای را در دیتا سنتر به منظور محافظت از سرویس ها پیاده سازی نمائیم تا در دسترس بودن و سلامت آنها را تضمین کند. شکل 1.2 شمایی کلی از یک دیتا سنتر را با استفاده از معماری یاد شده نشان می دهد.
شکل 1.2. شمای کلی دیتا سنتر با معماری مجازی
با توجه به نیاز به این مراکز و پیچیدگی ذاتی آنها، ترسیم یک مدل فرمال از ماهیت یک دیتا سنتر، چه پیش از طراحی[9] و چه پس از آن[10]، می تواند در شناخت طرز کار و چگونگی فعالیت چنین مرکزی نقش به سزایی داشته باشد. از جمله این کاربردها می توان به تشخیص بن بست ها[11] و گلوگاه ها[12] قبل از طراحی و محک زدن[13] سیستم بعد از طراحی اشاره نمود. با در دست داشتن این مدل (تصویر فرمال) جریان کنترل در سیستم قابل رویت بوده و در نتیجه رفتار سیستم را می توان بررسی و پیش بینی نمود ]4[. البته باید توجه داشت که در سیستم های واقعی از جمله دیتا سنترها، به دست آوردن مدل جامع تقریبا غیر ممکن بوده و تنها می توان بخش هایی از سیستم را با نادیده گرفتن برخی از پارامترها مدل نمود. هرچقدر مدل به سیستم واقعی نزدیکتر باشد بررسی رفتار سیستم به کمک مدل حاصل دقیقتر و کاربردی تر خواهد بود. در بخش های بعدی با بررسی دقیقتر ماهیت مدل سازی فرمال، با انواع شیوه ها در این حوزه[14] بیشتر آشنا خواهیم شد.
به طور کلی متد های فرمال نوع خاصی از شیوه های بیان فرمال مسائل هستند که از آنها برای تشریح و تبیین[15] سیستم های کامپیوتری و همچنین اثبات رفتار آنها[16] در سطح سخت افزار و نرم افزار استفاده می شود. هدف از توضیح رفتار یک سیستم به کمک روش های فرمال، بررسی رفتار و خصوصیات سیستم از جمله میزان حد پذیری[17]، بازگشت پذیری[18] و نیز پارامترهای انتزاعی تر مانند میزان ثبات[19] و پایداری[20] می باشد ]5[.
بدیهی است انجام چنین کاری در مورد سیستم های واقعی با توجه به پارامترهای متعدد و ساختار پیچیده آنها بسیار وقت گیر و دشوار است و در بسیاری از مواقع فقط بخش هایی از سیستم را می توان در حد قابل قبولی تشریح و مدل نمود. به همین دلیل و نیز به دلیل هزینه بسیار گزاف این فرایند، استفاده از شیوه های فرمال برای توضیح رفتار سیستم فقط در مورد سیستم های بسیار حساس و گران قیمت صورت می گیرد.