Основная конфигурация LVM с Debian 12 и Docker

Основные моменты при развертывании сервера с использованием LVM (logical volume manager) менеджера логических томов.

Установка Debian 12 и разбивка на разделы для работы сервера.

1. Запускаем установщик в VMware готового дистрибутива Debian 12;

2. Доходим до раздела разметка дисков

И выбираем Вручную

Основная конфигурация LVM с Debian 12 и DockerРис 1. Разметка дисков

3. Выбираем диск VMware для последующий разметки

Рис 2. VMware VirtualРис 2. VMware Virtual

4. Создать новую пустую таблицу разделов на этом устройстве

Рис 3. Новая таблица разделовРис 3. Новая таблица разделов

5. Выбираем снова наш диск

Рис 4. Первичный и логический дискРис 4. Первичный и логический диск

6. Создаем новый раздел

Рис 5. Создать новый разделРис 5. Создать новый раздел

7. Выбираем максимальное место нового раздела

Рис 6. разметка дискаРис 6. разметка диска

Дальше идет разметка дисков: Первичный и Логический

Первичный раздел (Primary Partition)

Первичный раздел — это основной тип раздела на жестком диске. В контексте MBR можно создать до четырёх первичных разделов на одном физическом диске.

1) Основные характеристики первичных разделов:

2) Количество: На диске может быть максимум четыре первичных раздела.

3) Использование: Один из первичных разделов может быть помечен как активный, с которого загружается операционная система.

4) Прямая загрузка: Операционная система может загружаться непосредственно из первичного раздела.

5) Типы данных: Первичные разделы могут использоваться для хранения операционных систем, данных или других целей.

Логический раздел (Logical Partition)

Логический раздел — это подтип разделов, который существует внутри расширенного раздела (Extended Partition). Логические разделы используются для преодоления ограничения на количество первичных разделов.

Основные характеристики логических разделов:

Создание внутри расширенного раздела: Логические разделы создаются внутри единственного расширенного раздела, который сам является одним из первичных разделов.

Количество: Количество логических разделов практически не ограничено, что позволяет создавать гораздо больше разделов на одном физическом диске.

Использование: Логические разделы могут использоваться для хранения данных и установки программ, но не могут быть активными для загрузки операционной системы напрямую (это обычно делается через загрузчик, установленный на первичном разделе).

Гибкость: Логические разделы позволяют более гибко управлять дисковым пространством, особенно когда требуется более четырёх разделов на одном диске.

Различия между первичными и логическими разделами:

Число: Первичных разделов может быть до четырёх, логических — гораздо больше (внутри одного расширенного раздела).

Структура: Первичные разделы создаются непосредственно на диске, а логические находятся внутри расширенного раздела.

Загрузка ОС: Операционная система может загружаться непосредственно из первичного раздела, тогда как логический раздел для этого использоваться не может без посредничества загрузчика.

Гибкость: Логические разделы обеспечивают большую гибкость в управлении дисковым пространством, особенно при необходимости создания большого количества разделов.

8. Выбираем первичный раздел для создания раздела на нашем диске

Рис 7. Первичный дискРис 7. Первичный диск

9. Попадаем в разделы:

· Использовать как;

· Точка монтирования;

· Параметры монтирования;

· Метка;

· Зарезервированные блоки;

· Обычное использование;

· Метка ‘загрузочный’;

· Удалить раздел;

· Настройка раздела закончена;

10. Настройка диска

Рис 8. Разметка дискаРис 8. Разметка диска

Пройдемся по настройкам.

1. Использовать как (Use as)

Этот параметр определяет файловую систему или тип раздела, который будет использоваться для данного раздела.

Примеры использования:

  • ext4: Одна из самых популярных файловых систем для Linux.
  • swap: используется как область подкачки для расширения оперативной памяти.
  • NTFS, FAT32: для разделов, совместимых с Windows.
  • EFI System Partition (ESP): Необходим для систем с UEFI.

Точка монтирования (Mount point)

Точка монтирования указывает, в какую часть файловой системы будет интегрирован данный раздел.

