
Похоже, что я могу успешно выполнить pvcreate поверх необработанного блочного устройства, даже не создавая таблицу разделов. Затем я могу создать группу томов, логический том и, наконец, файловую систему, смонтировать ее и протестировать через dd.
Кажется, это работает, но мне нужна проверка работоспособности. Это плохая идея?
Как создать таблицу разделов GPT или MBR поверх необработанного блочного устройства?
Как мне использовать parted, чтобы показать, какой тип таблицы разделов используется? Я пробовал делать:
parted, выбираю /dev/sdb, печатаю и получаю:
Ошибка: /dev/sdb: нераспознанная метка диска
Но диск в данный момент используется, и я могу читать и писать на него. Это ожидаемый результат при выполнении LVM поверх необработанного блочного устройства без таблицы разделов? Есть мысли?
Спасибо!
решение1
Даже если сам LVM не заботится о наличии реального раздела, одна из причин его создания в любом случае — сообщить программам разбиения на разделы, что «там что-то есть». Кошмарный сценарий — это новый системный администратор, диагностирующий проблему загрузки на сервере, запускающий программу разбиения на разделы, обнаруживающий неразмеченные диски и делающий вывод, что диск поврежден.
Я не вижу никаких недостатков в создании раздела LVM. А вы?
решение2
Хотя вы можете просто создать pv из необработанного блочного устройства, я обычно стараюсь этого избегать, поскольку это может вызвать путаницу относительно того, для чего используется блочное устройство. Это также может нарушить некоторые процедуры автоматического обнаружения, которые может использовать LVM, если у него отсутствуют файлы конфигурации.
Вот пример использования parted для создания GPT с 1 разделом, который представляет собой весь диск, и установки флага раздела на lvm. Mkpart требует, чтобы вы указали файловую систему, но не создает ее. Кажется, это давняя ошибка в parted. Кроме того, начальное смещение 1M необходимо для обеспечения правильного выравнивания.
parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on
решение3
Даже если в прошлом я использовал MS-DOS disklabel или GPT disklabel для PV, сейчас я предпочитаю использовать напрямую LVM на главном блочном устройстве. Нет смысла использовать 2 disklabel, если только у вас нет очень специфического варианта использования (например, диск с загрузочным сектором и загрузочным разделом).
Преимущества использования LVM напрямую:
- простота - вам не нужно использовать 2 комплекта инструментов
- гибкость — вы можете использовать pvmove для перемещения данных с одного тома диска на другой без простоя, вы можете использовать моментальные снимки и тонкое резервирование
- вам не нужно запускать partprobe или kpartx, чтобы сообщить ядру, что вы создали/изменили размер/удалили том. Иpartprobe/kpartx может выйти из строяесли разделы используются и вам может потребоваться перезагрузка
- возможно, более высокая производительность по сравнению с использованием LVM поверх MS-DOS или GPT disks
- позволяет избежать потенциального несоответствия, если раздел, созданный с помощью fdisk, не выровнен с экстентами на базовом томе (например, RAID-массиве)
решение4
Согласно руководству LVM от RedHat, раздел 4.2.1 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/physvol_admin
Они сказали, что нет необходимости иметь таблицу разделов, они даже предлагают нам уничтожить ее, если мы используем весь диск для VG (группы томов), если только мы не собираемся включать только ее части (разделы).