Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

Почтовый клиент Trojita 0.7

Состоялся релиз открытой аппаратной платформы icoBoard 1.0

Релиз компилятора SDCC 3.6.0

Релиз Qt 5.7.0 и Qt Creator 4.0.2

Первый релиз Nextcloud, форка ownCloud

Релиз LibreCAD 2.1.0. Команде разработчиков нужна помощь!

Релиз SolveSpace 2.1

xterm 325

До конца года состоится выход российских смартфонов на ОС Sailfish

Duktape 1.5.0 - встраиваемый движок JavaScript

FreeBSD доступна в Azure Marketplace

Программа PyCon Russia 2016 готова

Perl 5.22.0

Релиз FastNetMon1.1.2 - открытого решения для мониторинга DoS/DDoS атак

xCube - светодиодная платформа за 37 долларов

Hg/Mercurial 3.4

Релиз Jython 2.7.0

Релиз OpenBSD 5.7

Вышел Stellarium 0.13.3

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Разбиение дисков и инсталляция Linux на LVM (часть 3).

Владимир Холманов (fmfm AT symmetron.msk.ru)

Части Первая, Вторая, Третья.

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 есть свои недостатки, но файловая система к ним не относится".

Части Первая, Вторая, Третья.


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2016 LinuxRSP