samba's new registry based configuration

174
Samba’s New Registry Based Configuration Michael Adam [email protected] Samba Team / SerNet 2008-10-10 Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 1 / 33

Upload: others

Post on 18-May-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Samba's New Registry Based Configuration

Samba’s New Registry Based Configuration

Michael Adam

[email protected]

Samba Team / SerNet

2008-10-10

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 1 / 33

Page 2: Samba's New Registry Based Configuration

Outline

Outline

1 Configuration in Samba 3.0 (and before)What We HaveWhat We Need Beyond That

2 Configuration in Samba 3.2The RegistryStoring Configuration in RegistryThe net conf UtilityThe libsmbconf Library

3 Configuring Clustered SambaClustered SambaConfiguring Clustered Samba via Registry

4 Current and Ongoing WorkRewrite of loadparmPlans / TODOs

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 2 / 33

Page 3: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before)

Outline

1 Configuration in Samba 3.0 (and before)What We HaveWhat We Need Beyond That

2 Configuration in Samba 3.2The RegistryStoring Configuration in RegistryThe net conf UtilityThe libsmbconf Library

3 Configuring Clustered SambaClustered SambaConfiguring Clustered Samba via Registry

4 Current and Ongoing WorkRewrite of loadparmPlans / TODOs

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 3 / 33

Page 4: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

Configuration in Samba 3.0

text based configuration in win.ini style: smb.conf file

modularized by include directives

dynamic character by macro expansion at runtime

default config file can be changed by ”config file = . . . ”

main module for processing configuration: param/loadparm.c,text file parser in param/params.c

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 4 / 33

Page 5: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

Configuration in Samba 3.0

text based configuration in win.ini style: smb.conf file

modularized by include directives

dynamic character by macro expansion at runtime

default config file can be changed by ”config file = . . . ”

main module for processing configuration: param/loadparm.c,text file parser in param/params.c

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 4 / 33

Page 6: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

Configuration in Samba 3.0

text based configuration in win.ini style: smb.conf file

modularized by include directives

dynamic character by macro expansion at runtime

default config file can be changed by ”config file = . . . ”

main module for processing configuration: param/loadparm.c,text file parser in param/params.c

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 4 / 33

Page 7: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

Configuration in Samba 3.0

text based configuration in win.ini style: smb.conf file

modularized by include directives

dynamic character by macro expansion at runtime

default config file can be changed by ”config file = . . . ”

main module for processing configuration: param/loadparm.c,text file parser in param/params.c

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 4 / 33

Page 8: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

Configuration in Samba 3.0

text based configuration in win.ini style: smb.conf file

modularized by include directives

dynamic character by macro expansion at runtime

default config file can be changed by ”config file = . . . ”

main module for processing configuration: param/loadparm.c,text file parser in param/params.c

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 4 / 33

Page 9: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

Configuration in Samba 3.0

text based configuration in win.ini style: smb.conf file

modularized by include directives

dynamic character by macro expansion at runtime

default config file can be changed by ”config file = . . . ”

main module for processing configuration: param/loadparm.c,text file parser in param/params.c

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 4 / 33

Page 10: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

Configuration in Samba 3.0

text based configuration in win.ini style: smb.conf file

modularized by include directives

dynamic character by macro expansion at runtime

default config file can be changed by ”config file = . . . ”

main module for processing configuration: param/loadparm.c,text file parser in param/params.c

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 4 / 33

Page 11: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

example smb.conf

[global]netbios name = NIRVANAworkgroup = sambaXPsecurity = userinclude = /etc/samba/smb.conf.%I

[share1]path = /data/shares/share1guest ok = yesread only = no

include file smb.conf.192.168.1.2

log file = /var/log/log.samba.%ulog level = 10debug hires timestamp = yes

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 5 / 33

Page 12: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

example smb.conf

[global]netbios name = NIRVANAworkgroup = sambaXPsecurity = userinclude = /etc/samba/smb.conf.%I

[share1]path = /data/shares/share1guest ok = yesread only = no

include file smb.conf.192.168.1.2

log file = /var/log/log.samba.%ulog level = 10debug hires timestamp = yes

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 5 / 33

Page 13: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

example smb.conf

[global]netbios name = NIRVANAworkgroup = sambaXPsecurity = userinclude = /etc/samba/smb.conf.%I

