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

چرا بخشی از فضای ext4 برای کاربر عادی قابل استفاده نیست؟ بررسی بلوک‌های رزرو

آموزش بررسی Reserved block count در ext4، تفاوت فضای آزاد و قابل استفاده و تغییر قابل بازگشت سهم رزرو برای دیسک داده.

انتشار:
توسط تیم فنی نت‌آرام
۶ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله چرا بخشی از فضای ext4 برای کاربر عادی قابل استفاده نیست؟ بررسی بلوک‌های رزرو در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
فضای خالی یک فایل‌سیستم را نگاه می‌کنید و می‌بینید مقدار قابل استفاده برای کاربر عادی کمتر از چیزی است که از ظرفیت و مصرف انتظار داشتید. در ext4، بخشی از بلوک‌ها می‌توانند برای پردازش‌های دارای دسترسی ویژه رزرو شده باشند. این فضا کمک می‌کند هنگام نزدیک‌شدن فایل‌سیستم به حالت پر، مدیر و سرویس‌های ضروری شانس بیشتری برای کار و رسیدگی داشته باشند.
البته هر اختلاف عددی به بلوک رزرو مربوط نیست. واحد نمایش، سربار فایل‌سیستم، فایل حذف‌شده ولی باز و سهمیه هم می‌توانند اعداد را متفاوت کنند. این راهنما ابتدا نوع فایل‌سیستم و مقدار واقعی رزرو را نشان می‌دهد و سپس یک نمونه تغییر محدود و قابل بازگشت را فقط برای دیسک داده توضیح می‌دهد. روی فایل‌سیستم سیستم‌عامل یا سرور حساس، بدون ارزیابی و نسخه پشتیبان، مقدار رزرو را کم نکنید.

۱. مطمئن شوید فایل‌سیستم موردنظر ext4 است

در ترمینال سرور لینوکسی، مسیر داده واقعی را به‌جای نمونه /srv/data قرار دهید:
کد / دستورfindmnt -T /srv/data -o TARGET,SOURCE,FSTYPE,OPTIONS df -hT /srv/data df -i /srv/data
فرمان اول محل نصب، دستگاه منبع و نوع فایل‌سیستم را نشان می‌دهد. دومی ظرفیت قابل مشاهده و سومی وضعیت inode را نمایش می‌دهد. اگر نوع فایل‌سیستم xfs، btrfs یا چیز دیگری است، از دستور tune2fs این آموزش برای آن استفاده نکنید. اگر inode پر باشد، تغییر سهم بلوک رزرو مشکل تعداد فایل‌ها را برطرف نمی‌کند.
نام دستگاه ممکن است یک پارتیشن، دستگاه LVM مانند /dev/mapper/... یا ساختار دیگری باشد. آن را دقیقاً از خروجی سرور خودتان مشخص کنید و با مسیر داده تطبیق دهید. نمونه‌ای که در ادامه می‌آید دستگاه واقعی شما نیست. برای پوشه‌هایی که روی یک فایل‌سیستم مشترک‌اند، تغییر رزرو روی کل همان فایل‌سیستم اثر می‌گذارد، نه فقط یک پوشه.

۲. اندازه رزرو ثبت‌شده را بخوانید

اگر نوع فایل‌سیستم تأییدشده ext4 است، نام دستگاه واقعی را در نمونه زیر جایگزین کنید:
کد / دستورsudo tune2fs -l /dev/vdb1 | grep -E 'Block count:|Reserved block count:|Block size:'
/dev/vdb1 فقط نمونه یک دیسک داده است. خروجی Block count تعداد بلوک‌های کل، Reserved block count تعداد بلوک‌های رزرو و Block size اندازه هر بلوک بر حسب بایت را نشان می‌دهد. برای تخمین اندازه رزرو ثبت‌شده، تعداد بلوک رزرو را در اندازه هر بلوک ضرب کنید. این مقدار الزاماً به معنی همین تعداد بایت آزاد و قابل بازیابی فوری در همان لحظه نیست؛ وضعیت استفاده و سیاست فایل‌سیستم هم اثر دارد.
برای مثال فرضی، اگر ۲۵۰ هزار بلوک رزرو و اندازه بلوک ۴۰۹۶ بایت باشد، حاصل حدود ۱٬۰۲۴٬۰۰۰٬۰۰۰ بایت است. با تقسیم بر ۱۰۲۴ سه بار، عدد را به گیبی‌بایت نزدیک می‌کنید. ابزارها گاهی GB ده‌دهی و گاهی GiB دودویی نمایش می‌دهند؛ قبل از نتیجه‌گیری واحدها را یکسان کنید.

۳. قبل از دست‌زدن به رزرو، علت‌های دیگر را بررسی کنید

