این مستند میگوید برای محافظت از دادههای ماشین مجازی نسخه ۲ چه راهکارهایی موجود است و چه چیزی در اختیار ندارید. پاسخ کوتاه در بخش ۱ «وضعیت موجود در یک نگاه» آمده است و اگر فقط میخواهید بدانید برای دادهی خودتان چه باید بکنید، مستقیم به جدول بخش ۲ «میخواهید از چه چیزی محافظت کنید؟» بروید.
۱. وضعیت موجود در یک نگاه
- اسنپشات ماشین مجازی در نسخه ۲ وجود ندارد؛ نه در پنل و نه در API.
- پشتیبانگیری زمانبندیشده یا دورهای وجود ندارد؛ سازوکاری برای گرفتن خودکار نسخهی پشتیبان در بازههای زمانی مشخص ارائه نمیشود.
- ستون هیچ نسخهی پشتیبانی از محتوای ماشین شما نگه نمیدارد. تهیه، نگهداری و آزمودن نسخهی پشتیبان بر عهدهی شماست.
- تنها سازوکار موجود «ایمیج ماشین» (Instance Image) است؛ این سازوکار فقط دیسک سیستمعامل را در بر میگیرد و ماشین باید در تمام مدت ساخت ایمیج خاموش باشد؛ برای اطلاعات بیشتر به بخش ۴ «ایمیج ماشین» مراجعه کنید.
- ماشین حذفشده قابل بازگردانی نیست.
حذف ماشین برگشتپذیر نیست
با حذف یک ماشین مجازی، دیسک سیستمعامل آن پاک میشود و هیچ نسخهای از آن نزد ستون باقی نمیماند؛ نه در پنل، نه از طریق درخواست پشتیبانی. تنها چیزی که پس از حذف ماشین باقی میماند، دیسکهای مانای متصل به آن است که چرخهی عمرشان مستقل از ماشین است.
ماندگاری داده با پشتیبانگیری یکی نیست
دیسک مانا در چند رپلیکا روی چند سرور نگهداری میشود و در برابر خرابی سختافزار مقاوم است، اما این «ماندگاری» است نه «پشتیبانگیری». رپلیکا از شما در برابر حذف اشتباهی یک فایل، خرابی داده در اثر باگ اپلیکیشن، یا رمزگذاری دادهها توسط یک مهاجم محافظت نمیکند؛ چون همان تغییر بیدرنگ روی همهی رپلیکاها اعمال میشود. محافظت در برابر این دسته از رخدادها فقط با نسخهی پشتیبانِ جدا از دیسک اصلی ممکن است.
۲. میخواهید از چه چیزی محافظت کنید؟
بسته به اینکه دادهی شما کجاست، راهکار موجود متفاوت است:
| آنچه میخواهید محافظت کنید | راهکار موجود | نکته |
|---|---|---|
| دیسک سیستمعامل ماشین | ایمیج ماشین | نیازمند خاموشی کامل ماشین؛ سقف ۲۴۰ گیگابایت — بخش ۴ «ایمیج ماشین» |
| دیسک مانای متصل (دیسک دیتا) | پشتیبانگیری در لایهی اپلیکیشن و انتقال نسخهی پشتیبان به مقصدی خارج از ماشین، مثلاً آبجکت استوریج | ایمیج ماشین این دیسکها را در بر نمیگیرد |
| پایگاهداده روی ماشین مجازی | Dump منظم یا رپلیکا، و انتقال خروجی به مقصدی خارج از ماشین | نسخهی پشتیبان معتبر پایگاهداده در سطح اپلیکیشن گرفته میشود — بخش ۳ |
| کپی دورهای و زمانبندیشده | زمانبند خودتان (مثلاً cron) روی ماشین یا در CI شما | سرویس پشتیبانگیری زمانبندیشدهای از سمت ستون ارائه نمیشود |
الگوی پیشنهادی برای دادههای حساس
نسخهی پشتیبان را در همان ماشین یا همان دیسک نگه ندارید. مسیر متداول این است که خروجی پشتیبان در لایهی اپلیکیشن گرفته شود و بلافاصله به یک باکت آبجکت استوریج منتقل شود. با این کار از دست رفتن ماشین، دیسک، یا حتی کل فضای کاری، نسخهی پشتیبان شما را از بین نمیبرد.
۳. چرا نسخهی پشتیبان معتبر در لایهی اپلیکیشن گرفته میشود
پیش از توضیح محدودیتهای ستون، یک نکتهی عمومی که به سیاست هیچ ارائهدهندهای مربوط نیست:
کپی سطح-بلاک از دیسکی که همان لحظه روی آن نوشته میشود، وضعیت لحظهای بلاکها را ثبت میکند، نه وضعیت منطقی اپلیکیشن. اگر در لحظهی کپی، بخشی از یک تراکنش نوشته شده و بخشی هنوز در حافظه یا در صف نوشتن باشد، آنچه ثبت میشود معادل قطع ناگهانی برق است (crash-consistent). چنین کپیای ممکن است سالم بالا بیاید و ممکن است نیاید؛ صحت آن تضمینشده نیست و این موضوع مستقل از اینکه اسنپشات را چه کسی و با چه ابزاری گرفته باشد صادق است.
به همین دلیل، نسخهی پشتیبانی که بتوان به آن اتکا کرد از یکی از این دو راه به دست میآید:
- خاموش یا متوقف بودن نوشتن در حین کپی: ماشین خاموش باشد، یا فایلسیستم و پایگاهداده پیش از کپی به حالت سازگار برده شوند (quiesce).
- گرفتن نسخه در لایهی اپلیکیشن: خروجی
dumpپایگاهداده، آرشیو منطقی دادهها، یا رپلیکایی که خودش سازگاری را تضمین میکند.
محدودیت موجود در نسخه ۲ این است که راه اول را هم در اختیار شما نمیگذارد: اسنپشات دیسک وجود ندارد و تنها ابزار موجود، ایمیج ماشین است که دقیقاً به همین دلیل، ساخت آن مستلزم خاموش بودن ماشین است.
راهکار عملی همان چیزی است که در جدول بخش ۲ «میخواهید از چه چیزی محافظت کنید؟» آمد: نسخهی پشتیبان را در لایهی اپلیکیشن بگیرید و بیرون از ماشین نگه دارید. برای دیسک سیستمعامل و ماشینهای stateless، ایمیج ماشین در بازههای برنامهریزیشده کافی است.
مسیر پیشرو نیز در بخش ۶ «مسیر پیشرو» آمده است.
۴. ایمیج ماشین (Instance Image)
ایمیج ماشین یک کپی از دیسک سیستمعامل ماشین است که میتوانید بعداً از روی آن ماشین جدیدی بسازید. این تنها سازوکار موجود در نسخه ۲ برای بازگردانی یک ماشین است.
چه زمانی از ایمیج ماشین استفاده کنید؟
ایمیج ماشین در سناریوهایی به کار میآید که «وضعیت دیسک سیستمعامل» ارزش نگهداشتن دارد و پذیرفتن یک بازهی خاموشی برنامهریزیشده ممکن است:
- نقطهی بازگشت پیش از یک تغییر پرمخاطره: پیش از ارتقای سیستمعامل، تغییر کرنل، یا تغییر بنیادی در پیکربندی، از ماشین ایمیج بگیرید تا اگر تغییر به نتیجه نرسید، ماشین را از روی همان ایمیج دوباره بسازید. چون ماشین در هر صورت باید خاموش شود، این کار با پنجرهی تعمیرات شما همخوان است.
- ماشینهای stateless: برای وبسرور یا اپلیکیشنسروری که دادهی ماندگاری روی دیسک سیستمعامل ندارد، ایمیج عملاً کل چیزی است که برای برگرداندن سرویس لازم دارید.
- تکثیر یک ماشین آماده (Golden Image): یک ماشین را کامل نصب و تنظیم کنید، از آن ایمیج بگیرید و ماشینهای بعدی را از روی همان ایمیج بسازید تا مراحل نصب دوباره تکرار نشود.
- آوردن سیستمعامل یا پیکربندی خودتان به ستون: با ایمیج سفارشی؛ برای اطلاعات بیشتر به بخش ۵ «وارد کردن (Import) و خارج کردن (Export) ایمیج» مراجعه کنید.
ایمیج ماشین جایگزین پشتیبانگیری دورهای نیست
برای محافظت از دادههایی که مدام تغییر میکنند — پایگاهداده، فایلهای کاربران، یا هر دادهای که روی دیسک مانا نگهداری میشود — ایمیج ماشین ابزار درستی نیست؛ هم مستلزم خاموش کردن ماشین است و هم دیسکهای دیتا را در بر نمیگیرد. برای این موارد به جدول بخش ۲ «میخواهید از چه چیزی محافظت کنید؟» مراجعه کنید.
چه چیزی در ایمیج ثبت میشود و چه چیزی نمیشود
| مورد | در ایمیج هست؟ |
|---|---|
| محتوای دیسک سیستمعامل (OS Disk) | بله |
| دیسکهای مانای متصل به ماشین | خیر |
| PVCهای کلاستر کوبرنتیز روی این ماشین | خیر |
| حافظهی اصلی و وضعیت در حال اجرای ماشین | خیر |
پرتکرارترین برداشت اشتباه
ایمیج ماشین جایگزین پشتیبانگیری از دیسکهای دیتا نیست. اگر دادهی مهم شما روی یک دیسک مانای متصل است، ساختن ایمیج هیچ نسخهای از آن داده تهیه نمیکند و بازگردانی ماشین از روی ایمیج، آن داده را برنمیگرداند.
ماشین باید در تمام مدت خاموش باشد
برای ساخت ایمیج، ماشین باید خاموش شود و تا پایان کامل فرآیند خاموش بماند.
این یعنی زمان ساخت ایمیج، زمان قطعی سرویس شماست
چون ماشین در تمام مدت خاموش است، مدت ساخت ایمیج مستقیماً به Downtime سرویس شما تبدیل میشود. پیش از شروع، با استفاده از جدول زمانهای زیر بازهی مناسبی را برنامهریزی کنید.
سقف اندازه
اندازهی ایمیج ماشین حداکثر ۲۴۰ گیگابایت است. برای ماشینهایی با دیسک سیستمعامل بزرگتر از این مقدار، ساخت ایمیج ممکن نیست و افزایش این سقف در حال حاضر امکانپذیر نیست.
اگر دیسک سیستمعامل شما بزرگتر از این است
اندازهی دیسک سیستمعامل با نوع ماشین تعیین میشود. اگر به فضای بیشتری نیاز دارید، بهجای بزرگتر کردن دیسک سیستمعامل، دادهها را روی دیسک مانا نگه دارید و دیسک سیستمعامل را کوچک بگذارید. این کار هم ایمیج را ممکن میکند و هم زمان ساخت آن را کوتاه نگه میدارد.
زمان ساخت ایمیج
| اندازهی دیسک سیستمعامل | زمان تقریبی ساخت ایمیج |
|---|---|
| حدود ۳۰ گیگابایت | کمتر از ۵ دقیقه |
| ۲۴۰ گیگابایت (سقف) | حدود ۳۰ دقیقه |
ترتیب بزرگی این اعداد قابل اتکاست: زمان ساخت تقریباً متناسب با حجم دیسک است. اگر ساخت ایمیج یک ماشین چند ده گیگابایتی چند دقیقه طول کشید، این رفتار طبیعی است و نشانهی خطا یا گیر کردن فرآیند نیست.
این زمانها برآوردی هستند و تضمین نمیشوند
ساخت ایمیج مستقیماً به پهنای باند شبکه و دیسکِ در دسترس در همان لحظه وابسته است. بنابراین اعداد بالا رفتار معمول را نشان میدهند و بسته به شرایط زیرساخت در زمان اجرا میتوانند کوتاهتر یا بلندتر شوند. آنها را برای برنامهریزی بازهی خاموشی به کار ببرید، اما روی آنها بهعنوان زمان قطعی حساب نکنید.
ساخت ماشین از روی ایمیج
پس از آماده شدن ایمیج، میتوانید هنگام ساخت ماشین جدید آن را بهجای ایمیجهای استاندارد سیستمعامل انتخاب کنید. نوع ماشین مقصد باید دیسک سیستمعاملی بزرگتر یا مساوی اندازهی ایمیج داشته باشد.
۵. وارد کردن (Import) و خارج کردن (Export) ایمیج
وارد کردن (Import) ایمیج سفارشی
اگر میخواهید ایمیجی را که خودتان تهیه کردهاید به ستون بیاورید، این دو نکته را رعایت کنید:
- فرمت فایل:
qcow2 - نوع بوت: Legacy (و نه UEFI)
اگر ساخت ماشین از روی ایمیج سفارشی انجام نشد، ابتدا بررسی کنید نوع ماشین مقصد دیسک سیستمعاملی بزرگتر یا مساوی اندازهی ایمیج داشته باشد. در صورت ادامهی مشکل، از طریق کانال اختصاصی پشتیبانی درخواست بررسی دهید و نام ایمیج و نوع ماشین مقصد را اعلام کنید.
خارج کردن (Export) ایمیج
دریافت فایل ایمیج بهصورت self-service ممکن نیست. برای گرفتن خروجی، از طریق کانال اختصاصی پشتیبانی درخواست دهید؛ فایل برای شما روی آبجکت استوریج قرار میگیرد و یک لینک دریافت با اعتبار حدود یک ساعت در اختیارتان گذاشته میشود.
پیش از ثبت درخواست خروجی آماده باشید
اعتبار لینک کوتاه است و حجم فایل میتواند تا ۲۴۰ گیگابایت باشد. پیش از ثبت درخواست، مقصد دانلود و پهنای باند لازم را آماده کنید تا مجبور به درخواست دوبارهی لینک نشوید.
۶. مسیر پیشرو
پیادهسازی اسنپشات دیسک (Volume Snapshot) در نقشهی راه محصول قرار دارد. تا زمان ارائهی این قابلیت، راهکارهای بخش ۲ «میخواهید از چه چیزی محافظت کنید؟» تنها گزینههای موجود هستند.
نکته
این بخش وضعیت را در زمان انتشار این مستند بیان میکند. برای اطلاع از آخرین وضعیت، اطلاعیههای انتشار را دنبال کنید یا از کانال اختصاصی پشتیبانی بپرسید.
۷. مسئولیت مشترک
ماشین مجازی یک سرویس لایهی زیرساخت است. ستون فراهمآوری و سلامت زیرساخت (سرور میزبان، شبکه و ماندگاری دیسک مانا) را بر عهده دارد و محتوای ماشین، طراحی راهکار پشتیبانگیری و آزمودن بازگردانی آن بر عهدهی شماست. توضیح کامل این مدل در مستند مسئولیت مشترک فراهمآورنده و کاربر زیرساخت ابری آمده است.
برای درخواستهایی که در این مستند به پشتیبانی ارجاع داده شدهاند (خروجی گرفتن از ایمیج و بررسی مشکل ساخت ماشین از روی ایمیج سفارشی)، از کانال اختصاصی پشتیبانی استفاده کنید. راهنمای ثبت درخواست در مستند راهنمای ثبت درخواست پشتیبانی در ستون آمده است.
