## 💡 راهاندازی حجمهای Thin Provisioning در LVM – سطح پیشرفته
**Thin Provisioning** در LVM یک تکنیک هوشمند برای تخصیص فضای دیسک است که برخلاف حجمهای سنتی، فضای واقعی را فقط زمانی تخصیص میدهد که واقعاً دادهای نوشته شود. این باعث **صرفهجویی در فضای دیسک** و امکان ایجاد حجمهایی بزرگتر از فضای فیزیکی واقعی میشود.
---
## 🧠 Thin Volume چیست؟
در حالت عادی (Thick Volume)، فضای اختصاص دادهشده به یک LV بهطور کامل رزرو میشود. اما در **Thin Volume** فقط در لحظهی نوشتن داده، فضای واقعی مصرف میشود.
---
## ⚙️ مراحل راهاندازی Thin Provisioning در LVM
### ✅ سناریو:
* دیسک فیزیکی: `/dev/sdb`
* Volume Group: `vg_thin`
* حجم Thin Pool: `thin_pool`
* حجم Thin Logical Volume: `thin_lv`
---
### 1️⃣ آمادهسازی دیسک:
```bash
sudo pvcreate /dev/sdb
sudo vgcreate vg_thin /dev/sdb
```
---
### 2️⃣ ساخت Thin Pool:
```bash
sudo lvcreate --type thin-pool -L 10G -n thin_pool vg_thin
```
📌 در اینجا 10 گیگ به عنوان مخزن اختصاص داده میشود که بهصورت اشتراکی میان LVهای مختلف مصرف میشود.
---
### 3️⃣ ساخت یک Thin Volume داخل Thin Pool:
```bash
sudo lvcreate -V 100G --thin -n thin_lv vg_thin/thin_pool
```
📌 این یعنی یک LV به اندازهی 100 گیگ ایجاد میشود ولی فقط زمانی که داده در آن نوشته شود، از مخزن 10 گیگی استفاده میشود!
---
### 4️⃣ فرمت کردن و مانت کردن:
```bash
sudo mkfs.ext4 /dev/vg_thin/thin_lv
sudo mkdir /mnt/thin
sudo mount /dev/vg_thin/thin_lv /mnt/thin
```
---
## 🧪 مانیتورینگ مصرف Thin Volume
برای دیدن میزان مصرف واقعی:
```bash
sudo lvs -a -o +devices
```
یا:
```bash
sudo thin_check /dev/vg_thin/thin_pool_tmeta
```
---
## ⚠️ هشدار مهم
* اگر فضای Thin Pool پر شود و مصرفکنندهها (LVها) هنوز نیاز به نوشتن داشته باشند، خطا رخ میدهد و ممکن است سیستم فایل خراب شود.
* توصیه میشود با ابزارهایی مثل `lvm monitor` یا `lvextend`، وضعیت Thin Pool را تحت نظر داشته باشید.
---
## 🛠️ گسترش فضای Thin Pool
```bash
sudo lvextend -L +5G /dev/vg_thin/thin_pool
```
---
## ✅ جمعبندی
Thin Provisioning ابزاری قدرتمند برای **بهینهسازی فضای ذخیرهسازی** است. با استفاده درست از آن میتوان منابع را بهتر مدیریت کرد، مخصوصاً در محیطهای مجازی و سرورهایی که رشد غیرقابل پیشبینی دارند.