پیغام "needs snapshot consolidation, but all automatic snapshot consolidation attempts have failed" که در نرمافزار Veeam نمایش داده میشه، مربوط به VMware vSphere هست و به این معنیه که یکی از ماشینهای مجازی (VM) در حالت نیاز به consolidation هست، ولی تلاشهای خودکار برای انجام اون ناموفق بودن.
Consolidation Snapshot یعنی چی؟
وقتی روی یک VM در VMware یک snapshot گرفته میشه، تغییرات جدید در فایلهای مجزایی ذخیره میشن. وقتی اون snapshot حذف میشه، VMware باید این تغییرات رو دوباره با دیسک اصلی ادغام (consolidate) کنه. اگه این فرآیند درست انجام نشه یا قطع بشه، VM در حالت "needs consolidation" باقی میمونه.
چرا این اتفاق میافته؟
برخی از دلایل رایج:
وجود Snapshotهای یتیم یا خراب (Orphaned/Corrupt snapshots)
کمبود فضای دیسک
فایلهای قفلشده (Locked VMDK files)
مشکل در عملکرد VMware Tools یا vCenter
قطع شدن بکآپ در حین انجام عملیات Snapshot توسط Veeam
راهحلهای پیشنهادی:
1. بررسی وضعیت VM از vSphere
وارد vSphere Client شو.
روی VM راست کلیک کن و گزینه Snapshot > Consolidate رو انتخاب کن.
اگه خطا داد، متن خطا رو بررسی کن.
2. فضای دیسک رو بررسی کن
فضای datastore مربوط به VM رو چک کن. اگه جا کم باشه، ممکنه consolidation نتونه انجام بشه.
3. فایلهای قفلشده (Locked files)
ممکنه فایلهای .vmdk قفل شده باشن. با دسترسی SSH به هاست ESXi و استفاده از دستوراتی مثل:
vmkfstools -D /vmfs/volumes/datastore/VM_name/VM_disk.vmdk
میشه بررسی کرد که کدوم هاست یا پروسه فایل رو قفل کرده.
4. خاموش کردن VM و انجام دستی Consolidation
اگه نشد، VM رو خاموش کن و مجدد عملیات Consolidate رو انجام بده.
5. بررسی لاگها
لاگهای vCenter یا Veeam Backup رو بررسی کن برای اطلاعات بیشتر.
تو VMware ESXi، فایل swap (که معمولاً برای VMها ساخته میشه) به صورت خودکار ایجاد میشه وقتی که ماشین مجازی (VM) حافظهی بیشتری از چیزی که اختصاص داده شده لازم داره یا تنظیمات خاصی باعثش بشه. حالا کنترل حجم swapfile چند نکته داره:
۱. مفهوم پایه
* حجم swapfile معمولاً برابر با تفاوت بین مقدار RAM رزرو شده و مقدار total RAM تخصیصیافته به VM هست.
* اگر Reservation روی حافظهی VM صفر باشه، فایل swap به اندازهی کل RAM تخصیص داده شده ساخته میشه.
* اگر Reservation کامل (مثلاً برابر با مقدار RAM تخصیص داده شده) باشه، هیچ فایل swap ایجاد نمیشه.
۲. چطور کنترلش کنی؟
برای کم کردن حجم swapfile باید Memory Reservation برای VM تنظیم کنی.
مراحل کار از vSphere Client:
وارد vSphere Client شو.
روی VM مورد نظر راست کلیک کن ➔ Edit Settings.
تو بخش Memory:
گزینهی Reservation رو تغییر بده.
Reservation رو نزدیک یا برابر با مقدار RAM ماشین بگذار (هرچی Reservation بیشتر باشه، swap کمتر یا صفر میشه).
ذخیره کن و VM رو ریستارت کن (بعضی وقتها لازمه تا تغییرات اعمال بشه).
۳. نکته مهم
اگر Reservation رو بالا ببری، باید مطمئن باشی که هاست ESXi واقعاً این مقدار حافظهی فیزیکی آزاد رو داره، وگرنه ممکنه VM روشن نشه یا مشکلاتی پیش بیاد.
اینکار ممکنه باعث بشه vSphere DRS یا HA هم رفتار متفاوتی داشته باشن (مخصوصاً توی کلاسترهای بزرگ).
احتمالا شما نیز در حین استفاده از برنامه Anydesk متوجه شده اید که برای هر اتصال می بایست 180 ثانیه صبر نمایید. خبر خوش این است که می توانید این مشکل را به راحتی دور بزنید.
راه حل هایی جهت دور زدن مشکل 180 ثانیه ای Anydesk وجود دارد که در ادامه به آنها خواهیم پرداخت.
روش اول: استفاده از نسخه های قدیمی تر برنامه در حال حاضر اینطور به نظر می رسد که در صورت استفاده از نسخه های قدیمی تر برنامه، این محدودیت وجود ندارد. همچنین در نظر داشته باشید که در تنظیمات برنامه anydesk، گزینه آپدیت خودکار غیرفعال گردد تا برنامه به آخرین نسخه به روز نگردد.
روش دوم: مراحل انجام این کار به شرح ذیل می باشد:
وارد پوشه %appdata% و سپس Roaming شوید. و نام پوشه Anydesk را به Anydesk1 تغییر دهید.
برنامه را حذف نموده و در هنگام uninstall نمودن برنامه دقت نمایید که حتما گزینه remove configuration files تیک خورده باشد.
وارد پوشه %appdata% و سپس roaming شوید و نام فولدر Anydesk1 را مجدد به Anydesk تغییر دهید.
برای تنظیم تعداد لاگها در ESXi نسخه 5.5، میتوانید از مراحل زیر استفاده کنید:
۱. دسترسی به ESXi Shell
ابتدا باید به ESXi Shell دسترسی داشته باشید. این کار را میتوانید از طریق کنسول مستقیم یا از راه دور با استفاده از SSH انجام دهید.
۲. ویرایش فایل پیکربندی
فایل پیکربندی مربوط به لاگها در ESXi معمولاً در مسیر /etc/vmsyslog.conf قرار دارد. برای ویرایش این فایل، مراحل زیر را دنبال کنید:
2-1. باز کردن فایل پیکربندی:
2-2. تنظیمات مربوط به تعداد لاگها:
در این فایل، میتوانید پارامترهای مربوط به تعداد لاگها را پیدا کنید. معمولاً پارامترهایی مانند rotate و size وجود دارند که تعداد فایلهای لاگ و اندازه هر فایل را تعیین میکنند.
به عنوان مثال:
rotate 7 به این معنی است که ۷ فایل لاگ قدیمی نگهداری میشود.
size 100k به این معنی است که هر فایل لاگ حداکثر ۱۰۰ کیلوبایت حجم داشته باشد.
2-3. ذخیره و خروج:
پس از اعمال تغییرات، فایل را ذخیره کرده و از ویرایشگر خارج شوید. در vi میتوانید این کار را با فشار دادن Esc و سپس تایپ :wq انجام دهید.
۳. راهاندازی مجدد سرویس syslog
برای اعمال تغییرات، باید سرویس syslog را مجدداً راهاندازی کنید:
۴. بررسی تغییرات
پس از اعمال تغییرات، میتوانید لاگها را در مسیر /var/log/ بررسی کنید تا مطمئن شوید که تغییرات اعمال شدهاند.
نکته:
تغییرات در فایلهای پیکربندی ممکن است پس از بهروزرسانی ESXi بازنشانی شوند، بنابراین بهتر است پس از هر بهروزرسانی، این تنظیمات را بررسی کنید.
اگر از vCenter Server استفاده میکنید، ممکن است تنظیمات لاگها از طریق رابط کاربری vCenter نیز قابل مدیریت باشد.
با دنبال کردن این مراحل، میتوانید تعداد و حجم لاگها را در ESXi 5.5 تنظیم کنید.
در ESXi 5.5، محدودیتهای خاصی برای مقادیر rotate و size در فایل پیکربندی syslog وجود دارد. در اینجا توضیح میدهم که این محدودیتها چیست و چگونه میتوانید از آنها استفاده کنید:
۱. محدودیت rotate (تعداد فایلهای لاگ قدیمی):
مقدار پیشفرض: معمولاً ۷ فایل لاگ قدیمی نگهداری میشود.
حداکثر مقدار: به طور کلی، محدودیت سختافزاری خاصی برای این مقدار وجود ندارد، اما مقادیر بسیار بزرگ (مثلاً بیش از ۱۰۰) ممکن است باعث مصرف بیش از حد فضای دیسک شود.
توصیه: برای تعادل بین نگهداری لاگها و مصرف فضای دیسک، معمولاً مقادیر بین ۷ تا ۱۰ مناسب هستند.
۲. محدودیت size (اندازه هر فایل لاگ):
مقدار پیشفرض: معمولاً اندازه فایل لاگ به صورت پیشفرض ۱۰۰ کیلوبایت (100k) یا ۱ مگابایت (1M) است.
حداکثر مقدار: محدودیت سختافزاری خاصی برای این مقدار وجود ندارد، اما باید به فضای دیسک موجود توجه کنید. به عنوان مثال:
اگر فضای دیسک محدود است، بهتر است اندازه فایل لاگ را کوچک نگه دارید (مثلاً ۱۰۰k تا ۱M).اگر فضای دیسک کافی دارید، میتوانید اندازه فایل لاگ را تا چند گیگابایت (مثلاً ۱۰۰M یا ۱G) افزایش دهید.
واحدهای قابل استفاده:
k برای کیلوبایت (مثلاً 100k)
M برای مگابایت (مثلاً 10M)
G برای گیگابایت (مثلاً 1G)
۳. محدودیتهای کلی:
فضای دیسک: مهمترین محدودیت، فضای دیسک موجود در سیستم است. اگر تعداد فایلهای لاگ (rotate) یا اندازه هر فایل (size) را بیش از حد افزایش دهید، ممکن است فضای دیسک به سرعت پر شود و باعث مشکلاتی در عملکرد سیستم شود.
کارایی سیستم: اگر تعداد فایلهای لاگ یا اندازه آنها بیش از حد بزرگ باشد، ممکن است بر کارایی سیستم تأثیر منفی بگذارد، به ویژه اگر سیستم تحت بار کاری سنگین باشد.
۴. مثالهایی از تنظیمات:
مثال ۱: نگهداری ۱۰ فایل لاگ قدیمی، هر کدام با اندازه ۱۰ مگابایت:
مثال ۲: نگهداری ۵ فایل لاگ قدیمی، هر کدام با اندازه ۱۰۰ مگابایت:
۵. نکات مهم:
پس از اعمال تغییرات، حتماً سرویس syslog را مجدداً راهاندازی کنید:
/etc/init.d/syslog restart
تغییرات در فایلهای پیکربندی ممکن است پس از بهروزرسانی ESXi بازنشانی شوند، بنابراین پس از هر بهروزرسانی، تنظیمات را بررسی کنید.
اگر از vCenter Server استفاده میکنید، ممکن است بتوانید برخی از تنظیمات لاگها را از طریق رابط کاربری vCenter نیز مدیریت کنید.
ADO.NET
کنترل مستقیم: ADO.NET به شما امکان میدهد تا به صورت مستقیم با پایگاه داده کار کنید و دستورات SQL را اجرا کنید.
عملکرد بالا: به دلیل عدم وجود لایههای اضافی، عملکرد ADO.NET معمولاً سریعتر است.
پیچیدگی بیشتر: نیاز به نوشتن کدهای بیشتر برای مدیریت اتصالات، دستورات و نتایج دارد.
Entity Framework Core (EF Core)
ORM (Object-Relational Mapper): EF Core یک ORM است که به شما امکان میدهد با استفاده از مدلهای شیءگرا به پایگاه داده دسترسی پیدا کنید.
توسعه سریعتر: به دلیل استفاده از LINQ و مدلهای شیءگرا، توسعه با EF Core سریعتر و سادهتر است.
کاهش عملکرد: به دلیل وجود لایههای اضافی برای نگاشت شیء به پایگاه داده، عملکرد EF Core ممکن است کمی کندتر باشد12.
کدامیک بهتر است؟
ADO.NET: اگر به عملکرد بالا و کنترل دقیق نیاز دارید و مشکلی با پیچیدگی کد ندارید، ADO.NET گزینه بهتری است.
ADO.NET
مزایا:
کنترل کامل: شما میتوانید به صورت مستقیم دستورات SQL را اجرا کنید و کنترل کاملی بر روی عملیات پایگاه داده داشته باشید.
عملکرد بالا: به دلیل عدم وجود لایههای اضافی، ADO.NET معمولاً سریعتر است.
انعطافپذیری: میتوانید به راحتی به ویژگیهای خاص پایگاه داده دسترسی پیدا کنید و از آنها استفاده کنید.
معایب:
پیچیدگی بیشتر: نیاز به نوشتن کدهای بیشتری برای مدیریت اتصالات، دستورات و نتایج دارد.
نگهداری سختتر: به دلیل پیچیدگی کدها، نگهداری و بهروزرسانی آنها ممکن است دشوارتر باشد.
عدم پشتیبانی از مدلهای شیءگرا: شما باید به صورت دستی نگاشت بین اشیاء و جداول پایگاه داده را مدیریت کنید.
EF Core
مزایا:
توسعه سریعتر: با استفاده از LINQ و مدلهای شیءگرا، توسعه با EF Core سریعتر و سادهتر است.
نگهداری آسانتر: کدهای تمیزتر و قابل خواندنتر هستند که نگهداری و بهروزرسانی آنها را آسانتر میکند.
پشتیبانی از مدلهای شیءگرا: EF Core به صورت خودکار نگاشت بین اشیاء و جداول پایگاه داده را مدیریت میکند.
معایب:
کاهش عملکرد: به دلیل وجود لایههای اضافی برای نگاشت شیء به پایگاه داده، عملکرد EF Core ممکن است کمی کندتر باشد.
کنترل کمتر: شما کنترل کمتری بر روی دستورات SQL و عملیات پایگاه داده دارید.
پیچیدگی در موارد خاص: در برخی موارد پیچیده، ممکن است نیاز به تنظیمات و پیکربندیهای بیشتری داشته باشید.
نتیجهگیری
ADO.NET: مناسب برای پروژههایی که نیاز به عملکرد بالا و کنترل دقیق دارند.
EF Core: مناسب برای پروژههایی که نیاز به توسعه سریعتر و نگهداری آسانتر دارند.
DECLARE @today DATE = GETDATE();
SELECT FORMAT(@today, 'yyyy-MM-dd', 'fa-IR') AS PersianDate;
در خصوص AndAlso تنها اینو میدونم که مثلا اگر در یک شرط if اگر قرار باشه مقدار چند چیز با هم مقایسه بشه که آیا با هم برابرند یا نه، اگر شرط اول برقرار نباشه از بررسی مابقی شرط ها صرفنظر میکنه و از بلوک دستور if خارج میشه اما استفاده از AND باعث میشه که برنامه تمام شرط ها را بررسی کنه.
How to Remove Backup sets in Veritas Backup Exec
من برای تهیه بکاپ از نرم افزار Veritas Backup Exec استفاده می کنم اما بعد از مدتی هارد اکسترنالی که برای این کار گذاشته بودم کامل پر شد و هیچ Job ی اجرا نمیشد.
بخاطر همین مجبور شدم تا بصورت دستی بکاپ های قدیمی رو حذف کنم.
حالا میخوام این تجربه ی کوچک رو با شما به اشتراک بذارم....
باید مراحل زیر رو به ترتیب انجام بدین:
1) مطمئن باشید که برنامه Veritas Backup Exec بسته هست. حالا روی آیکن کلیک راست کنید و Run As Administrator رو کلیک کنید.
2) حالا تب Storage رو انتخاب کنید.
3) از لیست Storageها، Storageی قبلا درست کردین و اطلاعات داخل اون ذخیره میشه رو انتخاب و دابل کلیک کنید.
4) از پنجره ی باز شده و منوی سمت چپ گزینه ی Backup Sets رو انتخاب کنید تا لیست تمام بکاپ های گرفته شده رو ببینید.
5) هر نسخه ای رو مد نظرتون هست رو انتخاب کنید و روش کلیک راست کنید و گزینه ی Expire رو بزنید.
6) از پنجره ی باز شده OK رو انتخاب کنید.
7) کار تمومه...
فقط دقت کنید اگه حجم فایل بکاپ تون زیاد باشه کمی طول میکشه تا حذف بشه.
ابتدا CMD رو با کاربر Administrator باز می کنیم
حالا از دستور زیر استفاده می کنیم:
wmic baseboard get product,Manufacturer,version,serialnumber