[share1]path = /data/shares/share1guest ok = yesread only = no

include file smb.conf.192.168.1.2

log file = /var/log/log.samba.%ulog level = 10debug hires timestamp = yes

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 5 / 33

Page 14: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

example smb.conf

[global]netbios name = NIRVANAworkgroup = sambaXPsecurity = userinclude = /etc/samba/smb.conf.%I

[share1]path = /data/shares/share1guest ok = yesread only = no

include file smb.conf.192.168.1.2

log file = /var/log/log.samba.%ulog level = 10debug hires timestamp = yes

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 5 / 33

Page 15: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Have

example smb.conf

[global]netbios name = NIRVANAworkgroup = sambaXPsecurity = userinclude = /etc/samba/smb.conf.%I

[share1]path = /data/shares/share1guest ok = yesread only = no

include file smb.conf.192.168.1.2

log file = /var/log/log.samba.%ulog level = 10debug hires timestamp = yes

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 5 / 33

Page 16: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 17: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 18: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 19: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 20: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 21: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 22: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 23: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 24: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 25: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 26: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 27: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 28: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 29: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 30: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 31: Samba's New Registry Based Configuration

Configuration in Samba 3.0 (and before) What We Need Beyond That

Disadvantages/Needs

memory consumption (in large environments)

smbd process builds list of all service structureseach service struct roughly 1KB (150 parameters)⇒ for 1000 shares and 1000 connections 1GB of wasted RAM

I/O-bottleneck

smbd always loads the whole smb.confsmb.conf file with 1000 shares typically 250KBimagine 1000 clients reloading smb.conf . . .

ease of use

programmatically change the configurationchange individual parameterswrite configuration GUIsdistribute configuration in clusters

Design: parsing parameters and activating them is not well separatedbut is perfomed in one run.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 6 / 33

Page 32: Samba's New Registry Based Configuration

Configuration in Samba 3.2

Outline

1 Configuration in Samba 3.0 (and before)What We HaveWhat We Need Beyond That

2 Configuration in Samba 3.2The RegistryStoring Configuration in RegistryThe net conf UtilityThe libsmbconf Library

3 Configuring Clustered SambaClustered SambaConfiguring Clustered Samba via Registry

4 Current and Ongoing WorkRewrite of loadparmPlans / TODOs

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 7 / 33

Page 33: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 34: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 35: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 36: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 37: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 38: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 39: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 40: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 41: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 42: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 43: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 44: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 45: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 46: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Samba’s Registry

Samba has an internal registry database

needed for communication with Windows clients

available on the network over the WINREG rpc pipe

registry data model: tree structure of keys

a key consists of a name, a list of subkeys and a list of valuesa value consists of a name and the value data

idea: choose one key for storing samba configuration

share ⇔ subkeyparameter in a share ⇔ value in subkey

internal storage: tdb database

access to individual records (parameters) possiblewrite access protected by locks and transactions

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 8 / 33

Page 47: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Caveats

The analogy between smb.conf and registry is not complete:

There is no order in the registry database like there is the line order inthe text file.

Each value name (parameter) appears exactly once in a registry key,whereas in smb.conf, the last mention wins.

Synonymous parameters need special treatment.

Meta directives like include need special treatment

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 9 / 33

Page 48: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Caveats

The analogy between smb.conf and registry is not complete:

There is no order in the registry database like there is the line order inthe text file.

Each value name (parameter) appears exactly once in a registry key,whereas in smb.conf, the last mention wins.

Synonymous parameters need special treatment.

Meta directives like include need special treatment

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 9 / 33

Page 49: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Caveats

The analogy between smb.conf and registry is not complete:

There is no order in the registry database like there is the line order inthe text file.

Each value name (parameter) appears exactly once in a registry key,whereas in smb.conf, the last mention wins.

Synonymous parameters need special treatment.

Meta directives like include need special treatment

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 9 / 33

Page 50: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Caveats

The analogy between smb.conf and registry is not complete:

There is no order in the registry database like there is the line order inthe text file.

Each value name (parameter) appears exactly once in a registry key,whereas in smb.conf, the last mention wins.

Synonymous parameters need special treatment.

Meta directives like include need special treatment

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 9 / 33

Page 51: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Caveats

The analogy between smb.conf and registry is not complete:

