Назад | Перейти на главную страницу

Как разделить дистрибутив Linux-сервера до ядра?

Я наконец-то привык к управлению небольшим сервером VPS Ubuntu. Однако я знаю, что у меня должны быть установлены программы, которые мне не нужны. Даже если это просто накладные расходы системы Ubuntu поверх Debian.

Например, я не использую Apache с тех пор, как открыл для себя Nginx. Я не использую (S) FTP, так как открыл для себя SSH. Я могу заменить bash на dash или OpenSSH на dropbear.

Поэтому мне интересно, есть ли руководство, которое я могу изучить, или сценарий, который я могу запустить, который удалит все неосновные части системы, чтобы я мог больше узнать о том, что на самом деле необходимо и как работают эти библиотеки. Хотя я должен признать, что я далеко не готов начать возиться с самим ядром Linux.

Моя цель - разместить полный веб-сервер PHP примерно в 50 МБ, чтобы я мог предоставить FS и кэш памяти всю остальную память. Меня больше всего интересует Debian, поскольку я уже знаю его, но я слышал и хорошие отзывы о CentOS.

Похоже, ваша основная цель - максимально использовать оперативную память для производительности, а не для хранения раздутого или ненужного программного обеспечения, верно? если да, достаточно просто отключить Apache (например); вы не получите никакой выгоды, удалив его.

Поэтому лучше всего проверить ps fax вывод. Вы увидите, что каждый пакет запущен и сколько подпроцессов он порождает. вполне вероятно, что вы не используете FTP, так что вам тоже не о чем беспокоиться.

Кроме того, большинство служб, не критичных к производительности, могут запускаться из inetd (или вероятно xinetd). В этом случае они не удерживают ОЗУ, пока вы не получите доступ к нужному порту.

По моему опыту, сервер Ubuntu (без LAMP) очень близок к barebone. Обычно я просто добавляю ssh, nginx и любой другой сервер, который я использую.

Если, с другой стороны, вы хотите уменьшить использование диска, вам лучше подойдет другой дистрибутив или (лучший вариант, ИМХО) Linux с нуля

Когда я работал в компании, предоставляющей услуги хостинга VPS, мы увидели несколько оригинальных реализаций веб-серверов, предназначенных для работы в пределах объема памяти 64 МБ (предполагается, что вы говорите об оперативной памяти, а не о дисковом пространстве). Debian + nginx HowTo на LowEndBox выделяется как яркий пример.

Вы спрашиваете, что вы можете удалить в соответствии с вашими потребностями на меньшем сервере. Но то, как вы работаете, похоже, что вы неправильно понимаете дистрибутив; Ubuntu основан на Debian, но это не Debian с пользовательскими пакетами, делающими его Ubuntu. Вы не можете просто вырезать вещи так, как вам хочется.

Кроме того, даже если бы существовал сценарий или упаковщик, вы говорите что-то вроде того, что вам не нужен FTP с тех пор, как вы обнаружили SSH. Что ж, если вы разделяли сервер до «ядра», вам не обязательно нужен SSH, поэтому автоматизированные инструменты могут просто удалить его.

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

Я не знаю, каковы условия для вашего VPS, но моя первая реакция, когда люди хотят сократить сервер до минимального размера, - это посоветовать им искать дистрибутивы, ориентированные на минимальное пространство. В этом вам может помочь Distrowatch. Сервер Ubuntu - это ОС общего назначения, не стремящаяся к компактности. Если вы ищете специализированный серверный дистрибутив, вы можете их найти, но потеряете некоторые функциональные возможности, которые вам действительно могут понравиться, например, системе apt-get или другому инструменту, на который вы привыкли.

Не говоря уже о том, что если вы просто удалите части, вы можете в конечном итоге получить пакет, который, по вашему мнению, вам не нужен, но на самом деле нужен, из-за какой-то трижды удаленной зависимости.

Окончательный ответ: я не знаю такого простого инструмента для автоматической очистки конфигурации сервера, кроме минимальной конфигурации во время установки, и я опасаюсь всего, что делает это, потому что он может не знать, что я хочу на сервере, и может удалить то, что хочу. Вместо этого я бы поискал специализированный дистрибутив, который ориентирован на роль сервера, которую я хочу, или я бы использовал инструменты apt-get, чтобы посмотреть, что установлено, и удалить вещи, которые мне не нужны (поскольку упаковщик может минимизировать мои упс-моменты ).

Обычно при установке Debian или Ubuntu я делаю следующее:

  • Не выбирайте ничего в tasksel (часть процесса установки)
  • эхо 'APT::Install-Recommends "0";' > /etc/apt.conf.d/99local
  • способность
    • нажмите M в категории «Установленные пакеты». это отметит все пакеты как установленные, чтобы удовлетворить зависимости
    • нажмите _ в категории «Установленные пакеты». это пометит все пакеты для очистки. aptitude будет жаловаться, что существенное не следует удалять, просто ответьте на запросы, вернув их, и они не будут
    • нажмите g, чтобы применить ваш выбор, теперь apitude исправляет пакеты с неработающими зависимостями
    • выберите пакеты, которые вы хотите сохранить, нажав на них + (узнайте о других командах aptitude, нажав?)
    • после некоторой работы aptitude удалит ненужные пакеты.

В мире Ubuntu вы можете использовать существующую систему для создания JeOS изображения. Это довольно обычные системы ubuntu, но без почти всего. Не установлены даже справочные страницы. В прошлый раз, когда я создавал систему Ubuntu 10.04 LTS x86_64 JeOS, она была сжатой на 124 МБ, с некоторыми дополнительными пакетами (ruby, puppet и его deps, что-то еще).

Говоря о вашей цели, если вы не помещаете всю систему в RAM-диск вместо бездискового оборудования, вы, вероятно, что-то неправильно понимаете.

Если вам нужен простой Linux-сервер, вы можете установить ArchLinux. Это что-то среднее между Slackware / Linux от Scratch и Debian. Проверить это.

Имейте в виду, что образы Ubuntu JeOS (как указывает Luke404) - это урезанные версии, подготовленные для установки на виртуальных машинах. У них почти минимальная аппаратная поддержка для этой среды, а ядро ​​исправлено с некоторыми оптимизациями специально для виртуальных сред.