user@linux-tutorials: ~/tutorials/14-disk-and-storage — linux-tutorials

tutorials / linux / chapter-14.md · utf-8 ⬇ download chapter-14.md

فصل چهاردهم: مدیریت دیسک و ذخیره‌سازی در لینوکس

Linux Disk and Storage Management

ذخیره‌سازی یکی از مهم‌ترین بخش‌های هر سیستم‌عامل است.

هر سیستم لینوکسی برای ذخیره اطلاعات، اجرای برنامه‌ها، نگهداری فایل‌های کاربران و مدیریت داده‌ها به فضای ذخیره‌سازی نیاز دارد.

یک کاربر حرفه‌ای لینوکس باید بداند:

  • دیسک‌ها چگونه شناسایی می‌شوند.
  • Partition چیست.
  • File System چگونه کار می‌کند.
  • چگونه فضای ذخیره‌سازی را مدیریت کند.
  • چگونه مشکلات مربوط به دیسک را بررسی کند.

در این فصل با مفاهیم پایه تا پیشرفته مدیریت Storage در لینوکس آشنا می‌شویم.

Storage چیست؟

Storage یا فضای ذخیره‌سازی محلی برای نگهداری دائمی اطلاعات است.

برخلاف RAM که موقت است، اطلاعات موجود در Storage پس از خاموش شدن سیستم باقی می‌مانند.

نمونه‌های Storage:

  • HDD
  • SSD
  • NVMe
  • USB Drive
  • Network Storage

ساختار ذخیره‌سازی در لینوکس

در لینوکس معمولاً ساختار ذخیره‌سازی به شکل زیر است:

Disk

  |

  ▼

Partition

  |

  ▼

File System

  |

  ▼

Directory

Disk چیست؟

Disk یک وسیله فیزیکی ذخیره‌سازی است.

مثال:

/dev/sda

یک هارد یا SSD ممکن است چند Partition داشته باشد.

Device در لینوکس

لینوکس تمام سخت‌افزارهای ذخیره‌سازی را به شکل فایل نمایش می‌دهد.

مسیر اصلی:

/dev

مثال:

هارد اول:

/dev/sda

پارتیشن اول:

/dev/sda1

پارتیشن دوم:

/dev/sda2

مشاهده دیسک‌ها

برای مشاهده دیسک‌های متصل:

user@linux-tutorials: ~/ch-14BASH
lsblk

نمونه خروجی:

sda
├── sda1
└── sda2

دستور fdisk

برای مدیریت Partitionها استفاده می‌شود.

مشاهده دیسک‌ها:

user@linux-tutorials: ~/ch-14BASH
sudo fdisk -l

Partition چیست؟

Partition یک بخش منطقی از یک Disk است.

یک Disk می‌تواند به چند بخش تقسیم شود.

مثال:

یک SSD با ظرفیت 500GB:

/dev/sda1

برای سیستم‌عامل

/dev/sda2

برای فایل‌های شخصی

Partition Table چیست؟

Partition Table اطلاعات مربوط به ساختار دیسک را نگهداری می‌کند.

دو نوع اصلی:

  • MBR
  • GPT

MBR چیست؟

MBR مخفف:

Master Boot Record

است.

ویژگی‌ها:

  • قدیمی‌تر است.
  • محدودیت تعداد Partition دارد.
  • برای دیسک‌های کوچک‌تر مناسب است.

GPT چیست؟

GPT مخفف:

GUID Partition Table

است.

ویژگی‌ها:

  • جدیدتر است.
  • از دیسک‌های بزرگ پشتیبانی می‌کند.
  • تعداد Partition بیشتری دارد.
  • با سیستم‌های UEFI هماهنگ است.

File System چیست؟

File System روشی برای سازمان‌دهی و ذخیره فایل‌ها روی Storage است.

بدون File System سیستم‌عامل نمی‌تواند فایل‌ها را مدیریت کند.

File System های معروف لینوکس

مهم‌ترین File Systemها:

  • ext4
  • XFS
  • Btrfs

ext4

ext4 یکی از رایج‌ترین File Systemهای لینوکس است.

ویژگی‌ها:

  • پایدار
  • سریع
  • مناسب استفاده روزمره
  • پشتیبانی گسترده

بسیاری از توزیع‌های لینوکس از ext4 استفاده می‌کنند.

XFS

XFS یک File System قدرتمند برای سرورها است.

ویژگی‌ها:

  • عملکرد بالا
  • مناسب فایل‌های بزرگ
  • استفاده در محیط‌های Enterprise

