Подключение диска lvm к другому компьютеру.
На одной из виртуальных машин, из за кривости рук “убилась” система. И нужно было восстановить данные которые на ней были. Казалось бы задача очень простая, нужно диск примонтировать к другой рабочей машине и скопировать данные. Но трудность заключалась в том, что диски были lvm томами. Поэтому просто сделать mount не получится. Если мы попытаемся сразу примонтировать диск то получим ошибку «mount: unknown filesystem type ‘LVM2_member‘».
Поэтому порядок действий следующий.
Смотрим разделы lvm
Считаем что диск с которого нужно получить данные уже подключен к рабочему компьютеру.
Видим что на нашем подключенном диске lvm разделы не активны. Но при попытке активировать их нас ждет сюрприз
Дело в том, что lvm том с именем “centos” уже есть. Поэтому для начала нужно переименовать подключенный том в другое имя.
Если же у вас этой проблемы не возникло, и разделы успешно активировались, то смело пропускайте следующие два пункта и переходите к пункту «монтирование»
Переименовываем lvm том
что бы переименовать том, нужно определить его id
Нужный нам том имеет размер 48.99 Гб, и id XdEJP3-Hsfb-d211-xy3M-twxK-FDy7-bgVOKq.
Теперь дадим этому тому другое имя.
Видим что том успешно переименован и идем дальше.
Активируем lvm разделы
Как видим на этот раз все прошло успешно
Все разделы активны
Монтирование LVM разделов
Монтируем наши «новые-старые» разделы. Раздел swap нам не нужен поэтому монтируем только корневой раздел root, полное имя которого как показала команда lvscan в предыдущем пункте /dev/centos_old/root
На этом все. Старый диск доступен в каталоге /mnt/disk_old и из него можно извлечь нужные данные.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как работать с LVM
В статье описаны основные моменты использования LVM для организации дисковой системы в Linux. Она поможет как чайникам разобраться с принципами ее работы, так и уже знающим LVM в качестве шпаргалки.
Используемые команды одинаково подойдут как для систем Red Hat / CentOS, так и Debian / Ubuntu.
Уровни абстракции
Работа с томами с помощью LVM происходит на 3-х уровнях абстракции:
Схематично, уровни можно представить так:
Установка
Для работы с LVM необходима установка одноименной утилиты. В системе Linux она может быть установлена по умолчанию. Но если ее нет, выполняем инструкцию ниже.
Если используем системы на безе deb (Ubuntu, Debian, Mint):
apt-get install lvm2
Если используем системы на безе RPM (Red Hat, CentOS, Fedora):
Создание разделов
Рассмотрим пример создания томов из дисков sdb и sdc с помощью LVM.
1. Инициализация
Помечаем диски, что они будут использоваться для LVM:
pvcreate /dev/sdb /dev/sdc
* напомним, что в качестве примера нами используются диски sdb и sdc.
Посмотреть, что диск может использоваться LMV можно командой:
В нашем случае мы должны увидеть что-то на подобие:
2. Создание групп томов
Инициализированные на первом этапе диски должны быть объединены в группы.
Группа может быть создана:
vgcreate vg01 /dev/sdb /dev/sdc
* где vg01 — произвольное имя создаваемой группы; /dev/sdb, /dev/sdc — наши диски.
Просмотреть информацию о созданных группах можно командой:
На что мы получим, примерно, следующее:
3. Создание логических томов
Последний этап — создание логического раздела их группы томов командой lvcreate. Ее синтаксис:
Примеры создания логических томов:
* создание тома на 1 Гб из группы vg01.
* создание тома с именем lv01 на 50 Мб из группы vg01.
* при создании тома используется 40% от дискового пространства группы vg01.
* использовать все свободное пространство группы vg01 при создании логического тома.
* также можно использовать %PVS — процент места от физического тома (PV); %ORIGIN — размер оригинального тома (применяется для снапшотов).
Посмотрим информацию о созданном томе:
Создание файловой системы и монтирование тома
Чтобы начать использовать созданный том, необходимо его отформатировать, создав файловую систему и примонтировать раздел в каталог.
Файловая система
Процесс создания файловой системы на томах LVM ничем не отличается от работы с любыми другими разделами.
Например, для создания файловой системы ext4 вводим:
* vg01 — наша группа томов; lv01 — логический том.
Для создания, например, файловой системы xfs вводим:
Монтирование
Как и в случае с файловой системой, процесс монтирования не сильно отличается от разделов, созданных другими методами.
Для разового монтирования пользуемся командой:
mount /dev/vg01/lv01 /mnt
* где /dev/vg01/lv01 — созданный нами логический том, /mnt — раздел, в который мы хотим примонтировать раздел.
Для постоянного монтирования раздела добавляем строку в fstab:
/dev/vg01/lv01 /mnt ext4 defaults 1 2
* в данном примере мы монтируем при загрузке системы том /dev/vg01/lv01 в каталог /mnt; используется файловая система ext4.
Проверяем настройку fstab, смонтировав раздел:
Проверяем, что диск примонтирован:
Просмотр информации
Разберемся, как получить информацию о дисковых накопителях в системе.
1. Для общего представления дисков, разделов и томов вводим:
Мы получим что-то на подобие:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 29G 0 part
sys-root 253:0 0 27G 0 lvm /
sys-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
vg01-lv01-real 253:3 0 1G 0 lvm
vg01-lv01 253:2 0 1G 0 lvm /mnt
vg01-sn01 253:5 0 1G 0 lvm
sdc 8:32 0 1G 0 disk
vg01-lv01-real 253:3 0 1G 0 lvm
vg01-lv01 253:2 0 1G 0 lvm /mnt
vg01-sn01 253:5 0 1G 0 lvm
vg01-sn01-cow 253:4 0 500M 0 lvm
vg01-sn01 253:5 0 1G 0 lvm
sdd 8:48 0 1G 0 disk
* как видим, команда отображает корневое блочное устройство, какие разделы из него сделаны и в какие логические тома организованы из некоторых из разделов.
2. Получить информацию о проинициализированных для LVM дисков:
Настройка и управление LVM разделами в Linux
LVM (Logical Volume Manager) – подсистема операционных систем Linux, позволяющая использовать разные области физического жесткого диска или разных жестких дисков как один логический том. LVM встроена в ядро Linux и реализуется на базе device mapper.
Главные преимущества LVM – высокий уровень абстракции от физических дисков, гибкость и масштабируемость. Вы можете на лету изменять размер логического тома, добавлять (и удалять) новые диски. Для LVM томов поддерживается зекалирование, снапшоты (persistent snapshot) и striping (расслоение данных между несколькими дисками с целью увеличения производительности).
В данной статье мы рассмотрим использование LVM разделов на примере Linux CentOS 8, покажем процесс объединения двух дисков в одну группу LVM, посмотрим как создавать группы, тома, монтировать, расширять и уменьшать размер LVM разделов.
Прежде всего нужно разобраться с уровнями дисковых абстракций LVM.
Установка утилиты lvm2
Чтобы начать работу с LVM, нужно установить утилиту lvm2. Выполним следующие команды:
apt-get install lvm2 — для Ubuntu, Mint, Debian
yum install lvm2 – для Centos, Red-Hat, Fedora
В разных версиях Linux отличается только способ установки утилиты lvm2 (установка через yum/dnf или apt-get), дальнейшие команды для работы с LVM, одинаковы.
Создание LVM разделов
Итак, у нас имеется виртуальная машина KVM, к которой подключены два дополнительных диска. Проверим, что они доступны в системе, используя команду:
При настройке LVM на своем виртуальном или физическом сервере, используйте свою маркировку дисков.
Чтобы диски были доступны для LVM, их нужно пометить (инициализировать) утилитой pvcreate:
pvcreate /dev/vdb /dev/vdc
Теперь, чтобы убедиться, что данные диски можно использовать для LVM, введите команду pvdisplay:
Как видим, оба диска отображаются. Разберем информацию из вывода команды:
С помощью команды pvscan вы можете просканировать диски на предмет PV.
Следующий этап – создание группы томов. Для создания групп томов используется команда vgcreate. Чтобы объединить ранее помеченные диски, воспользуемся командой:
# vgcreate test /dev/vdb /dev/vdc
Чтобы проверить результат введите vgdisplay:
Как видим, диски объединены в группу test и VG Size показывает общий размер дисков.
Разберем информацию из листинга команды vgdisplay:
После того, как мы создали общую группу для дисков, мы можем создать логический том на этой группы. При создании тома, используется команда lvcreate.
Чтобы в вашей группе создать логический том определенного размера и именем, используйте команду:
Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.
Если вы хотите сами задать имя, используйте флаг -n:
Несколько примеров для создания логических томов с разными размерами:
Чтобы вывести информацию о логическом томе, используйте lvdisplay:
Так же разберем листинг данной команды:
LVM: создание файловой системы, монтирование логического тома
Чтобы создать файловую систему на логическом томе, воспользуйтесь утилитой mkfs:
Создадим файловую систему ext4 на LVM томе:
Файловая система была создана без ошибок.
Теперь создадим тестовую директорию и примонтируем логический том к данной директории:
# mkdir /var/www/home
# mount /dev/test/test1 /var/www/home/
Как видите, все прошло без ошибок и теперь директория /var/www/home существует как отдельный раздел.
Чтобы логический том монтировался при загрузке системы, нужно добавить его в fstab и назначить директорию для монтирования.
Откроем файл:
nano /etc/fstab
И добавим в него следующую информацию:
Чтобы проверить общую информацию по дискам, разделам и томам, введите команду lsblk:
Как видим, наш созданный том отображается, и указана директория к которой он примонтирован.
Команда lvmdiskscan позволяет просканировать доступные диски, показывает их размер и принадлежность к LVM.
Увеличение логического тома LVM
Чтобы добавить дополнительный диск к группе томов, нужно воспользоваться уже знакомой схемой:
pvcreate /dev/нашдиск — инициализация диска для lvm
vgextend test /dev/нашдиск — добавление диска в группу томов
Чтобы расширить логический том, воспользуйтесь следующей схемой:
Данным способом вы расширите раздел на 10 Гб.
Еще несколько примеров расширения LVM раздела:
Осталось увеличить раздел файловой системы:
resize2fs /dev/test/test1 – для ext4
xfs_growfs /dev/test/test1 – для xfs
Уменьшение LVM томов
LVM позволяют уменьшать размер тома. Но для безопасности умеьшения размера раздела его нужно отключить.
Отмонтируем том от директории:
Выполним проверку диска:
Уменьшим раздел файловой системы на 4 Гб:
# resize2fs /dev/test/test1 4G
Теперь уменьшим размер самого LVM тома:
После чего, нужно примонтировать том обратно и проверить текущий размер:
Как видим, размер уменьшился до 4 Гб.
Удаление LVM групп и томов
Для удаления LVM томов, используется команда lvremove:
Чтобы удалить группу логических томов, используйте:
Убрать метки с LVM дисков:
# pvremove /dev/vdb /dev/vdc
Создание зеркальных томов LVM
LVM позволяет создать зеркальные тома для повышения отказоустойчивости хранения данных. В LVM зеркале данные одновременно хранятся на двух (или более) физических дисках (подобие RAID-1). Процедура создания зеркального тома в LVM.
Инструменты LVM очень удобны для работы, с помощью них можно легко управлять томами, нарезать их на нужные вам размеры и с легкостью использовать под свои нужды. В данной статье я постарался затронуть все основные моменты в работе с LVM.
Монтирование и управление LVM-томами на Android Linux Deploy. Часть 2
В этом руководстве мы рассмотрим создание и монтирование LVM томов на рутованном устройстве Android. Это вторая часть моего проекта «Резервный сервер на Android», но она будет на 80% состоять из работы с LVM и лишь на 20% с UrBackup/Linux Deploy. Первая часть доступна здесь.
По итогам предыдущей части мы развернули Debian 10 на рутованном телефоне Android, установили UrBackup сервер и подключили клиента. Для завершения этой части руководства вам потребуется кое-какое дополнительное оборудование:
Для начала мы вкратце познакомимся с LVM (менеджер логических томов). Понимание этого инструмента пригодится вам в принципе, а в данном случае существенно упростит процесс расширения резервного хранилища в будущем. Вот схематичное представление принципа действия LVM:
Надеюсь, эта схема поможет вам разобраться, как он работает. По существу, вам нужно понимать следующее:
При помощи LVM можно с легкостью брать неиспользуемое пространство хранилища и переопределять его в нужную область. Без LVM потребуется задействовать новые, более емкие устройства хранения, а затем переносить данные на эти устройства, расширяя тем самым хранилище.
После этого старые устройства меньшего размера у нас остаются без использования. Надеюсь, сейчас вам стало более понятно, если же нет, то ничего страшного. Сегодня наш процесс будет более линеен:
Если вы думаете, что: «Как-то все неоправданно усложнено», то ошибаетесь. Было бы глупо, если бы LVM использовался только для этого. Мы же в основном применяем его, чтобы в дальнейшем иметь возможность делать следующее:
Настроив блочное устройство хранения с помощью LVM, мы сможем легко добавлять к нему хранилище позднее без необходимости переноса данных на устройства большего объема. Можно просто добавить еще одно устройство в группу томов и расширить логический том БЕЗ потери данных. На деле это легко как 1 + 1 = 2. Если в ходе чтения руководства вы где-то запутаетесь, то вернитесь к этим схемам и определите, в какой именно части процесса находитесь.
Шаг 1. Создание логического тома из внешнего хранилища
Предполагается, что вы авторизованы как root-пользователь.
Это касается только среды Linux Deploy. В нормальной среде Linux делать этого не нужно. В Linux Deploy udev будет вызывать различные ошибки в процессе LVM.
Найдите следующие строки:
Сохранитесь и выйдите.
Примечание: Вы по-прежнему можете получать ошибки, утверждающие: «Kernel not configured for semaphores (System V IPC). Not using udev synchronisation code.» Игнорируйте.
C. Определение имени для устройства хранения.
Подключите USB-хаб и внешнее устройство хранения. На сервере введите:
Эта команда выведет список устройств и разделов. Найдите тот, что совпадает с вашим (размером и # разделов).
D. Разбиение диска на разделы:
Мы будем разбирать процесс с нуля, поэтому данный раздел я удалю. Это необязательно, и вы можете оставить существующие разделы.
Очистив таблицу разделов, я отформатирую диск в DOS/MBT:
Это относится только к среде Debian в Linux Deploy. В обычной среде Linux для LVM нет разницы MBT или GPT, потому что эта сигнатура все равно будет в последствии стерта.
Теперь можно либо создать раздел для использования только части блочного устройства, либо задействовать устройство целиком.
Для использования всего пространства диска укажите следующую команду и выйдите:
Если же вам нужен раздел, то эту:
Для применения установок по умолчанию просто жмите Ввод (как показано красными рамками ниже). В пункте настройки последнего сектора можете прописать, какой объем раздела вам нужен, указав + и размер в кибибайтах (К), мебибайтах (М), гибибайтах (G), тебибайтах (T) или пебибайтах (P).
E. Создайте физический том для раздела:
F. Создайте группу томов с физическим томом:
После создания проверьте детали группы томов:
Эта команда покажет статус всех групп томов.
Именно в эту группу вы будете добавлять физические тома, если захотите расширить резервное хранилище в будущем.
G. Создайте из группы логический том:
Т.е. volume_group_name (тире) logical_volume_name
H. Отформатируйте логический том в EXT4:
Шаг 2. Монтирование логического тома
Примечание: после того, как блочное устройство будет смонтировано, для последующего физического отсоединения сначала нужно будет его размонтировать либо отключить сервер. Отсоединение без предварительного размонтирования скорее всего приведет к утрате всех данных.
C. Убедитесь, что том смонтирован должным образом.
Для этого подключитесь через SSH к серверу. Выполните:
D. Убедитесь, что пользователь «urbackup» по-прежнему обладает разрешениями для использования резервной директории.
В родительском каталоге резервной директории выполните:
Подробно читайте в Части 1. Если кратко:
E. Авторизуйтесь в веб-интерфейсе UrBackup. Если UrBackup не сможет обратиться к резервной директории, то вы сразу увидите предупреждение. Если оно не возникает, значит все завершилось успешно. Можете приступать к резервному копированию.
(На будущее) Добавление хранилища
A. Создайте логический том по шагам 1.С — 1.E
B. Расширьте группу томов:
Убедитесь, что операция vgextend прошла успешно:
VG Size должен отражать добавление физического тома.
C. Расширьте логический том:
Замените +200G значением, на которое хотите расширить логический том.
Убедитесь, что lvextend выполнена успешно:
LV Size должен отражать произведенное расширение.
D. Измените размер файловой системы, чтобы он соответствовал логическому тому:
E. Убедитесь, что новый размер отражается в точке монтирования:
На этом все! Разве не сильно проще, чем переносить все данные на новый диск?
Монтирование диска в linux lvm
Повесть о Linux и LVM (Logical Volume Manager).
Автор: Иван Песин
Содержание
Введение.
Реализации менеджеров логических томов существуют практически во всех UNIX-подобных операционных системах. Зачастую они сильно отличаются в реализации, но все они основаны на одинаковой идее и преследуют аналогичные цели. Одна из основных реализаций была выполнена Open Software Foundation (OSF) и сейчас входит в состав многих систем, например IBM AIX, DEC Tru64, HP/UX. Она же послужила и основой для Linux-реализации LVM.
Данная статья является переработкой и дополнением LVM-HOWTO.
Терминология.
Поскольку система управления логическими томами использует собственную модель представления дискового пространства, нам будет необходимо определиться с терминами и взаимосвязями понятий. Рассмотрим схему, основанную на диаграмме Эрика Бегфорса (Erik Bеgfors), приведенную им в списке рассылки linux-lvm. Она демонстрирует взаимосвязь понятий системы LVM:
Обозначения и понятия:
Администратор может выбрать алгоритм отображения логических экстентов в физические. На данный момент доступны два алгоритма:
Похожая схема используется в работе RAID нулевого уровня. В некоторых ситуациях этот алгоритм отображения позволяет увеличить производительность логического тома. Однако он имеет значительное ограничение: логический том с данным отображением не может быть расширен за пределы физических томов, на которых он изначально и создавался.
Работа с LVM
Давайте теперь рассмотрим задачи, стоящие перед администратором LVM системы. Помните, что для работы с системой LVM ее нужно инициализировать командами:
Первая команда сканирует диски на предмет наличия групп томов, вторая активирует все найденные группы томов. Аналогично для завершения всех работ, связанных с LVM, нужно выполнить деактивацию групп:
Первые две строки нужно будет поместить в скрипты автозагрузки (если их там нет), а последнюю можно дописать в скрипт shutdown.
Инициализация дисков и разделов
Перед использованием диска или раздела в качестве физического тома необходимо его инициализировать:
Эта команда создает в начале диска дескриптор группы томов.
Эти команды уничтожат таблицу разделов на целевом диске.
Установите программой fdisk тип раздела в 0x8e.
Команда создаст в начале раздела /dev/hdb1 дескриптор группы томов.
Создание группы томов
Для создания группы томов используется команда ‘vgcreate’
Замечание: если вы используете devfs важно указывать полное имя в devfs, а не ссылку в каталоге /dev. Таким образом приведенная команда должна выглядеть в системе с devfs так:
Кроме того, вы можете задать размер экстента при помощи ключа «-s», если значение по умолчанию в 32Мб вас не устраивает. Можно, также, указать ограничения возможного количества физических и логических томов.
Активация группы томов
Удаление группы томов
Убедитесь, что группа томов не содержит логических томов. Как это сделать, показано в следующих разделах.
Деактивируйте группу томов:
Теперь можно удалить группу томов командой:
Добавление физических томов в группу томов
Для добавления предварительно инициализированного физического тома в существующую группу томов используется команда ‘vgextend’:
Удаление физических томов из группы томов
Убедитесь, что физический том не используется никакими логическими томами. Для этого используйте команду ‘pvdisplay’:
Если же физический том используется, вам нужно будет перенести данные на другой физический том. Эта процедура будет описана в следующих разделах.
После этого можно использовать ‘vgreduce’ для удаления физических томов:
Создание логического тома
Для того, чтобы создать логический том «lv00», размером 1500Мб, выполните команду:
Для создания логического тома размером в 100 логических экстентов с расслоением по двум физическим томам и размером блока данных 4 KB:
Если вы хотите создать логический том, полностью занимающий группу томов, выполните команду vgdisplay, чтобы узнать полные размер группы томов, после чего используйте команду lvcreate.
Эти команды создают логический том testvg, полностью заполняющий группу томов.
Удаление логических томов
Логический том должен быть размонтирован перед удалением:
Увеличение логических томов
Для увеличения логического тома вам нужно просто указать команде lvextend до какого размера вы хотите увеличить том:
В результате /dev/vg00/home увеличится до 12Гбайт.
Эта команда увеличивает размер логического тома на 1Гб.
После того как вы увеличили логический том, необходимо соответственно увеличить размер файловой системы. Как это сделать зависит от типа используемой файловой системы.
По умолчанию большинство утилит изменения размера файловой системы увеличивают ее размер до размера соответствующего логического тома. Так что вам не нужно беспокоится об указании одинаковых размеров для всех команд.
Если вы не пропатчили ваше ядро патчем ext2online, вам будет необходимо размонтировать файловую систему перед изменением размера:
Если у вас нет пакета e2fsprogs 1.19 его можно загрузить с сайта ext2resize.sourceforge.net.
Для файловой системы ext2 есть и другой путь. В состав LVM входит утилита e2fsadm, которая выполняет и lvextend, и resize2fs (она также выполняет и уменьшение размера файловой системы, это описано в следующем разделе). Так что можно использовать одну команду:
что эквивалентно двум следующим:
Замечание: вам все равно нужно будет размонтировать файловую систему перед выполнением e2fsadm.
Увеличивать размер файловых систем Reiserfs можно как в смонтированном, так и в размонтированном состоянии.
Увеличить размер смонтированной файловой системы:
Увеличить размер размонтированной файловой системы:
Размер файловой системы XFS можно увеличить только в смонтированном состоянии. Кроме того, утилите в качестве параметра нужно передать точку монтирования, а не имя устройства:
Уменьшение размера логического тома
Логические тома могут быть уменьшены в размере, точно также как и увеличены. Однако очень важно помнить, что нужно в первую очередь уменьшить размер файловой системы, и только после этого уменьшать размер логического тома. Если вы нарушите последовательность, вы можете потерять данные.
При использовании файловой системы ext2, как уже указывалось ранее, можно использовать команду e2fsadm:
Если вы хотите выполнить операцию по уменьшению логического тома вручную, вам нужно знать размер тома в блоках:
При уменьшении размера файловой системы Reiserfs, ее нужно размонтировать:
Уменьшить размер файловой системы XFS нельзя.
Примечание: обратите внимание на то, что для уменьшения размера файловых систем, необходимо их размонтировать. Это вносит определенные трудности, если вы желаете уменьшить размер корневой файловой системы. В этом случае можно применить следующий метод: загрузится с CD дистрибутива, поддерживающего LVM. Перейти в командный режим (обычно это делается нажатием клавиш Alt+F2) и выполнить команды сканирования и активации группы томов:
Теперь вы имеете доступ к логическим томам и можете изменять их размеры:
Перенос данных с физического тома
Для того, чтобы можно было удалить физический том из группы томов, необходимо освободить все занятые на нем физические экстенты. Это делается путем перераспределения занятых физических экстентов на другие физические тома. Следовательно, в группе томов должно быть достаточно свободных физических экстентов. Описание операции удаления физического тома приведено в разделе примеров.
Примеры
Настройка LVM на трех SCSI дисках
В первом примере мы настроим логический том из трех SCSI дисков. Устройства дисков: /dev/sda, /dev/sdb и /dev/sdc.
Перед добавлением в группу томов диски нужно инициализировать:
После выполнения этих команд в начале каждого диска создастся область дескрипторов группы томов.
Теперь создадим группу томов vg01, состоящую из этих дисков:
Проверим статус группы томов командой vgdisplay:
Обратите внимание на первые три строки и строку с общим размером группы томов. Она должна соответствовать сумме всех трех дисков. Если всё в порядке, можно переходить к следующей задаче:
Создание логического тома
После успешного создания группы томов, можно начать создавать логические тома в этой группе. Размер тома может быть любым, но, естественно, не более всего размера группы томов. В этом примере мы создадим один логический том размером 1 Гб. Мы не будем использовать «расслоение», поскольку при этом невозможно добавить диск в группу томов после создания логического тома, использующего данный алгоритм.
Создание файловой системы
Создадим на логическом томе файловую систему ext2:
Тестирование файловой системы
Смонтируйте логический том и проверьте все ли в порядке:
Если вы все сделали правильно, у вас должен появиться логический том с файловой системой ext2, смонтированный в точке /mnt.
Создание логического тома с «расслоением»
Рассмотрим теперь вариант логического тома, использующего алгоритм «расслоения». Как уже указывалось выше, минусом этого решения является невозможность добавления дополнительного диска.
Процедура создания данного типа логического тома также требует инициализации устройств и добавления их в группу томов, как это уже было показано.
Для создания логического тома с «расслоением» на три физических тома с блоком данных 4Кб выполните команду:
После чего можно создавать файловую систему на логическом томе.
Добавление нового диска
Рассмотрим систему со следующей конфигурацией:
Как видно из листинга, группы томов «dev» и «ops» практически заполнены. В систему добавили новый диск /dev/sdg. Его необходимо разделить между группами «ops» и «dev», поэтому разобьем его на разделы:
Перед тем как добавить разделы в группу томов, их необходимо инициализировать:
Теперь можно добавлять физические тома в группы томов:
Наконец, увеличим размеры логических томов и расширим файловые системы до размеров логических томов:
Нам осталось смонтировать системы и посмотреть их размеры:
Резервное копирование при помощи «снапшотов»
Развивая приведенный пример, предположим, что нам нужно выполнить резервирование базы данных. Для этой задачи мы будем использовать устройство-«снапшот».
Этот тип устройства представляет собой доступную только на чтение копию другого тома на момент выполнения процедуры «снапшот». Это дает возможность продолжать работу не заботясь о том, что данные могут измениться в момент резервного копирования. Кроме того, нам не нужно останавливать работу базы данных на время выполнения резервного копирования.
В группе томов ops у нас осталось около 600Мб свободного места, его мы и задействуем для «снапшот»-устройства. Размер «снапшот»-устройства не регламентируется, но должен быть достаточен для сохранения всех изменений, которые могут произойти за его время жизни. 600Мб должно хватить для наших целей:
Если вы делаете «снапшот» файловой системы XFS, нужно выполнить на смонтированной файловой системе команду xfs_freeze, и лишь после этого создавать «снапшот»:
Если устройство-«снапшот» полностью заполняется, оно автоматически деактивируется. В этом случае «снапшот» не может более использоваться, потому крайне важно выделять достаточное пространство для него.
После того как мы создали «снапшот», его нужно смонтировать:
Если вы работаете с файловой системой XFS, вам будет нужно при монтировании указать опцию nouuid:
Выполним резервное копирование раздела:
После выполнения необходимых процедур, нужно удалить устройство-«снапшот»:
Удаление диска из группы томов
Скажем, вы хотите освободить один диск из группы томов. Для этого необходимо выполнить процедуру переноса использующихся физических экстентов. Естественно, что на других физических томах должно быть достаточно свободных физических экстентов.
После окончания процедуры переноса, удалите физический том из группы томов:
Теперь данный диск может быть физически удален из системы или использован в других целях. Например, добавлен в другую группу томов.
Перенос группы томов на другую систему
Физический перенос группы томов на другую систему организовывается при помощи команд vgexport и vgimport.
Сперва необходимо размонтировать все логические тома группы томов и деактивировать группу:
После этого экспортируем группу томов. Процедура экспорта запрещает доступ к группе на данной системе и готовит ее к удалению:
Теперь можно выключить машину, отсоединить диски, составляющие группу томов и подключить их к новой системе. Остается импортировать группу томов на новой машине и смонтировать логические тома:
Все! Группа томов готова к использованию на новой системе.
Конвертация корневой файловой системы в LVM
В данном примере имеется установленная система на двух разделах: корневом и /boot. Диск размером 2Гб разбит на разделы следующим образом:
Корневой раздел занимает все пространство, оставшееся после выделения swap и /boot разделов. Главное требование, предъявляемое к корневому разделу в нашем примере: он должен быть более чем на половину пуст. Это нужно, чтобы мы могли создать его копию. Если это не так, нужно будет использовать дополнительный диск. Процесс при этом останется тот же, но уменьшать корневой раздел будет не нужно.
Для изменения размера файловой системы мы будем использовать утилиту GNU parted.
Загрузитесь в однопользовательском режиме, это важно. Запустите программу parted для уменьшения размера корневого раздела. Ниже приведен пример диалога с утилитой parted:
Изменим размер раздела:
Создадим новый раздел:
Этот раздел будет содержать LVM. Он должен начинаться после раздела hda3 и заканчиваться в конце диска.
Выйдите из утилиты parted:
Перезагрузите систему. Убедитесь, что ваше ядро содержит необходимые установки. Для поддержки LVM должны быть включены параметры CONFIG_BLK_DEV_RAM и CONFIG_BLK_DEV_INITRD.
Для созданного раздела необходимо изменить тип на LVM (8e). Поскольку parted не знает такого типа, воспользуемся утилитой fdisk:
Инициализируем LVM, физический том; создаем группу томов и логический том для корневого раздела:
Создадим теперь файловую систему на логическом томе и перенесем туда содержимое корневого каталога:
Отредактируйте файл /mnt/etc/fstab на логическом томе соответствующем образом. Например, строку:
Создаем образ initrd, поддерживающий LVM:
Внимательно изучите вывод команды. Обратите внимание на имя
нового образа и его размер. Отредактируйте файл /etc/lilo.conf. Он
должен выглядеть приблизительно следующим образом:
После этого файл lilo.conf нужно скопировать и на логический том:
Выполните команду lilo:
Перезагрузитесь и выберите образ lvm. Для этого введите «lvm» в ответ на приглашение LILO. Система должна загрузится, а корневой раздел будет находиться на логическом томе.
После того как вы убедитесь, что все работает нормально, образ lvm нужно сделать загружаемым по умолчанию. Для этого укажите в конфигурационном файле LILO строку default=lvm, и выполните команду lilo.
Наконец, добавьте оставшийся старый корневой раздел в группу томов. Для этого измените тип раздела утилитой fdisk на 8е, и выполните команды:
Организация корневой файловой системы в LVM для дистрибутива ALT Master 2.2
При установке данного дистрибутива оказалось невозможным разместить корневой раздел в системе LVM. Связано это с тем, как выяснилось позже, что в ядре, поставляемом с данным дистрибутивом, поддержка файловой системы ext2 организована в виде загружаемого модуля. Образ же initrd использует файловую систему romfs, поддержка которой вкомпилирована в ядро. При выполнении команды lvmcreate_initrd генерируется файл-образ initrd с системой ext2. Если после этого вы попытаетесь загрузиться, то получите примерно следующее:
И копируйте туда модули, необходимые для работы с вашими дисковыми накопителями и файловыми системами (если они не вкомпилированы в ядро). Так, для системы с RAID-контроллером ICP-Vortex и корневой файловой системой reiserfs нужны модули: gdth.o mod_scsi.o sd_mod.o reiserfs.o. Добавьте их загрузку в файл /mnt/initrd/linuxrc.
Обратите внимание на оставшееся свободное место на образе:
В файловой системе должно быть свободно еще 200-300Кб, в зависимости от вашей LVM-конфигурации. Если же у вас ситуация похожа на приведенную в листинге, будет необходимо создать новый образ, с большим размером файловой системы и повторить операции добавления модулей.
Наконец, отмонтируйте образ, сожмите его, запустите программу lilo и перезагрузитесь:
Заключение
Система управления логическими томами особенно полезна в работе с серверами, поскольку обеспечивает масштабируемость и удобное управление дисковым пространством. Она упрощает планирование дискового пространства и предотвращает проблемы, возникающие при неожиданно быстром росте занятого места в разделах. LVM не предназначен для обеспечения отказоустойчивости или высокой производительности. Потому он часто используется в сочетании с системами RAID.
Copyright (c) 2003, Ivan Pesin
















