Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение. |
Управление пулами ресурсов. Проекты. Зоны и контейнеры
Зоны и контейнеры
Концепция управления ресурсами и распределения ресурсов между различными наборами приложений развивалась от проектов к зонам. Зоны – это логическое продолжение проектов. По сути дела, если проект – это совокупность процессов, которым могут выделяться некие ресурсы (в том числе и в монопольное распоряжение), то зона – это виртуальная копия системы, в которой запущен определенный набор служб. В отличие от проектов, зоны предоставляют высокий уровень изоляции приложений друг от друга: приложения из одной зоны никак не могут взаимодействовать с приложениями из другой зоны, за исключением обмена данными через сеть.
Зона имеет свое файловое пространство, свой каталог /etc со своими настройками и, следовательно, свой список пользователей, своего администратора root, свой набор служб и так далее. Фактически, зона – это почти виртуальная машина, но значительное отличие зоны от VM – то, что все зоны используют одно и то же ядро.
Зоны бывают двух типов: глобальная зона (она всегда одна – это тот экземпляр системы, который загружается при старте) и неглобальные зоны (это все остальные зоны).
Смысл зон в том, что:
- зона гарантирует идеальную изоляцию приложений – процессы одной зоны не влияют на процессы в других зонах;
- зона обеспечивает изолированную среду не только для приложений, но и для системных служб внутри себя – в каждой зоне есть свои файлы настроек
- Solaris позволяет настроить изолированную среду внутри зоны так, чтобы запускать в ней "неродные" приложения – исполняемые файлы Linux или приложения, ранее установленные в Solaris 8 (даже если это приложения были написаны третьими фирмами и содержат специфические несвязанные с Solaris компоненты).
Зону можно создать и настроить ее свойства командой zonecfg, управлять ею следует с помощью zoneadm.
К зоне с настроенным сетевым интерфейсом можно подсоединиться с помощью ssh, а можно воспользоваться программой zlogin, если вы работаете в глобальной зоне и хотите подключиться к неглобальной зоне.
Файловая система неглобальной зоны может быть совершенно независимой от глобальной зоны (такие зоны называются зонами без унаследованных каталогов – whole root zone), а может содержать "унаследованные" каталоги, т.е. смонтированные из глобальной зоны в режиме "только для чтения". По умолчанию, каталоги /usr, /lib, /platform и /sbin являются унаследованными. Чем больше каталогов унаследует новая неглобальная зона, тем меньше места занимает ее собственная файловая система и тем меньше файлов в нее будет копироваться из глобальной зоны при создании.
Клонирование зон на ZFS
Быстрое клонирование зон может быть необходимо при создании большого количества зон одинаковой конфигурации. Для этой операции удобнее помещать клонируемую зону и все ее клоны в каталогах, расположенных в файловой системе ZFS, так как это значительно сэкономит время при копировании файлов. Клонирование зоны на UFS может занимать от 15 до 45 минут и более (в зависимости от количества установленных пакетов и производительности оборудования), а клонирование зоны на ZFS занимает около 8 секунд.
Для успешного клонирования надо вначале настроить зону, которую вы будете клонировать:
# zonecfg -z master master: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:master> create zonecfg:master> set zonepath=/test/opt zonecfg:master> verify zonecfg:master> commit
Теперь посмотрим на список зон в системе:
# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / native shared - master configured /test/opt native shared
Теперь выполним установку системы в зоне (фактически, копирование установленных пакетов из глобальной зоны в неглобальную):
# zoneadm -z master install /test/opt must not be group readable. /test/opt must not be group executable. /test/opt must not be world readable. /test/opt must not be world executable. could not verify zonepath /test/opt because of the above errors. zoneadm: zone master failed to verify
Ага! Ошибка в правах доступа к каталогу зоны. Исправляем:
# ls -ld /test/opt drwxr-xr-x 2 root root 2 февр. 10 10:33 /test/opt # chmod go-rx /test/opt # ls -ld /test/opt drwx------ 2 root root 2 февр. 10 10:33 /test/opt
Порядок. Устанавливаем зону:
# zoneadm -z master install A ZFS file system has been created for this zone. Preparing to install zone <master>. Creating list of files to copy from the global zone. Copying <11008> files to the zone. Initializing zone product registry. Determining zone package initialization order. Preparing to initialize <1256> packages on the zone. Initialized <1256> packages on zone. Zone <master> is initialized. Inst allation of these packages generated errors: <openofficeorgdesktop- integratn> Installation of <1> packages was skipped. Installation of these packages generated warnings: <WebStackTooling> The file </test/opt/master/root/var/sadm/system/logs/install_log> contains a log of the zone installation.
Теперь выполняем клонирование, для чего вначале создаем зону и настраиваем ее параметры:
zonecfg -z clone create -t master
Обратите внимание на то, что при клонировании мы указывам название зоны-образца (после ключа t ). Это делается потому, что без указания образца нам бы потребовалось сразу настроить обязательный параметр "место расположения зоны" ( zonepath ), а в командной строке при создании зоны этого не сделать. Теперь укажем этот параметр в следующей команде:
zonecfg -z clone set zonepath=/test/opt/clone
И клонируем зону:
zoneadm -z clone clone master
Обратите внимание: в командах zoneadm и zonecfg после ключа z всегда указывается та зона, которую мы в данный момент настраиваем или которой управляем.
Настройка производительности системы
Какая аппаратура быстрее?
Естественно, для разных задач подходят разные компьютеры. Например, компьютеры с процессором Alpha обычно быстрее своих Intel-собратьев выполняют расчеты с числами с плавающей запятой. Это значит, что вычисления, связанные с расчетами координат, решением уравнений или моделированием молекул быстрее выполнит компьютер с процессором Alpha.
В настоящее время процессоры Alpha широко используются в высокопроизводительных серверах от Hewlett-Packard и других, еще более специализированных системах, таких, как суперкомпьютеры Cray и Fujitsu.
Если же речь идет о целочисленных вычислениях, пусть и достаточно громоздких, например, рендеринге, преобразовании графических объектов, 3D-визуализации, где координаты могут быть заданы только целыми числами, процессоры Intel отлично справятся с ними.
Сейчас мы говорили о процессорах Alpha и Intel, но на деле разговор касается двух разных архитектур – RISC и CISC. Процессоры Intel традиционно тяготеют к последней, в то время как процессоры SPARC – к первой. ОС Solaris выпускается в версиях для обеих архитектур, хотя изначально компания Sun не выпускала версию Solaris для Intel, а многочисленные пользователи этой системы во всем мире до сих пор утверждают, что версия для SPARC более производительна и надежна. Это, в частности, связано с тем, что механизмы обеспечения многозадачности тесно связаны с используемой аппаратурой, и версия Solaris под Intel "подогнана" под архитектуру процессоров Intel и архитектуру аппаратных средств, разработанных для них.
Впрочем, оставим эти утверждения на совести пользователей: если для версии Solaris 8 и более старых они еще были справедливы, то Solaris 10 на серверах с процессорами AMD и Intel решает задачи ничуть не хуже, чем на SPARC от Sun Microsystems.
В заключение разговора о предпочтительности той или иной аппаратуры следует сказать, что:
- для работы Solaris под серьезной нагрузкой, такой, как СУБД Oracle с тысячами клиентов и важностью высокой скорости реагирования, система на базе процессоров RISC, скорее всего, окажется более результативной;
- независимо от используемой аппаратной платформы конфигурация компьютера должна быть хорошо согласована: быстрый процессор должен работать с быстрой оперативной памятью, а дисковая подсистема (контроллеры и диски) обязаны успевать без задержек отрабатывать команды чтения и записи. Недостаточный объем кэша любого уровня, как кэша процессора на кристалле, так и кэша дискового контроллера может привести к значительному снижению производительности.
Оценка ситуации: программы надзора за системой
Для оценки производительности системы мы можем задействовать несколько утилит, которые помогут выяснить, насколько загружены различные компоненты нашего компьютера. Исходя из показателей загрузки и наших знаний о реальных потребностях запущенных процессов, мы сможем решить, следует ли изменить конфигурацию компьютера и настройки системы или иначе распределить задачи между компьютерами в сети.
Прежде всего, следует выяснить, есть ли в системе узкие места. Например, постоянная загрузка процессора на 100% может говорить о том, что в системе запущено слишком много конкурирующих процессов, или о работе вычислительного процесса, который постоянно требует процессорное время (что вполне нормально, если только ваш сервер не используют хакеры для подбора или расшифровки паролей), или же о том, что мощность процессора недостаточна и обычные задачи, возложенные на этот компьютер, требуют его модернизации (начальство против? – попробуйте распределить нагрузку в сети или поменять работу – что сейчас легче сделать?)
Если одновременно запущенные процессы мешают друг другу, непрерывно требуя процессорное время, увеличивая нагрузку на планировщик задач и отнимая время на постоянное переключение контекстов, следует подумать об их последовательном запуске – на однопроцессорном компьютере это может привести даже к увеличению скорости их выполнения. Если же при этом процессы конкурируют не только за процессорное время, но и за оперативную память, вызывая активный пейджинг, то их последовательный запуск совершенно точно будет более эффективным, чем параллельный: задачи выполнятся быстрее и нагрузка на систему будет меньше.
Для оценки загрузки процессора и состояния памяти (достаточно ли оперативной памяти, не перегружена ли дисковая подсистема свопингом и т.п.) следует использовать программы top и sar. Конкретные примеры применения этих программ даны ниже, в разделе "эффективное использование памяти и свопинга". Программа top (в Solaris удобнее использовать prstat – местный аналог top ) выводит информацию о наиболее активных процессах, которые сильнее всего занимают процессор:
top last pid: 501; load averages: 0.08, 0.34, 0.40 19:12:00 59 processes: 58 sleeping, 1 on cpu CPU states: 96.2% idle, 0.8% user, 1.0% kernel, 2.0% iowait, 0.0% swap Memory: 128M real, 3596K free, 132M swap in use, 466M swap free PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND 345 root 1 59 0 24M 9972K sleep 0:11 1.14% Xsun 470 root 4 49 0 128M 71M sleep 0:52 1.01% soffice.bin 501 root 1 59 0 2228K 1336K cpu 0:00 0.55% top 461 root 1 59 0 15M 3184K sleep 0:00 0.37% dtterm 467 root 1 49 0 4708K 832K sleep 0:00 0.03% bash 435 root 1 49 0 16M 1760K sleep 0:00 0.01% dtfile 434 root 5 59 0 22M 6304K sleep 0:01 0.00% dtwm 427 root 1 49 0 18M 0K sleep 0:00 0.00% dtsession 436 root 1 59 0 14M 3292K sleep 0:00 0.00% sdtperfmeter 265 root 26 59 0 5480K 1456K sleep 0:00 0.00% htt_server 460 root 1 59 0 3064K 1372K sleep 0:00 0.00% dtexec 315 root 1 59 0 6900K 1324K sleep 0:00 0.00% dtlogin 411 root 1 59 0 3784K 1300K sleep 0:00 0.00% sdt_shell 183 root 3 59 0 5832K 1188K sleep 0:00 0.00% automountd 95 root 13 59 0 5660K 1100K sleep 0:00 0.00% syslogd
Программа sar подобна vmstat и выдает статистику по работе системы, ее можно запустить для выдачи определенных параметров одномоментно или для периодического вывода сведений, например, для десятикратных измерений значений стандартного набора параметров с периодом 5 секунд:
sar 5 10 SunOS sunny 5.9 Generic_112234-03 i86pc 07/03/2004 19:12:34 %usr %sys %wio %idle 19:12:39 0 1 0 99 19:12:44 0 0 0 100 19:12:49 0 1 0 99 19:12:54 4 1 0 95 19:12:59 0 0 0 100 19:13:04 0 1 0 99 19:13:09 5 1 0 94 19:13:14 1 24 66 8 19:13:19 2 35 38 25 19:13:24 3 20 17 60