Выпуск сэрвіснага мэнэджара s6-rc 0.5.3.0 і сістэмы ініцыялізацыі s6-linux-init 1.0.7

Падрыхтаваны значны выпуск сэрвіснага мэнэджара s6-rc 0.5.3.0, прызначанага для кіравання запускам скрыптоў ініцыялізацыі і сэрвісаў з улікам залежнасцяў. Інструментарый s6-rc можа ўжывацца як у сістэмах ініцыялізацыі, так і для арганізацыі запуску адвольных сэрвісаў у прывязцы да падзей, якія адлюстроўваюць змену стану сістэмы. Прадастаўляецца поўнае адсочванне дрэва залежнасцяў і аўтаматычны запуск або завяршэнне сэрвісаў для дасягнення ўказанага стану. Код напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй ISC.

Сэрвісны мэнэджар s6-rc, які можа разглядацца як аналог sysv-rc або OpenRC, уключае набор утыліт для запуску і прыпынкі доўга якія функцыянуюць працэсаў (дэманаў) або адразу завяршаемых скрыптоў ініцыялізацыі. Падчас прац улічваюцца залежнасці паміж кампанентамі, забяспечваецца раўналежны запуск не якія перасякаюцца паміж сабой скрыптоў і сэрвісаў, і гарантуецца паўтаральная пры розных запусках паслядоўнасць выканання скрыптоў. Усе змены стану апрацоўваюцца з улікам залежнасцяў, сочачы за тым, каб залежнасці не парушаліся (напрыклад, пры запуску нейкага сэрвісу будуць аўтаматычна запушчаны неабходныя для яго працы залежнасці, а пры прыпынку - спыненыя і залежныя сэрвісы).

Замест узроўняў запуску (runlevel) у s6-rc прапануецца больш універсальная канцэпцыя набораў (bundles), якая дазваляе групаваць сэрвісы па адвольных прыкметах і развязальным задачам. Для падвышэння эфектыўнасці працы выкарыстоўваецца скампіляваная база залежнасцяў, якая ствараецца ўтылітай s6-rc-compile на аснове змесціва каталогаў з файламі для запуску/спыненні сэрвісаў. Для разбору і маніпуляцый з БД прапануюцца ўтыліты s6-rc-db і s6-rc-update. Сістэма падтрымлівае скрыпты ініцыялізацыі, сумяшчальныя з sysv-init, і можа імпартаваць інфармацыю аб залежнасцях з sysv-rc ці OpenRC.

З добрых якасцяў s6-rc называецца кампактная рэалізацыя, якая не ўтрымлівае нічога лішняга, акрамя кампанентаў для вырашэння прамых задач, і спажывае мінімум рэсурсаў. У адрозненне ад іншых сэрвісных мэнэджараў s6-rc падтрымлівае папераджальнае (у offline-рэжыме) пабудова графа залежнасцяў для наяўнага набору сэрвісаў, што дазваляе выканаць рэсурсаёмісты аналіз залежнасцяў асобна, а не падчас загрузкі ці змены стану. Пры гэтым сістэма не з'яўляецца маналітнай і разбіта на серыю асобных і заменных модуляў, кожны з якіх у адпаведнасці з філасофіяй Unix вырашае толькі пэўную задачу.

У спалучэнні з утылітамі s6, якія адсочваюць працу працэсаў (аналаг daemontools і runit), інструментар дазваляе адначасова кантраляваць працу доўга якія выконваюцца сэрвісаў, напрыклад, перазапускаючы іх у выпадку аварыйных завяршэнняў, і забяспечваць запуск паслядоўнасці каманд ва ўзнаўляльнай форме, якая паўтараецца пры розных запусках. Падтрымліваюцца ў тым ліку такія магчымасці як актывацыя сэрвісу пры доступе да сокета (запуск апрацоўшчыка пры звароце да сеткавага порта), часопісаванне падзей працэсу (замена syslogd) і кантраляванае прадастаўленне дадатковых прывілеяў (аналаг sudo).

Адначасова даступны выпуск пакета s6-linux-init 1.0.7.0, які прапануе рэалізацыю init-працэсу для пабудовы гатовых сістэм ініцыялізацыі для аперацыйных сістэм на базе ядра Linux, у якіх для кіравання сэрвісамі і скрыптамі ініцыялізацыі выкарыстоўваюцца ўтыліты s6 і s6-rc. Пры гэтым s6 і s6-rc не прывязаны да s6-linux-init і пры жаданні могуць выкарыстоўвацца з любымі сістэмамі ініцыялізацыі.

Акрамя таго праектам прадастаўляюцца:

  • s6-networking - набор утыліт для стварэння сеткавых сэрвісаў, падобны на ucspi.
  • s6-frontend - абвязка для ўзнаўлення функцыянальнасці daemontools і runit па-над s6.
  • s6-portable-utils - набор тыпавых Unix-утыліт, такіх як cut, chmod, ls, sort і grep, аптымізаваных для спажывання мінімальных рэсурсаў і пастаўляюцца пад ліцэнзіяй ISC.
  • s6-linux-utils - набор утыліт, прывязаных да Linux, такіх як chroot, freeramdisk, logwatch, mount і swapon.
  • s6-dns - набор кліенцкіх бібліятэк і ўтыліт, якія замяняюць тыпавыя DNS-ўтыліты з BIND і djbdns.

У новай версіі s6-rc ва ўтыліце s6-rc-compile рэалізавана чытанне дадзеных аб залежнасцях і наборах сэрвісаў з каталогаў, замест файлаў. Выкарыстанне каталогаў спрашчае даданне сэрвісаў у БД з інфармацыяй аб залежнасцях пры ўсталёўцы праграм праз пакетны мэнэджар, бо дазваляе абыйсціся без занясення змен у файлы. Падтрымка старога фармату на аснове файлаў захавана для забеспячэння сумяшчальнасці. У новай версіі s6-linux-init ва ўтыліту s6-linux-init-maker дададзена опцыя "-S" для сінхранізацыі дадзеных у кантэйнерах.

Крыніца: opennet.ru

Дадаць каментар