There is no order in the registry database like there is the line order inthe text file.

Each value name (parameter) appears exactly once in a registry key,whereas in smb.conf, the last mention wins.

Synonymous parameters need special treatment.

Meta directives like include need special treatment

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 9 / 33

Page 52: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The Registry

Caveats

The analogy between smb.conf and registry is not complete:

There is no order in the registry database like there is the line order inthe text file.

Each value name (parameter) appears exactly once in a registry key,whereas in smb.conf, the last mention wins.

Synonymous parameters need special treatment.

Meta directives like include need special treatment

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 9 / 33

Page 53: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 54: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 55: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 56: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 57: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 58: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 59: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 60: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 61: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step One: Registry Shares

Volker Lendecke introduced registry shares

located underneath registry keyHKLM\Software\Samba\smbconfloaded on demand by the server (smbd/service.c)

registry shares can be loaded all at once if required(e.g. for testparm)

activated by ”registry shares = yes” in smb.conf

no other changes to loadparm.c

access requires the SeDiskOperatorPrivilege

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 10 / 33

Page 62: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step Two: Global Registry Configuration

stored in subkey global parallel to registry shares

function process registry globals() in loadparm.c

accessed with the same functions as other shares

lp load loads only global section

registry shares still loaded on demand

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 11 / 33

Page 63: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step Two: Global Registry Configuration

stored in subkey global parallel to registry shares

function process registry globals() in loadparm.c

accessed with the same functions as other shares

lp load loads only global section

registry shares still loaded on demand

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 11 / 33

Page 64: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step Two: Global Registry Configuration

stored in subkey global parallel to registry shares

function process registry globals() in loadparm.c

accessed with the same functions as other shares

lp load loads only global section

registry shares still loaded on demand

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 11 / 33

Page 65: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step Two: Global Registry Configuration

stored in subkey global parallel to registry shares

function process registry globals() in loadparm.c

accessed with the same functions as other shares

lp load loads only global section

registry shares still loaded on demand

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 11 / 33

Page 66: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step Two: Global Registry Configuration

stored in subkey global parallel to registry shares

function process registry globals() in loadparm.c

accessed with the same functions as other shares

lp load loads only global section

registry shares still loaded on demand

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 11 / 33

Page 67: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step Two: Global Registry Configuration

stored in subkey global parallel to registry shares

function process registry globals() in loadparm.c

accessed with the same functions as other shares

lp load loads only global section

registry shares still loaded on demand

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 11 / 33

Page 68: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

Step Two: Global Registry Configuration

stored in subkey global parallel to registry shares

function process registry globals() in loadparm.c

accessed with the same functions as other shares

lp load loads only global section

registry shares still loaded on demand

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 11 / 33

Page 69: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

How to use it?

smb.conf - registry only

[global]config backend = registry

smb.conf - mixed setup

[global]netbios name = nirvanaworkgroup = SambaXPinclude = registrylog level = 10

[share1]path = /data/share1

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 12 / 33

Page 70: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

How to use it?

smb.conf - registry only

[global]config backend = registry

smb.conf - mixed setup

[global]netbios name = nirvanaworkgroup = SambaXPinclude = registrylog level = 10

[share1]path = /data/share1

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 12 / 33

Page 71: Samba's New Registry Based Configuration

Configuration in Samba 3.2 Storing Configuration in Registry

How to use it?

smb.conf - registry only

[global]config backend = registry

smb.conf - mixed setup

[global]netbios name = nirvanaworkgroup = SambaXPinclude = registrylog level = 10

[share1]path = /data/share1

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 12 / 33

Page 72: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Accessing registry with regedit.exe

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 13 / 33

Page 73: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Accessing registry config ... net conf

Using regedit.exe from Windows to configure Samba is prettyinconvenient.

Using regedit.exe from Windows to configure Samba just feelshorribly wrong :-)

There is a unix command line version of regedit in new Sambaversions: net [rpc] registry. (This is better.)

The new net conf subcommand of net provides a dedicated andspecialized interface to locally read and write the registry basedconfiguration. (Now this is convenient.)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 14 / 33

Page 74: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Accessing registry config ... net conf

Using regedit.exe from Windows to configure Samba is prettyinconvenient.

Using regedit.exe from Windows to configure Samba just feelshorribly wrong :-)

