وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

خطای Event ID 153 دیسک ویندوز سرور؛ علت و راه رفع کندی I/O

آموزش یافتن دیسک مرتبط، سنجش تأخیر I/O و بررسی ذخیره‌سازی ماشین مجازی یا سرور اختصاصی برای خطای 153.

انتشار:
توسط تیم فنی نت‌آرام
۷ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله خطای Event ID 153 دیسک ویندوز سرور؛ علت و راه رفع کندی I/O در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
سایت یا پایگاه داده روی Windows Server کند شده و در Event Viewer پیامی شبیه The IO operation ... for Disk 2 was retried با شماره Event ID 153 دیده‌اید. معنی آن این است که یک درخواست خواندن یا نوشتن در مسیر ذخیره‌سازی در زمان مورد انتظار کامل نشده و دوباره تلاش شده است. این پیام به‌تنهایی نمی‌گوید کدام قطعه خراب است یا اینکه داده حتماً از بین رفته است.
دیسک شلوغ، تأخیر ذخیره‌سازی مشترک، مسیر ارتباطی، کنترلر یا درایور از علت‌های احتمالی‌اند. در سرور مجازی ایران شماره دیسکی که ویندوز نشان می‌دهد یک دیسک مجازی است و ممکن است مشکل در میزبان یا فضای ذخیره‌سازی پشت آن باشد. در سرور اختصاصی ایران مسیر می‌تواند شامل کنترلر RAID، کابل یا دیسک فیزیکی باشد. پیش از هر تغییر، یک نسخه پشتیبان قابل بازیابی و راه ارتباط با مدیر زیرساخت را در نظر بگیرید؛ تست فشار سنگین روی دیسک مشکوک انجام ندهید.

۱. زمان و شماره دیسک را از خود رویداد بردارید

در Remote Desktop منوی Start را باز کنید، Event Viewer را جست‌وجو کنید و به Windows Logs ← System بروید. با Filter Current Log شماره 153 را انتخاب کنید. رویداد مربوط را باز کنید و زمان، نام Source، شماره Disk و متن کامل را یادداشت کنید. اگر فقط یک رویداد قدیمی دارید، ابتدا ببینید آیا با کندی فعلی هم‌زمان بوده است؛ تکرار زیاد در زمان مشکل اهمیت بیشتری دارد.
برای دیدن رویدادهای اخیر در PowerShell با دسترسی مناسب:
کد / دستورGet-WinEvent -FilterHashtable @{LogName='System'; Id=153} -MaxEvents 20 | Select-Object TimeCreated, ProviderName, Message
شماره رویداد ممکن است نزد منبع‌های دیگر نیز استفاده شود، پس ProviderName و متن مربوط به دیسک را تطبیق دهید. اگر رویدادی پیدا نشود، PowerShell ممکن است پیام نبود نتیجه نشان دهد. گزارش‌های اطراف همان زمان، به‌ویژه رویدادهای ۱۲۹ یا خطاهای کنترلر، سرنخ‌های تکمیلی‌اند:
کد / دستورGet-WinEvent -FilterHashtable @{LogName='System'; Id=129,153} -MaxEvents 40 | Select-Object TimeCreated, Id, ProviderName, Message
این فهرست را همراه زمان خطا بخوانید؛ صرف وجود یک شماره مشابه از منبع نامرتبط اثبات همان مشکل نیست. طبق راهنمای مایکروسافت، رویداد ۱۵۳ با timeout درخواست در مسیر ذخیره‌سازی ارتباط دارد و بار بیش از ظرفیت یکی از علت‌های مهم آن است.

۲. Disk 2 کدام درایو و کدام سرویس است؟

