Вопрос или проблема
У меня настроен логический том lvm2, и мне нужно добавить к нему новый диск. Я знаю, как сделать это “стандартным” способом без проблем. Однако я хотел бы добавить диск более “гранулярным” способом и не уверен, что это возможно.
Единственный физический том, который в настоящее время подключен к существующему логическому тому, — это M.2 nvme, в то время как новый диск — более медленный SATA SSD. Если я подключу его “стандартным” способом, новые данные будут распределены между этими двумя дисками, что замедлит пропускную способность.
Теперь на файловой системе внутри логического тома находятся директории с разными требованиями к скорости доступа. Например, быстрый доступ к директории с 4K фильмами и менее критичная скорость доступа для фотографий или аудио в других директориях.
Так что вопрос в том, можно ли это сделать, используя lvm? Как я уже сказал, не думаю, что это возможно, так как, насколько я знаю, нет связи между lvm и файловой системой. Какие у меня есть варианты для достижения этой цели?
Мой предыдущий способ — монтировать новый диск в /mnt, перемещать туда данные директории и заменять предыдущую директорию символической ссылкой на новую точку монтирования; это создает путаницу.
Заранее спасибо за любые мысли.
Вы уже указали на это — это невозможно сделать на уровне LVM.
Ваш единственный вариант — создать раздел / файловую систему на новом диске, возможно, с реальными директориями, совпадающими с вашими типами данных, временно смонтировать все/любые из них в каталог под, например, /tmp
, переместить данные, а затем смонтировать (или использовать bind-mount, что вам удобнее) в соответствующие директории, откуда были файлы.
P.S.: Я с трудом представляю, что даже старый SSD может быть слишком медленным для 4K видео (если только вы не собираетесь транслировать много разных потоков параллельно).
Ответ или решение
Добавление нового диска в логический том LVM с целью повышения эффективности использования ресурсов и оптимизации производительности — это задача, требующая детального подхода, учитывающего особенности использования системы хранения данных. Давайте рассмотрим теоретический аспект, реальный пример и практическое применение рекомендаций.
Теория
-
Логические тома LVM (Logical Volume Manager): LVM позволяет управлять дисковыми пространствами гибче по сравнению с традиционными методами разделения на физические разделы. Однако, когда необходимо управлять производительностью на уровне отдельных директорий внутри файловой системы, LVM не предоставляет встроенных механизмов для дифференцированного распределения ресурсов.
-
Разнесение нагрузки: Если новая доискиваемая вами организация дискового пространства должна учитывать различие в скорости доступных накопителей (NVMe против SATA SSD), важно понимать, что "стандартное" добавление физического тома приведет к равномерному распределению данных между дисками. Это может снизить общую производительность, особенно для IO-интенсивных задач.
-
Файловая система и LVM: Нет прямой связи между LVM и конкретной структурой файловой системы. LVM занимается лишь разметкой и абстракцией физического пространства под логические тома, предоставляя гибкость в управлении физическими дисками.
Пример
Рассмотрим сценарий, где ваш логический том LVM /dev/vg0/lv0 содержит следующие директории:
/media/4k_videos
: требует высокой скорости доступа для потокового воспроизведения видео;/media/photos
: допускает пониженную скорость и может использоваться для хранения фотографий;/media/audio
: не так критично к задержкам доступа.
С новым диском, добавляемым к логическому тому, ваша цель заключается в возможности выбора, какие данные будут находиться на более медленном диске, а какие — остаться на быстром NVMe.
Применение
-
Создание отдельного тома для медленного диска:
- Создайте физический том (PV) на новом SATA-диске, например:
pvcreate /dev/sdX
. - Создайте новый том группы (VG) и добавьте этот диск:
vgcreate vg1 /dev/sdX
. - Создайте логический том (LV) внутри новой VG для хранения данных с низкими требованиями к скорости:
lvcreate -n slow_data -l 100%FREE vg1
.
- Создайте физический том (PV) на новом SATA-диске, например:
-
Перемещение данных и создание точки монтирования:
- Создайте файловую систему в новом логическом томе, например, с использованием ext4:
mkfs.ext4 /dev/vg1/slow_data
. - Создайте временные монтировочные точки, например под
/mnt/temp_photos
и/mnt/temp_audio
. - Переместите данные из
/media/photos
и/media/audio
в соответствующие временные директории. - Размонтируйте временные точки и создайте постоянные точки монтирования, такие как
/media/photos
и/media/audio
.
- Создайте файловую систему в новом логическом томе, например, с использованием ext4:
-
Применение символьных ссылок:
- Если структура директорий и приложений не позволяет непосредственно изменять пути, используйте символьные ссылки, чтобы пользовательский опыт остался прежним, но данные черезмонтировались на более медленный диск.
-
Мониторинг и настройка:
- После настройки регулярно мониторьте производительность системы с использованием инструментов, таких как iotop, чтобы убедиться в том, что загрузка распределяется согласно ожиданиям.
- При необходимости, обновите скрипты на момент старта системы для автоматизации монтирования новых серверов.
Таким образом, наиболее приемлемым и не громоздким с точки зрения управления остается метод использования отдельных томов LVM и стратегического управления точками монтирования для распределения скоростных и медленных ресурсов в файловой системе. Вы получаете ожидаемое распределение нагрузки без осложнений, связанных с прямым изменением структуры в рамках LVM.