درس ۱۰ از ۱۲

Disk، Mount و فضای ذخیره‌سازی

در این بخش می‌خواهیم Disk، Mount و فضای ذخیره‌سازی را به زبان ساده یاد بگیریم؛ به‌جای حفظ کردن چند اصطلاح، می‌بینیم هر بخش چه اثری در Server Linux دارد، از کجا قابل مشاهده است و وقتی نتیجه غیرعادی بود چه چیزی را باید بررسی کرد در این درس Linux را از دید یک پشتیبان شبکه بررسی می‌کنیم؛ لازم نیست همه جزئیات سیستم‌عامل را حفظ کنی، اما باید ساختار فایل‌ها، User و Permission، Serviceها، Network و Log را بشناسی؛ هدف این است که قبل از تغییر بدانی کدام Service و فایل درگیر است، از Log شواهد بگیری و تغییر را با حداقل دسترسی و امکان بازگشت انجام بدهی

این درس برای مطالعه کامل نوشته شده است

با حوصله بخوان، مثال‌ها را تحلیل کن و تمرین‌ها را انجام بده؛ هدف حفظ کردن تعریف‌ها نیست

lsblk فهرست Block Deviceها را نشان می‌دهد

lsblk دیسک و Partition و ارتباط Block Deviceها را نمایش می‌دهد و برای فهمیدن اینکه چه Deviceهایی موجودند مفید است؛ Mount شدن را جدا بررسی کن برای اینکه این مفهوم در محیط واقعی قابل استفاده شود، Permission و مالکیت در Linux باید با نیاز واقعی Service هماهنگ باشد؛ اجرای همه چیز با root مشکل را پنهان می‌کند و سطح ریسک را بالا می‌برد؛ User و Group مناسب، حداقل Permission لازم و sudo کنترل‌شده روش قابل نگهداری‌تری است؛ بعد از تغییر، هم دسترسی مورد نیاز و هم عدم دسترسی ناخواسته بررسی شود در یک شبکه یا سیستم واقعی، این موضوع زمانی روشن می‌شود که در Linux بهتر است هر تغییر را با شناخت Service و فایل پیکربندی مربوط انجام دهی؛ وضعیت Process، Socket، Permission و Log معمولاً سرنخ‌های اصلی هستند؛ systemd و journal ابزارهای مرکزی در بسیاری از توزیع‌های مدرن‌اند و NetworkManager نیز در RHEL برای مدیریت شبکه استفاده می‌شود؛ قبل از ویرایش، نسخه فایل و راه بازگشت نگه داشته شود برای کامل شدن تصویر این موضوع، در این درس Linux را از دید یک پشتیبان شبکه بررسی می‌کنیم؛ لازم نیست همه جزئیات سیستم‌عامل را حفظ کنی، اما باید ساختار فایل‌ها، User و Permission، Serviceها، Network و Log را بشناسی؛ هدف این است که قبل از تغییر بدانی کدام Service و فایل درگیر است، از Log شواهد بگیری و تغییر را با حداقل دسترسی و امکان بازگشت انجام بدهی

df فضای File System را نشان می‌دهد

df فضای مصرف‌شده و آزاد فایل‌سیستم‌های متصل (Mount‌شده) را نشان می‌دهد؛ ظرفیت دیسک خام با فضای Filesystem یکی نیست برای عیب‌یابی درست، این بخش را فقط به‌عنوان یک اصطلاح حفظ نکن و توجه داشته باش که در Linux بهتر است هر تغییر را با شناخت Service و فایل پیکربندی مربوط انجام دهی؛ وضعیت Process، Socket، Permission و Log معمولاً سرنخ‌های اصلی هستند؛ systemd و journal ابزارهای مرکزی در بسیاری از توزیع‌های مدرن‌اند و NetworkManager نیز در RHEL برای مدیریت شبکه استفاده می‌شود؛ قبل از ویرایش، نسخه فایل و راه بازگشت نگه داشته شود برای عیب‌یابی درست، این بخش را فقط به‌عنوان یک اصطلاح حفظ نکن و توجه داشته باش که Permission و مالکیت در Linux باید با نیاز واقعی Service هماهنگ باشد؛ اجرای همه چیز با root مشکل را پنهان می‌کند و سطح ریسک را بالا می‌برد؛ User و Group مناسب، حداقل Permission لازم و sudo کنترل‌شده روش قابل نگهداری‌تری است؛ بعد از تغییر، هم دسترسی مورد نیاز و هم عدم دسترسی ناخواسته بررسی شود برای کامل شدن تصویر این موضوع، در این درس Linux را از دید یک پشتیبان شبکه بررسی می‌کنیم؛ لازم نیست همه جزئیات سیستم‌عامل را حفظ کنی، اما باید ساختار فایل‌ها، User و Permission، Serviceها، Network و Log را بشناسی؛ هدف این است که قبل از تغییر بدانی کدام Service و فایل درگیر است، از Log شواهد بگیری و تغییر را با حداقل دسترسی و امکان بازگشت انجام بدهی