Примеры использования:

  • / (корень): Основная точка монтирования для операционной системы.
  • /home: Отдельный раздел для домашних директорий пользователей.
  • /boot: Раздел, содержащий загрузочные файлы.
  • /var, /opt, /mnt: Для других специфических целей или приложений.

Параметры монтирования (Mount options)

Эти параметры определяют различные опции монтирования раздела, такие как поведение при ошибках или использование кэширования.

Примеры использования:

  • defaults: Стандартный набор опций монтирования.
  • ro: Монтирование в режиме только для чтения.
  • noatime: Отключение обновления времени доступа для повышения производительности.
  • nodiratime: Отключение обновления времени доступа для директорий.

Метка (Label)

Метка раздела — это название, которое можно присвоить разделу для облегчения его идентификации.

Примеры использования:

  • ROOT: Для корневого раздела.
  • HOME: Для домашнего раздела.
  • DATA: Для раздела с данными.

Зарезервированные блоки (Reserved blocks)

Этот параметр определяет количество блоков, зарезервированных для системного использования, таких как для суперпользователя или системы логирования.

Примеры использования:

  • Зарезервированные блоки: Обычно составляет около 5% от общего пространства раздела.

Обычное использование (Typical usage)

Это поле описывает предполагаемое использование раздела, что может помочь системе оптимизировать его для конкретных задач.

Примеры использования:

  • Стандартное использование (Standard): Обычные файлы и директории.
  • Логирование (Logging): Разделы, используемые для хранения логов.
  • Хранилище больших файлов (Large file storage): Для больших файлов, таких как видеозаписи.

Метка ‘загрузочный’ (Bootable flag)

Этот параметр устанавливает, является ли раздел загрузочным.

Примеры использования:

  • Включить: Для разделов, с которых будет загружаться операционная система.
  • Отключить: Для всех остальных разделов.

Удалить раздел (Delete partition)

Этот параметр позволяет удалить существующий раздел на диске.

Использование:

  • Удаление: Выберите этот параметр, чтобы удалить выбранный раздел, освободив место для создания новых разделов или расширения существующих.

Настройка раздела закончена (Partition setup finished)

Этот параметр завершает настройку текущего раздела и возвращает вас к главному меню разметки диска.

Использование:

  • Завершить: Когда вы закончили настройку параметров для текущего раздела, выберите этот параметр, чтобы подтвердить и сохранить изменения.

Переходим в раздел разметка и запись информации о разделах на диск.

Записать изменения на диск и настроить LVM нажимаем Продолжить.

Рис 9. Разметка дискаРис 9. Разметка диска

Меню: кратко о имеющейся конфигурации LVM

В данном разделе мы и будем создавать тома.

Нажимаем создать группу томов

Рис 10. Создать группу томовРис 10. Создать группу томов

Введите название, которое вы хотите дать новой группе томов

Здесь мы задаем правильное название для группы томов, ориентируемся по задачам, которые будет выполнять сервер, в нашем же случае можно назвать vg_docker.

Снизу описаны более подробные описания правильных названий групп томов.

При создании группы томов (volume group, VG) в LVM важно выбрать имя, которое будет легко идентифицируемо и понятно в контексте вашей системы. Вот несколько рекомендаций для выбора правильного имени группы томов:

1. Описание назначения

Имя должно отражать назначение или содержимое группы томов.

  • vg_data — для хранения данных.
  • vg_os — для операционной системы.
  • vg_backup — для резервных копий.

2. Использование стандартных префиксов

Стандартные префиксы помогают легко идентифицировать группы томов как таковые.

  • vg_ — стандартный префикс для volume group.
  • lvm_ — иногда также используется как префикс.

3. Указание имени сервера или хоста

Если у вас несколько серверов или хостов, указание их имени в группе томов может помочь в идентификации.

  • vg_server1_data
  • vg_webserver_os

4. Учитывание окружения

Для больших инфраструктур может быть полезно указывать окружение.

  • vg_prod_db — для базы данных в производственной среде.
  • vg_dev_web — для веб-приложений в среде разработки.

5. Использование сокращений

Сокращения помогают сократить длину имени, сохраняя при этом его смысл.

  • 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 — группа томов для приложений в среде разработки