There is a unix command line version of regedit in new Sambaversions: net [rpc] registry. (This is better.)

The new net conf subcommand of net provides a dedicated andspecialized interface to locally read and write the registry basedconfiguration. (Now this is convenient.)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 14 / 33

Page 75: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Accessing registry config ... net conf

Using regedit.exe from Windows to configure Samba is prettyinconvenient.

Using regedit.exe from Windows to configure Samba just feelshorribly wrong :-)

There is a unix command line version of regedit in new Sambaversions: net [rpc] registry. (This is better.)

The new net conf subcommand of net provides a dedicated andspecialized interface to locally read and write the registry basedconfiguration. (Now this is convenient.)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 14 / 33

Page 76: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Accessing registry config ... net conf

Using regedit.exe from Windows to configure Samba is prettyinconvenient.

Using regedit.exe from Windows to configure Samba just feelshorribly wrong :-)

There is a unix command line version of regedit in new Sambaversions: net [rpc] registry. (This is better.)

The new net conf subcommand of net provides a dedicated andspecialized interface to locally read and write the registry basedconfiguration. (Now this is convenient.)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 14 / 33

Page 77: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Accessing registry config ... net conf

Using regedit.exe from Windows to configure Samba is prettyinconvenient.

Using regedit.exe from Windows to configure Samba just feelshorribly wrong :-)

There is a unix command line version of regedit in new Sambaversions: net [rpc] registry. (This is better.)

The new net conf subcommand of net provides a dedicated andspecialized interface to locally read and write the registry basedconfiguration. (Now this is convenient.)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 14 / 33

Page 78: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Accessing registry config ... net conf

Using regedit.exe from Windows to configure Samba is prettyinconvenient.

Using regedit.exe from Windows to configure Samba just feelshorribly wrong :-)

There is a unix command line version of regedit in new Sambaversions: net [rpc] registry. (This is better.)

The new net conf subcommand of net provides a dedicated andspecialized interface to locally read and write the registry basedconfiguration. (Now this is convenient.)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 14 / 33

Page 79: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 80: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 81: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 82: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 83: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 84: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 85: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 86: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 87: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

the net conf commands

net conf list Dump the complete configuration in smb.conf format.

net conf listshares List the share names.

net conf import Import configuration from file in smb.conf format.

net conf drop Delete the complete configuration.

net conf showshare Show the definition of a share.

net conf addshare Create a new share.

net conf delshare Delete a share.

net conf setparm Store a parameter.

net conf getparm Retrieve the value of a parameter.

net conf delparm Delete a parameter.

net conf getincludes Show the includes of a share definition.

net conf setincludes Set includes for a share.

net conf delincludes Delete includes from a share definition.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 15 / 33

Page 88: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The net conf Utility

Breakout: Demonstration of usage of net conf / registry config. . .

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 16 / 33

Page 89: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 90: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 91: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 92: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 93: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 94: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 95: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 96: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 97: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 98: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 99: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The libsmbconf Library

abstraction of the operations of net conf toa set of modules under lib/smbconf

provide complete and stable API (hopefully achieved now)

one libsmbconf ”object” corresponds to one parsed config source

delivers configuration as (lists of) strings

allow different backends behind the API

backends implemented:

registry backendtext backend (read-only, based on params.c)

more backends can be implemented (tdb, LDAP, ...)

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 17 / 33

Page 100: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

A small glimpse into the libsmbconf API

smbconf service structure

struct smbconf_service {char *name;uint32_t num_params;char **param_names;char **param_values;

};

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 18 / 33

Page 101: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

A small glimpse into the libsmbconf API

smbconf service structure

struct smbconf_service {char *name;uint32_t num_params;char **param_names;char **param_values;

};

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 18 / 33

Page 102: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: libnetapi and the netdomjoin-gui

Gunther Deschner has developed a NetAPI library.

We have extended the NetJoinDomain call to modify the registryconfiguration upon successful join.

Similar for the unjoin (leave) operation.

This allows joining a domain with an empty samba configuration.

The example netdomjoin-gui GTK application lets you set themachine and workgroup name and join or leave an AD domain.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 19 / 33

Page 103: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: libnetapi and the netdomjoin-gui

Gunther Deschner has developed a NetAPI library.

We have extended the NetJoinDomain call to modify the registryconfiguration upon successful join.