du مصرف Folder را نشان می‌دهد

du مصرف واقعی فایل‌ها و Folderها را جمع می‌کند و برای پیدا کردن عامل Disk Full مفید است؛ اجرای آن روی مسیر بسیار بزرگ ممکن است زمان و I/O مصرف کند اگر بخواهی این بخش را از حالت تعریف به مهارت عملی تبدیل کنی، Permission و مالکیت در Linux باید با نیاز واقعی Service هماهنگ باشد؛ اجرای همه چیز با root مشکل را پنهان می‌کند و سطح ریسک را بالا می‌برد؛ User و Group مناسب، حداقل Permission لازم و sudo کنترل‌شده روش قابل نگهداری‌تری است؛ بعد از تغییر، هم دسترسی مورد نیاز و هم عدم دسترسی ناخواسته بررسی شود نکته‌ای که هنگام پشتیبانی نباید از آن عبور کنی این است که در Linux بهتر است هر تغییر را با شناخت Service و فایل پیکربندی مربوط انجام دهی؛ وضعیت Process، Socket، Permission و Log معمولاً سرنخ‌های اصلی هستند؛ systemd و journal ابزارهای مرکزی در بسیاری از توزیع‌های مدرن‌اند و NetworkManager نیز در RHEL برای مدیریت شبکه استفاده می‌شود؛ قبل از ویرایش، نسخه فایل و راه بازگشت نگه داشته شود برای کامل شدن تصویر این موضوع، در این درس Linux را از دید یک پشتیبان شبکه بررسی می‌کنیم؛ لازم نیست همه جزئیات سیستم‌عامل را حفظ کنی، اما باید ساختار فایل‌ها، User و Permission، Serviceها، Network و Log را بشناسی؛ هدف این است که قبل از تغییر بدانی کدام Service و فایل درگیر است، از Log شواهد بگیری و تغییر را با حداقل دسترسی و امکان بازگشت انجام بدهی

mount Filesystem را متصل می‌کند

mount یک Filesystem را به نقطه‌ای در درخت مسیر Linux متصل می‌کند؛ وجود Device بدون Mount به معنی قابل دسترس بودن فایل‌ها نیست برای اینکه این مفهوم در محیط واقعی قابل استفاده شود، در Linux بهتر است هر تغییر را با شناخت Service و فایل پیکربندی مربوط انجام دهی؛ وضعیت Process، Socket، Permission و Log معمولاً سرنخ‌های اصلی هستند؛ systemd و journal ابزارهای مرکزی در بسیاری از توزیع‌های مدرن‌اند و NetworkManager نیز در RHEL برای مدیریت شبکه استفاده می‌شود؛ قبل از ویرایش، نسخه فایل و راه بازگشت نگه داشته شود در کار روزمره بهتر است این موضوع را این‌طور بررسی کنی: Permission و مالکیت در Linux باید با نیاز واقعی Service هماهنگ باشد؛ اجرای همه چیز با root مشکل را پنهان می‌کند و سطح ریسک را بالا می‌برد؛ User و Group مناسب، حداقل Permission لازم و sudo کنترل‌شده روش قابل نگهداری‌تری است؛ بعد از تغییر، هم دسترسی مورد نیاز و هم عدم دسترسی ناخواسته بررسی شود برای کامل شدن تصویر این موضوع، در این درس Linux را از دید یک پشتیبان شبکه بررسی می‌کنیم؛ لازم نیست همه جزئیات سیستم‌عامل را حفظ کنی، اما باید ساختار فایل‌ها، User و Permission، Serviceها، Network و Log را بشناسی؛ هدف این است که قبل از تغییر بدانی کدام Service و فایل درگیر است، از Log شواهد بگیری و تغییر را با حداقل دسترسی و امکان بازگشت انجام بدهی

پر شدن / یا /var سرویس را مختل می‌کند