Btrfs

Btrfs یک File System مدرن است.

قابلیت‌ها:

  • Snapshot
  • Compression
  • مدیریت پیشرفته Storage

Mount چیست؟

در لینوکس برای استفاده از یک Storage باید آن را به یک مسیر متصل کنیم.

این کار:

Mount

نام دارد.

مثال:

یک Partition:

/dev/sdb1

به مسیر:

/mnt/data

متصل می‌شود.

مشاهده Mount ها

دستور:

user@linux-tutorials: ~/ch-14BASH
mount

یا:

user@linux-tutorials: ~/ch-14BASH
findmnt

Mount کردن یک Partition

مثال:

ساخت مسیر:

user@linux-tutorials: ~/ch-14BASH
sudo mkdir /mnt/data

Mount:

user@linux-tutorials: ~/ch-14BASH
sudo mount /dev/sdb1 /mnt/data

Unmount چیست؟

جدا کردن Storage از سیستم:

user@linux-tutorials: ~/ch-14BASH
umount

مثال:

user@linux-tutorials: ~/ch-14BASH
sudo umount /mnt/data

فایل fstab

برای Mount خودکار هنگام روشن شدن سیستم از فایل:

/etc/fstab

استفاده می‌شود.

بررسی fstab

مشاهده:

user@linux-tutorials: ~/ch-14BASH
cat /etc/fstab

UUID چیست؟

هر Partition یک شناسه منحصر به فرد دارد:

UUID

مشاهده:

user@linux-tutorials: ~/ch-14BASH
blkid

مثال:

UUID="a123-b456"

استفاده از UUID در fstab

به جای استفاده از نام Device بهتر است از UUID استفاده شود.

مثال:

UUID=a123-b456 /mnt/data ext4 defaults 0 2

بررسی فضای دیسک

برای مشاهده فضای استفاده شده:

user@linux-tutorials: ~/ch-14BASH
df -h

خروجی خواناتر:

-h

یعنی:

Human Readable

بررسی حجم فایل‌ها

دستور:

user@linux-tutorials: ~/ch-14BASH
du

مثال:

user@linux-tutorials: ~/ch-14BASH
du -sh folder/

حجم یک پوشه را نمایش می‌دهد.

پیدا کردن فایل‌های بزرگ

با find:

user@linux-tutorials: ~/ch-14BASH
sudo find / -xdev -type f -size +1G 2>/dev/null

فایل‌های بزرگ‌تر از 1GB را پیدا می‌کند.

فرمت کردن Partition

برای ایجاد File System:

user@linux-tutorials: ~/ch-14BASH
mkfs

استفاده می‌شود.

مثال ext4:

user@linux-tutorials: ~/ch-14BASH
sudo mkfs.ext4 /dev/sdb1

توجه:

فرمت کردن باعث حذف اطلاعات می‌شود.

Swap چیست؟

Swap فضای ذخیره‌سازی است که لینوکس در مواقع کمبود RAM از آن استفاده می‌کند.

RAM:

  • سریع است.
  • محدود است.

Swap:

  • کندتر است.
  • فضای بیشتری فراهم می‌کند.

مشاهده Swap

دستور:

user@linux-tutorials: ~/ch-14BASH
swapon --show

یا:

user@linux-tutorials: ~/ch-14BASH
free -h

ساخت Swap File

ایجاد فایل:

user@linux-tutorials: ~/ch-14BASH
sudo fallocate -l 2G /swapfile

تنظیم مجوز:

user@linux-tutorials: ~/ch-14BASH
sudo chmod 600 /swapfile

ساخت Swap:

user@linux-tutorials: ~/ch-14BASH
sudo mkswap /swapfile

فعال کردن:

user@linux-tutorials: ~/ch-14BASH
sudo swapon /swapfile

LVM چیست؟

LVM مخفف:

Logical Volume Manager

است.

LVM یک سیستم مدیریت Storage انعطاف‌پذیر است.

با LVM می‌توان:

  • حجم Storage را تغییر داد.
  • فضای جدید اضافه کرد.
  • مدیریت دیسک را ساده‌تر کرد.

ساختار LVM

ساختار LVM:

Physical Volume

      |

      ▼

Volume Group

      |

      ▼

Logical Volume

Physical Volume

یک Disk یا Partition که برای LVM آماده شده است.

مثال:

/dev/sdb1

Volume Group

مجموعه‌ای از Physical Volumeها.

مانند یک مخزن بزرگ Storage.

Logical Volume