در PowerShell مدیر، فهرست دیسک‌ها را بخوانید:
کد / دستورGet-Disk | Format-Table Number,FriendlyName,SerialNumber,BusType,OperationalStatus,Size -AutoSize
شماره را با متن رویداد مقایسه کنید. اگر رویداد به Disk 2 اشاره دارد، پارتیشن‌های همان شماره را ببینید:
کد / دستورGet-Partition -DiskNumber 2 | Format-Table DiskNumber,PartitionNumber,DriveLetter,Size,Type -AutoSize Get-Volume | Format-Table DriveLetter,FileSystemLabel,FileSystem,SizeRemaining,Size -AutoSize
این مثال فقط زمانی درست است که شماره رویداد واقعاً ۲ باشد. حروف درایو و ظرفیت را با محل پایگاه داده، فایل‌های سایت یا بکاپ مقایسه کنید. بعضی پارتیشن‌ها حرف درایو ندارند یا از mount point استفاده می‌کنند؛ در آن صورت با Disk Management و تنظیم برنامه مسیر مربوط را مشخص کنید. شماره دیسک ممکن است در تغییرات سخت‌افزار عوض شود؛ مدل، شناسه و تنظیم ماشین را نیز ثبت کنید.
برای دیدن گزارش سلامت قابل ارائه به ویندوز:
کد / دستورGet-PhysicalDisk | Format-Table FriendlyName,SerialNumber,HealthStatus,OperationalStatus,Size -AutoSize
در ماشین مجازی یا پشت RAID ممکن است سریال واقعی یا سلامت تک‌تک دیسک‌های فیزیکی به مهمان نمایش داده نشود. وضعیت Healthy اینجا سلامت قطعی کل مسیر یا آرایه را ثابت نمی‌کند. از همین جهت، بدون تطبیق شناسه‌ها هیچ دیسکی را تعویض، initialize یا فرمت نکنید.

۳. تأخیر را هنگام رخداد اندازه بگیرید

اگر شمارنده‌های عملکرد در دسترس‌اند، در PowerShell این نمونه یک دقیقه‌ای را اجرا کنید:
کد / دستورGet-Counter '\PhysicalDisk(*)\Avg. Disk sec/Transfer' -SampleInterval 5 -MaxSamples 12
این گزارش میانگین زمان هر انتقال را بر حسب ثانیه نشان می‌دهد؛ مثلاً 0.050 حدود ۵۰ میلی‌ثانیه است. نمونه دیسک درست و زمان کندی را با وضعیت عادی همان برنامه مقایسه کنید. نام نمونه شمارنده را با Disk و حرف درایو تطبیق دهید؛ در محیط‌های پیچیده این تطبیق همیشه یک‌به‌یک نیست. نام شمارنده در بعضی نسخه‌های زبانی متفاوت است یا ممکن است شمارنده نصب و فعال نباشد. میانگین یک بازه کوتاه هم جهش‌های لحظه‌ای را پنهان می‌کند؛ از یک عدد ثابت برای همه سرورها حکم قطعی صادر نکنید.
برای دیدن برنامه‌های فعال روی دیسک، از منوی Start ابزار Resource Monitor را باز کنید و در زبانه Disk به نام پردازش، فایل و نرخ خواندن و نوشتن نگاه کنید. می‌توانید آن را با دستور زیر هم باز کنید:
کد / دستورresmon.exe
در Server Core یا نسخه فاقد رابط گرافیکی ممکن است این ابزار در دسترس نباشد. یک اسکن آنتی‌ویروس، بکاپ، بازسازی فهرست پایگاه داده یا انتقال فایل را فقط وقتی عامل احتمالی بدانید که زمان و مصرف آن با کندی هم‌زمان باشد. نام سرویس، فایل و بازه زمانی را ثبت کنید؛ متوقف‌کردن تصادفی پایگاه داده یا فرآیند سیستم راه تشخیص امنی نیست.

۴. اگر بار هم‌زمان علت است

