LINUX.ORG.RU
ФорумAdmin

Как правильно создать LVM-том?

 ,


2

1

Всем добрый день!

На сервере с Proxmox хочу создать LVM-пул из нескольких физических дисков для использования его в качестве хранилища данных в виде файлов.

Читаю документацию в Proxmox про использование LVM:

Let’s assume we have an empty disk /dev/sdb, onto which we want to create a volume group named “vmdata”.

  1. First create a partition.
# sgdisk -N 1 /dev/sdb
  1. Create a Physical Volume (PV) without confirmation and 250K metadatasize.
# pvcreate --metadatasize 250k -y -ff /dev/sdb1
  1. Create a volume group named “vmdata” on /dev/sdb1
# vgcreate vmdata /dev/sdb1

Возникают вопросы:

  1. нужно ли предварительное применение команды sgdisk? В других мануалах обходятся без неё, сразу выполняют команду pvcreate.

  2. почему размер metadatasize 250k? Допустим я хочу постепенно добавлять новые диски в пул, в перспективе доведя его емкость до 50Гб? Как мне вычислить необходимый размер metadatasize?

  3. что у pvcreate за опция такая -ff? Не нашёл её в описании pvcreate. Есть просто -f

  4. pvcreate лучше делать над партицией (как в приведённом выше примере pvcreate /dev/sdb1) или над всем диском (pvcreate /dev/sdb)?

  5. соответсвенно и группу томов можно создавать на базе партиции (vgcreate vmdata /dev/sdb1) или на базе всего диска (vgcreate vmdata /dev/sdb). Как правильно/лучше?

Перемещено hobbit из general



Последнее исправление: Garik368 (всего исправлений: 1)

Ответ на: комментарий от anonymous2

у ну да, вопрос же был как правильно? ну вдругом случае тогда нужно еще и тип выставить 8e, всё же должно быть по правильному!)

anonymous2 ★★★★★
()

нужно ли предварительное применение команды sgdisk? В других мануалах обходятся без неё, сразу выполняют команду pvcreate.

К.О. просил передать, что если у тебя уже есть разбиение диска на разделы, то делать sgdisk не надо, а если нет — надо.

почему размер metadatasize 250k?

Надо читать остальную часть документации, что они там рекомендуют. В большинстве случаев можно не указывать metadatasize и оно само определится правильно, но если ты точно знаешь что делаешь или разработчики PVE по каким-то причинам рекомендуют именно 250k — это надо уточнить.

то у pvcreate за опция такая -ff?

man pvcreate:

Repeating the force option (-ff) will forcibly create a PV, overriding checks that normally prevent it, e.g. if the PV is already in a VG.

pvcreate лучше делать над партицией (как в приведённом выше примере pvcreate /dev/sdb1) или над всем диском (pvcreate /dev/sdb)?

Без разницы, но если ты сделаешь на весь диск и потом захочешь часть диска отдать под что-то другое, то не выйдет, зато ты сэкономишь 8 кб. Поэтому правильнее использовать раздел, но это не догма.

соответсвенно и группу томов можно создавать на базе партиции (vgcreate vmdata /dev/sdb1) или на базе всего диска (vgcreate vmdata /dev/sdb). Как правильно/лучше?

См. выше.

Aceler ★★★★★
()
Ответ на: комментарий от anonymous2

я делаю vgcreate vmdata /dev/sdb, а metadatasize не использую

Открыл мануал по LVM на Redhat:

… Размер области метаданных можно определить с помощью аргумента –metadatasize команды pvcreate. Размер, используемый по умолчанию, слишком мал для групп с большим числом логических или физических томов.

Как я написал, изначально, я хочу создать том, используя всего 1 физический диск, и по мере его загрузки добавлять к нему новые физические диски. Общий размер хранилища может достигнуть 50Тб, кол-во файлов на нём +100тыс. Поэтому опасаюсь, что размера по умолчанию metadatasize не хватит.

Перелопатил разные примеры - вижу кейсы, где, например, устанавливают –metadatasize 64m

