Roadmap: Difference between revisions

From SambaWiki
m (s/a/an)
 
(12 intermediate revisions by 2 users not shown)
Line 5: Line 5:
If a feature listed below is flagged as '''FUNDED''', this means that someone is currently being paid to work on it. Hence there are realistic chances that this feature might be completed in a reasonably short time frame. For all other features, further involvement is needed: Otherwise it could even take years to complete even if a feature is flagged as work in progress (WIP), since these are usually being worked on in someone's spare time.
If a feature listed below is flagged as '''FUNDED''', this means that someone is currently being paid to work on it. Hence there are realistic chances that this feature might be completed in a reasonably short time frame. For all other features, further involvement is needed: Otherwise it could even take years to complete even if a feature is flagged as work in progress (WIP), since these are usually being worked on in someone's spare time.


Involvement is highly welcome and can come in various guises: '''Manpower for coding, testing, documentation, ...'''
Involvement is highly welcome and can come in various guises: manpower for coding, testing, documentation, ...



'''Contact the Samba Team go get involved!'''
'''Contact the Samba Team go get involved!'''
Line 13: Line 12:


== File Server (smbd) ==
== File Server (smbd) ==

=== Infrastructure ===

* s4u2self (Correct authorization in complex AD topologies on Linux AD member for non-SMB acccess)
* ksmbd integration


=== [[Samba3/SMB2|SMB2/SMB3]] ===
=== [[Samba3/SMB2|SMB2/SMB3]] ===


* Witness service - Prototype
* '''FUNDED''': Implement multi-channel ([[User:Obnox|Michael]], [[User:Metze|Metze]])
* Clustering (Continuous availability, Scale-out)
* '''FUNDED''': Implement the witness service (Günther, [[User:Metze|Metze]])
* Persistent file handles - Prototype ([[User:slowfranklin|slow]])
** Prerequisite: An asynchronous RPC server. See [[DCERPC]]
* RDMA (SMB direct) - Prototype ([[User:Metze|Metze]])
* '''FUNDED for Gluster''': Clustering (continuous availability, scale-out) - Planning ([[User:Ira|Ira]], [[User:Obnox|Michael]], ...)
* Directory leases - Prototype ([[User:slowfranklin|slow]])
* '''FUNDED for Gluster''': Persistent file handles - Planning ([[User:Ira|Ira]], [[User:Obnox|Michael]], ...) (Do not expect this immediately - Ira)
* SMB2 UNIX Extensions
* RDMA (SMB direct) - Planning ([[User:Metze|Metze]], [[User:Rsharpe|Richard]], [[User:Obnox|Michael]], [[User:Ira|Ira]])
* Directory leases


=== Clustering - CTDB ===
=== Clustering - CTDB ===


* Split up locking.tdb for better scaling of per-file concurrent access
* integrate the clustered file server into selftest/autobuild - WIP ([[User:Obnox|Michael]])


=== File Systems ===
=== File Systems ===
Line 32: Line 35:
Support for special features of various file systems, especially cluster file systems, typically through VFS modules.
Support for special features of various file systems, especially cluster file systems, typically through VFS modules.


* '''FUNDED''': gpfs
* gpfs ('''FUNDED''')
* '''FUNDED''': GlusterFS
* GlusterFS ('''FUNDED''')
* CephFS
* CephFS
* ...


=== Performance ===
=== Performance ===
Line 42: Line 44:
to really track the current issues...
to really track the current issues...


* Use iouring with splice() - Prototype ('''FUNDED''')
* performance in clusters, TDB/CTDB
* Performance in clusters, TDB/CTDB
* Parallel, small I/O (HyperV) workload
* Parallel, small I/O (HyperV) workload


Line 55: Line 58:
== Active Directory Server ==
== Active Directory Server ==


* '''HELP NEEDED:''' S4U2Self, S4U2Proxy, PKINIT ... You can find more details at: [[Roadmap_MIT_KDC]]
* S4U2Self, S4U2Proxy, PKINIT ... You can find more details at: [[Roadmap_MIT_KDC]]
* '''HELP NEEDED:''' Two-way forest trusts (Metze)
* Two-way forest trusts (Metze)
* '''FUNDED:''' Correct non-mesh inter-site and intra-site replication via Knowledge Consistency Checker (KCC) (Andrew Bartlett, Garming Sam, Douglas
Bagnall)

* [[The_Samba_AD_DNS_Back_Ends]]
* [[The_Samba_AD_DNS_Back_Ends]]
* [[Samba4/DRS_TODO_List|Directory Replication Service (DRS)]]
* [[Samba4/DRS_TODO_List|Directory Replication Service (DRS)]]
Line 72: Line 72:
The RPC server infrastructure component is of crucial importance for both the file server and the active directory server. A few tasks in for the RPC server are prerequisites for higher level features in the file server and the active directory server. See [[DCERPC]] for details.
The RPC server infrastructure component is of crucial importance for both the file server and the active directory server. A few tasks in for the RPC server are prerequisites for higher level features in the file server and the active directory server. See [[DCERPC]] for details.


* Merge source3 and source4 server and client implementations (Metze)
* Merge source3 and source4 client implementations (Metze)
* Make RPC server (and client) implementation fully asynchronuous (Metze)
* Make RPC client implementation fully asynchronuous (Metze)
* Merge [[Endpoint_Mapper|endpoint mapper]] implementations
* Merge [[Endpoint_Mapper|endpoint mapper]] implementations
* Implement Association groups
* Implement Association groups