Выбираем устройство или несколько из списка, в данном случае это наш будущий диск.

Рис 11. Группа томовРис 11. Группа томов

Записываем изменения и нажимаем продолжить

Рис 12. Разметка дискаРис 12. Разметка диска

Переходим к созданию логического тома:

Выбираем – создать логический том и нажимаем продолжить

Рис 13 Создать логический том.Рис 13 Создать логический том.

Выбираем, и пишем раздел boot (необходим для загрузчика):

Рис 14. bootРис 14. boot

Как правило для загрузчика выделяют 512Мб

Рис 15. bootРис 15. boot

Раздел swap (файл подкачки) смотрим, сколько у нас есть оперативной памяти и отходим от нее.

Рекомендации:

· 2 ГБ оперативной памяти и минимальная нагрузка: 2 ГБ swap.

· 2 ГБ оперативной памяти и средняя/высокая нагрузка: 3-4 ГБ swap.

· Использование гибернации: 2 ГБ или чуть больше swap.

Рис 16. SwapРис 16. Swap

Ставим 2000МБ для swap

Рис 17. Swap настройкаРис 17. Swap настройка

Раздел home.

Создание отдельного раздела /home на сервере может иметь как свои преимущества, так и недостатки, в зависимости от конкретных задач и требований к серверу. Рассмотрим основные моменты, которые помогут решить, нужно ли создавать отдельный раздел /home на сервере.

Преимущества отдельного раздела /home

1. Безопасность данных пользователей:

  • Отдельный раздел /home позволяет защитить данные пользователей в случае сбоя системы. Если корневой раздел (/) переполнится или возникнут проблемы с файловой системой, данные пользователей останутся нетронутыми.

2. Упрощение резервного копирования:

  • Отдельный раздел /home упрощает процесс резервного копирования данных пользователей. Можно настроить регулярное резервное копирование только этого раздела, что сэкономит время и ресурсы.

3. Гибкость управления пространством:

  • Отдельный раздел /home позволяет более гибко управлять дисковым пространством, выделяя определённый объём для данных пользователей и предотвращая переполнение корневого раздела.

4. Легкость обновлений и миграций:

  • При обновлении операционной системы или миграции на новый сервер, наличие отдельного раздела /home упрощает процесс, так как можно переустановить систему без затрагивания данных пользователей.

Недостатки отдельного раздела /home

1. Сложность настройки:

  • Создание и управление несколькими разделами требует дополнительного времени и знаний. Неопытные администраторы могут столкнуться с трудностями при первоначальной настройке.

2. Нерациональное использование дискового пространства:

  • Если неудачно выбрать размеры разделов, можно столкнуться с ситуацией, когда один раздел будет переполнен, а другой останется незаполненным. Это может привести к нерациональному использованию доступного дискового пространства.

В нашем случае мы используем на сервере только Docker и создаем dockerfile для удобного запуска, так что можно выделить некоторый объем под /home – 1GB

Рис 18. homeРис 18. home
Рис 19. homeРис 19. home

Создание корневого раздела /

Рис 20. rootРис 20. root
Рис 21. rootРис 21. root

Оставшиеся место выделяем под /var так как там хранятся временные файлы для нашего сервера.

Рис 22. varРис 22. var

По итогу должно выйти таким образом:

Нажимаем продолжить и создаем логический том

Рис 23. Разметка дискаРис 23. Разметка диска

Нажимаем закончить

Рис 24. LVMРис 24. LVM

Итог разметки для томов выглядит таким образом:

Рис 25. LVMРис 25. LVM

Итоговое действие, выбираем для всех наших томов нужные разделы, для этого выбираем первый том на 511МБ нажимаем на него и выбираем:

Рис 26. BootРис 26. Boot

Раздел – не использовать – нажимаем

Рис 27. bootРис 27. boot

Выбираем файловую систему EXT4 и нажимаем продолжить

Рис 28. bootРис 28. boot

Заходим в точку монтирования после данного действия и выбираем boot и продолжить

Рис 29. Точка монтированияРис 29. Точка монтирования
Рис 30. bootРис 30. boot

Настройка раздела закончена пункт выбираем и нажимаем — Продолжить

Рис 31. разметка дисковРис 31. разметка дисков

Повторяем такое же действие с другими томами.

Однако!!!

Для раздела swap выбираем РАЗДЕЛ ПОДКАЧКИ

Рис 32. swapРис 32. swap

По итогу наш диск должен быть таким:

Рис 33 Разметка дисковРис 33 Разметка дисков

Выбираем закончить разметку и записать изменения на диск и нажимаем Продолжить.

Рис 34. Разметка дисковРис 34. Разметка дисков

Соглашаемся с изменениями на таблице разделов:

Рис 35. Изменение на дискеРис 35. Изменение на диске

Идет установка базовой системы

Рис 36. УстановкаРис 36. Установка

Настройка менеджера – нажимаем нет

Рис 37. Менеджер пакетовРис 37. Менеджер пакетов

Зеркало оставляем deb.debian.org

Рис 38. debРис 38. deb

Пропускаем Прокси (если он есть, пишем необходимые данные)

Выбор программного обеспечения:

Выключаем все ненужное и оставляем SSH и стандартные системные утилиты:

Рис 39. SSHРис 39. SSH

Нажимаем продолжить.

Установка системного загрузчика GRUB. Устанавливаем на первичный диск.

Рис 40. Первичный дискРис 40. Первичный диск

Наш диск sda. Выбираем его и нажимаем продолжить.

Рис 41. sdaРис 41. sda

После установки перезапускаем VMware. Входим под пользователя на сервере и пишем команду lsblk.

Если вы все сделали правильно вы увидите такую ветку:

Рис 42. lsblkРис 42. lsblk

Базовая установка и настройка Debian + Docker

1. Заходим по ssh на сервер, где у нас ssh username@ip

Ip адрес можно узнать командной ip a

Рис 43. ip aРис 43. ip a

Смотрим на сетевой интерфейс ens33 (у вас он может по другому называться), lo не используем, он нам для этого не нужен.

1. Зашли на сервер и переходим в режим root

su –

Обновляем пакеты:

apt update -y
apt upgrade -y

Устанавливаем базовые программы

apt install htop mc vim sudo

Устанавливаем репозиторий Docker:

# Add Docker’s official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
«deb [arch=$(dpkg —print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo «$VERSION_CODENAME») stable» | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Устанавливаем сам Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Проверяем работает ли Docker:

sudo docker run hello-world

Добавляем пользователя в группу докер, без необходимости использовать root каждый раз:

Создаем группу докер:

sudo groupadd docker

Добавляем пользователя

sudo usermod -aG docker $USER

Активируем изменения в группе

newgrp docker

Переключаемся в обычного пользователя

su username

Запускаем докер от обычного пользователя

docker run hello-world

Основные цели создания LVM:

Гибкое управление дисковым пространством:

Динамическое выделение пространства: LVM позволяет создавать логические тома, размер которых можно изменять «на лету» (без необходимости отключения томов или перезагрузки системы).

Легкость расширения: Диски в группе томов можно легко добавлять или удалять, что позволяет расширять или сокращать дисковое пространство без значительных простоев.

Для примера возьмём сервер с Debian 12 + Docker:

У нас есть виртуальная машина в VMware Vshere, Debian 12 на ней установлен Docker, заканчивается место в директории /var, нужно что-то делать, иначе перестанет функционировать сервер, для решения данной проблемы используется LVM, важный момент, при изначальном развертывании сервера LVM не используется, его нужно выбрать, так как в будущем не будет возможности его применить.

1. Добавляем в нашу Vshere новый диск, лучше всего выбирать по минимальному необходимому и добавлять по мере необходимости, так как если мы добавим изначально 1 ТБ к живой системе, нам нужно было отмонтировать раздел и остановить систему, что нам нельзя делать, в случае же если мы добавили мало, мы просто в следующий раз добавим изначальные 100 гб + 50 гб (пример) и по мере необходимости добавляем новые диски.

2. Заходим на сервер и через утилиту fdisk мы добавляем наш новый диск, создаем для него раздел и монтируем к необходимому каталогу.

Рис 44. раздел sda4Рис 44. раздел sda4
 

Источник

Читайте также