Synchronizace konfigurací vyrovnávacích WWW serverů

Technická zpráva TEN-155 CZ číslo 2/2000
k dispozici též ve formátech PDF, PostScript a XML.

Pavel Satrapa
5. září 2000

Úvod

Zavedením distribuovaného systému vyrovnávacích WWW serverů složeného ze sedmi strojů rozmístěných v různých městech ČR vznikla silná potřeba zajistit rozumným způsobem synchronizaci jejich konfigurací. Předpokládá se, že na páteřní vyrovnávací servery se budou napojovat dílčí vyrovnávací servery jednotlivých institucí či jejich částí. Pokud k takovému napojení dojde, měl by být zásah do konfigurace systému páteřních serverů co nejjednodušší.

Základní požadavky tedy jsou:

Princip řešení

Celý konfigurační systém vychází z centrální databáze vyrovnávacích WWW serverů. Do ní jsou zařazeny všechny zúčastněné stroje - jak centrální, tak spolupracující servery. Dělí se do tří kategorií:

páteřní
Cílem systému je vyrobit konfigurační soubory pro všechny páteřní servery.
partnerské
Servery jiných institucí, které jsou však natolik kvalitní (z hlediska diskového prostoru a rychlosti připojení), že má smysl oboustranná spolupráce s nimi - dokumenty se jim poskytují a také se po nich požadují.
klientské
Zde je spolupráce jednostranná. Klientský server využívá servery páteřní, ale sám nic neposkytuje.

Vždy po provedení změny v databázi musí správce spustit program make, který na základě jejího obsahu vytvoří konfigurační soubory pro jednotlivé páteřní servery a následně je serverům rozešle.

Akceptování konfiguračních změn není prováděno on-line. Domnívám se, že záležitost není natolik urgentní, aby bylo třeba vymýšlet odpovídající synchronizační mechanismy. Postačí, když se v pravidelných intervalech (v současné konfiguraci jednou denně v nočních hodinách) na každém z páteřních serverů vyvolá kontrolní program. Ten zjistí, zda server neobdržel novou konfiguraci. Pokud ano, aktivizuje ji.

[Obrázek]

Obrázek 1: Schéma uspořádání systému

Datový soubor

Data o vyrovnávacích serverech jsou uložena v centrálním souboru tencache.cfg. Jedná se o textový soubor v pevném formátu. Každá položka je umístěna na samostatném řádku a má tvar:

název<tabulátor>hodnota

Soubor řádků pro jeden vyrovnávací server je od ostatních oddělen prázdným řádkem. V současné době jsou definovány tyto druhy položek:
name
Doménové jméno vyrovnávacího serveru.
IP
IP adresa vyrovnávacího serveru.
type
Kategorie serveru. Přípustnými hodnotami jsou core (páteřní server), partner (partnerský server) a client (klientský server).
cont
Jméno správce serveru.
mail
Elektronická adresa správce.
phone
Telefonní číslo správce.
desc
Poznámky, doprovodné údaje a podobně.

Položka name musí být vždy uvedena jako první. Povinné jsou pouze první tři položky - name, IP a type. Příklad části konfiguračního souboru:

name    cache.ten34.ces.net
IP      195.178.64.58
type    core
cont    Vladimir Smotlacha
mail    vs@cesnet.cz

name    cache-lb.ten34.ces.net
IP      147.230.16.100
type    core
cont    Pavel Satrapa
mail    Pavel.Satrapa@vslib.cz

Generované konfigurace

Považuji za nerozumné a nepraktické, aby se centrálně distribuovaly kompletní konfigurace páteřních serverů. Jelikož servery často slouží zároveň jako vyrovnávací servery pro lokální akademickou komunitu, mívají různé individuální odchylky v konfiguraci (např. povolují přístup uživatelům ze svých sítí, jsou otevřeny pro jiné lokálním vyrovnávací servery nezapojené do celkového systému a podobně, mohou se lišit velikosti paměti či diskového prostoru a podobně).

Proto je konfigurace rozdělena do dvou částí - automaticky generované a lokální, která je udržována ručně správcem daného serveru. Automaticky generovaná část obsahuje jen ty prvky konfigurace, které mají globální charakter. Konkrétně se jedná o tyto konstrukce:

Tyto konfigurační soubory jsou prostřednictvím scp distribuovány odpovídajícím serverům.

Činnost na jednotlivých serverech

Na vyrovnávacím serveru se soubor s automaticky generovanou části konfigurace uloží do vyhrazeného adresáře pod názvem automat.cfg. Kromě něj se zde ještě musí nacházet soubor local.cfg obsahující lokální část konfigurace. Ta musí mimo jiné zavést odpovídající přístupová práva pro seznamy tencore a tenother definované v automaticky generované části.

Uvedení konfigurace do provozu má na starosti program makecfg. Spouští se v pravidelných intervalech prostřednictvím standardního programu cron. Kromě toho jej správce po provedení změn může spustit ručně. Činnost makecfg je následující:

  1. spojí automat.cfg a local.cfg do jednoho souboru
  2. jeho obsah porovná se stávající konfigurací squid.conf
  3. pokud zjistí rozdíly, uloží zálohu aktuálního squid.conf do podadresáře zaloha, nahradí jej novým a prostřednictvím killall pošle signál Squidu, aby se podle něj začal chovat

Vzhledem k tomu, že standardní konfigurační soubor /usr/local/squid/etc/squid.conf je vždy popsaným způsobem zcela nahrazen, nemá smysl v něm dělat jakékoli změny. Veškeré úpravy lokální konfigurace musí být realizovány v local.cfg.

další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz