Администраторы linux знают, что в системе есть несколько каталогов, размер которых сложно прогнозировать. Например, каталог /var, который присутствует в большинстве UNIX систем. Размер этого каталога очень сложно предугадать, по этой причине он так и называется (сокр. от variable – англ. изменчивый). Так же ярким примером каталога, размер которого сложно прогнозировать – каталог /home.
Что делать, если на разделе, подмонтированном в /var, место закончилось и есть другой жесткий диск? Решений проблемы несколько. Например, можно скопировать данные из /var на новый жесткий диск (который, предположительно, бОльшего размера) и подмонтировать его в существующую систему. Вариант неудобный и неэкономный.
Данную проблему можно не решать, а просто пресечь ее на корню: создать массив логических томов LVM2 (Logical Volume Manager – англ. менеджер логических томов). Этой теме и посвящен мой пост.
LVM представляет собой дополнительный слой между физическими разделами носителя и файловой системой. Схема следующая: физические разделы разбиваются на экстенты (англ. протяженность), которые представляют собой непрерывные блоки носителя. Экстенты собираются в группу томов, которые, разбиваются на логические тома, на которые, в итоге, записывается файловая система. Логические тома в пространстве пользователя будут видны как обычные блочные устройства, которые необходимо отформатировать и примонтировать, чтобы получить к ним доступ. Экстенты логического тома могу находиться на разных физических устройствах, на RAID массивах, а так же сами могут быть распределены подобно RAID.
Преимуществом данного подхода является то, что размеры томов (а в терминологии LVM – количество экстент) можно изменять не выключая сервер и, в зависимости от файловой системы изменяемого раздела, без отмонтирования.
Начем с установки системы. Основное ограничение при использовании LVM массивов – они не могут быть загрузочными, их попросту не поддерживают загрузчики. Поэтому необходимо раздел /boot выносить как отдельный раздел. Всю остальную систему можно устанавливать на массив.
Целевая система будет установлена на жесткий диск 10Гб, который, затем, будем расширять. Пример приводится на основе дистрибутива Red Hat Enterprise Linux 5. Доходим до момента разбивки дисков, выбираем «Custom Partitioning» и попадаем в утилиту работы с разделами (раньше она называлась Disk Druid, сейчас, возможно, название изменилось).

Видим 10 гигабайт не размеченного пространства, создадим раздел /boot размера 100 Мб. Теперь наша таблица разделов имеет следующий вид:

Оставшееся место пометим как LVM массив. Для этого нажмем кнопку «New», выберим тип файловой системы «physical volume (LVM)», заполним все доступное пространство и нажмем «ОК». Наша таблица разделов приняла следующий вид:

Таким образом, у нас теперь есть 2 основных раздела. LVM-раздел будет как бы контейнером для нашей корневой файловой системы. Дадим разделу /var и разделу /home по 2Гб, разделу /usr – 3Гб, а оставшееся место оставим под все остальное. Разделы уже создаем не в основной таблице разделов, а в LVM массиве, поэтому нажимаем кнопку «LVM». Видим меню настройки массива. Здесь можно установить размер экстента и создать разделы. Оставим настройки по умолчанию, и нажмем кнопку «Add» для добавления раздела. Видим следующее меню:

Сначала создадим раздел /var: укажем точку монтирования, тип ФС, при желании поменяем имя тома, укажем размер и том создан. Таким же образом создаем все тома и получаем такую таблицу:

К сожалению, окно не меняет размер и раздел /var съехал вверх. Но основной смысл понятен: тома созданы и их список видно в основном меню в группе «LVM Volume Groups». Теперь продолжаем установку системы как обычно.
В следующей части я опишу как, собственно, работать с LVM массивами: управлять размерами разделов, добавлять в массив новые физические носители и т.д. Если мне не дадут инвайт, или совсем интересно что будет дальше — можно увидеть черновик следующих частей в моем блоге.
Что делать, если на разделе, подмонтированном в /var, место закончилось и есть другой жесткий диск? Решений проблемы несколько. Например, можно скопировать данные из /var на новый жесткий диск (который, предположительно, бОльшего размера) и подмонтировать его в существующую систему. Вариант неудобный и неэкономный.
Данную проблему можно не решать, а просто пресечь ее на корню: создать массив логических томов LVM2 (Logical Volume Manager – англ. менеджер логических томов). Этой теме и посвящен мой пост.
LVM представляет собой дополнительный слой между физическими разделами носителя и файловой системой. Схема следующая: физические разделы разбиваются на экстенты (англ. протяженность), которые представляют собой непрерывные блоки носителя. Экстенты собираются в группу томов, которые, разбиваются на логические тома, на которые, в итоге, записывается файловая система. Логические тома в пространстве пользователя будут видны как обычные блочные устройства, которые необходимо отформатировать и примонтировать, чтобы получить к ним доступ. Экстенты логического тома могу находиться на разных физических устройствах, на RAID массивах, а так же сами могут быть распределены подобно RAID.
Преимуществом данного подхода является то, что размеры томов (а в терминологии LVM – количество экстент) можно изменять не выключая сервер и, в зависимости от файловой системы изменяемого раздела, без отмонтирования.
Начем с установки системы. Основное ограничение при использовании LVM массивов – они не могут быть загрузочными, их попросту не поддерживают загрузчики. Поэтому необходимо раздел /boot выносить как отдельный раздел. Всю остальную систему можно устанавливать на массив.
Целевая система будет установлена на жесткий диск 10Гб, который, затем, будем расширять. Пример приводится на основе дистрибутива Red Hat Enterprise Linux 5. Доходим до момента разбивки дисков, выбираем «Custom Partitioning» и попадаем в утилиту работы с разделами (раньше она называлась Disk Druid, сейчас, возможно, название изменилось).

Видим 10 гигабайт не размеченного пространства, создадим раздел /boot размера 100 Мб. Теперь наша таблица разделов имеет следующий вид:

Оставшееся место пометим как LVM массив. Для этого нажмем кнопку «New», выберим тип файловой системы «physical volume (LVM)», заполним все доступное пространство и нажмем «ОК». Наша таблица разделов приняла следующий вид:

Таким образом, у нас теперь есть 2 основных раздела. LVM-раздел будет как бы контейнером для нашей корневой файловой системы. Дадим разделу /var и разделу /home по 2Гб, разделу /usr – 3Гб, а оставшееся место оставим под все остальное. Разделы уже создаем не в основной таблице разделов, а в LVM массиве, поэтому нажимаем кнопку «LVM». Видим меню настройки массива. Здесь можно установить размер экстента и создать разделы. Оставим настройки по умолчанию, и нажмем кнопку «Add» для добавления раздела. Видим следующее меню:

Сначала создадим раздел /var: укажем точку монтирования, тип ФС, при желании поменяем имя тома, укажем размер и том создан. Таким же образом создаем все тома и получаем такую таблицу:

К сожалению, окно не меняет размер и раздел /var съехал вверх. Но основной смысл понятен: тома созданы и их список видно в основном меню в группе «LVM Volume Groups». Теперь продолжаем установку системы как обычно.
В следующей части я опишу как, собственно, работать с LVM массивами: управлять размерами разделов, добавлять в массив новые физические носители и т.д. Если мне не дадут инвайт, или совсем интересно что будет дальше — можно увидеть черновик следующих частей в моем блоге.