Вход:  Пароль:  
FreeSource: ИдеальныйСервер ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Оглавление документа

Введение

Идеальный сервер является службой, реализованной в виде процесса(-ов) демона(-ов) serverd
Управляется утилитой serverd-control [options] <command> через сокет /tmp/.serverd/control или сокет tcp/host:control-port

Управление конфигурацией

Конфигурационные параметры идеального сервера иерархически упорядоченыsysctl,mib (сгруппированы) по смыслу.
Идентификаторы конфигурационных параметров отражают их иерархию: label1.label2.label3....labeln
Конфигурационные параметры принимают свои значения из любыхmysql конфигурационных источников: опций командной строки, переменных окружения, конфигурационных файлов.
Конфигурационные параметры идеального сервера имеют значения по умолчанию (определяемые на стадии его сборки), позволяющие получить работоспособную службу без предварительного задания каких-либо явных значений в конфигурационных источниках.
Семантика (порядок применения, наследования и т.д.) определяется службой идеального сервера.

Опции командной строки

Опции командной строки позволяют задавать начальные значения любых конфигурационных параметров при помощи специальной опции -o label1-label2-label3-...-labeln=value,label1-label2-label3-...-labeln=value ...mount или при помощи «длинной» формы: --label1.label2.label3....labeln=value ... или --label1-label2-label3-...-labeln=value ...mysqld. Для часто используемых конфигурационных параметров «короткая» форма – псевдонимы -o alias=value или --alias=value или -a value ....

Переменные окружения

Переменные окружения позволяют задавать начальные значения любых конфигурационных параметров при помощи специальной формы: SERVERD_LABEL1_LABEL2_LABEL3_..._LABELn=value .... Префикс SERVERD_ играет роль идентификатора «пространства имен» конфигурационных переменных окружения идеального сервера.

Конфигурационные файлы

Предназначены для сохранения множества значений конфигурационных параметров.
Конфигурационные файлы позволяют задавать начальные значения любых конфигурационных параметров.

Формат

Конфигурационные файлы идеального сервера имеют текстовый (utf-8) вид отражают иерархию конфигурационных параметров при помощи естественной (для современных ОС) иерархии дерева каталоговetcnet,tcb,procfs,sysfs.



Параметры c единственными значениями представлены файлами, содержимое которых и является значением параметра.
Пареметры с множественными значениями представленны каталогами, содержимое файлов которых (просмотриваемых в лексографическом порядке их имен) является значениями параметра.
Подстановки значений одних параметров в качестве значения(-й) других параметров реализуются при помощи символических ссылок на файлы (каталоги).
Вычисляемые значения параметров реализуются при помощи исполняемых файлов (содержимое стандартного потока вывода при выполнении которых и являются вычисленым значением параметра) или именнованных каналов (результат чтения которых и является вычисленым значением параметра).

Приемущества
  1. Все есть файл.
  2. Простота и естественность реализации и использования.
  3. Кэширование в оперативной памяти дискового кэша (ядра ОС).
  4. Производительность операций поиска нужного конфигурационного параметра, равная производительности используемой файловой системы (зачастую построенных на основе адекватных структур данных – деревьев и т.д., управляемых ядром ОС).
  5. Возможность делигирования полномочий управления подмножествами конфигурационных параметрам отдельным пользователям или группам пользователей (контроль подобных полномочий ядром ОС).
  6. Облегчает реализацию контроля и управления версиями конфигураций (штатными системами RCS/CVS/...).
Недостатки

1. Из-за присущей текстовым файлам избыточности, такие файлы конфигурации неоптимально используют дисковое пространство (правда, замечу, в большинстве случаев это неактуально из-за небольших размеров файлов конфигурации и постоянно снижающейся стоимости хранения).
2. Формат удобный для восприятия человеком (текстовый файл) неудобен для «восприятия» машиной. В этом случае возможны нерабочие файлы конфигурации из-за опечаток, синтаксических ошибок, неверного порядка следовании параметров, а также случается (правда редко), что некоторые последовательности символов понятные человеку интерпретируются машиной непредсказуемым образом.
3. Вытекает из п.2. Для применения конфигурации текстовый файл транслируется в вид удобный для восприятия машиной и в случае больших файлов преобразование занимает относительно продолжительное время, что в некоторых случаях нежелательно.

Размещение

Общисистемные конфигурационные файлы /etc/serverd.d/*
Пользовательские конфигурационные файлы ~/.serverd.d/*

Программный интерфейс (API) управления конфигурацией

Программный интерфейс управления конфигурационными параметрами идеального сервера реализуется в виде библиотеки libserverdconfig.so языка C (с последующими привязками к другим языкам программирования) и предоставляет возможность запроса и установки активных и сохраненных значений конфигурационных параметров идеального сервера при помощи своих иерархических идентификаторов label1.label2.label3....labeln)

struct cfg_parameter {
  char* name;
  char* value;
}

struct cfg_configuration {
  /* Не имеет значения для API */
}

enum cfg_types { ACTIVE, SAVED };

struct parameter* cfg_getparameterbyname(char *name, int type);
int cfg_setparameterbyname(char *name, struct cfg_parameter int type);

struct configuration* cfg_open(int type);
struct parameter* cfg_getnextparameter(struct cfg_configuration*);
int cfg_close(struct cfg_configuration*);

Утилиты управления конфигурацией

Утилиты управления конфигурацией предназначены для избавленияiptables администратора от необходимости изменять сохраненные значения конфигурационных параметров напрямую в конфигурационных файлах (но не исключают эту возможность).
Активные и сохраненные значения конфигурационных параметров идеального сервера могут быть запрошены, установлены или сохранены (при помощи своих иерархических идентификаторов label1.label2.label3....labeln) утилитойaptconfig,sysctl
serverd-config [-с <configroot>] save|get|set [active|saved] [label1.label2.label3....labeln[[+|-]=[value|$label1.label2.label3....labeln]]
через сокет /tmp/.serverd/config или сокет tcp/host:config-port и из/в конфигурационных(-ые) файлов(-ы) соответственно.


Пример сеанса управления конфигурацией идеального сервера

Управление версиями конфигураций

TODO:


Управление профилями конфигураций

TODO:

Документирование назначения конфигурационных параметров

TODO:
см. literate programming


sysctl sysctl(8)
mib SNMP MIB
mysql MySQL
mysqld mysqld
etcnet /etc/net
tcb /etc/tcb
procfs /proc (procfs)
sysfs /sys (sysfs)
mount mount(8): опции монтирования
aptconfig apt-config(8)
iptables service iptables save


 
Файлов нет. [Показать файлы/форму]
Много комментариев (7). [Показать комментарии/форму]