Отладка сервера для самых маленьких. Выбор и установка операционной системы
Обложка цикла
В продолжение цикла статей Отладка сервера для начинающих, сегодня мы познакомимся с различными операционными системами и процессом их установки. Особое внимание было уделено созданию разделов (partition) на дисках, было много перечитано и переспрошено, чтобы понять, для чего надо отделять, сколько памяти выделять и, самый главный ответ на вопрос, зачем и в каком случаи. Мы обсудили, какие разделы стоит выделять, а какие не являются необходимыми. Кроме того, мы немного углубимся в теорию, чтобы лучше понять, как это работает.
Принципы автора при настройке и работе сервера и не только:
Безопасность системы и сети
Быстрый ответ системы и ее служб
Минимальное количество пакетов (программ), только нужное
Унификация, зависимость приложений.
Оглавление цикла
(Обновляемое)
Оглавление статьи
Операционные системы
В цикле и опыт / мнение
Установка Debian 12 Bookworm
Полезные материалы
Если интересует только разбивка разделов, читать пункт 7.
Операционные системы
Начнем с определении:
Ядро операционной системы (kernel) — это основная часть программного обеспечения, которая управляет аппаратными и программными ресурсами компьютера, обеспечивает взаимодействие между ними и предоставляет базовые функции для работы других программ. Примеры: GNU Linux, Windows NT, FreeBSD, XNU, Minix.
Операционная система (ОС) — это программный комплекс, включающий ядро, системные утилиты, драйверы и пользовательский интерфейс, который обеспечивает удобную среду для работы пользователя и запуска приложений. Примеры: Windows, macOS, Linux, Android, iOS.
Дистрибутив — это готовая сборка операционной системы, которая включает в себя ядро, системные утилиты, библиотеки, драйверы и различные дополнительные программы. Дистрибутивы предназначены для того, чтобы облегчить установку и использование ОС, предоставляя пользователю уже настроенное, полное и функциональное решение. Примеры: Ubuntu, Debian, Fedora, Windows, macOS
Операционные системы, ориентированные на сервер, обычно поставляются без графического интерфейса, только консоль:
Дистрибутивы основаны на GNU/Linux ядре. Такие как Debian, Ubuntu, CentOS, Red Hat Enterprise Linux и т.д. Больше дистрибутивов на Linux Distribution Timeline.
Дистрибутивы основаны на FreeBSD. Такие как TrueNAS CORE.
Windows Server.
Хоть и не является операционной системой, но дает полный доступ к системе, проект CasaOS, отличается friendly-user интерфейсом и легкой установкой любого программного обеспечения (использует Docker).
В цикле и опыт/мнение
В качестве операционной системы в цикле используется Debian версии 12 (Bookworm). Почему именно Debian, а не Ubuntu или другой дистрибутив?
Debian — это минимальный дистрибутив без лишних пакетов. Кроме того, он отличается стабильностью. Все репозитории с пакетами содержат стабильные версии, что способствует минимизации проблем с зависимостями между приложениями. По другим дистрибутивом на GNU/Linux ядре ничего сказать не могу, опыта нету. То же самое могу сказать об ОС на ядре FreeBSD.
Windows Server у меня не в почете, плюс надо лицензию иметь. В общем, для операционных систем серверов используются дистрибутивы на основе ядра GNU/Linux, такие как упомянутые ранее Debian, Ubuntu и CentOS.
Установка Debian 12 Bookworm
Процесс установки Debian ничем не отличается от установки Windows в общих чертах, пример установки в качестве домашней ОС (статья):
Cкачиваем образ с официального сайта
Прошиваем флешку.
Вставляем в сервер. Открываем BIOS, в качестве загрузочного раздела выбираем флешку (обычно маркируется как USB). Сохраняем. Выходим.
Встречает нас окно GRUBа (загрузчик операционной системы), выбираем Install.
Разница между Install и Graphical install в том, что в одном используется только клавиатура, в графическом — как клавиатура, так и мышка. Я предпочитаю Install, потому что работа с сервером происходит только через командную строку по этому привыкаем к такому вводу.
Выбираем язык, я предпочитаю англ. так как мануалны для IT написаны на англизком языке.
Дальнейшим пунктам комментарии не нужны. Единственное, в окне выбора domain name вы можете указать существующее доменное имя, если оно у вас есть, или же придумать новое (оно будет доступно только в локальной сети), или отставить пустым. Это FQDN-имя помогает системе идентифицировать себя в сети.
Подходим в важному пункту, подготовка разделов.
Нас встречает меню Partition disks
Guided — быстрая настройка разделов, потом можно изменить
Manual — ручная настройка разделов
Выбираем Manual
Форматируем диск/и
Форматириваоние диска — это процесс подготовки устройства хранения данных (такие как жесткий диск). На диск записываеться таблица разделов, есть два типа MBR (устарел) и GUID (актуальный).
Результат:
Создаем разделы (partition)
Раздел диска — это логическая часть физического накопителя, которая выделена для хранения данных и управления ими. Каждый раздел воспринимается операционной системой как отдельное устройство хранения, даже если физически он находится на одном диске. На раздел записываеться файловая система, такие как ext4, UFS и exFAT и т.д. Для лучшего понимание это диск С или D на Windows. Пример структуры UFS (Unix File System):
Какие разделы обязательные:
/boot
или/boot/efi
раздел — минимально 250 MB, рекомендую 512 MBswap раздел — минимально 2 GB, в общем считается по этой формуле SWAP memory = RAM memory * 1,5 (или 2)SWAP раздел — это дополнительная/«виртуальная» память, которая выделяется на диске и используется CPU как RAM. Формулу лучше использовать, если планируете использовать гибернацию (перемещение данных RAM в SWAP при уходе в сон). Так, если у вас 16 GB RAM, будет достаточно 4 GB (подробнее смотрите рекомендации от Red Hat).
/
root (или корневой) раздел — минимально 250 MB (рекомендация от Red Hat), по моему мнению как минимум 50 GB. Лучше 100 GB.
Какие разделы рекомендуется отделять от root раздела:
/var
раздел в основном используется для хранения логов (logs) — минимально 384 MB (рекомендация от Red Hat), по моему мнению 50 GB достаточно. Его я бы отделил точно, логи с большой вероятностью могут переполнить/
./tmp
раздел хранит временные файлы, пример если загружаете файл в папку/home/user/
сначала он загружается в/tmp
потом/home/user/
. Минимально 50 MB (рекомендация от Red Hat), по моему мнению, 15 GB будет достаточно, всё зависит от максимального размера загружаемого файла. Нужно отделять, только если есть отдельный очень быстрый NVMe диск или будет постоянная загрузка больших файлов. В моем случае не отделял./home
раздел для хранения пользовательских данных, в основном забивается на домашних ОС или если используется для хранения информации, используя протоколы SMB, FTP, SFTP и т. д. Минимально 100 MB (рекомендация от Red Hat), реальный размер определяете сами. В моем случае не отделял.
Какие разделы рекомендую создать и отделить от root раздела:
/svr
— используется для хранения данных сервисами, я вместо него создал /data для хранения данных и поместил на жесткий диск (папки/data
нет в стандартной структуре файловой системы Linux (подробнее)).Если вы планируете использовать сервер в качестве медиасервера и загружать на него сотни гигабайт медиафайлов, я рекомендую выделить для этой цели отдельный раздел. В разделе
/data
будут храниться другие данные, такие как ваши файлы, базы данных и так далее. Если вы не рассчитаете объем заполняемого медиа, то можете переполнить раздел, и будет неприятно потом его чистить.
Зачем разделять root раздеть
/
? Делается для того чтобы изолировать саму ОС и файлы которые хранятся на ней. Решает две проблемы: если папка /var переполнится к примеру то система не упадет; переход на другую ОС или обновление текущей не повлияет на данные, которые находятся в других разделах.С файловой системой не заморачиваемся и выбираем ext4.
Создание boot
Создание swap (пропуская повторяющийся окна)
Отделение
/var
Создание
/
Создание и отделение
/data
Результат:
Подтверждаем разметку и записываем разметку на диск.
Разметка разделов в моем случаи:
По поводу других настроек:
Конфигурация RAID отлична описана в этой статье.
Logical Volume Manager (LVM) — это инструмент, который позволяет объединить несколько физических дисков в один логический том. К примеру, есть два диска, на первом устанавливаете boot, swap и root и т. д. В конце концов у вас остается место на диске, и вы хотите объединить со вторым, полностью свободным диском и на них к примеру поставить раздел
/data
. Для этого вы создаёте логический том (LVM) из двух дисковых пространств и используете раздел/data
так, как будто он установлен на один диск.Шифрование диска. Если вы полагаете, что существует вероятность несанкционированного доступа к вашим дискам, то имеет смысл их зашифровать. В противном случае, если вы не ожидаете никаких проблем, то нет необходимости в дополнительной защите. Дома же стоит.
Потом спрашивают если ли дополнительная флешка с пакетами выбираем — Нет
Дальше обязательно выбираем зеркало для пакетов
Если у вас есть proxy сервер, можите указать если нету, оставляем пустым:
Потом предлагают делиться анонимно аналитикой
Под конец предлагают установить дополнительные пакеты (в том числе графические оболочки), нам только нужно SSH server и стандартный набор системных утилит (standard system utilities), по понятным причинам графическая оболочка не нужна, это сервер.
После установики дополнительных пакетов. Перезагружаем систему
Открываем BIOS и в качестве загруженного диска выбираем диск на который установили boot и
/
разделы. Сохраняем и выходим.После успешной загрузки системы вытаскиваем флешку
Установка ОС закончена.