Similar for the unjoin (leave) operation.

This allows joining a domain with an empty samba configuration.

The example netdomjoin-gui GTK application lets you set themachine and workgroup name and join or leave an AD domain.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 19 / 33

Page 104: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: libnetapi and the netdomjoin-gui

Gunther Deschner has developed a NetAPI library.

We have extended the NetJoinDomain call to modify the registryconfiguration upon successful join.

Similar for the unjoin (leave) operation.

This allows joining a domain with an empty samba configuration.

The example netdomjoin-gui GTK application lets you set themachine and workgroup name and join or leave an AD domain.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 19 / 33

Page 105: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: libnetapi and the netdomjoin-gui

Gunther Deschner has developed a NetAPI library.

We have extended the NetJoinDomain call to modify the registryconfiguration upon successful join.

Similar for the unjoin (leave) operation.

This allows joining a domain with an empty samba configuration.

The example netdomjoin-gui GTK application lets you set themachine and workgroup name and join or leave an AD domain.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 19 / 33

Page 106: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: libnetapi and the netdomjoin-gui

Gunther Deschner has developed a NetAPI library.

We have extended the NetJoinDomain call to modify the registryconfiguration upon successful join.

Similar for the unjoin (leave) operation.

This allows joining a domain with an empty samba configuration.

The example netdomjoin-gui GTK application lets you set themachine and workgroup name and join or leave an AD domain.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 19 / 33

Page 107: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: libnetapi and the netdomjoin-gui

Gunther Deschner has developed a NetAPI library.

We have extended the NetJoinDomain call to modify the registryconfiguration upon successful join.

Similar for the unjoin (leave) operation.

This allows joining a domain with an empty samba configuration.

The example netdomjoin-gui GTK application lets you set themachine and workgroup name and join or leave an AD domain.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 19 / 33

Page 108: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: libnetapi and the netdomjoin-gui

Gunther Deschner has developed a NetAPI library.

We have extended the NetJoinDomain call to modify the registryconfiguration upon successful join.

Similar for the unjoin (leave) operation.

This allows joining a domain with an empty samba configuration.

The example netdomjoin-gui GTK application lets you set themachine and workgroup name and join or leave an AD domain.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 19 / 33

Page 109: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

The netdomjoin-gui

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 20 / 33

Page 110: Samba's New Registry Based Configuration

Configuration in Samba 3.2 The libsmbconf Library

Application: The netdomjoin-gui

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 21 / 33

Page 111: Samba's New Registry Based Configuration

Configuring Clustered Samba

Outline

1 Configuration in Samba 3.0 (and before)What We HaveWhat We Need Beyond That

2 Configuration in Samba 3.2The RegistryStoring Configuration in RegistryThe net conf UtilityThe libsmbconf Library

3 Configuring Clustered SambaClustered SambaConfiguring Clustered Samba via Registry

4 Current and Ongoing WorkRewrite of loadparmPlans / TODOs

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 22 / 33

Page 112: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Intentions

Have Samba serve cluster storage from multiple cluster nodessimultaneously (active-active storage cluster).

Make Samba daemons on multiple nodes appear as one CIFS server(basically turns your cluster into a NAS).

Scale in performance with the number of nodes in the cluster.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 23 / 33

Page 113: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Intentions

Have Samba serve cluster storage from multiple cluster nodessimultaneously (active-active storage cluster).

Make Samba daemons on multiple nodes appear as one CIFS server(basically turns your cluster into a NAS).

Scale in performance with the number of nodes in the cluster.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 23 / 33

Page 114: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Intentions

Have Samba serve cluster storage from multiple cluster nodessimultaneously (active-active storage cluster).

Make Samba daemons on multiple nodes appear as one CIFS server(basically turns your cluster into a NAS).

Scale in performance with the number of nodes in the cluster.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 23 / 33

Page 115: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Intentions

Have Samba serve cluster storage from multiple cluster nodessimultaneously (active-active storage cluster).

Make Samba daemons on multiple nodes appear as one CIFS server(basically turns your cluster into a NAS).

Scale in performance with the number of nodes in the cluster.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 23 / 33

Page 116: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Intentions

Have Samba serve cluster storage from multiple cluster nodessimultaneously (active-active storage cluster).

