Основные моменты при развертывании сервера с использованием LVM (logical volume manager) менеджера логических томов.
1. Запускаем установщик в VMware готового дистрибутива Debian 12;
2. Доходим до раздела разметка дисков
И выбираем Вручную
3. Выбираем диск VMware для последующий разметки
4. Создать новую пустую таблицу разделов на этом устройстве
5. Выбираем снова наш диск
6. Создаем новый раздел
7. Выбираем максимальное место нового раздела
Первичный раздел (Primary Partition)
Первичный раздел — это основной тип раздела на жестком диске. В контексте MBR можно создать до четырёх первичных разделов на одном физическом диске.
1) Основные характеристики первичных разделов:
2) Количество: На диске может быть максимум четыре первичных раздела.
3) Использование: Один из первичных разделов может быть помечен как активный, с которого загружается операционная система.
4) Прямая загрузка: Операционная система может загружаться непосредственно из первичного раздела.
5) Типы данных: Первичные разделы могут использоваться для хранения операционных систем, данных или других целей.
Логический раздел (Logical Partition)
Логический раздел — это подтип разделов, который существует внутри расширенного раздела (Extended Partition). Логические разделы используются для преодоления ограничения на количество первичных разделов.
Основные характеристики логических разделов:
Создание внутри расширенного раздела: Логические разделы создаются внутри единственного расширенного раздела, который сам является одним из первичных разделов.
Количество: Количество логических разделов практически не ограничено, что позволяет создавать гораздо больше разделов на одном физическом диске.
Использование: Логические разделы могут использоваться для хранения данных и установки программ, но не могут быть активными для загрузки операционной системы напрямую (это обычно делается через загрузчик, установленный на первичном разделе).
Гибкость: Логические разделы позволяют более гибко управлять дисковым пространством, особенно когда требуется более четырёх разделов на одном диске.
Различия между первичными и логическими разделами:
Число: Первичных разделов может быть до четырёх, логических — гораздо больше (внутри одного расширенного раздела).
Структура: Первичные разделы создаются непосредственно на диске, а логические находятся внутри расширенного раздела.
Загрузка ОС: Операционная система может загружаться непосредственно из первичного раздела, тогда как логический раздел для этого использоваться не может без посредничества загрузчика.
Гибкость: Логические разделы обеспечивают большую гибкость в управлении дисковым пространством, особенно при необходимости создания большого количества разделов.
8. Выбираем первичный раздел для создания раздела на нашем диске
9. Попадаем в разделы:
· Использовать как;
· Точка монтирования;
· Параметры монтирования;
· Метка;
· Зарезервированные блоки;
· Обычное использование;
· Метка ‘загрузочный’;
· Удалить раздел;
· Настройка раздела закончена;
10. Настройка диска
Этот параметр определяет файловую систему или тип раздела, который будет использоваться для данного раздела.
Примеры использования:
- ext4: Одна из самых популярных файловых систем для Linux.
- swap: используется как область подкачки для расширения оперативной памяти.
- NTFS, FAT32: для разделов, совместимых с Windows.
- EFI System Partition (ESP): Необходим для систем с UEFI.
Точка монтирования указывает, в какую часть файловой системы будет интегрирован данный раздел.
Примеры использования:
- / (корень): Основная точка монтирования для операционной системы.
- /home: Отдельный раздел для домашних директорий пользователей.
- /boot: Раздел, содержащий загрузочные файлы.
- /var, /opt, /mnt: Для других специфических целей или приложений.
Эти параметры определяют различные опции монтирования раздела, такие как поведение при ошибках или использование кэширования.
Примеры использования:
- defaults: Стандартный набор опций монтирования.
- ro: Монтирование в режиме только для чтения.
- noatime: Отключение обновления времени доступа для повышения производительности.
- nodiratime: Отключение обновления времени доступа для директорий.
Метка раздела — это название, которое можно присвоить разделу для облегчения его идентификации.
Примеры использования:
- ROOT: Для корневого раздела.
- HOME: Для домашнего раздела.
- DATA: Для раздела с данными.
Этот параметр определяет количество блоков, зарезервированных для системного использования, таких как для суперпользователя или системы логирования.
Примеры использования:
- Зарезервированные блоки: Обычно составляет около 5% от общего пространства раздела.
Это поле описывает предполагаемое использование раздела, что может помочь системе оптимизировать его для конкретных задач.
Примеры использования:
- Стандартное использование (Standard): Обычные файлы и директории.
- Логирование (Logging): Разделы, используемые для хранения логов.
- Хранилище больших файлов (Large file storage): Для больших файлов, таких как видеозаписи.
Этот параметр устанавливает, является ли раздел загрузочным.
Примеры использования:
- Включить: Для разделов, с которых будет загружаться операционная система.
- Отключить: Для всех остальных разделов.
Этот параметр позволяет удалить существующий раздел на диске.
Использование:
- Удаление: Выберите этот параметр, чтобы удалить выбранный раздел, освободив место для создания новых разделов или расширения существующих.
Этот параметр завершает настройку текущего раздела и возвращает вас к главному меню разметки диска.
Использование:
- Завершить: Когда вы закончили настройку параметров для текущего раздела, выберите этот параметр, чтобы подтвердить и сохранить изменения.
Записать изменения на диск и настроить LVM нажимаем Продолжить.
Меню: кратко о имеющейся конфигурации LVM
В данном разделе мы и будем создавать тома.
Нажимаем создать группу томов
Здесь мы задаем правильное название для группы томов, ориентируемся по задачам, которые будет выполнять сервер, в нашем же случае можно назвать vg_docker.
Снизу описаны более подробные описания правильных названий групп томов.
При создании группы томов (volume group, VG) в LVM важно выбрать имя, которое будет легко идентифицируемо и понятно в контексте вашей системы. Вот несколько рекомендаций для выбора правильного имени группы томов:
Имя должно отражать назначение или содержимое группы томов.
- vg_data — для хранения данных.
- vg_os — для операционной системы.
- vg_backup — для резервных копий.
Стандартные префиксы помогают легко идентифицировать группы томов как таковые.
- vg_ — стандартный префикс для volume group.
- lvm_ — иногда также используется как префикс.
Если у вас несколько серверов или хостов, указание их имени в группе томов может помочь в идентификации.
- vg_server1_data
- vg_webserver_os
Для больших инфраструктур может быть полезно указывать окружение.
- vg_prod_db — для базы данных в производственной среде.
- vg_dev_web — для веб-приложений в среде разработки.
Сокращения помогают сократить длину имени, сохраняя при этом его смысл.
- vg_srv1_os вместо vg_server1_operating_system
- vg_bkp вместо vg_backup
vg_data — группа томов для данных.
vg_os — группа томов для операционной системы.
vg_home — группа томов для домашних директорий.
vg_backup — группа томов для резервных копий.
vg_websrv1 — группа томов для первого веб-сервера.
vg_prod_db — группа томов для базы данных в производственной среде.
vg_dev_app — группа томов для приложений в среде разработки
Выбираем устройство или несколько из списка, в данном случае это наш будущий диск.
Записываем изменения и нажимаем продолжить
Выбираем – создать логический том и нажимаем продолжить
Выбираем, и пишем раздел boot (необходим для загрузчика):
Как правило для загрузчика выделяют 512Мб
Раздел swap (файл подкачки) смотрим, сколько у нас есть оперативной памяти и отходим от нее.
Рекомендации:
· 2 ГБ оперативной памяти и минимальная нагрузка: 2 ГБ swap.
· 2 ГБ оперативной памяти и средняя/высокая нагрузка: 3-4 ГБ swap.
· Использование гибернации: 2 ГБ или чуть больше swap.
Ставим 2000МБ для swap
Создание отдельного раздела /home на сервере может иметь как свои преимущества, так и недостатки, в зависимости от конкретных задач и требований к серверу. Рассмотрим основные моменты, которые помогут решить, нужно ли создавать отдельный раздел /home на сервере.
1. Безопасность данных пользователей:
- Отдельный раздел /home позволяет защитить данные пользователей в случае сбоя системы. Если корневой раздел (/) переполнится или возникнут проблемы с файловой системой, данные пользователей останутся нетронутыми.
2. Упрощение резервного копирования:
- Отдельный раздел /home упрощает процесс резервного копирования данных пользователей. Можно настроить регулярное резервное копирование только этого раздела, что сэкономит время и ресурсы.
3. Гибкость управления пространством:
- Отдельный раздел /home позволяет более гибко управлять дисковым пространством, выделяя определённый объём для данных пользователей и предотвращая переполнение корневого раздела.
4. Легкость обновлений и миграций:
- При обновлении операционной системы или миграции на новый сервер, наличие отдельного раздела /home упрощает процесс, так как можно переустановить систему без затрагивания данных пользователей.
1. Сложность настройки:
- Создание и управление несколькими разделами требует дополнительного времени и знаний. Неопытные администраторы могут столкнуться с трудностями при первоначальной настройке.
2. Нерациональное использование дискового пространства:
- Если неудачно выбрать размеры разделов, можно столкнуться с ситуацией, когда один раздел будет переполнен, а другой останется незаполненным. Это может привести к нерациональному использованию доступного дискового пространства.
В нашем случае мы используем на сервере только Docker и создаем dockerfile для удобного запуска, так что можно выделить некоторый объем под /home – 1GB
Оставшиеся место выделяем под /var так как там хранятся временные файлы для нашего сервера.
По итогу должно выйти таким образом:
Нажимаем продолжить и создаем логический том
Нажимаем закончить
Итог разметки для томов выглядит таким образом:
Итоговое действие, выбираем для всех наших томов нужные разделы, для этого выбираем первый том на 511МБ нажимаем на него и выбираем:
Раздел – не использовать – нажимаем
Выбираем файловую систему EXT4 и нажимаем продолжить
Заходим в точку монтирования после данного действия и выбираем boot и продолжить
Настройка раздела закончена пункт выбираем и нажимаем — Продолжить
Повторяем такое же действие с другими томами.
Однако!!!
Для раздела swap выбираем РАЗДЕЛ ПОДКАЧКИ
По итогу наш диск должен быть таким:
Выбираем закончить разметку и записать изменения на диск и нажимаем Продолжить.
Соглашаемся с изменениями на таблице разделов:
Идет установка базовой системы
Настройка менеджера – нажимаем нет
Зеркало оставляем deb.debian.org
Пропускаем Прокси (если он есть, пишем необходимые данные)
Выключаем все ненужное и оставляем SSH и стандартные системные утилиты:
Нажимаем продолжить.
Установка системного загрузчика GRUB. Устанавливаем на первичный диск.
Наш диск sda. Выбираем его и нажимаем продолжить.
После установки перезапускаем VMware. Входим под пользователя на сервере и пишем команду lsblk.
Если вы все сделали правильно вы увидите такую ветку:
1. Заходим по ssh на сервер, где у нас ssh username@ip
Ip адрес можно узнать командной ip a
Смотрим на сетевой интерфейс ens33 (у вас он может по другому называться), lo не используем, он нам для этого не нужен.
1. Зашли на сервер и переходим в режим root
Обновляем пакеты:
Устанавливаем базовые программы
Устанавливаем репозиторий Docker:
Устанавливаем сам Docker:
Проверяем работает ли Docker:
Добавляем пользователя в группу докер, без необходимости использовать root каждый раз:
Создаем группу докер:
Добавляем пользователя
Активируем изменения в группе
Переключаемся в обычного пользователя
Запускаем докер от обычного пользователя
Гибкое управление дисковым пространством:
Динамическое выделение пространства: LVM позволяет создавать логические тома, размер которых можно изменять «на лету» (без необходимости отключения томов или перезагрузки системы).
Легкость расширения: Диски в группе томов можно легко добавлять или удалять, что позволяет расширять или сокращать дисковое пространство без значительных простоев.
Для примера возьмём сервер с Debian 12 + Docker:
У нас есть виртуальная машина в VMware Vshere, Debian 12 на ней установлен Docker, заканчивается место в директории /var, нужно что-то делать, иначе перестанет функционировать сервер, для решения данной проблемы используется LVM, важный момент, при изначальном развертывании сервера LVM не используется, его нужно выбрать, так как в будущем не будет возможности его применить.
1. Добавляем в нашу Vshere новый диск, лучше всего выбирать по минимальному необходимому и добавлять по мере необходимости, так как если мы добавим изначально 1 ТБ к живой системе, нам нужно было отмонтировать раздел и остановить систему, что нам нельзя делать, в случае же если мы добавили мало, мы просто в следующий раз добавим изначальные 100 гб + 50 гб (пример) и по мере необходимости добавляем новые диски.
2. Заходим на сервер и через утилиту fdisk мы добавляем наш новый диск, создаем для него раздел и монтируем к необходимому каталогу.