Дефрагментация логических томов LVM2

18

Вопрос: Существует ли инструмент, поддерживающий фрагментацию логических томов LVM2? (Превращение их экстентов в последовательные последовательности)

Желательно путем определения желаемого порядка экстентов (что-то вроде «раздела A в начале диска, B после A, но X в конце PV» )

Конечно, следующие случаи должны быть рассмотрены:

  • VG состоит из одного PV
  • VG состоит из множества PV, но каждый LV сидит на одном PV
  • VG состоит из множества PV, LV имеют свои экстенты во многих PV

Может ли разделение быть удалено или нет, можно обсудить.

Ноу-хау: Можно перемещать диапазоны экстентов с pvmove, например pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999.

Причина: поскольку перемещение многих диапазонов вручную pvmoveявляется чисто повторяемой вещью (сомнительной, безмозглой или нет), мне было любопытно, существует ли инструмент для автоматизации / поддержки этого процесса. Если нет ... может быть, я делаю это сам - ты думаешь, такой инструмент будет полезен для других людей?

Гжегож Вежовецкий
источник
Возможно, что нет никакого инструмента, потому что нет никакого варианта использования, который требует его. Мне любопытно, почему вы хотите дефрагментировать? Есть ли дисковая технология, в которой есть преимущество для типичного размера экстента (4 МБ)?
Жиль "ТАК - перестань быть злым"
2
Давайте рассмотрим традиционные характеристики производительности HardDrive (не SSD) - начало диска обеспечивает лучшую производительность, чем конец. Это наиболее важный фактор, почему вы можете захотеть, чтобы экстенты, связанные с каким-либо разделом, помещались в начало.
Гжегож Вежовецкий
1
Для такого типа управления простой способ состоит в том, чтобы разделить диск на несколько физических томов.
Жиль "ТАК - перестать быть злым"
1
Но с другой стороны это делает больше беспорядка в файлах конфигурации и все настройки менее гибкими. Я считаю, что решения, упомянутые @JimParis, LVM2 defragmenterили pvmoveделают работу.
Гжегож Вежовецкий

Ответы:

9

Я использовал дефрагментатор LVM2 раньше. Это не самое простое или лучше всего написанное, но оно делает свое дело.

Джим Пэрис
источник
Выглядит интересно. Мне нужно попробовать это.
Гжегож Вежовецкий
Считаете ли вы, что эта дефрагментация может облегчить (на его основе) реализацию / создание способа частичного восстановления LV, как указано, возможно (было сделано) здесь serverfault.com/a/665826/163750 ?
Водолей Power
1

Ну, еще одна причина для дефрагментации заключается в уменьшении вероятности потери данных при сжатии логического тома. Конкретная причина сокращения логического тома - расширение / boot и аналогичных разделов на более старом жестком диске компьютера MBR. В моем случае для обновления с LTS 16.04.03 до LTS 18.04.1 требуется больше, чем 500 МБ, выделенных для / boot при первоначальной установке по умолчанию.

Не читали тысячи строк исходного кода для lvm2, но некоторые из онлайн-справки / вики подсказывают, что lvm2 использует довольно грубое усечение, когда используются простые процедуры сжатия логического тома - например, если файлы размещаются в области, освобожденной при сжатии вам, вероятно, понадобится восстановить этот список файлов (возможно, это самообман, если задействованы пакеты приложений или системы - или если ваш список пользовательских файлов очень большой).

наблюдение
источник