پر شدن Root Filesystem یا /var می‌تواند جلوی نوشتن Log، فایل موقت یا داده سرویس را بگیرد؛ فقط فایل تصادفی حذف نکن؛ با df و du مسیر رشد را پیدا کن برای عیب‌یابی درست، این بخش را فقط به‌عنوان یک اصطلاح حفظ نکن و توجه داشته باش که Permission و مالکیت در Linux باید با نیاز واقعی Service هماهنگ باشد؛ اجرای همه چیز با root مشکل را پنهان می‌کند و سطح ریسک را بالا می‌برد؛ User و Group مناسب، حداقل Permission لازم و sudo کنترل‌شده روش قابل نگهداری‌تری است؛ بعد از تغییر، هم دسترسی مورد نیاز و هم عدم دسترسی ناخواسته بررسی شود در یک شبکه یا سیستم واقعی، این موضوع زمانی روشن می‌شود که در Linux بهتر است هر تغییر را با شناخت Service و فایل پیکربندی مربوط انجام دهی؛ وضعیت Process، Socket، Permission و Log معمولاً سرنخ‌های اصلی هستند؛ systemd و journal ابزارهای مرکزی در بسیاری از توزیع‌های مدرن‌اند و NetworkManager نیز در RHEL برای مدیریت شبکه استفاده می‌شود؛ قبل از ویرایش، نسخه فایل و راه بازگشت نگه داشته شود

مثال محیط واقعی

فرض کن در Server Linux مشکلی گزارش شده و احتمال می‌دهی به Disk، Mount و فضای ذخیره‌سازی مربوط باشد. قبل از تغییر، وضعیت فعلی را با systemctl، journalctl، ip، ss، df، free و ps بررسی می‌کنی و نتیجه را با یک حالت سالم یا مستند معتبر مقایسه می‌کنی. اگر شواهد فرضیه را تأیید کردند، فقط همان بخش مرتبط را تغییر می‌دهی و بعد همان تست را دوباره اجرا می‌کنی تا مطمئن شوی مشکل واقعاً برطرف شده است

اشتباهات رایج

این اشتباه‌ها را تکرار نکن

  • تغییر دادن تنظیمات مرتبط با Disk، Mount و فضای ذخیره‌سازی قبل از اینکه مطمئن شوی مشکل واقعاً به همین بخش مربوط است
  • نتیجه‌گیری درباره Disk، Mount و فضای ذخیره‌سازی فقط از روی یک نشانه و بدون انجام تست نهایی
تمرین عملی

حالا خودت انجام بده

  1. در یک نمونه آزمایشی مرتبط با Disk، Mount و فضای ذخیره‌سازی، فقط وضعیت فعلی را مشاهده کن و سه نکته‌ای را که برای تشخیص حالت سالم مهم‌اند یادداشت کن
  2. با systemctl، journalctl، ip، ss، df، free و ps وضعیت مرتبط با Disk، Mount و فضای ذخیره‌سازی را بدون تغییر بررسی کن، سه داده واقعی جمع کن و توضیح بده هرکدام چه چیزی به تو می‌گویند
  3. یک خطای فرضی مرتبط با Disk، Mount و فضای ذخیره‌سازی بنویس و مشخص کن اولین تست کم‌خطر تو چیست و چه نتیجه‌ای فرضیه‌ات را رد می‌کند

نکته‌هایی که باید با خودت ببری

  • lsblk فهرست Block Deviceها را نشان می‌دهد
  • df فضای File System را نشان می‌دهد
  • du مصرف Folder را نشان می‌دهد
  • mount Filesystem را متصل می‌کند
  • پر شدن / یا /var سرویس را مختل می‌کند
  • با root دائمی کار نکن و قبل از ویرایش فایل تنظیمات نسخه برگشت داشته باش
خودسنجی

قبل از رفتن به درس بعد، جواب را برای خودت توضیح بده

این نکته را با یک مثال توضیح بده: lsblk فهرست Block Deviceها را نشان می‌دهد. بعد بگو در عمل چطور آن را بررسی می‌کنی.

lsblk دیسک و Partition و ارتباط Block Deviceها را نمایش می‌دهد و برای فهمیدن اینکه چه Deviceهایی موجودند مفید است؛ Mount شدن را جدا بررسی کن

این نکته را با یک مثال توضیح بده: df فضای File System را نشان می‌دهد. بعد بگو در عمل چطور آن را بررسی می‌کنی.

df فضای مصرف‌شده و آزاد فایل‌سیستم‌های متصل (Mount‌شده) را نشان می‌دهد؛ ظرفیت دیسک خام با فضای Filesystem یکی نیست

این نکته را با یک مثال توضیح بده: du مصرف Folder را نشان می‌دهد. بعد بگو در عمل چطور آن را بررسی می‌کنی.

du مصرف واقعی فایل‌ها و Folderها را جمع می‌کند و برای پیدا کردن عامل Disk Full مفید است؛ اجرای آن روی مسیر بسیار بزرگ ممکن است زمان و I/O مصرف کند

مطالعه درس همیشه عمومی است

برای ذخیره پیشرفت، دوره را رسمی شروع کن

با ثبت‌نام، تکمیل درس‌ها و نمره آزمون روی حساب ذخیره می‌شود

ثبت‌نام و شروع رسمی