Разбиение дисков и инсталляция Linux на LVM (часть 3).
АрхивЛинуксоид (архив)Последняя часть статьи о LVM и Linux
1. Общий взгляд на процедуру resizefs.
В общем виде пошаговая инструкция расширения файловой системы на логическом томе выглядит так.
- увеличиваем размер логического тома на необходимую величину.
- расширяем файловую систему до заполнения всего тома.
Пошаговая инструкция по усечению файловой системы имеет обратную последовательность.
- усекаем файловую систему до нужного размера.
- усекаем логический том под новый размер файловой системы.
Подобная инструкция предполагает точный расчёт, на практике предпочтение следует отдать трех шаговому решению.
- усекаем файловую систему «с запасом».
- усекаем логический том до нужного размера.
- расширяем файловую систему до заполнения всего тома.
Асимметрия по уровню сложности подводит к мысли, что, создавая логические тома лучше «недосолить», чем «пересолить». Расширить том и находящуюся на нём файловую систему труда не составит (не все файловые системы поддерживают усечение, а где эта функция есть, сохранность находящихся в файловой системе данных подвергается более высокому риску). Уровень VG позволяет иметь «золотой запас» дисковых ресурсов и следует приучить себя его иметь. Это может потребоваться не только для resize файловых систем, но и при появлении bad блоков, для создания snapshots и внеплановых разделов, для смены версий и типов файловых систем. Если ёмкость дисков позволяет, имейте запас превышающий размер самой большой файловой системы.
2. Расширение и усечение логического тома.
Увеличить существующий логический том (при наличии резерва у VG) можно либо указав его новый размер, или указав на какую величину необходимо расшириться. Команды будут следующими:
# lvextend -L3G /dev/LIN/tomusr
или
# lvextend -L+1G /dev/LIN/tomusr
В первом случае новый размер тома станет 3 Gb, во втором увеличится на 1 Gb (если первоначальный размер 2 Gb обе команды эквивалентны). Первая команда может как расширить, так и усечь существующий том, во втором случае для усечения достаточно поменять lvextend на:
# lvreduce -L-1G /dev/LIN/tomusr.
3. Файловая система ext2/3 и LVM.
В первозданном виде файловая система ext2 требует размонтирования перед операциями resize. Однако имеется patch (ext2online), снимающий это ограничение. Узнайте у поставщика вашего дистрибутива, поддерживает ли это ваше ядро. Увеличить размер non-patch ext2 под новый размер логического тома можно следующей последовательностью команд:
# umount /dev/LIN/tomusr
# lvextend -L+1G /dev/LIN/tomusr
# resize2fs /dev/LIN/tomusr
# mount /dev/LIN/tomusr /usr
Для усечения ext2 командой resize2fs следует отказаться от умолчания (по умолчанию файловая система заполняет весь имеющийся объём) и передать в виде параметра новый размер в файловых блоках:
# umount /usr
# resize2fs /dev/LIN/tomusr 54000
# lvreduce -L-1G /dev/LIN/tomusr
# resize2fs /dev/LIN/tomusr
# mount /usr
Обратите внимание, промежуточный размер файловой системы должен быть заведомо меньшим, чем новый размер логического тома, но достаточным для сохранения имеющихся данных.
Ещё одно замечание для классики. При создании ext2 определяется статический набор inodes, по умолчанию оптимизированный под размер файловой системы. При увеличении файловой системы может наблюдаться дефицит inodes, а при усечении их избыток. Критически относитесь к тому, в каких пределах можно расширять и усекать файловую классику.
4. Файловая система reiserfs и LVM.
Файловая система reiserfs может расширяться как в смонтированном, так и в размонтированном состоянии. Выбирайте как вам удобнее. Для увеличения размера:
# lvextend -L+3G /dev/LIN/tomhome
# resize_reiserfs -f /dev/LIN/tomhome
или
# umount /dev/LIN/tomhome
# lvextend -L+3G /dev/LIN/tomhome
# resize_reiserfs -f /dev/LIN/tomhome
# mount -treiserfs /dev/LIN/tomhome /home
Операция по уменьшению размера логического тома и файловой системы технически более сложная и может выполняться только на размонтированной fs.
# umount /home
# resize_reiserfs -s-4G /dev/LIN/tomhome
# lvreduce -L-3G /dev/LIN/tomhome
# resize_reiserfs -f /dev/LIN/tomhome
# mount -treiserfs /dev/LIN/tomhome /home
Замечание по промежуточному размеру файловой системы остаются в силе (обратите внимание, reiserfs понимает размер не в блоках). Файловые inodes создаются динамически по необходимости. Вы можете создать файловую систему размером 1 Gb и в дальнейшем растянуть её хоть на 100 Gb, при этом, не нарушив баланса между управляющими структурами и блоками данных.
5. Файловая система xfs и LVM.
Файловая система xfs в настоящее время не может усекаться (для серверов это не критично, для АРМ может представлять проблему). Увеличение размера происходит в смонтированном состоянии. Обратите внимание, в качестве аргумента следует передавать строго точку монтирования, но не имя устройства.
# lvextend -L+3G /dev/LIN/tomvar
# xfs_growfs /var
У команды xfs_growfs имеется множество опций. Ознакомьтесь с ними внимательно и разберитесь в особенностях этой сложной и высокопроизводительной файловой системы перед началом работы.
6. С чего лучше начать.
Обычно знакомство со всем новым начинается с того, как это новое создать и удалить. В случае с LVM классическое знакомство может запутать. Прежде чем приступить к чтению man pages и howto, уясните, какое значение в логике имеет «включить» и «выключить».
Создав все объекты для логики (последовательно, PV, VG, LV) и перезагрузив машину, можно испытать чувство дискомфорта, обнаружив, что всё недавно созданное вдруг стало недоступным. Одна из интересных и пугающих особенностей LVM в том, что логику перед началом работы необходимо активизировать. Файловые системы на логических томах могут находиться в трёх состояниях.
- файловая система смонтирована на активном логическом томе.
- файловая система размонтирована на активном логическом томе.
- файловая система размонтирована на неактивном логическом томе.
Те или иные административные работы с логикой могут требовать одного из трёх перечисленных статусов.
Процесс перевода логики из неактивного состояния в активный и обратно несимметричен (обычно выполняется автоматически при загрузке и остановке). Для активизации группы логических томов требуется две команды, обратный процесс выполняется одной. Активизации VG достигается последовательностью:
# vgscan
# vgchange -a y LIN
Первая команда самая загадочная. Она сканирует дескрипторы дисков и дисковых разделов, загружает драйверы для логики (в файловой системе /proc появляется подкаталог lvm), переписывает несколько текстовых и индексных файлов в подкаталоге /etc и возвращает код возврата «1» в случае успеха. В автоматических сценариях код возврата «1» обычно является условием для запуска второй команды. Аргумент «y» (иначе Yes) во второй команде – указание активизировать VG по имени «LIN» («n», иначе «No», снимет флаг активности с группы при условии, что все находящиеся на логических томах файловые системы размонтированы).
7. Эффект «хорошего соседа».
Для чего каждый раз перечитывать дисковые дескрипторы? Не будет ли достаточным создавать все необходимые структуры данных при создании логики и в дальнейшем ими пользоваться? Ведь пересоздание всех структур каждый раз с нуля сильно усложняет реализацию логики и работу с ней. Хорошо, допустим, на диске только одна операционная система и только в ней производится разбиение диска. Тогда такое поведение действительно нелогично. А если операционных систем несколько? А если имеются схемы загрузки на разные корневые файловые системы? А если диски переносились с одной машины на другую? Ни при каких обстоятельствах Linux не создаст проблем для своих соседей. И одно очень большое предупреждение. Опасайтесь использовать логику из операционных систем сомнительного качества.
8. Заключение.
Администратор имеет возможность выбирать не только между типами файловых систем с разными соотношениями надежности и скорости, но и использовать технологии, дополнительно влияющие на производительность и надежность. Зачем такое разнообразие? Неужели не существует одной, наилучшей рекомендации? Рекомендация есть – разбиение файловой системы linux на разделы. Заметьте, файлы в linux размещаются в дереве не по принципу принадлежности к тому или иному packages, а по функциональному назначению. Для каждой ветви файловой системы из имеющихся технологий можно подобрать наиболее приемлемую по комбинации свойств. Заканчиваю цитатой от – Крис Торек – «У UNIX есть свои недостатки, но файловая система к ним не относится».