Make Samba daemons on multiple nodes appear as one CIFS server(basically turns your cluster into a NAS).

Scale in performance with the number of nodes in the cluster.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 23 / 33

Page 117: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Problems

Coherence and scalability of Samba’s many internal tdb databases.

These are used for locking and other runtime data.

Other, persistent data like passwords and registry configuration is alsostored in tdb databases.

For coherence, this could go into the cluster storage.

But excessive use of fcntl locks and very many small write operationslead to very bad performance, even negative scaling, since the locksneed to be propagated across the cluster nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 24 / 33

Page 118: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Problems

Coherence and scalability of Samba’s many internal tdb databases.

These are used for locking and other runtime data.

Other, persistent data like passwords and registry configuration is alsostored in tdb databases.

For coherence, this could go into the cluster storage.

But excessive use of fcntl locks and very many small write operationslead to very bad performance, even negative scaling, since the locksneed to be propagated across the cluster nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 24 / 33

Page 119: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Problems

Coherence and scalability of Samba’s many internal tdb databases.

These are used for locking and other runtime data.

Other, persistent data like passwords and registry configuration is alsostored in tdb databases.

For coherence, this could go into the cluster storage.

But excessive use of fcntl locks and very many small write operationslead to very bad performance, even negative scaling, since the locksneed to be propagated across the cluster nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 24 / 33

Page 120: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Problems

Coherence and scalability of Samba’s many internal tdb databases.

These are used for locking and other runtime data.

Other, persistent data like passwords and registry configuration is alsostored in tdb databases.

For coherence, this could go into the cluster storage.

But excessive use of fcntl locks and very many small write operationslead to very bad performance, even negative scaling, since the locksneed to be propagated across the cluster nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 24 / 33

Page 121: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Problems

Coherence and scalability of Samba’s many internal tdb databases.

These are used for locking and other runtime data.

Other, persistent data like passwords and registry configuration is alsostored in tdb databases.

For coherence, this could go into the cluster storage.

But excessive use of fcntl locks and very many small write operationslead to very bad performance, even negative scaling, since the locksneed to be propagated across the cluster nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 24 / 33

Page 122: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Problems

Coherence and scalability of Samba’s many internal tdb databases.

These are used for locking and other runtime data.

Other, persistent data like passwords and registry configuration is alsostored in tdb databases.

For coherence, this could go into the cluster storage.

But excessive use of fcntl locks and very many small write operationslead to very bad performance, even negative scaling, since the locksneed to be propagated across the cluster nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 24 / 33

Page 123: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Clustered Samba: Problems

Coherence and scalability of Samba’s many internal tdb databases.

These are used for locking and other runtime data.

Other, persistent data like passwords and registry configuration is alsostored in tdb databases.

For coherence, this could go into the cluster storage.

But excessive use of fcntl locks and very many small write operationslead to very bad performance, even negative scaling, since the locksneed to be propagated across the cluster nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 24 / 33

Page 124: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 125: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 126: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 127: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 128: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 129: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 130: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 131: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 132: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 133: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 134: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

ctdb - Clustered tdb

Idea: There is no need to store all data of a tdb in the cluster FS.

All nodes have their local copy of the data.

One node holds the authoritative copy of the tdb – data master.

Changes by the data master are propagated to the other cluster nodes.

Other nodes need to become data master before changing the tdb.

Handling of the metadata is done by the userspace ctdb daemon(running on each node).

The ctdb daemons communicate over an internal cluster network anda recovery lock file stored in the cluster file system.

The ctdb commandline tool is used to manage ctdbd.

The onnode script can run commands on single or multiple nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 25 / 33

Page 135: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Setting up ctdb

/etc/sysconfig/ctdb holds basic setup

/etc/ctdb/nodes specifies the nodes of the ctdb cluster (internalnetwork addresses)

/etc/ctdb/public addresses specifies the external IP addressesthe cluster node can possibly take.

with ctdb’s IP takeover (of public addresses) and e.g. round robinDNS, a simple load balancing is easily implemented

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 26 / 33

Page 136: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Setting up ctdb

/etc/sysconfig/ctdb holds basic setup

/etc/ctdb/nodes specifies the nodes of the ctdb cluster (internalnetwork addresses)

/etc/ctdb/public addresses specifies the external IP addressesthe cluster node can possibly take.

