Вопрос или проблема
У меня есть три логических тома в одной группе томов, использующих один физический том (весь существующий диск /dev/sda).
Теперь я хочу переместить один из этих логических томов на новый, более быстрый диск, т.е. перейти от:
/dev/sda
|-vg0-root → смонтирован на /
|-vg0-foo → смонтирован на /foo
|-vg0-bar → смонтирован на /bar
к:
/dev/sda
|-vg0-root → смонтирован на /
|-vg0-foo → смонтирован на /foo
/dev/sdb
|-vg1-bar → смонтирован на /bar
Насколько я понимаю, я не могу использовать pvmove
или vgsplit
, потому что в существующей группе томов только один физический том.
Какой хороший подход для достижения этой цели (предпочтительно в онлайн-режиме, создание новой группы томов для нового диска не является обязательным)?
Решение с одной группой томов:
pvcreate /dev/sdb
vgextend vg0 /dev/sdb
pvmove -n /dev/vg0/bar /dev/sda /dev/sdb
Имейте в виду, что команда pvmove
может занять много времени в зависимости от размера вашего диска.
Решение с двумя группами томов:
pvcreate /dev/sdb
vgcreate vg1 /dev/sdb
lvcreate -l100%FREE vg1
mkfs -t ext4 /dev/vg1/lvol1
mount /dev/vg1/lvol1 /mnt
Теперь сложная часть: все действия ДОЛЖНЫ быть прекращены на /bar
:
cd /mnt ; ( cd /bar ; tar cf - * ) | tar xf -
cd /
umount /mnt
mount /dev/vg1/lvol1 /bar
где
pvcreate
сотрет все данные на диске (и подготовит для LVM)lvcreate
должен создать логический том lvol1, вы указываете имя lv с помощью-n bar
- Я использую синтаксис HP-UX для lv, вам может потребоваться использовать синтаксис
/dev/mapper/myvg-mylv
После того как вы убедитесь, что данные в порядке, на новом месте:
- вы можете безопасно удалить старый
/bar
- отредактируйте
/etc/fstab
, чтобы использовать новый/bar
Ответ или решение
Когда стоит задача перемещения логического тома на новый физический диск в системе, использующей LVM (Logical Volume Manager), это требует внимательного подхода. В данной ситуации мы имеем три логических тома в одной группе томов (VG), используя единственный физический том (PV), и нам нужно переместить один из них на новый диск для оптимизации работы.
Подход с использованием одной группы томов:
-
Инициализация нового физического диска:
Начните с инициализации нового диска/dev/sdb
для использования в LVM.pvcreate /dev/sdb
-
Расширение группы томов:
Добавьте новый физический диск в существующую группу томовvg0
.vgextend vg0 /dev/sdb
-
Перемещение логического тома:
Переместите логический томvg0-bar
на новый физический диск. Командаpvmove
осуществляет это перемещение.pvmove -n vg0/bar /dev/sda /dev/sdb
Этот подход позволяет перемещать данные без остановки работы, но стоит учитывать, что команда pvmove
может занять продолжительное время, особенно если объем данных велик.
Альтернативный подход с использованием новой группы томов:
Если же вы предпочитаете создать отдельную группу томов для нового диска, процесс будет более сложным, так как требует временной остановки работы с логическим томом /bar
.
-
Инициализация нового диска:
Начните с инициализации/dev/sdb
.pvcreate /dev/sdb
-
Создание новой группы томов:
Создайте новую группу томовvg1
.vgcreate vg1 /dev/sdb
-
Создание логического тома:
Создайте логический том в новой группе.lvcreate -l100%FREE vg1 -n bar mkfs.ext4 /dev/vg1/bar
-
Подготовка для перемещения данных:
Создайте временную точку монтирования и смонтируйте новый логический том.mount /dev/vg1/bar /mnt
-
Перемещение данных:
Остановите все операции на/bar
, чтобы обеспечить целостность данных.cd /mnt (cd /bar; tar cf - *) | tar xf -
-
Перемещение и монтирование:
После завершения перемещения данных разомкните старую точку монтирования и замонтируйте новую.umount /mnt mount /dev/vg1/bar /bar
Обновление конфигурации системы
После успешного перемещения данных убедитесь, что старый логический том /bar
удален, и внесите изменения в файл /etc/fstab
, чтобы внедрить новые параметры монтирования:
- Удалите старую запись для
/bar
и добавьте новую строку для/dev/vg1/bar
.
Заключение
Обратите внимание, что при использовании команд, таких как pvcreate
, все данные на целевом диске будут удалены. Поэтому важно заранее подготовить резервные копии данных. Процессы перемещения могут занять продолжительное время, и их следует планировать в часы с низкой активностью системы, чтобы минимизировать влияние на пользователей.