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

9

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

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

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

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

yegle
источник
Что ты хочешь делать? Установить базовую систему, потом управлять системой? развернуть конфигурации или приложения?
Шакаланды
@shakalandy Я внедряю RHEL с помощью кикстарта + NFS. Когда я пытаюсь развернуть 500 RHEL одновременно, сервер NFS будет иметь огромный трафик и замедляет каждый процесс установки. Настройка большего количества серверов NFS - это решение, но я не думаю, что оно хорошее.
Yegle

Ответы:

7

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

dgibbons
источник
3

Установщик лавины из скалы Linux кластера дистрибутива, это битторрент основы и чешуйка красиво. Он также переносит вас из PXE-загрузки в работающую систему. Тем не менее, вы привязаны к использованию камней (на базе CentOS) и к тому, чтобы все было по-другому.

Кжетил Йоргенсен
источник
2

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

Не сейчас
источник
1

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

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

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

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

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

Томас Ланге
источник
0

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

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

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

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

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

Sciurus
источник
0

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

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

Shadok
источник