CDP چیست؟ همسانسازی بازیابی عملیاتی و CDP یا Continuous data Protection، اهداف مشابهی را دنبال میکنند، اما روش رسیدن به این هدف در آنها متفاوت است.بیشتر تمرکز روی مقایسهی همسانسازی با CDP در رابطه با محیطی مجازی است. چندین دهه است که این تکنولوژیها در دنیای فیزیکی به کار گرفته میشوند. تکنولوژیهایی مثل SRDF که روی پلتفرم EMC Symmetrix مورداستفاده قرار میگرفتند، از گذشته تا کنون توسط بسیاری از سازمانها و شرکتهای Fortune 500 در سراسر دنیا استفاده میشوند. اما در این مقاله روی شیوههای همسانسازی داده از یک Hypervisor به Hypervisor دیگر تمرکز میشود، فارغ از اینکه Hypervisorها یکسان باشند یا متفاوت.
همسانسازی
در تعریف همسانسازی میتوان گفت که همسانسازی یک کپی از داده در زمانی مشخص است. این یعنی یک کپی از منبع در نقطهی زمانی بهخصوصی به هدف ارسال میشود. وقتی که این کپی به هدف میرسد، تصویری است از چیزی که VM در زمان شروع همسانسازی، آنگونه بوده است.
در ابتدا باید سه نوع از همسانسازی تعریف شود: همسانسازی Storage، همسانسازی مبتنی بر Agent و همسانسازی در سطح Hypervisor با استفاده از Snapshotهای Native Hypervisor.
همسانسازی Storage
در همسانسازی Storage یک LUN وجود دارد که به یک Host بهعنوان یک Volume، Map میشود که سپس به Host یا کلاستر ارائه میگردد و به هر فرمتی فایلی که Hypervisor از آن استفاده میکند، تبدیل میشود. در این مقاله از VMFS بهعنوانمثال استفاده میشود، زیرا روی خود یک Datastore دارد و VMها درون آن قرار دارند. معمولاً یک پالیسی درون Array تنظیم میگردد تا روی برنامهی مشخص، Snapshotهایی بگیرد. فرض میکنیم که هر چهار ساعت Snapshot انجام میدهیم و 16 مورد داریم. این Snapshotها از مبدأ به Storage Arrayهای مقصد ارسال میشوند، پس باید از تکنولوژی یکسانی استفاده گردد. این قاعده استثناهایی هم دارد، اما در اکثر مواقع صدق میکند.
Snapshot در یک سیستم زیرمجموعهی قویتر رخ میدهد و درصورتیکه یکپارچهسازی بهخصوصی با Hypervisor از Storage Vendorی که VMها Host میکنند وجود نداشته باشد، این VMها هرگز متوجه رخ دادن این فرایند نمیشوند. فقط Blockهایی که از آخرین Snapshot تغییر کردهاند، ارسال میگردند. حذف دادههای تکراری برای آنها انجام میگردد یا ممکن است از تکنولوژیهای بهینهسازی WAN دیگری استفاده گردد. اما در اکثر مواقع این روش برای ارسال داده از مبدأ به مقصد بسیار کارآمد است.
ملاحظاتی در مورد همسانسازی Storage
در اینجا در مورد همسانسازی غیرهمزمان صحبت میشود، نه همسانسازی همزمان. همزمان برای پیکربندی فعال استفاده میشود که در آن بههیچوجه نمیخواهیم دادهای از دست برود. همسانسازی غیرهمزمان در سطح Storage رخ میدهد. یعنی این تغییرات اکنون بهروزرسانی شده و از طریق Mount کردن کپی همسانسازیشده در یک نقطهی زمانی بهخصوص، برای بازیابی در سیستم هدف قابلدسترسی هستند. این فرایند Mount کردن، بسته به Storage Vendor، ممکن است یک فرایند دستی یا یک فرایند برنامهریزیشده Orchestrated باشد که از نرمافزارهایی مثل VMware Site Recovery Manager استفاده میکند.
یکی دیگر از ملاحظات این است که آیا میخواهیم VM در وضعیت پایدار باشد یا خیر. اگر اینطور بود، ممکن است لازم باشد که VM متوقف شود. برای این کار میتوان از VMware Tools یا Microsoft VSS استفاده کرد. وقتی که این توقف رخ دهد، مواردی مثل حافظه Flush شوند یا Logهای دیتابیس Committed گردند. مهم این است که با VM و سیستم عامل ارتباط برقرار گردد، باید توجه شود که این فرایند را نمیتوان خیلی زیاد انجام داد. مثلاً به دلیل وقفهای که در IO پیش میآید، مایکروسافت استفاده از VSS را بیشتر از یک بار در ساعت روی SQL پیشنهاد نمیکند. این تنها راهی است که میتوان یک Image کاملاً Committed را برای بازیابی داشت.
آخرین نکته مربوط به دیتابیس تراکنشی است، همسانسازی SAN دادههای را Capture کرده و به کاربر یک کپی سازگار با Crash یا Crash-Consistent را در سیستم هدف میدهد. این کپی نود درصد اوقات بهخوبی آنلاین میشود. اما اگر Logها و دیتابیس متعهد Committed نگردند و دیتابیس در وضعیتی نامناسب Dirty خاموش شود، همیشه ریسکی وجود دارد. اگر یکپارچهسازی مبتنی بر برنامه کاربردی وجود نداشته باشد، ریسک تمام تکنولوژیهایی که در این مقاله معرفی میشوند یکسان است.
معایب همسانسازی مبتنی بر برنامه کاربردی
مشکل همسانسازی مبتنی بر برنامه کاربردی سربار روی برنامه کاربردی است، پس باید تعادلی برقرار گردد. راه حلی وجود دارد، اما آن راه حل در Stack برنامه کاربردی در چارچوب راهکار Vendor برنامه کاربردی قرار دارد. هم Microsoft SQL و هم Oracle تکنولوژیهای کلاستربندی را برای پلتفرمهای دیتابیس خود فراهم مینمایند تا این مشکل حل گردد. مشکل در فضای SMB این است که از نظر Licensing و پیکربندی بسیار پرهزینه هستند. به همین دلیل است که افراد باید به دنبال موارد جایگزین باشند. همهی اینها مواردی هستند که در هنگام سبکسنگین کردن گزینهها باید مدنظر قرار بگیرند.
همسانسازی مبتنی بر Agent
گزینهی بعدی ساخت Replicaهایی از طریق یک راهکار مبتنی بر Agent است. اکثر Vendorهای پشتیبانگیری بزرگ، از Veeam گرفته تا Commvault، دارای Agentهایی هستند که با یک برنامهی از پیش تعریفشده داده را از مبدأ به مقصد همسانسازی میکند، درست مانند مثالی که بالاتر برای Snapshotهای Storage زده شد.
روش مبتنی بر Agent از یک Agent نرمافزاری استفاده میکند تا در کپیهای نقاط زمانی خاص، تغییراتی را از آخرین کپی Capture کند. سپس این تغییرات را در یک مکان Storage دیگر مینویسد. روش مبتنی بر Agent همچنین میتواند با تکنولوژیهایی مثل Microsoft VSS تعامل کند تا اطمینان حاصل نماید که کپی باثبات است. در بسیاری از موارد سرباری روی خود VM وجود نخواهد داشت؛ درنتیجه، راهکارهای مبتنی بر Agent برای سیستمهایی مثل دیتابیس مناسب هستند. گروههای دسترسپذیری سرور Microsoft SQL نیز مثالی از تکنولوژیهای همسانسازی مبتنی بر نرمافزار هستند. این گروهها میتوانند کپیهای Offset لازم را برای تداوم کسبوکار فراهم کنند و تأثیر اندکی روی خود دیتابیس بگذارند. این امر به تقابل بین Crash-Consistent و مبتنی بر برنامه کاربردی مربوط میشود. همهچیز به این بستگی دارد که دیتابیسها و برنامههای کاربردی بتوانند چه مقدار مکث در IO را تحمل کنند. باید چندین ملاحظه را در مورد راهکارهای مبتنی بر Agent مدنظر قرار داد.
راهکارهای مبتنی بر Agent میتوانند دادههایی را از یک Storage Vendor به دیگری همسانسازی کند، همچنین از یک Hypervisor به دیگری. دلیل این امر این است که آنها به Storage یا Hypervisor متصل نیستند، پس انعطافپذیری زیادی دارند. اما نقاط ضعفی هم دارند.
بیشتر بخوانید: بررسی و معرفی قابلیت جدید vSphere پس از انتشار ESXi hypervisor
اما نرمافزار روی همهی سیستم عاملها اجرا میشود، این یعنی مقداری سربار وجود دارد. اگر رمزگذاری را اضافه کنیم، این فرایند از CPU روی سیستم مبدأ هم استفاده میکند. همچنین باید بهصورت مجزا مدیریت و Patch شوند. اگر VMهای زیادی وجود داشته باشد، این فرایند میتواند بسیار زمانبر شود و از نظر مدیریتی، سرباری غیرضروری را در دنیای مجازی میسازد. از طرف دیگر، یکی از مزایای بزرگش این است که اگر یک دستگاه دارای مشکلی باشد، کاربر در زمان انجام همسانسازی مبتنی بر Hypervisor، فقط تحت تأثیر یک سیستم قرار میگیرد نه تعداد زیادی از سیستمها.
همسانسازی مبتنی بر Agent برای محیطهای کوچکتر، گزینهای عالی است. بازیابی این سیستمها میتواند بستگی داشته باشد به اینکه Vendor نرمافزار در Hypervisor یکپارچهسازی شود یا خیر. همچنین ممکن است یک فرایند دستی خاموش و روشن کردن باشد. معمولاً این مسئله در محیطهای کوچکتر، کماهمیتتر است.