with ctdb’s IP takeover (of public addresses) and e.g. round robinDNS, a simple load balancing is easily implemented

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 26 / 33

Page 137: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Setting up ctdb

/etc/sysconfig/ctdb holds basic setup

/etc/ctdb/nodes specifies the nodes of the ctdb cluster (internalnetwork addresses)

/etc/ctdb/public addresses specifies the external IP addressesthe cluster node can possibly take.

with ctdb’s IP takeover (of public addresses) and e.g. round robinDNS, a simple load balancing is easily implemented

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 26 / 33

Page 138: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Setting up ctdb

/etc/sysconfig/ctdb holds basic setup

/etc/ctdb/nodes specifies the nodes of the ctdb cluster (internalnetwork addresses)

/etc/ctdb/public addresses specifies the external IP addressesthe cluster node can possibly take.

with ctdb’s IP takeover (of public addresses) and e.g. round robinDNS, a simple load balancing is easily implemented

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 26 / 33

Page 139: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Setting up ctdb

/etc/sysconfig/ctdb holds basic setup

/etc/ctdb/nodes specifies the nodes of the ctdb cluster (internalnetwork addresses)

/etc/ctdb/public addresses specifies the external IP addressesthe cluster node can possibly take.

with ctdb’s IP takeover (of public addresses) and e.g. round robinDNS, a simple load balancing is easily implemented

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 26 / 33

Page 140: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Setting up ctdb

/etc/sysconfig/ctdb holds basic setup

/etc/ctdb/nodes specifies the nodes of the ctdb cluster (internalnetwork addresses)

/etc/ctdb/public addresses specifies the external IP addressesthe cluster node can possibly take.

with ctdb’s IP takeover (of public addresses) and e.g. round robinDNS, a simple load balancing is easily implemented

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 26 / 33

Page 141: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 142: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 143: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 144: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 145: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 146: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 147: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 148: Samba's New Registry Based Configuration

Configuring Clustered Samba Clustered Samba

Samba and ctdb

Support for using ctdb is available since Samba 3.2.0.

There is a clustered Samba branch v3-2-ctdb with specialenhancements: git://git.samba.org/obnox/samba-ctdb.git

Samba must be configured (at build time) with--with-cluster-support.

Activated by global configuration option clustering = yes

This makes samba talk to ctdbd instead of directly writing to localtdb databases (for most tdbs).

This is used successfully in production on top of the GPFS clusteredfile system.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 27 / 33

Page 149: Samba's New Registry Based Configuration

Configuring Clustered Samba Configuring Clustered Samba via Registry

Configuring Clustered Samba

This is the basic configuration file needs to be on all nodes:

smb.conf for clustering

[global]clustering = yesinclude = registry

The rest of the configuration goes into registry and is automaticallypropagated to all nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 28 / 33

Page 150: Samba's New Registry Based Configuration

Configuring Clustered Samba Configuring Clustered Samba via Registry

Configuring Clustered Samba

This is the basic configuration file needs to be on all nodes:

smb.conf for clustering

[global]clustering = yesinclude = registry

The rest of the configuration goes into registry and is automaticallypropagated to all nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 28 / 33

Page 151: Samba's New Registry Based Configuration

Configuring Clustered Samba Configuring Clustered Samba via Registry

Configuring Clustered Samba

This is the basic configuration file needs to be on all nodes:

smb.conf for clustering

[global]clustering = yesinclude = registry

The rest of the configuration goes into registry and is automaticallypropagated to all nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 28 / 33

Page 152: Samba's New Registry Based Configuration

Configuring Clustered Samba Configuring Clustered Samba via Registry

Configuring Clustered Samba

This is the basic configuration file needs to be on all nodes:

smb.conf for clustering

[global]clustering = yesinclude = registry

The rest of the configuration goes into registry and is automaticallypropagated to all nodes.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 28 / 33

Page 153: Samba's New Registry Based Configuration

Configuring Clustered Samba Configuring Clustered Samba via Registry

Breakout: demo ctdb and configuring clustered Samba. . .

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 29 / 33

Page 154: Samba's New Registry Based Configuration

Current and Ongoing Work

Outline

1 Configuration in Samba 3.0 (and before)What We HaveWhat We Need Beyond That