* async schannel (NETLOGON) client (Metze)
* async schannel (NETLOGON) client (Metze)
* merged crypto handling for samlogon cred validation (Günther/Metze)
* merged crypto handling for samlogon cred validation (Günther/Metze)
* merged libnetjoin interfaces (Günther/Metze)
* merged libnetjoin interfaces (Günther/Metze)



== Testing ==
== Testing ==
Line 87: Line 84:
* Multi-trust environments setup to test trusts
* Multi-trust environments setup to test trusts
* Rewrite and improve the Selftest Suite
* Rewrite and improve the Selftest Suite




= Completed tasks =
= Completed tasks =
Line 98: Line 93:
* SMB 2.1 Multi-Credit
* SMB 2.1 Multi-Credit
* SMB 3.0 protocol support (including encryption)
* SMB 3.0 protocol support (including encryption)
* Multichannel


* Transparent file compression
* Transparent file compression
* Serverside copy using COPYCHUNK
* Serverside copy using COPYCHUNK


* Improved performance on small-CPUs
* Improved performance on small-CPUs
* Improved TDB database performance (using robust mutex locking)
* Improved TDB database performance (using robust mutex locking)



=== Clustering - CTDB ===
=== Clustering - CTDB ===
Line 113: Line 104:
** integrate the code under ctdb/
** integrate the code under ctdb/
** integrate the build into the top level waf build
** integrate the build into the top level waf build



=== Active Directory Server ===
=== Active Directory Server ===
Line 120: Line 110:
* use smbd as file server
* use smbd as file server
* use winbindd for id-mapping
* use winbindd for id-mapping
* Correct non-mesh inter-site and intra-site replication via Knowledge Consistency Checker (KCC) (Andrew Bartlett, Garming Sam, Douglas Bagnall)



=== DCERPC Infrastructure ===
=== DCERPC Infrastructure ===


* common secure channel implementation
* common secure channel implementation
* Merge source3 and source4 server implementations
* Make RPC server implementation fully asynchronuous


=== Testing ===
=== Testing ===

Latest revision as of 15:38, 20 January 2022

Introduction

This page describes the bigger next steps in the development of Samba. The purpose is to point out the broader direction into which Samba is heading.

If a feature listed below is flagged as FUNDED, this means that someone is currently being paid to work on it. Hence there are realistic chances that this feature might be completed in a reasonably short time frame. For all other features, further involvement is needed: Otherwise it could even take years to complete even if a feature is flagged as work in progress (WIP), since these are usually being worked on in someone's spare time.

Involvement is highly welcome and can come in various guises: manpower for coding, testing, documentation, ...

Contact the Samba Team go get involved!

Features

File Server (smbd)

Infrastructure

  • s4u2self (Correct authorization in complex AD topologies on Linux AD member for non-SMB acccess)
  • ksmbd integration

SMB2/SMB3

  • Witness service - Prototype
  • Clustering (Continuous availability, Scale-out)
  • Persistent file handles - Prototype (slow)
  • RDMA (SMB direct) - Prototype (Metze)
  • Directory leases - Prototype (slow)
  • SMB2 UNIX Extensions

Clustering - CTDB

  • Split up locking.tdb for better scaling of per-file concurrent access

File Systems

Support for special features of various file systems, especially cluster file systems, typically through VFS modules.

  • gpfs (FUNDED)
  • GlusterFS (FUNDED)
  • CephFS

Performance

Performance tuning and optimization is an important reoccurring topic. It is difficult to really track the current issues...

  • Use iouring with splice() - Prototype (FUNDED)
  • Performance in clusters, TDB/CTDB
  • Parallel, small I/O (HyperV) workload

Print Server (smbd|spoolssd)

Active Directory Server

DCERPC infrastructure

The RPC server infrastructure component is of crucial importance for both the file server and the active directory server. A few tasks in for the RPC server are prerequisites for higher level features in the file server and the active directory server. See DCERPC for details.

  • Merge source3 and source4 client implementations (Metze)
  • Make RPC client implementation fully asynchronuous (Metze)
  • Merge endpoint mapper implementations
  • Implement Association groups
  • async schannel (NETLOGON) client (Metze)
  • merged crypto handling for samlogon cred validation (Günther/Metze)
  • merged libnetjoin interfaces (Günther/Metze)

Testing

  • Multi-trust environments setup to test trusts
  • Rewrite and improve the Selftest Suite

Completed tasks

File Server

  • SMB 2.0 durable file handles
  • SMB 2.1 Leases
  • SMB 2.1 Multi-Credit
  • SMB 3.0 protocol support (including encryption)
  • Multichannel
  • Transparent file compression
  • Serverside copy using COPYCHUNK
  • Improved performance on small-CPUs
  • Improved TDB database performance (using robust mutex locking)

Clustering - CTDB

  • integrate CTDB master into samba master:
    • integrate the code under ctdb/
    • integrate the build into the top level waf build

Active Directory Server

  • internal dns server
  • use smbd as file server
  • use winbindd for id-mapping
  • Correct non-mesh inter-site and intra-site replication via Knowledge Consistency Checker (KCC) (Andrew Bartlett, Garming Sam, Douglas Bagnall)

DCERPC Infrastructure

  • common secure channel implementation
  • Merge source3 and source4 server implementations
  • Make RPC server implementation fully asynchronuous

Testing