Как сделать лв

Добавил пользователь Алексей Ф.
Обновлено: 05.10.2024

По сути, я хочу переместить / скопировать несколько логических томов (lv) в новую группу томов (vg). Новая группа томов находится на новом наборе физических томов. Кто-нибудь знает, как сделать это безопасно, не повреждая данные внутри этих логических томов?

Можете ли вы предоставить более подробную информацию? Вы знаете, как сделать новые VG и LV? Вы перемещаете раздел данных или ваш корневой раздел?

Сначала я создал бы новый PV / LV, выключил виртуальную машину, затем скопировал данные с помощью dd, загрузил новую виртуальную машину и подтвердил, что она работает.

vgmerge позволяет объединить два VG. Вы также можете использовать pvmove для перемещения данных в VG и vgsplit, если вы хотите вернуться к нескольким VG.

Одна нота. Для этого у вас должно быть временное устройство, используемое для перевода онлайн LV в другой VG. Конечно, после переноса вы должны обновить / etc / fstab и другую затронутую конфигурацию, а также запланировать некоторое время автономной работы для перезагрузки и, в конечном итоге, внести некоторые изменения в конфигурацию. Если вы выполняете какие-либо действия с rootfs или bootfs, у вас должен быть дистрибутив linux live для восстановления основной системы.

Нет причин сначала копировать его в файл .img, просто сначала выполните lvcreate, а затем непосредственно скопируйте его:

Это слишком коротко. Это не говорит, что именно упомянутые размеры - например, может быть очень маленьким, поскольку это только для различий снимка.

1) Сделайте снимок целевого логического тома.

lvcreate --snapshot --name --size /dev/volume-group/logical-volume

Примечание. Размер снимка может быть как угодно большим. Важно иметь достаточно места, чтобы зафиксировать изменения во время снимка.

2) Создайте копию изображения снимка с помощью dd

dd if=/dev/volume-group/snapshot-name of=/tmp/backup.img

3) Создайте новый логический том достаточного размера в целевой (новой) группе томов.

lvcreate --name --size the-new-volume-group-name

4) Запишите данные на новый логический том из резервной копии образа, используя dd

dd if=/tmp/backup.img of=/dev/new-volume-group/new-logical-volume

5) удалить снимок и резервную копию изображения, используя lvremove и rm соответственно.

Вот и все, ребята . Надеюсь, это кому-нибудь поможет :)

ising backup.img для временного резервного копирования хранилища не требуется. Вы можете напрямую перейти от исходного снимка к целевому LV с не смонтированным состоянием.

Кроме того, вы можете использовать, pvmove чтобы просто переместить громкость.

Полный автономный пример сеанса с использованием петлевых устройств и далее lvconvert .

Резюме: мы создаем группу томов vg1 с логическим томом lv1 и vg2 с lv2, и делаем копию lv1 в vg2.

Настройте устройства петли на файлах.

Создайте физические тома на петлевых устройствах (инициализируйте петлевые устройства для использования LVM).

Создайте группы томов vg1 и vg2 в / dev / loop1 и / dev / loop2 соответственно.

Создайте логические тома lv1 и lv2 на vg1 и vg2 соответственно.

Создайте файловые системы ext4 на lv1 и lv2.

При желании напишите что-нибудь на lv1, чтобы позже вы могли проверить, правильно ли была создана копия. Сделайте vg1 неактивным.

Запустите команду слияния в тестовом режиме. Это сливает lv1 в lv2.

А потом по-настоящему.

Затем создайте зеркальную пару RAID 1 с lv1 помощью lvconvert . <> Аргумент говорит , lvconvert чтобы сделать зеркальную копию lv1_copy на /dev/loop2 .

Затем разделите зеркало. Новый LV теперь lv1_copy.

Сделайте vg2 неактивным.

Тогда (режим тестирования)

1) Большинство из этих команд нужно будет выполнять от имени пользователя root.

2) Если есть какое-либо дублирование имен логических томов в двух группах томов, vgmerge откажется продолжить.

это просто бессмысленно. Вы должны размонтировать файловые системы, деактивировать тома и т. Д. Вы можете просто размонтировать dir и скопировать данные.

Во-первых, как сказал пользователь 189142, это бессмысленно. во-вторых, это применяется только в ситуации, когда мы можем остановить сервисы, используя перемещенный объем. Это проблема с сервисами, работающими 24/7, и объем очень велик с данными, подсчитанными с терабайтами. По этой причине эта процедура требует очень длительного времени обслуживания. По этой причине гораздо проще просто создать новый том, rsync онлайн, а затем через короткое время rsync в автономном режиме для обновления, перемонтирования и возврата системы в оперативное состояние. Конечно, очень хорошая идея - стереть ненужные данные с исходного тома. может быть временно переместить его в какое-то временное место.