2 Configuration in Samba 3.2The RegistryStoring Configuration in RegistryThe net conf UtilityThe libsmbconf Library

3 Configuring Clustered SambaClustered SambaConfiguring Clustered Samba via Registry

4 Current and Ongoing WorkRewrite of loadparmPlans / TODOs

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 30 / 33

Page 155: Samba's New Registry Based Configuration

Current and Ongoing Work Rewrite of loadparm

changes to loadparm.c

use libsmbconf throughout, i.e. remove all direct references to theparser (param.c)

This cleans the design of loadparm an separates parsing of parametersfrom their activation

replace concept of config file by that config source

The smb.conf file is no longer necessary the initial config source.

Registry configuration is no longer restricted to a single key.Configuration sources from different keys can be included.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 31 / 33

Page 156: Samba's New Registry Based Configuration

Current and Ongoing Work Rewrite of loadparm

changes to loadparm.c

use libsmbconf throughout, i.e. remove all direct references to theparser (param.c)

This cleans the design of loadparm an separates parsing of parametersfrom their activation

replace concept of config file by that config source

The smb.conf file is no longer necessary the initial config source.

Registry configuration is no longer restricted to a single key.Configuration sources from different keys can be included.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 31 / 33

Page 157: Samba's New Registry Based Configuration

Current and Ongoing Work Rewrite of loadparm

changes to loadparm.c

use libsmbconf throughout, i.e. remove all direct references to theparser (param.c)

This cleans the design of loadparm an separates parsing of parametersfrom their activation

replace concept of config file by that config source

The smb.conf file is no longer necessary the initial config source.

Registry configuration is no longer restricted to a single key.Configuration sources from different keys can be included.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 31 / 33

Page 158: Samba's New Registry Based Configuration

Current and Ongoing Work Rewrite of loadparm

changes to loadparm.c

use libsmbconf throughout, i.e. remove all direct references to theparser (param.c)

This cleans the design of loadparm an separates parsing of parametersfrom their activation

replace concept of config file by that config source

The smb.conf file is no longer necessary the initial config source.

Registry configuration is no longer restricted to a single key.Configuration sources from different keys can be included.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 31 / 33

Page 159: Samba's New Registry Based Configuration

Current and Ongoing Work Rewrite of loadparm

changes to loadparm.c

use libsmbconf throughout, i.e. remove all direct references to theparser (param.c)

This cleans the design of loadparm an separates parsing of parametersfrom their activation

replace concept of config file by that config source

The smb.conf file is no longer necessary the initial config source.

Registry configuration is no longer restricted to a single key.Configuration sources from different keys can be included.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 31 / 33

Page 160: Samba's New Registry Based Configuration

Current and Ongoing Work Rewrite of loadparm

changes to loadparm.c

use libsmbconf throughout, i.e. remove all direct references to theparser (param.c)

This cleans the design of loadparm an separates parsing of parametersfrom their activation

replace concept of config file by that config source

The smb.conf file is no longer necessary the initial config source.

Registry configuration is no longer restricted to a single key.Configuration sources from different keys can be included.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 31 / 33

Page 161: Samba's New Registry Based Configuration

Current and Ongoing Work Rewrite of loadparm

changes to loadparm.c

use libsmbconf throughout, i.e. remove all direct references to theparser (param.c)

This cleans the design of loadparm an separates parsing of parametersfrom their activation

replace concept of config file by that config source

The smb.conf file is no longer necessary the initial config source.

Registry configuration is no longer restricted to a single key.Configuration sources from different keys can be included.

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 31 / 33

Page 162: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 163: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 164: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 165: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 166: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 167: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 168: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 169: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 170: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 171: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 172: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 173: Samba's New Registry Based Configuration

Current and Ongoing Work Plans / TODOs

Plans / TODOs

finish and release rewrite of loadparm (3.4 - Summer 2009)

make libsmbconf and registry shared libraries

Add write support to text backend (comment handling?)

write more backends:

GPO backend (with Gunther Deschner)LDAP or other DB backendXML. . .

reconcile registry library with Samba4 (with Jelmer Vernooij)

make use of libsmbconf in Samba4/Franky

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 32 / 33

Page 174: Samba's New Registry Based Configuration

Thank you very much! — Questions?

Michael Adam (Samba Team / SerNet) Samba’s Registry Configuration 2008-10-10 33 / 33