اگر با وجود حذف یک فایل بزرگ، فضای df آزاد نشده، ممکن است پردازشی هنوز فایل حذف‌شده را باز نگه داشته باشد. راهنمای فایل حذف‌شده ولی باز روش تشخیص این وضعیت را توضیح می‌دهد. اگر خطای سهمیه دریافت می‌کنید، فضای آزاد کل سرور به‌تنهایی سهمیه حساب را نشان نمی‌دهد. اگر بکاپ به مسیر اشتباه نوشته شده یا inode پر است، کاهش رزرو راه‌حل اصلی نیست.
برای دیدن مقدار بر حسب بایت، می‌توانید این فرمان را نیز اجرا کنید:
کد / دستورdf -B1 /srv/data
مقدار Available همان چیزی است که ابزار برای کاربر عادی قابل استفاده گزارش می‌کند و به سیاست‌ها و وضعیت فایل‌سیستم وابسته است. اعداد df و مجموع اندازه فایل‌های du الزاماً دقیقاً برابر نیستند. بدون شناخت علت، حذف فایل یا تنظیم عدد رزرو فقط برای یکی‌شدن اعداد کار درستی نیست.

۴. آیا کاهش رزرو مناسب است؟

روی پارتیشن ریشه و فایل‌سیستم‌های حیاتی، رزرو به مدیریت شرایط نزدیک به پرشدن کمک می‌کند. کم‌کردن آن بدون ظرفیت هشدار، فضای عملیاتی و برنامه بازیابی می‌تواند کار مدیر و سرویس‌ها را در زمان بحران دشوار کند. برای یک فایل‌سیستم داده بزرگ و مستقل، مدیر ممکن است پس از بررسی کاربرد، رشد داده، نیازهای پشتیبان و سیاست سازمان سهم متفاوتی انتخاب کند؛ درصد مناسب برای همه سرورها یکسان نیست.
پیش از تغییر، از داده و تنظیمات لازم نسخه پشتیبان قابل بازیابی داشته باشید. نام دستگاه و محل نصب را دوباره با findmnt تطبیق دهید و خروجی کامل tune2fs -l و به‌خصوص مقدار قبلی Reserved block count را در محل امن نگه دارید. اگر دستگاه یا نوع فایل‌سیستم نامطمئن است، ادامه ندهید. برنامه هشدار فضا را هم طوری تنظیم کنید که پیش از پرشدن واقعی، زمان واکنش داشته باشید.

۵. نمونه تغییر محدود روی دیسک داده آزمایشی

فقط برای درک دستور، فرض کنید یک فایل‌سیستم داده آزمایشی و مستقل با دستگاه تأییدشده /dev/vdb1 دارید و مدیر پس از ارزیابی، یک درصد رزرو را برای آن مناسب دانسته است. روی همان دستگاه آزمایشی:
کد / دستورsudo tune2fs -m 1 /dev/vdb1 sudo tune2fs -l /dev/vdb1 | grep -E 'Block count:|Reserved block count:|Block size:' df -hT /srv/data
فرمان اول تنظیم رزرو را تغییر می‌دهد؛ عدد 1 صرفاً مثال است و نسخه‌ای برای همه دیسک‌ها نیست. دو فرمان بعد مقدار ثبت‌شده و فضای گزارش‌شده را دوباره نشان می‌دهند. دستگاه و مسیر باید از خروجی واقعی مرحله اول به دست آمده باشند. این کار را برای حل موقت یک دیسک ریشه پر، به شکل خودکار یا روی دستگاه حدسی انجام ندهید.
برای بازگشت دقیق، مدیر باید مقدار تعداد بلوک رزرو قبلی را که ثبت کرده با گزینه مناسب ابزار برگرداند؛ در نسخه‌های متداول tune2fs گزینه -r تعداد بلوک رزرو را تعیین می‌کند. پیش از اجرا مستند همان نسخه و دستگاه را دوباره بخوانید، زیرا گردکردن درصد قبلی ممکن است دقیقاً تعداد بلوک پیشین را بازنسازد. بعد از بازگشت، مقدار و سلامت سرویس را دوباره کنترل کنید.
برای نمونه، فقط اگر مقدار ثبت‌شده قبلی دقیقاً 250000 بلوک و دستگاه تأییدشده همان /dev/vdb1 آزمایشی بوده باشد، فرمان بازگشت این شکل را دارد:
کد / دستورsudo tune2fs -r 250000 /dev/vdb1 sudo tune2fs -l /dev/vdb1 | grep 'Reserved block count:'
عدد و دستگاه این مثال را برای سرور دیگری کپی نکنید؛ باید مقدار و نام واقعی ثبت‌شده پیش از تغییر جایگزین شوند. خروجی فرمان دوم را با رکورد قبلی مقایسه کنید.

۶. نتیجه را در کاربرد واقعی بررسی کنید

پس از هر تغییر تأییدشده، tune2fs -l و df را دوباره برای همان فایل‌سیستم بخوانید و عملکرد برنامه‌ای را که با حساب عادی می‌نویسد با یک فایل آزمایشی بی‌خطر بسنجید. اگر مشکل همچنان پابرجاست، سهمیه، inode، محدودیت سرویس و پیام دقیق خطا را جداگانه بررسی کنید. افزایش فضای قابل استفاده جایگزین حل رشد غیرعادی لاگ، بکاپ یا فایل‌های موقت نیست.
برای همراهی در بررسی ظرفیت و نگهداری، صفحه مدیریت سرور نت‌آرام را ببینید. تعریف گزینه‌های -m و -r و مفهوم بلوک رزرو در مستند tune2fs آمده است.
اشتراک‌گذاری:
لینکدینتلگرامایکس
مقاله قبلی
مقاله قبلی وجود ندارد.

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

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