## 💽 راهاندازی فضای ذخیرهسازی منعطف با LVM در لینوکس – سطح پیشرفته
**LVM (مدیریت منطقی حجم)** یک لایه انتزاعی روی دیسکهاست که به شما امکان میدهد حجمهای منطقی (Logical Volumes) را بهصورت دینامیک و منعطف مدیریت کنید. این ابزار مناسب گسترش آسان فضای ذخیرهسازی، snapshotگیری، و مدیریت دیسک در سرورهاست.
---
## 📦 مفاهیم کلیدی در LVM
* **Physical Volume (PV):** دیسک خام یا پارتیشن تبدیلشده به حجم فیزیکی
* **Volume Group (VG):** مجموعهای از PVها
* **Logical Volume (LV):** حجم قابل استفاده توسط کاربر/سیستمعامل
---
## 🛠️ مراحل راهاندازی LVM
### 1️⃣ آمادهسازی دیسکها
مثال: `/dev/sdb` و `/dev/sdc`
```bash
sudo fdisk /dev/sdb
# نوع پارتیشن را به LVM تغییر دهید (type = 8e)
```
یا اگر کل دیسک را میخواهید:
```bash
sudo pvcreate /dev/sdb /dev/sdc
```
---
### 2️⃣ ساخت Volume Group (VG)
```bash
sudo vgcreate my_vg /dev/sdb /dev/sdc
```
بررسی:
```bash
vgdisplay
```
---
### 3️⃣ ساخت Logical Volume (LV)
مثلاً یک LV به نام `data_lv` با اندازه 10 گیگ:
```bash
sudo lvcreate -L 10G -n data_lv my_vg
```
ساخت با تمام ظرفیت:
```bash
sudo lvcreate -l 100%FREE -n full_lv my_vg
```
---
### 4️⃣ ساخت فایلسیستم و مانت
```bash
sudo mkfs.ext4 /dev/my_vg/data_lv
sudo mkdir /mnt/data
sudo mount /dev/my_vg/data_lv /mnt/data
```
برای مانت دائمی:
```
/dev/my_vg/data_lv /mnt/data ext4 defaults 0 2
```
---
## 📈 افزایش حجم LV (بدون حذف دادهها)
اگر فضای خالی در VG باقیمانده باشد:
```bash
sudo lvextend -L +5G /dev/my_vg/data_lv
sudo resize2fs /dev/my_vg/data_lv
```
---
## 🔪 کاهش حجم LV (با احتیاط زیاد!)
### ابتدا فایلسیستم را کوچک کنید:
```bash
sudo umount /mnt/data
sudo e2fsck -f /dev/my_vg/data_lv
sudo resize2fs /dev/my_vg/data_lv 5G
```
### سپس کاهش LV:
```bash
sudo lvreduce -L 5G /dev/my_vg/data_lv
```
---
## 📷 ساخت Snapshot در LVM
```bash
sudo lvcreate -L 1G -s -n snap1 /dev/my_vg/data_lv
```
بازگردانی از snapshot:
```bash
sudo lvconvert --merge /dev/my_vg/snap1
```
---
## 📊 بررسی وضعیت LVM
```bash
sudo pvs
sudo vgs
sudo lvs
```
---
## ✅ جمعبندی
با استفاده از LVM میتوان فضای دیسک را **بدون قطعی سیستم گسترش داد، snapshot گرفت**، و **مدیریت منعطفتری روی پارتیشنها** داشت. LVM یک ابزار ضروری برای مدیران سیستم، مخصوصاً در سرورها و محیطهای مجازی است.