## 🔄 مهاجرت پارتیشنهای LVM به یک Logical Volume جدید در لینوکس
گاهی لازم است دادههای یک Logical Volume را به یک LV جدید منتقل کنیم؛ مثلاً هنگام **تغییر ساختار ذخیرهسازی، ارتقای دیسک، یا ترکیب دادهها**. ابزارهای LVM و دستور `pvmove` یا ابزار `dd` میتوانند این کار را بدون خاموشی سیستم انجام دهند.
---
## 🧠 سناریو مهاجرت
فرض کنیم:
* LV قدیمی: `/dev/vg_old/lv_old`
* LV جدید: `/dev/vg_new/lv_new`
* هدف: کپی کامل دادهها از `lv_old` به `lv_new` و سپس استفاده از جدید بهجای قدیمی.
---
## ✅ مرحله اول: ساخت LV جدید
ابتدا باید VG جدید یا فضای خالی در VG فعلی داشته باشید:
```bash
lvcreate -L 20G -n lv_new vg_new
```
---
## ✅ مرحله دوم: کپی دادهها
### 🔹 روش 1: با `dd` (سطح بلوکی – دقیق و سریع)
```bash
dd if=/dev/vg_old/lv_old of=/dev/vg_new/lv_new bs=64K status=progress
```
> این روش **کل محتویات** LV را دقیقاً کپی میکند.
---
### 🔹 روش 2: با `rsync` (سطح فایل – مناسب فایلسیستمهای فعال)
```bash
mount /dev/vg_old/lv_old /mnt/old
mount /dev/vg_new/lv_new /mnt/new
rsync -avh /mnt/old/ /mnt/new/
```
> این روش برای زمانی مناسب است که فایلسیستمها mount شدهاند و بخواهید انتقال امن و فایلمحور داشته باشید.
---
## ✅ مرحله سوم: جایگزینی LV
پس از اطمینان از صحت کپی، میتوانید:
1. **مانت قبلی را حذف و جدید را جایگزین کنید**:
```bash
umount /mnt/old
mount /dev/vg_new/lv_new /mnt/data
```
2. یا اگر فایل `fstab` استفاده میشود، UUID جدید را قرار دهید:
```bash
blkid /dev/vg_new/lv_new
```
سپس ویرایش در `/etc/fstab`.
---
## ✅ مرحله چهارم: پاکسازی و آزادسازی
در صورت موفقیت کامل و اطمینان از صحت دادهها:
```bash
lvremove /dev/vg_old/lv_old
```
---
## ⚠️ نکات مهم
* پیش از انتقال، از دادهها **نسخه پشتیبان** تهیه کنید.
* حتماً بررسی کنید که LV مقصد **بزرگتر یا مساوی** با LV مبدأ باشد.
* اگر قصد دارید بدون downtime این کار را انجام دهید، `rsync` + `rsync` مجدد برای sync نهایی گزینهی خوبی است.
---
## ✅ جمعبندی
مهاجرت دادهها بین LVها در LVM، با ابزارهایی مانند `dd`، `rsync` و `pvmove`، کاملاً امن، سریع و انعطافپذیر است. این مهارت برای مدیریت حرفهای سیستمهای لینوکسی بسیار حیاتی است.