LDB
С момента начала разработки Samba 4 прошел уже почти год. Что удалось сделать за это время Andrew Tridgell? Отвечу сразу -- удалось многое, однако важным моментом является создание целого ряда средств, пригодных не только в рамках Samba 4. К ним относится и LDB -- легкая база данных с LDAP-подобным интерфейсом, позволяющая хранить любую информацию в структурированном виде. LDB на сегодня поддерживает два хранилища -- традиционную для Samba внутреннюю однофайловую базу данных TDB (Trivial database) и LDAP. Фактически, это очень облегченный вариант LDAP, не требующий предварительной настройки. Создал базу -- и сразу используй. Отличие от полноценного LDAP -- в том, что база данных не имеет предопределенной схемы и существуют ограничения на язык запросов.
LDB можно модифицировать как при помощи утилит командной строки, так и через API, что обеспечивает широкие возможности интеграции. В качестве входного формата для утилит командной строки используется хорошо знакомый LDIF из RFC 2849. Вот, например, test-config.ldif, описывающий прототип нового файла настроек Samba 4:
############################## # global configuration options dn: cn=Global,cn=Config,cn=Samba objectclass: globalconfig Workgroup: VNET3 UnixCharset: UTF8 Security: user Interfaces: vmnet* eth* NetbiosName: blu GuestAccount: tridge ############################## # [test] share dn: cn=test,cn=Shares,cn=Config,cn=Samba objectclass: fileshare cn: test Comment: a test share Path: /home/tridge/samba4/prefix/test ReadOnly: no ##################################### # [msdn] a remote proxy share, stored # on \\msdn\test dn: cn=msdn,cn=Shares,cn=Config,cn=Samba objectclass: fileshare cn: msdn NtvfsHandler: cifs ReadOnly: no _CifsServer: msdn _CifsUser: administrator _CifsPassword: penguin _CifsDomain: winxp _CifsShare: test ############################## # [VisualC] share dn: cn=visualc,cn=Shares,cn=Config,cn=Samba objectclass: fileshare cn: VisualC Comment: VisualC development Path: /home/tridge/VisualC ReadOnly: no NtvfsHandler: simple
Как можно видеть, это очень похоже на обычные записи в LDAP. Конечно, нарушения схемы не проверяются, да они и не важны здесь, поскольку главная задача была получить облегченный механизм хранения записей, не сильно расходящийся с LDAP.
Зачем же это надо? Во-первых, унификация на концептуальном уровне позволяет абстрагироваться от особенностей реализации хранилища и использовать единый интерфейс для хранения настроек и собственно данных внутри Samba 4, тем более, что упор на LDAP делается давно. Во-вторых, и это существенно для администраторов систем, развертывание полноценного LDAP для базовой конфигурации является слишком тяжелым решением. В-третьих, LDB может использоваться и другими проектами там, где нужно хранить структурированные записи или информацию, разделяемую между несколькими приложениями.


0 Comments:
Отправить комментарий
<< Home