До сих пор все 4 ответа пропускают, что точный размер объема часто неизвестен. lvdisplay показывает только значения, округленные до 2 десятичных знаков, и man lvdisplay указывает только на другие команды для доступных параметров. Далее выбирается MiB, что является достаточно точным с размером блока LVM по умолчанию 4 MiB:

lvdisplay --units m

MiB также является единицей по умолчанию для --size of lvcreate . В случае сомнений дважды проверьте правильный размер lvdisplay после создания целевого тома. Затем, как и в других ответах, сделайте копию. Кроме того, я бы порекомендовал проверить копию , например, с cmp .

Вот почему используется снимок и что он защищает и не защищает:

Снимок сделан таким образом, что все данные копируются так, как это было на момент создания снимка. Действия на исходном томе в процессе копирования не будут отражены в копии.

Снимок также защищает исходный том от человеческих ошибок в dd командной строке. Если вы случайно записали снимок, будут повреждены только данные снимка, и вы можете просто удалить снимок и начать все сначала.

Целевой том не защищен во время процессов копирования. Если другой администратор (или автоматический процесс, такой как os-prober of dracut ) монтирует неполный том, монтирование может испортить вещи. (Даже монтирование только для чтения может записывать записи журнала в том.)

Немного обо всем и все о немногом, или практический опыт системного администратора.

Основы LVM - что такое PV, VG, LV

Calendar

16 сентября 2010, 23:36

Если вы как и я только начинаете знакомиться с LVM (Logical Volume Manager) и интенсивно изучаете информацию по этому вопросу, то в первую очередь, нужно четко понимать значение таких сокращений как PV, VG, LV, PE и LE. Именно на последних и хочу остановиться с пояснениями и примерами, так как они применяются во всех документах и статьях. Думаю, расширять свои познания в LVM без понимания, что означают эти аббревиатуры будет затруднительно. Эти же сокращения используются и в выводе команд для работы с LVM и в названиях самих команд, поэтому безусловно нужно понимать, что есть что.

Примеры выполнялись в виртуальной операционной системе Ubuntu Server, которая содержит три виртуальных диска. Но будем считать, что система реальная и диски настоящие - физические, чтобы не возникало путаницы в понятиях.

Начнем с PV. PV (Physical Vollume) для системы LVM - это реальный физический диск или раздел диска, который инициализирован командой pvcreate. Пример. У нас есть три физических диска /dev/sda, /dev/sdb и /dev/sdc:

Диск /dev/sda разбит на разделы: /dev/sda1 - основной раздел, /dev/sda2 - расширенный раздел, /dev/sda5 - логический раздел, который занимает все пространство расширенного раздела. Диски /dev/sdb и /dev/sdc на разделы не разбиты. Если выполнить команду pvscan, то можно увидеть какие из этих дисков или разделов дисков являются PV для LVM:

$ sudo pvscan
PV /dev/sda5 VG ubuntuserver lvm2 [7,76 GiB / 32,00 MiB free]
PV /dev/sdb VG ubuntuserver lvm2 [2,00 GiB / 1,70 GiB free]
Total: 2 [9,75 GiB] / in use: 2 [9,75 GiB] / in no VG: 0 [0 ]

Видно, что в данный момент есть два PV для LVM - это раздел диска /dev/sda5 и весь диск /dev/sdb. На рисунке 1 они отмечены желтым цветом:

lvm - Logical Volume Manager - схема с PV, VG и LV

PV - это основа для создания VG - Volume Group. .

Если провести аналогию с обычным жестким диском в операционной системой Linux, то VG для системы LVM - это как неразмеченный жесткий диск для системы Linux.

VG - может состоять из одного, двух и более PV. На рисунке 1 показана VG с именем ubuntuserver (отмечена зеленым цветом), которая состоит из двух PV. Дисковый объем VG равен сумме объемов PV из которых она состоит. В нашем случае он должен равняться 9.75 Гб. Проверим командой vgs:

Если нам мало 9.75 Гб, то можно создать из диска /dev/sdc еще один PV, и добавить его в существующий VG. Тогда объем VG увеличится на объем добавленного PV.

Итак, если VG для системы LVM - это как неразмеченный жесткий диск, то для того чтобы начать работу с ним нужно его разметить - создать разделы. И вот эти разделы и будут называться LV - Logical Volume. На рисунке 1 можно увидеть, что часть пространства VG, отдана под LV с именем root, часть под LV с именем swap_1 и некоторое пространство осталось свободным. Команда lvs покажет информацию о размерах LV:

$ sudo lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
root ubuntuserver -wi-ao 7,64g
swap_1 ubuntuserver -wi-ao 388,00m

Если снова провести аналогию, то LV в LVM - это как /dev/sda1 на реальном жестком диске. То есть LV - это уже логическая единица которую можно форматировать под определенную файловую систему и затем монтировать обычной командой mount.

Надеюсь пока все понятно. Осталось PE и LE. Данные сокращения встречаются в документации не так часто, но без них картина будет неполной. PE - Physical Extention - это блок в пространстве PV фиксированного размера. По умолчанию PE равен 4 Мб, но можно задавать и другие размеры. Таким образом PV состоит из определенного количества PE. Если провести аналогию, то PE в LVM - это как сектор на жестком диске. Только сектор всегда равен 512 байт и изменить его невозможно.

Команда pvdisplay, покажет информацию о PV и PE:

$ sudo pvdisplay /dev/sdb
--- Physical volume ---
PV Name /dev/sdb
VG Name ubuntuserver
PV Size 2,00 GiB / not usable 4,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 511
Free PE 436
Allocated PE 75
PV UUID Rfd126-hs8B-eW42-UoLK-iCxa-CStR-E6dSZi

Можно увидеть, что PV состоит из блоков оп 4 Мбайта (PE Size), всего блоков PE - 511 (Total PE), что дает нам размер в 2 Гб. Также можно увидеть, что 436 блоков PE (Free P), не задействованы - то есть они не состоят ни в одном VG. А 75 блоков PE (Allocated PE) задействованы в VG. Таким образом увеличивать (или уменьшать) в случае необходимости размер VG можно только порциями кратными размеру PE - в нашем случае 4 Мбайта.

Если PE это Physical Extention, то как можно уже догадаться LE - это Logical Extension. То есть LE - это блоки из которых состоит LV. Размер PE всегда равен LE. То есть если PE равен 4 Мбайта, то и LE равен 4 Мбайта. Существует возможность указать соответствие PE и LE. Например, так как показано на рисунке 2:

Соответствие PE и LE при создании VG

Если посмотреть на наш сервер и выполнить команду lvdisplay -m, то можно увидеть соответствие PE и LE в LV. Некоторые строки вывода команды сократил:

$ sudo lvdisplay -m
--- Logical volume ---
LV Name /dev/ubuntuserver/root
VG Name ubuntuserver
LV Size 7,64 GiB
Current LE 1956
Segments 2
Allocation inherit

--- Segments ---
Logical extent 0 to 1880:
Type linear
Physical volume /dev/sda5
Physical extents 0 to 1880

Logical extent 1881 to 1955:
Type linear
Physical volume /dev/sdb
Physical extents 0 to 74

Видим, что LV состоит из PE двух PV. LV root состоит из 1956 LE (Current LE). 1881 LE - это PE c PV /dev/sda5 и 75 LE - это PE c PV /dev/sdb.

На этом пока все по LVM. Можно двигаться в изучении дальше. Если где ошибся в определениях - сообщите об этом в комментариях. И в завершении хочу оставить, несколько ссылок которые по моему мнению хорошо описывают LVM и на которые стоит обратить внимание при обучении:

Logical Volume Manager - на английском языке
LVM HOWTO - на английском языке
Повесть о Linux и LVM (Logical Volume Manager) - на русском языке на основе HOW-TO.

BROTHERS FUT l FIFA 22 l ULTIMATE TEAM

Ярослав Гаврилюк

Ярослав Гаврилюк запись закреплена

Забейте 2 гола лв ? Как выполнить ? Заха 2 забил и не выполниломь или я че то не понимаю уже ))))

Иван Иванов

Алмас Абдрахманов

Александр Черепанов

Че тут сложного? У Zaha позиция ЛП , забить нужно за ЛФА .
Поменяй ему позицию забей,потом поменяй обратно и все..

defnot

defnot

defnot

:cool-bun:

Что бы это сделать не нужно нихуя кроме глаз и рук
1. Находим строчку в menu.cpp : // start menu render
2. Документируем строчку ниже ( для совсем отбитых это два слеша)
3. Переходим в imgui.h и находим строчку : IMGUI_API bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0);
4. Меняем 0 на 1
5. Компилим чё
(если шо пункт 3 и 4 для того что бы не было надписи дебаг)

Moteeees

ExtrimHack - Top Soft

Moteeees

ExtrimHack - Top Soft

Moteeees

ExtrimHack - Top Soft

:cool-bun:

Что бы это сделать не нужно нихуя кроме глах и рук
1. Находим строчку в menu.cpp : // start menu render
2. Документируем строчку ниже ( для совсем отбитых это два слеша)
3. Переходим в imgui.h и находим строчку : IMGUI_API bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0);
4. Меняем 0 на 1
5. Компилим чё

Читайте также: