WHATSNEW: changed default/deprecation of allocation roundup size
[samba.git] / WHATSNEW.txt
index 5f2377130154d58d45da73f04cf62842973c1c96..9fc05c91f5290b3c389cb3ad72368e132c7212f8 100644 (file)
@@ -1,12 +1,12 @@
 Release Announcements
 =====================
 
-This is the first preview release of Samba 4.10.  This is *not*
+This is the first preview release of Samba 4.11.  This is *not*
 intended for production environments and is designed for testing
 purposes only.  Please report any defects via the Samba bug reporting
 system at https://bugzilla.samba.org/.
 
-Samba 4.10 will be the next version of the Samba suite.
+Samba 4.11 will be the next version of the Samba suite.
 
 
 UPGRADING
@@ -16,188 +16,268 @@ UPGRADING
 NEW FEATURES/CHANGES
 ====================
 
-GPO Improvements
-----------------
+Default samba process model
+---------------------------
 
-A new 'samba-tool gpo export' command has been added that can export a
-set of Group Policy Objects from a domain in a generalised XML format.
+The default for the --model argument passed to the samba executable has changed
+from 'standard' to 'prefork'. This means a difference in the number of samba
+child processes that are created to handle client connections. The previous
+default would create a separate process for every LDAP or NETLOGON client
+connection. For a network with a lot of persistent client connections, this
+could result in significant memory overhead.  Now, with the new default of
+'prefork', the LDAP, NETLOGON, and KDC services will create a fixed number of
+worker processes at startup and share the client connections amongst these
+workers. The number of worker processes can be configured by the 'prefork
+children' setting in the smb.conf (the default is 4).
+
+Authentication Logging.
+-----------------------
 
-A corresponding 'samba-tool gpo restore' command has been added to
-rebuild the Group Policy Objects from the XML after generalization.
-(The administrator needs to correct the values of XML entities between
-the backup and restore to account for the change in domain).
+Winbind now logs PAM_AUTH and NTLM_AUTH events, a new attribute "logonId" has
+been added to the Authentication JSON log messages.  This contains a random
+logon id that is generated for each PAM_AUTH and NTLM_AUTH request and is passed
+to SamLogon, linking the windbind and SamLogon requests.
 
-kdc prefork
------------
+The serviceDescription of the messages is set to "winbind", the authDescription
+is set to one of:
+   "PASSDB, <command>, <pid>"
+   "PAM_AUTH, <command>, <pid>"
+   "NTLM_AUTH, <command>, <pid>"
+where:
+   <command> is the name of the command makinmg the winbind request i.e. wbinfo
+   <pid>     is the process id of the requesting process.
 
-The KDC now supports the pre-fork process model and worker processes will be
-forked for the KDC when the pre-fork process model is selected for samba.
+The version of the JSON Authentication messages has been changed to 1.2 from 1.1
 
-prefork 'prefork children'
---------------------------
+LDAP referrals
+--------------
 
-The default value for this smdb.conf parameter has been increased from 1 to
-4.
+The scheme of returned LDAP referrals now reflects the scheme of the original
+request, i.e. referrals received via ldap are prefixed with "ldap://"
+and those over ldaps are prefixed with "ldaps://"
 
-netlogon prefork
-----------------
+Previously all referrals were prefixed with "ldap://"
 
-DCERPC now supports pre-forked NETLOGON processes. The netlogon processes are
-pre-forked when the prefork process model is selected for samba.
+Bind9 logging
+-------------
 
-Offline domain backups
-----------------------
+It is now possible to log the duration of DNS operations performed by Bind9
+This should aid future diagnosis of performance issues, and could be used to
+monitor DNS performance. The logging is enabled by setting log level to
+"dns:10" in smb.conf
 
-The 'samba-tool domain backup' command has been extended with a new 'offline'
-option. This safely creates a backup of the local DC's database directly from
-disk. The main benefits of an offline backup are it's quicker, it stores more
-database details (for forensic purposes), and the samba process does not have
-to be running when the backup is made. Refer to the samba-tool help for more
-details on using this command.
+The logs are currently Human readable text only, i.e. no JSON formatted output.
 
-Group membership statistics
----------------------------
+Log lines are of the form:
+
+    <function>: DNS timing: result: [<result>] duration: (<duration>)
+    zone: [<zone>] name: [<name>] data: [<data>]
+
+    durations are in microseconds.
+
+Default schema updated to 2012_R2
+---------------------------------
+
+Default AD schema changed from 2008_R2 to 2012_R2.  2012_R2 functional level
+is not yet available.  Older schemas can be used by provisioning with the
+'--base-schema' argument.  Existing installations can be updated with the
+samba-tool command "domain schemaupgrade".
+
+Samba's replication code has also been improved to handle replication
+with the 2012 schema (the core of this replication fix has also been
+backported to 4.9.11 and will be in a 4.10.x release).
 
-A new 'samba-tool group stats' command has been added. This provides summary
-information about how the users are spread across groups in your domain.
-The 'samba-tool group list --verbose' command has also been updated to include
-the number of users in each group.
+GnuTLS 3.2 required
+-------------------
 
-prefork process restart
+Samba is making efforts to remove in-tree cryptographic functionality,
+and to instead rely on externally maintained libraries.  To this end,
+Samba has chosen GnuTLS as our standard cryptographic provider.
+
+Samba now requires GnuTLS 3.2 to be installed (including development
+headers at build time) for all configurations, not just the Samba AD
+DC.
+
+NOTE WELL: The use of GnuTLS means that Samba will honour the
+system-wide 'FIPS mode' (a reference to the US FIPS-140 cryptographic
+standard) and so will not operate in many still common situations if
+this system-wide parameter is in effect, as many of our protocols rely
+on outdated cryptography.
+
+A future Samba version will mitigate this to some extent where good
+cryptography effectively wraps bad cryptography, but for now that above
+applies.
+
+samba-tool improvements
 -----------------------
 
-The pre-fork process model now restarts failed processes. The delay between
-restart attempts is controlled by the "prefork backoff increment" (default = 10)
-and "prefork maximum backoff" (default = 120) smbd.conf parameters.  A linear
-back off strategy is used with "prefork backoff increment" added to the
-delay between restart attempts up until it reaches "prefork maximum backoff".
+A new "samba-tool contact" command has been added to allow the
+command-line manipulation of contacts, as used for address book
+lookups in LDAP.
 
-Using the default sequence the restart delays (in seconds) are:
-  0, 10, 20, ..., 120, 120, ...
+The "samba-tool [user|group|computer|group|contact] edit" command has been
+improved to operate more pleasantly on international character sets.
 
-standard process model
-----------------------
+100,000 USER and LARGER Samba AD DOMAINS
+========================================
 
-When using the standard process model samba forks a new process to handle ldap
-and netlogon connections.  Samba now honours the 'max smbd processes' smb.conf
-parameter.  The default value of 0, indicates there is no limit.  The limit
-is applied individually to netlogon and ldap.  When the process limit is
-exceeded Samba drops new connections immediately.
+Extensive efforts have been made to optimise Samba for use in
+organisations (for example) targeting 100,000 users, plus 120,000
+computer objects, as well as large number of group memberships.
 
-python3 support
----------------
+Many of the specific efforts are detailed below, but the net results
+is to remove barriers to significantly larger Samba deployments
+compared to previous releases.
 
-The version of python which is now the default for samba is python3.
-'configure' & 'make' will execute using python3. It is possible to still
-specify an additional python version with '--extra-python'
-e.g. '--extra-python=/usr/bin/python2'. It should be noted that support for
-this option will be deprecated in a future release.
+Reindex performance improvements
+--------------------------------
 
-What if I need to build with python2? To build with python2 you *must* set
-the 'PYTHON' environent variable to override the python3 default for both
-'configure' and 'make' steps.
+The performance of samba-tool dbcheck --reindex has been improved,
+especially for large domains.
 
-   'PYTHON=python2 ./configure.developer'
-&
-   'PYTHON=python2 make'
+join performance improvements
+-----------------------------
+
+The performance of samba-tool domain join has been improved,
+especially for large domains.
+
+LDAP Server memory improvements
+-------------------------------
+
+The LDAP server has improved memory efficiency, ensuring that large
+LDAP responses (for example a search for all objects) is not copied
+multiple times into memory.
+
+Setting lmdb map size
+---------------------
 
