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

переход с Solaris на Linux

Я пытаюсь перейти с Solaris на Linux.

С какими препятствиями я могу столкнуться при миграции файловых систем, скриптов и файлов? Нужно ли вносить какие-либо изменения в скрипты sh ​​и ksh?

Я хочу знать, в чем разница между Solaris и Linux с точки зрения конечного пользователя?

В настоящее время мы делаем то же самое. Мы обнаружили проблемы:

  • Нет JASS эквивалент. Вместо этого мне пришлось написать собственные сценарии оболочки, вызываемые% post в Kickstart, чтобы реализовать политику безопасности, но элементы управления безопасностью в Linux кажутся не такими хорошими, как в Solaris. (Мы также рассматриваем Puppet для управления конфигурацией.)
  • Не реально RBAC реализация. Кажется, люди полагаются на sudo вместо этого, что имеет свои плюсы и минусы. Мне очень нравится в Solaris, что я могу делегировать определенные права пользователю без полномочий root, например для управления определенными сервисами SMF.
  • Нет SMF. Зависимости сервисов и автоматический перезапуск сервисов, встроенных в init не требуя дополнительных продуктов, таких как monit.
  • Общий синтаксис BSD и SysV - например, ps -ef против ps aux. (В этом случае я вообще считаю, что последний более полезен, но многие скрипты, которые у нас есть, жестко запрограммированы для использования стиля Solaris.)
  • bonding не кажется таким гибким, как IP Multi-Pathing (IPMP). ifconfig e1000g0 group test довольно просто!
  • Точно так же многопутевое хранилище кажется немного более простым в Solaris, но это не значит, что multipathd в линуксе нет ничего хорошего; на самом деле кажется, что он просто работает, но я не фанат его формата конфигурации :-)
  • Зоны! Я использую зоны а много. Они чертовски полезны для запуска быстрой тестовой среды. Развертывание всей виртуальной машины не такое быстрое и легкое занятие.

По большей части ваши сценарии оболочки должны нормально работать в Linux. Снаряды вроде bash и dash (часто обозначается символической ссылкой как /bin/sh в системах Linux) обычно используют sh эмуляция при вызове как /bin/sh.

Помимо отсутствия некоторых более "корпоративных" функций (например, хорошо меры безопасности), миграция на Linux должна быть довольно простой. Если вы переносите базы данных или другие двоичные форматы данных, остерегайтесь различий в порядке байтов (SPARC - с прямым порядком байтов, x86 - с прямым порядком байтов).

Некоторые вещи, которые я испытал за эти годы:

Ksh, предоставляемый redhat, в настоящее время довольно хорош. pdksh менее хорош. ksh имеет оператор печати, которого нет в bash.

Если у вас есть потребность в печати, то lp / lpr / cups нуждаются в тщательной проверке.

Команды Solaris grep / awk могут быть проблемой.

Даже если вы решите использовать ksh, у bash, поставляемого с redhat, есть приятный, малоизвестный флаг функции --rpm-requires, который вы можете использовать для анализа скрипта:

$ bash --rpm-requires conman
executable(/etc/rc.d/init.d/functions)
executable(/etc/sysconfig/network)
executable(/etc/sysconfig/conman)
executable(echo_failure)
executable(echo_failure)
executable(daemon)
executable(touch)
executable(echo_failure)
executable(killproc)
executable(rm)
executable(status)
executable(killproc)

Итак, теперь мы знаем, какие команды этот скрипт должен выполнить. Если вы запустите его со своим каталогом скриптов, вы сможете быстро определить, сколько из них используют awk / sed и т. Д.

Убедитесь, что вы проверили все настройки ulimit, которые находятся в solaris. Проверьте файл solaris / etc / system на предмет настроек семафоров / общей памяти и убедитесь, что соответствующие настройки можно выполнить в linux sysctl.

/ var / adm (Solaris) и / var / log (Linux)

Порядок байтов - если вы переносите данные / двоичные файлы между системами, вам необходимо убедиться, что любое преобразование порядка байтов выполнено, Sparc - это прямой порядок байтов, а Intel - прямой порядок байтов.

Solaris 10 и более ранние версии (я не знаю насчет 11) также имеют другую версию cron, которая может вести себя иначе, чем версия для Linux. В */5 ярлык не работает, другие ярлыки, такие как @daily, могут не работать. Это не должно вызывать проблем при переходе с Solaris на Linux, но может вызвать другие проблемы.

Я смутно помню кое-что о поле дня недели, начинающемся в понедельник в Solaris, но я не нашел ни одного упоминания об этом в быстром поиске в Google.

Очевидно, что любые полные пути к файлам должны быть проверены, поскольку Solaris добавляет множество инструментов в /opt и /usr/ucb что Linux вставляет /usr

Имена пользователей и UID для демонов могут вызвать проблемы, если они есть в ваших скриптах, и вам может потребоваться изменить владельца некоторых файлов при их передаче. Просто потому, что они принадлежат www-data на Solaris не означает, что они все еще будут после переноса в Linux, и в зависимости от вашего дистрибутива и выпуска может потребоваться httpd или apache.