فضایی که سیستم از آن استفاده می‌کند.

مانند Partition معمولی.

ابزارهای LVM

مشاهده Physical Volume:

user@linux-tutorials: ~/ch-14BASH
pvs

مشاهده Volume Group:

user@linux-tutorials: ~/ch-14BASH
vgs

مشاهده Logical Volume:

user@linux-tutorials: ~/ch-14BASH
lvs

افزایش فضای Logical Volume

یکی از مزیت‌های LVM:

افزایش آسان فضا است.

ابتدا نوع File System، مسیر دقیق LV و فضای آزاد VG را بررسی کنید. برای نمونه، افزایش ext4 به‌اندازهٔ 10GiB همراه با رشد File System:

user@linux-tutorials: ~/ch-14BASH
sudo lvextend --resizefs -L +10G /dev/vg_name/lv_name

گزینهٔ --resizefs ابزار مناسب File System را فراخوانی می‌کند. XFS قابل کوچک‌کردن نیست و کوچک‌کردن LV یا File System بدون ترتیب و نسخهٔ پشتیبان می‌تواند داده را نابود کند.

بررسی سلامت دیسک

برای بررسی اطلاعات دیسک:

user@linux-tutorials: ~/ch-14BASH
smartctl

نصب:

user@linux-tutorials: ~/ch-14BASH
sudo apt install smartmontools

بررسی:

user@linux-tutorials: ~/ch-14BASH
sudo smartctl -a /dev/sda

Disk Monitoring

برای بررسی وضعیت Storage:

ابزارها:

  • df
  • du
  • iostat
  • smartctl

iostat

برای بررسی عملکرد دیسک:

user@linux-tutorials: ~/ch-14BASH
iostat

نصب:

user@linux-tutorials: ~/ch-14BASH
sudo apt install sysstat

مدیریت فضای آزاد

برای آزاد کردن فضا:

بررسی:

user@linux-tutorials: ~/ch-14BASH
df -h

پیدا کردن فایل‌های بزرگ:

user@linux-tutorials: ~/ch-14BASH
du -sh *

پاک کردن Cache:

user@linux-tutorials: ~/ch-14BASH
sudo apt clean

پروژه عملی فصل

ساخت یک فضای ذخیره‌سازی جدید

هدف:

اضافه کردن یک Partition و Mount کردن آن.

مراحل:

مشاهده دیسک‌ها:

user@linux-tutorials: ~/ch-14BASH
lsblk

ساخت Partition:

user@linux-tutorials: ~/ch-14BASH
sudo fdisk /dev/sdb

ساخت File System:

user@linux-tutorials: ~/ch-14BASH
sudo mkfs.ext4 /dev/sdb1

ساخت مسیر:

user@linux-tutorials: ~/ch-14BASH
sudo mkdir -p /mnt/storage

Mount:

user@linux-tutorials: ~/ch-14BASH
sudo mount /dev/sdb1 /mnt/storage

پس از گرفتن UUID با blkid، ورودی مناسب را در fstab ثبت کنید و پیش از reboot با sudo mount -a آن را آزمایش کنید. انتخاب اشتباه دیسک یا اجرای mkfs اطلاعات را از بین می‌برد؛ نام Device را با lsblk -f دوباره بررسی کنید.

تمرین‌های فصل چهاردهم

[01]مشاهده دیسک‌ها

user@linux-tutorials: ~/ch-14BASH
lsblk

[02]بررسی فضای دیسک

user@linux-tutorials: ~/ch-14BASH
df -h

[03]بررسی حجم پوشه‌ها

user@linux-tutorials: ~/ch-14BASH
du -sh

[04]مشاهده Partitionها

user@linux-tutorials: ~/ch-14BASH
fdisk -l

[05]ساخت Swap File آزمایشی.

جمع‌بندی فصل چهاردهم

در این فصل یاد گرفتیم:

  • Storage چیست.
  • Disk و Partition چه تفاوتی دارند.
  • File System چگونه کار می‌کند.
  • Mount و Unmount چیست.
  • چگونه فضای دیسک را بررسی کنیم.
  • Swap چگونه کار می‌کند.
  • LVM چیست.
  • چگونه Storage را مدیریت کنیم.
  • چگونه سلامت دیسک را بررسی کنیم.

مدیریت Storage یکی از مهارت‌های اصلی یک مدیر سیستم لینوکس است.

بدون شناخت صحیح دیسک و فایل سیستم، مدیریت سرورهای لینوکسی امکان‌پذیر نخواهد بود.