Garik368
() автор топика
Ответ на: комментарий от Aceler

Repeating the force option (-ff) will forcibly create a PV, overriding checks that normally prevent it, e.g. if the PV is already in a VG.

Как-то стрёмно это звучит… Зачем все проверки отменять? Как бы чего не вышло!)))

Garik368
() автор топика
Ответ на: комментарий от NyXzOr

Когда не хватит - тогда и увеличить?

насколько я понимаю, его потом уже нельзя увеличить без потери данных на диске.

Garik368
() автор топика
Ответ на: комментарий от Garik368

Открыл мануал по LVM на Redhat

The default size may be too small for volume groups that contain physical volumes and logical volumes that number in the hundreds

Речь про сотни томов.

кол-во файлов на нём +100тыс

Не файлов, обрати внимание. Про файлы это к файловой системе.

NyXzOr ★★★
()
Ответ на: комментарий от Garik368

Ты это ни с чем не спутаешь. У тебя просто перестанут создаваться LV.

Nastishka ★★★★★
()

Create a Physical Volume (PV) without confirmation and 250K metadatasize.

Выглядит как вредный совет. Как границы partition (sdb1), так и и границы extenеt’ов должны быть выровнены по 1 MiB

Т.е. вместо –metadatasize 250k должно быть –dataalignment 1M

router ★★★★★
()
Ответ на: комментарий от Garik368

Размер, используемый по умолчанию, слишком мал для групп с большим числом логических или физических томов

Спасибо, не знал. Хотя раньше я в этот лимит не упирался. Ну и данные всё равно нужно выравнивать по 1 MiB

router ★★★★★
()
Ответ на: комментарий от router

может тогда привильно будет сделать

pvcreate –metadatasize 1M –dataalignment 1M

?

как проверить у существующего тома - какой у него metadatasize?

Garik368
() автор топика
Ответ на: комментарий от Garik368

Общий размер хранилища может достигнуть 50Тб, кол-во файлов на нём +100тыс

и что? вы путаете уровень FS и LVM. Для больших объемов в LVM я добавляю RAID массив.

anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 1)
Ответ на: комментарий от anonymous2

Для больших объемов в LVM я добавляю RAID массив.

Правильно ли я понимаю:

  1. вначале из нескольких физических дисков вы делаете RAID-массив, например /dev/md0

  2. далее создаём физический том

pvcreate –dataalignment 1M /dev/md0
  1. далее создаём группу томов
vgcreate vmdata /dev/md0
  1. затем логический раздел(ы)
lvcreate -n lvdata vmdata
  1. форматируем этот логический раздел
mkfs.ext4 -L lvdata /dev/vgdata/lvdata
  1. монтируем его и используем для хранения файлов.

?

Garik368
() автор топика
Ответ на: комментарий от Garik368
  1. для очень больших объемов можно добавлять несколько RAID массивов
anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 1)
Ответ на: комментарий от Garik368

Можно добавить ещё raid в volume group. Можно добавить просто диск в volume group. Можно добавлять диск в raid. Можно собрать raid средствами самой lvm.

ТС, пока сомневаешься, тебе ещё могут начать советовать использовать zfs или btrfs.

NyXzOr ★★★
()
Ответ на: комментарий от NyXzOr

ТС, пока сомневаешься, тебе ещё могут начать советовать использовать zfs или btrfs.

@NyXzOr, это вы верно угадали!)

Опишу свою задачу для понимания ситуации - есть большой архив медиа-файлов на разных внешних носителей, общим объёмом около 50Тб.

  1. Нужно сделать на сервере единое хранилище для пользования всеми этими файлами (медиа-библиотеку).

  2. ресуры на это выделены минимальные, поэтому планировалось по мере загрузки хранилища с внешних носителей, постепенно докупать новые HDD и увеличивать ими ёмкость хранилища.

  3. т.к. архивы и так есть, хранилище на сервере пока делаем без избыточности (я имею ввиду RAID1 и т.п.). Впоследствии, когда появятся дополнительные ресурсы, организуем RAID.