-Note: Support for python2 (with the exception of a build configured with
-      'PYTHON=python2 ./configure --disable-python' and built with
-      'PYTHON=python2 make' will be deprecated in the next release.
+It is now possible to set the lmdb map size (The maximum permitted
+size for the database).  "samba-tool" now accepts the
+"--backend-store-size" i.e. --backend-store-size=4Gb.  If not
+specified it defaults to 8Gb.
 
-JSON logging
-------------
+This option is avaiable for the following sub commands:
+ * domain provision
+ * domain join
+ * domain dcpromo
+ * drs clone-dc-database
 
-Authentication messages now contain the Windows Event Id "eventId" and logon
-type "logonType". The supported event codes and logon types are:
-  Event codes:
-    4624  Successful logon
-    4625  Unsuccessful logon
+LDB "batch_mode"
+----------------
+
+To improve performance during batch operations i.e. joins, ldb now
+accepts a "batch_mode" option.  However to prevent any index or
+database inconsistencies if an operation fails, the entire transaction
+will be aborted at commit.
+
+New LDB pack format
+-------------------
 
-  Logon Types:
-    2  Interactive
-    3  Network
-    8  NetworkCleartext
+On first use (startup of 'samba' or the first transaction write)
+Samba's sam.ldb will be updated to a new more efficient pack format.
+This will take a few moments.
 
-The version number for Authentication messages is now 1.1, changed from 1.0
+New LDB <= and >= index mode to improve replication performance
+---------------------------------------------------------------
 
-Password change messages now contain the Windows Event Id "eventId", the
-supported event Id's are:
-  4723 Password changed
-  4724 Password reset
+As well as a new pack format, Samba's sam.ldb uses a new index format
+allowing Samba to efficiently select objects changed since the last
+replication cycle.  This in turn improves performance during
+replication of large domains.
 
-The version number for PasswordChange messages is now 1.1, changed from 1.0
+Improvements to ldb search performance
+--------------------------------------
 
-Group membership change messages now contain the Windows Event Id "eventId",
-the supported event Id's are:
-  4728 A member was added to a security enabled global group
-  4729 A member was removed from a security enabled global group
-  4732 A member was added to a security enabled local group
-  4733 A member was removed from a security enabled local group
-  4746 A member was added to a security disabled local group
-  4747 A member was removed from a security disabled local group
-  4751 A member was added to a security disabled global group
-  4752 A member was removed from a security disabled global group
-  4756 A member was added to a security enabled universal group
-  4757 A member was removed from a security enabled universal group
-  4761 A member was added to a security disabled universal group
-  4762 A member was removed from a security disabled universal group
+Search performance on large LDB databases has been improved by
+reducing memory allocations made on each object.
 
+Improvements to subtree rename performance
+------------------------------------------
+
+Improvements have been made to Samba's handling of subtree renames,
+for example of containers and organisational units, however large
+renames are still not recommended.
+
+CTDB changes
+============
 
-The version number for GroupChange messages is now 1.1, changed from 1.0. Also
-A GroupChange message is generated when a new user is created to log that the
-user has been added to their primary group.
+* nfs-linux-kernel-callout now defaults to using systemd service names
 
-The leading "JSON <message type>:" and source file  prefix of the JSON formatted
-log entries has been removed to make the parsing of the JSON log messages
-easier. JSON log entries now start with 2 spaces followed by an opening brace
-i.e. "  {"
+  The Red Hat service names continue to be the default.
 
+  Other distributions should patch this file when packaging it.
 
+* The onnode -o option has been removed
+
+* ctdbd logs when it is using more than 90% of a CPU thread
+
+  ctdbd is single threaded, so can become saturated if it uses the
+  full capacity of a CPU thread.  To help detect this situation, ctdbd
+  now logs messages when CPU utilisation exceeds 90%.  Each change in
+  CPU utilisation over 90% is logged.  A message is also logged when
+  CPU utilisation drops below the 90% threshold.
+
+* Script configuration variable CTDB_MONITOR_SWAP_USAGE has been removed
+
+  05.system.script now monitors total memory (i.e. physical memory +
+  swap) utilisation using the existing CTDB_MONITOR_MEMORY_USAGE
+  script configuration variable.
 
 
 REMOVED FEATURES
 ================
 
-MIT Kerberos build of the AD DC
--------------------------------
+Web server
+----------
 
-While not removed, the MIT Kerberos build of the Samba AD DC is still
-considered experimental.  Because Samba will not issue security
-patches for this configuration, such builds now require the explicit
-configure option: --with-experimental-mit-ad-dc
+As a leftover from work related to the Samba Web Administration Tool (SWAT),
+Samba still supported a Python WSGI web server (which could still be turned on
+from the 'server services' smb.conf parameter). This service was unused and has
+now been removed from Samba.
 
-For further details see
-https://wiki.samba.org/index.php/Running_a_Samba_AD_DC_with_MIT_Kerberos_KDC
 
-samba_backup
-------------
+samba-tool join subdommain
+--------------------------
+
+The subdommain role has been removed from the join command.  This option did
+not work and has no tests.
+
+
+Python2 support
+---------------
+
+Samba 4.11 will not have any runtime support for Python 2.
 
-The samba_backup script has been removed. This has now been replaced by the
-'samba-tool domain backup offline' command.
+If you are building Samba using the '--disable-python' option
+(i.e. you're excluding all the run-time Python support), then this
+will continue to work on a system that supports either python2 or
+python3.
+
+To build Samba with python2 you *must* set the 'PYTHON' environment
+variable for both the 'configure' and 'make' steps, i.e.
+   'PYTHON=python2 ./configure'
+   'PYTHON=python2 make'
+This will override the python3 default.
+
+Except for this specific build-time use of python2, Samba now requires
+Python 3.4 as a minimum.
 
 smb.conf changes
 ================
 
   Parameter Name                     Description                Default
   --------------                     -----------                -------
-  prefork backoff increment   Delay added to process restart    10 (seconds)
-                              between attempts.
-  prefork maximum backoff     Maximum delay for process between 120 (seconds)
-                              process restart attempts
-  smbd search ask sharemode   Name changed, old name was
-                              "smbd:search ask sharemode"
-  smbd async dosmode          Name changed, old name was
-                              "smbd:async dosmode"
-  smbd max async dosmode      Name changed, old name was
-                              "smbd:max async dosmode"
-  smbd getinfo ask sharemode  New: similar to "smbd search ask  yes
-                              sharemode" but for SMB getinfo
+
+  allocation roundup size            Default changed/           0
+                                     Deprecated
+  web port                           Removed
+  fruit:zero_file_id                 Changed default            False
+
 
 KNOWN ISSUES
 ============
 
-https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.10#Release_blocking_bugs
+https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.11#Release_blocking_bugs
 
 
 #######################################