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

Какова наилучшая практика массового развертывания системы Linux?

Если вы одновременно пытаетесь установить систему Linux 500 через сетевую установку, узким местом будет NFS / HTTP / FTP или любой другой сервер, содержащий файлы, необходимые для установки.

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

Есть ли лучшее решение этой проблемы? Что-то вроде «Установка P2P Linux»?

ОБНОВЛЕНИЕ: мне нужно описать мою ситуацию более конкретно. В настоящее время я развертываю RHEL с помощью кикстарта + NFS. Когда я пытаюсь развернуть 500 RHEL одновременно, сервер NFS будет иметь огромный трафик и замедлит каждый процесс установки. Установка большего количества серверов NFS - это решение, но я не думаю, что оно хорошее.

Обычно здесь появляется многоадресная обработка изображений. Что-то вроде Clonezilla или ghost поддерживает отправку многоадресной передачи данных, что позволит вам отправить изображение на все 500 систем одновременно, по сути, с той же скоростью, что и при отправке образа в 1 систему.

В Установщик лавин из горные породы кластерный дистрибутив linux, основан на BitTorrent и хорошо масштабируется. Это также приведет вас от загрузки PXE к работающей системе. Хотя вы привязаны к использованию камней (на основе CentOS) и делаете вещи отличным способом.

SystemImager также может использовать бит-торрент для более быстрого массового развертывания.

Я бы не стал использовать многоадресную рассылку, потому что это усложняет ситуацию. Во-первых, попробуйте минимизировать трафик NFS, то есть получить пакеты, которые вам нужно установить, через HTTP. Если ваш веб-сервер для репозитория пакетов перегружен, используйте два из них и распределите нагрузку, назначив разные серверы каждому клиенту (например, IP-адрес по модулю 2).

Ваш NFS-сервер может стать быстрее, если будет запущено больше демонов nfsd. Часто запускаются только 8 из них.

Я только что измерил трафик установки Debian (через PXE, NFS, HTTP) с помощью FAI. При установке 4,2 ГБ программного обеспечения по сети было отправлено 1,3 ГБ HTTP (все пакеты) и 100 МБ трафика NFS (nfsroot во время установки). Это было для одного установочного клиента. Так что я полагаю, что сокращение трафика NFS и распределение HTTP-трафика очень поможет.

Также может помочь сетевая карта на 10 ГБ на вашем сервере или подключение нескольких сетевых адаптеров. И, я думаю, не нужно устанавливать все машины одновременно, а нужно делать больше в короткие сроки.

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

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

Давайте более внимательно подумаем об узком месте. ЦП не является узким местом; NFS не требует большой вычислительной мощности. Диск не является узким местом; файлы, необходимые для установки RHEL, не превышают нескольких гигабайт, поэтому они должны легко поместиться в ОЗУ вашего сервера NFS. Пропускная способность сети определенно является узким местом; если предположить, что одна устанавливаемая система будет запрашивать в среднем 50 мегабит в секунду, вам потребуется как минимум 25 гигабит полосы пропускания для обеспечения 500 установок. Это много сетевых адаптеров или несколько очень дорогих.

Это не означает, что вы не должны пытаться улучшить производительность, добавляя в нее больше оборудования в разумных пределах. Получите столько сетевых карт, сколько возможно на сервере NFS, и свяжите их. Если вы можете оправдать время и стоимость, установите больше серверов NFS. Конечно, убедитесь, что ваши серверы NFS хорошо настроенный.

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

Например, предположим, что вы можете передавать 4 Гбит / с с сервера (ов) NFS. Возможно, вы обнаружите, что установка копирует 100 Мб / с в течение первой минуты, пока загружается установщик, затем он не копирует данные в течение одной минуты, пока установщик работает как разбиение на разделы, затем он копирует 50 Мбит / с в течение трех минут, пока установщик загружает и извлекает пакеты. Зная это, вы можете рассчитать, что можете запустить 40 установок, подождать одну минуту, запустить еще 40 установок, подождать 5 минут, а затем повторить процесс.

Что касается массового развертывания файлов, твиттер уже предлагает решение, основанное на bittorent: Убийство.

Если вы говорите об установке ОС на свой сервер, очевидно, что это решение не сработает.