В итоге я запустил этот проект с диском для хранилища 3Тб. Много со всеми консультировался, выбрал ZFS как наиболее современную систему.

Сейчас у меня появился новый диск 6Тб. И я понимаю, что в zfs я его не смогу добавить. По крайней мере таким образом, чтобы общая емкость моего хранилища составила 9Тб.

Поэтому хочу всё переделать на LVM. Как я понимаю в LVM можно добавлять диски разного объёма (в zfs - пока только одинаковые).

План такой

  1. на новом диске 6Тб делаю LVM
  2. копирую туда всю существующую информацию с диска 3Тб (который zfs сейчас).
  3. убиваю zfs на диске 3Тб, делаю ему тоже pvcreate, и присоединяю его к LVM на диске 6Тб.
  4. в итоге получаю на LVM хранилище 9Тб (условно).

Есть замечания или советы по этому плану?

Garik368
() автор топика
Ответ на: комментарий от Garik368

В итоге я запустил этот проект с диском для хранилища 3Тб. Много со всеми консультировался, выбрал ZFS как наиболее современную систему.

А ведь чуть-чуть промахнулся мимо btrfs, и переделывать не пришлось.

mishki
()
Ответ на: комментарий от mishki

А ведь чуть-чуть промахнулся мимо btrfs, и переделывать не пришлось.

Я прочитал много статей на эту тему, в основном эксперты сходились во мнении, что btrfs уступает по функционалу и перспективе развития ZFS. Кроме того, вроде есть данные, что BTRFS убивает SSD. У меня система в этом проекте сидит на RAID1 из NVMe (на базе ZFS) поэтому, я BTRFS не рассматривал…

Garik368
() автор топика
Ответ на: комментарий от router

@router, я создал Volume group на новом диске в GUI Proxmox и проверил получившиеся параметры metadata

По факту получилось так:

root@pve:~# pvs -o pv_mda_size /dev/sdb1
  PMdaSize 
   1020.00k
root@pve:~# pvs -o pv_mda_free /dev/sdb1
  PMdaFree 
    508.50k
root@pve:~# pvs -o pv_mda_count /dev/sdb1
  #PMda
      1
root@pve:~# pvs -o pv_mda_used_count /dev/sdb1
  #PMdaUse
         1
root@pve:~# pvs -o pe_start /dev/sdb1
  1st PE 
    1.00m

Т.е. по умолчанию создаётся PV c metadatasize = 1020k и половина этой области сразу будет занята.

Тогда мне вообще непонятна рекомендация из мануала Proxmox делать

pvcreate --metadatasize 250k
  • 250k меньше, чем 1020k, которая создаётся по умолчанию.

Или я что-то упускаю?

Garik368
() автор топика
Последнее исправление: Garik368 (всего исправлений: 1)
Ответ на: комментарий от Garik368

Я использую btrfs как ФС на хостах Proxmox, как чисто под систему, так и целиком место (raid1, raid10), и как гостевую ФС на виртуальных машинах и lxc более года, короче как поддержка появилась, всё живо, ssd разных типов (sata, m2, pci-e). Жаль пока на Proxmox Backup Server его нельзя использовать.

Как минимум, отпала необходимсть в LVM.

mishki
()
Ответ на: комментарий от mishki

Как минимум, отпала необходимсть в LVM.

Какие у вас были проблемы с LVM, что вы перешли от неё к BTRFS?

Мне сейчас пришлось перейти с ZFS на LVM, потому что в LVM можно создать единое хранилище из ранородных дисков, а в ZFS нет.

Garik368
() автор топика
Ответ на: комментарий от Garik368

btrs проще, включает функции LVM, есть снэпшоты. и btrfs всё-таки файловая система, а не управление блочным устройствами как LVM, и содержать ничего кроме Disk images и Containers не может, а ISO, бэкапы, темплеты где держать, если нет для этого других хранилищ?

mishki
()
Последнее исправление: mishki (всего исправлений: 1)
Ответ на: комментарий от mishki

бэкапы

Уже создавали тему «у меня посыпалась»?

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.