Я меняю способ работы наших DHCP / DNS. В настоящее время у нас есть 3 DNS-сервера и DHCP-сервер. Все они виртуальные машины.
Существует циклическая зависимость, когда для загрузки материалов требуется NFS, а для этого требуется DNS. Поэтому, когда мы перезагружаем что-то, что-то может вернуться слегка нарушенным, пока DNS не будет включен, и мы не перезапустим некоторые службы.
Я хочу иметь несколько серверов с низким энергопотреблением, вероятно, двухъядерных Atoms или подобных, работающих от SSD, чтобы они загружались чертовски быстро. Я хочу, чтобы все это загружалось как можно быстрее.
В идеале я бы хотел использовать Ubuntu 11.10 или Debian 6 в качестве ОС. Меня не интересует Gentoo или компилировать собственное ядро. Это должно быть разумно подтверждено мной.
Какие еще шаги по оптимизации, кроме SSD-накопителей, можно предпринять, чтобы повысить скорость загрузки?
Разве это не та ситуация, когда вы должны создавать циклические зависимости? Установите задержку включения в BIOS сервера. У вас несколько DNS-серверов, так что это плюс. Кеширование DNS? Было бы это так же просто, как использовать IP-адреса или файлы хоста для вашей NFS или сети хранения? Вы не упомянули конкретную технологию виртуализации, но можно, например, установить приоритет загрузки виртуальной машины в VMWare ... Это на нескольких серверах?
В противном случае могут помочь загрузочные диски на основе SSD. Используйте дистрибутив с процессами загрузки Upstart. Уничтожьте демонов.
В зависимости от статуса вашего ИБП, это может быть одним из немногих вариантов использования, где спящий режим ACPI может быть хорошей идеей. Обычно восстановление из спящего режима заменяет загрузку с нуля, особенно в случае систем на основе SSD с низким объемом оперативной памяти. Если у вас есть возможность, шаг завершения работы вашего программного обеспечения ИБП может быть настроен на перевод DNS-сервера в спящий режим.
Я могу порекомендовать очень крошечную систему NetBSD на твердотельных накопителях, но если вы настроены на Linux, есть два варианта, которые сразу приходят на ум:
Также есть возможность использовать крошечные пользовательские / встроенные решения, такие как вот этот (Система на базе ARM за 99 долларов на модуле с 1-секундным временем загрузки. Это не массовое оборудование, но его можно спрятать в тихом уголке центра обработки данных и оставить работать вечно ...
В большинстве случаев DNS является наиболее важной инфраструктурной службой. Если он сломается, все остальное тоже сломается. Делается вывод, что DNS-сервер (ы) не должен зависеть от других серверов.
Если вам действительно нужен NFS для загрузки - сделайте свои DNS-серверы такими же NFS-серверами (это тоже нарушение правила) - но обязательно экспортируйте только ro и убедитесь, что вы не можете подвергнуть свои NFS-серверы опасности DoS-атака.
Вероятно, лучшим решением является другой подход (HA) для предоставления необходимой службы NFS для загрузки, тем самым нарушая циклическую зависимость (NSCD может помочь и на NFS-серверах).
Обновление 2011-11-17 о NFS: из одного из ваших комментариев я вижу, что NFS используется для / home-dirs. У местных технических пользователей их не должно быть. Все остальное нужно монтировать через autofs с bg, hard, intr.
Возможно, вы захотите использовать загрузочную диаграмму, чтобы узнать, какие горячие точки во время загрузки.
Также есть readahead: https://fedorahosted.org/readahead/ , который я не пробовал.