مثلاً اگر هر شب بکاپ و گزارش‌گیری در یک ساعت اجرا می‌شوند و درست همان زمان تأخیر بالا می‌رود، یکی از کارها را در تنظیمات خود آن برنامه به بازه‌ای با بار کمتر منتقل کنید. پیش از تغییر، فاصله مجاز بکاپ و زمان بازیابی را با نیاز کسب‌وکار تطبیق دهید؛ حذف بکاپ راه‌حل کندی نیست. اگر ابزار بکاپ تنظیم محدودیت سرعت یا تعداد کارهای هم‌زمان دارد، آن را به‌تدریج کاهش دهید و زمان تکمیل بکاپ را هم بسنجید.
بعد از یک تغییر، همان شاخص تأخیر و تعداد رویدادها را در بار قابل مقایسه دوباره ثبت کنید. اگر تأخیر کمتر شد و کارها در مهلت لازم تمام شدند، احتمالاً هم‌زمانی بار نقش داشته است. اگر تغییری نکرد یا خطا در زمان بار کم هم ادامه دارد، مشکل را به بار نسبت ندهید و مسیر کنترلر و زیرساخت را بررسی کنید.

۵. در سرور مجازی چه اطلاعاتی به ارائه‌دهنده بدهیم؟

شماره دیسک ویندوز را با اندازه، شناسه قابل مشاهده، حرف درایو و تنظیم ماشین مجازی تطبیق دهید. شماره Disk 2 لزوماً شماره دیسک فیزیکی میزبان نیست. برای مدیر مجازی‌سازی بفرستید: زمان دقیق با منطقه زمانی، نام ماشین، دیسک و حجم مربوط، چند نمونه رویداد، مدت کندی و اندازه‌گیری تأخیر همان بازه. اطلاعات مشتری یا محتوای فایل‌ها را از گزارش حذف کنید.
مدیر زیرساخت باید تأخیر دیسک مجازی، datastore یا فضای مشترک، صف کنترلر و خطاهای مسیر را با همان بازه مقایسه کند. برای VMware، راهنمای Broadcom نیز این رویداد را در زمینه تأخیر I/O مهمان توضیح می‌دهد. اگر ظرفیت یا سقف IOPS سرویس عامل است، کاهش بار، جابه‌جایی حساب‌شده به فضای مناسب یا ارتقای ظرفیت از راه‌های ممکن‌اند؛ انتخاب به اندازه‌گیری و سیاست زیرساخت بستگی دارد، نه فقط نام خطا.

۶. در سرور اختصاصی مسیر فیزیکی را هدفمند بررسی کنید

در کنسول مدیریت سخت‌افزار و ابزار سازنده، وضعیت کنترلر، آرایه، دیسک‌ها و رخدادهای همان زمان را بخوانید. اگر RAID در وضعیت degraded یا دیسکی در حال بازسازی است، زمان و اثر آن بر کارایی را بررسی کنید و طبق روش سازنده و با شناسایی دقیق جایگاه عمل کنید. راهنمای خواندن سلامت دیسک پشت RAID توضیح می‌دهد چرا وضعیت دیسک منطقی همیشه سلامت همه دیسک‌های فیزیکی را نشان نمی‌دهد.
برای مشکل درایور یا firmware، مدل دقیق کنترلر و نسخه‌های پشتیبانی‌شده را با مستند سازنده و نسخه ویندوز مقایسه کنید. به‌روزرسانی کنترلر می‌تواند به ریبوت و زمان نگهداری نیاز داشته باشد؛ ابتدا بکاپ و امکان بازگشت را آماده کنید. هیچ تنظیم timeout رجیستری، تعویض دیسک یا غیرفعال‌سازی کنترلر را صرفاً از روی شماره رویداد انجام ندهید.

۷. رفع مشکل را چگونه تأیید کنیم؟

پس از اقدام هدفمند، عملکرد همان سرویس، تأخیر خواندن و نوشتن و رویدادهای جدید را در بازه‌ای با بار مشابه ثبت کنید. اگر خطای ۱۵۳ تکرار نمی‌شود اما برنامه هنوز کند است، گزارش خود برنامه، پایگاه داده و شبکه را جداگانه بررسی کنید. اگر رویداد تکرار می‌شود یا پیام خرابی فایل و قطع دسترسی دیده می‌شود، از تکرار آزمون‌های سنگین پرهیز کنید و با مدارک جمع‌آوری‌شده مسیر ذخیره‌سازی را با مدیر آن پیگیری کنید. سلامت واقعی با یک علامت سبز یا یک بار بازشدن سایت ثابت نمی‌شود.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام