WHATSNEW.txt: CTDB updates for 4.9
[samba.git] / WHATSNEW.txt
1 Release Announcements
2 =====================
3
4 This is the first preview release of Samba 4.9.  This is *not*
5 intended for production environments and is designed for testing
6 purposes only.  Please report any defects via the Samba bug reporting
7 system at https://bugzilla.samba.org/.
8
9 Samba 4.9 will be the next version of the Samba suite.
10
11
12 UPGRADING
13 =========
14
15
16 NEW FEATURES/CHANGES
17 ====================
18
19
20 net ads setspn
21 ---------------
22
23 There is a new 'net ads setspn' sub command for managing Windows SPN(s)
24 on the AD. This command aims to give the basic functionality that is
25 provided on windows by 'setspn.exe' e.g. ability to add, delete and list
26 Windows SPN(s) stored in a Windows AD Computer object.
27
28 The format of the command is:
29
30 net ads setspn list [machine]
31 net ads setspn [add | delete ] SPN [machine]
32
33 'machine' is the name of the computer account on the AD that is to be managed.
34 If 'machine' is not specified the name of the 'client' running the command
35 is used instead.
36
37 The format of a Windows SPN is
38   'serviceclass/host:port/servicename' (servicename and port are optional)
39
40 serviceclass/host is generally sufficient to specify a host based service.
41
42 net ads keytab changes
43 ----------------------
44 net ads keytab add no longer attempts to convert the passed serviceclass
45 (e.g. nfs, html etc.) into a Windows SPN which is added to the Windows AD
46 computer object. By default just the keytab file is modified.
47
48 A new keytab subcommand 'add_update_ads' has been added to preserve the
49 legacy behaviour. However the new 'net ads setspn add' subcommand should
50 really be used instead.
51
52 net ads keytab create no longer tries to generate SPN(s) from existing
53 entries in a keytab file. If it is required to add Windows SPN(s) then
54 'net ads setspn add' should be used instead.
55
56 Local authorization plugin for MIT Kerberos
57 -------------------------------------------
58
59 This plugin controls the relationship between Kerberos principals and AD
60 accounts through winbind. The module receives the Kerberos principal and the
61 local account name as inputs and can then check if they match. This can resolve
62 issues with canonicalized names returned by Kerberos within AD. If the user
63 tries to log in as 'alice', but the samAccountName is set to ALICE (uppercase),
64 Kerberos would return ALICE as the username. Kerberos would not be able to map
65 'alice' to 'ALICE' in this case and auth would fail.  With this plugin account
66 names can be correctly mapped. This only applies to GSSAPI authentication,
67 not for the getting the initial ticket granting ticket.
68
69 VFS audit modules
70 -----------------
71
72 The vfs_full_audit module has changed it's default set of monitored successful
73 and failed operations from "all" to "none". That helps to prevent potential
74 denial of service caused by simple addition of the module to the VFS objects.
75
76 Also, modules vfs_audit, vfs_ext_audit and vfs_full_audit now accept any valid
77 syslog(3) facility, in accordance with the manual page.
78
79 Database audit support
80 ----------------------
81
82 Changes to the Samba AD's sam.ldb database are now logged to Samba's debug log
83 under the "dsdb_audit" debug class and "dsdb_json_audit" for JSON formatted log
84 entries.
85
86 Transaction commits and roll backs are now logged to Samba's debug logs under
87 the "dsdb_transaction_audit" debug class and "dsdb_transaction_json_audit" for
88 JSON formatted log entries.
89
90 Password change audit support
91 -----------------------------
92
93 Password changes in the AD DC are now logged to Samba's debug logs under the
94 "dsdb_password_audit" debug class and "dsdb_password_json_audit" for JSON
95 formatted log entries.
96
97 Group membership change audit support
98 -------------------------------------
99
100 Group membership changes on the AD DC are now logged to
101 Samba's debug log under the "dsdb_group_audit" debug class and
102 "dsdb_group_json_audit" for JSON formatted log entries.
103
104 Log Authentication duration
105 ---------------------------
106
107 For NTLM and Kerberos KDC authentication, the authentication duration is now
108 logged. Note that the duration is only included in the JSON formatted log
109 entries.
110
111 JSON library Jansson required for the AD DC
112 -------------------------------------------
113
114 By default the Jansson JSON library is required for Samba to build.
115 It is strictly required for the Samba AD DC, and is optional for
116 builds --without-ad-dc by specifying --without-json-audit at configure
117 time.
118
119 New Experimental LMDB LDB backend
120 ---------------------------------
121
122 A new experimental LDB backend using LMDB is now available. This allows
123 databases larger than 4Gb (Currently the limit is set to 6Gb, but this will be
124 increased in a future release). To enable lmdb, provision or join a domain using
125 the --backend-store=mdb option.
126
127 This requires that a version of lmdb greater than 0.9.16 is installed and that
128 samba has not been built with the --without-ldb-lmdb option.
129
130 Please note this is an experimental feature and is not recommended for
131 production deployments.
132
133 Password Settings Objects
134 -------------------------
135 Support has been added for Password Settings Objects (PSOs). This AD feature is
136 also known as Fine-Grained Password Policies (FGPP).
137
138 PSOs allow AD administrators to override the domain password policy settings
139 for specific users, or groups of users. For example, PSOs can force certain
140 users to have longer password lengths, or relax the complexity constraints for
141 other users, and so on. PSOs can be applied to groups or to individual users.
142 When multiple PSOs apply to the same user, essentially the PSO with the best
143 precedence takes effect.
144
145 PSOs can be configured and applied to users/groups using the 'samba-tool domain
146 passwordsettings pso' set of commands.
147
148 Domain backup and restore
149 -------------------------
150 A new samba-tool command has been added that allows administrators to create a
151 backup-file of their domain DB. In the event of a catastrophic failure of the
152 domain, this backup-file can be used to restore Samba services.
153
154 The new 'samba-tool domain backup online' command takes a snapshot of the
155 domain DB from a given DC. In the event of a catastrophic DB failure, all DCs
156 in the domain should be taken offline, and the backup-file can then be used to
157 recreate a fresh new DC, using the 'samba-tool domain backup restore' command.
158 Once the backed-up domain DB has been restored on the new DC, other DCs can
159 then subsequently be joined to the new DC, in order to repopulate the Samba
160 network.
161
162 Domain rename tool
163 ------------------
164 Basic support has been added for renaming a Samba domain. The rename feature is
165 designed for the following cases:
166 1). Running a temporary alternate domain, in the event of a catastrophic
167 failure of the regular domain. Using a completely different domain name and
168 realm means that the original domain and the renamed domain can both run at the
169 same time, without interfering with each other. This is an advantage over
170 creating a regular 'online' backup - it means the renamed/alternate domain can
171 provide core Samba network services, while trouble-shooting the fault on the
172 original domain can be done in parallel.
173 2). Creating a realistic lab domain or pre-production domain for testing.
174
175 Note that the renamed tool is currently not intended to support a long-term
176 rename of the production domain. Currently renaming the GPOs is not supported
177 and would need to be done manually.
178
179 The domain rename is done in two steps: first, the 'samba-tool domain backup
180 rename' command will clone the domain DB, renaming it in the process, and
181 producing a backup-file. Then, the 'samba-tool domain backup restore' command
182 takes the backup-file and restores the renamed DB to disk on a fresh DC.
183
184 New samba-tool options for diagnosing DRS replication issues
185 ------------------------------------------------------------
186
187 The 'samba-tool drs showrepl' command has two new options controlling
188 the output. With --summary, the command says very little when DRS
189 replication is working well. With --json, JSON is produced. These
190 options are intended for human and machine audiences, respectively.
191
192 The 'samba-tool visualize uptodateness' visualizes replication lag as
193 a heat-map matrix based on the DRS uptodateness vectors. This will
194 show you if (but not why) changes are failing to replicate to some DCs.
195
196 Automatic site coverage and GetDCName improvements
197 --------------------------------------------------
198
199 Samba's AD DC now automatically claims otherwise empty sites based on
200 which DC is the nearest in the replication topology.
201
202 This, combined with efforts to correctly identify the client side in
203 the GetDCName Netlogon call will improve service to sites without a
204 local DC.
205
206 Improved samba-tool computer command
207 ------------------------------------
208
209 The 'samba-tool computer' command allow manipulation of computer
210 accounts including creating a new computer and resetting the password.
211 This allows an 'offline join' of a member server or workstation to the
212 Samba AD domain.
213
214 Samba performance tool now operates against Microsoft Windows AD
215 ----------------------------------------------------------------
216
217 The Samba AD performance testing tool traffic_reply can now operate
218 against a Windows based AD domain.  Previously it only operated
219 correctly against Samba.
220
221 DNS entries are now cleaned up during DC demote
222 -----------------------------------------------
223
224 DNS records are now cleaned up as part of the 'samba-tool domain
225 demote' including both the default and --remove-other-dead-server
226 modes.
227
228 Additionally DNS records can be automatically cleaned up for a given
229 name with the 'samba-tool dns cleanup' command, which aids in cleaning
230 up partially removed DCs.
231
232 samba-tool ntacl sysvolreset is now much faster
233 -----------------------------------------------
234
235 The 'samba-tool ntacl sysvolreset' command, used on the Samba AD DC,
236 is now much faster than in previous versions, after an internal
237 rework.
238
239 Samba now tested with CI GitLab
240 -------------------------------
241
242 Samba developers now have pre-commit testing available in GitLab,
243 giving reviewers confidence that the submitted patches pass a full CI
244 before being submitted to the Samba Team's own autobuild system.
245
246 Dynamic DNS record scavenging support
247 -------------------------------------
248
249 It is now possible to enable scavenging of DNS Zones to remove DNS
250 records that were dynamically created and have not been touched in
251 some time.
252
253 This support should however only be enabled on new zones or new
254 installations.  Sadly old Samba versions suffer from BUG 12451 and
255 mark dynamic DNS records as static and static records as dynamic.
256 While a dbcheck rule may be able to find these in the future,
257 currently a reliable test has not been devised.
258
259 Finally, there is not currently a command-line tool to enable this
260 feature, currently it should be enabled from the DNS Manager tool from
261 Windows. Also the feature needs to have been enabled by setting the smb.conf
262 parameter "dns zone scavenging = yes".
263
264 CTDB changes
265 ------------
266
267 There are many changes to CTDB in this release.
268
269 * Configuration has been completely overhauled
270
271   - Daemon and tool options are now specified in a new ctdb.conf
272     Samba-style configuration file.  See ctdb.conf(5) for details.
273
274   - Event script configuration is no longer specified in the top-level
275     configuration file.  It can now be specified per event script.
276     For example, configuration options for the 50.samba event script
277     can be placed alongside the event script in a file called
278     50.samba.options.  Script options can also be specified in a new
279     script.options file.  See ctdb-script.options(5) for details.
280
281   - Options that affect CTDB startup should be configured in the
282     distribution-specific configuration file.  See ctdb.sysconfig(5)
283     for details.
284
285   - Tunable settings are now loaded from ctdb.tunables.  Using
286     CTDB_SET_TunableVariable=<value> in the main configuration file is
287     no longer supported.  See ctdb-tunables(7) for details.
288
289   A script to convert an old-style configuration to a new one will be
290   available for release but is not yet available.
291
292 * The following configuration variables and corresponding ctdbd
293   command-line options have been removed and not replaced with
294   counterparts in the new configuration scheme:
295
296     CTDB_PIDFILE                     --pidfile
297     CTDB_SOCKET                      --socket
298     CTDB_NODES                       --nlist
299     CTDB_PUBLIC_ADDRESSES            --public-addresses
300     CTDB_EVENT_SCRIPT_DIR            --event-script-dir
301     CTDB_NOTIFY_SCRIPT               --notification-script
302     CTDB_PUBLIC_INTERFACE            --public-interface
303     CTDB_MAX_PERSISTENT_CHECK_ERRORS --max-persistent-check-errors
304
305   - The compile-time defaults should be used for the first 6 of these.
306   - Use a symbolic link from the configuration directory to specify a
307     different location for nodes or public_addresses (e.g. in the
308     cluster filesystem).
309   - Executable notification scripts in the notify.d/ subdirectory of
310     the configuration directory are now run by unconditionally.
311   - Interfaces for public IP addresses must always be specified in the
312     public_addresses file using the currently supported format.
313
314   Some related items that have been removed are:
315
316   - The ctdb command's --socket command-line option
317   - The ctdb command's CTDB_NODES environment variable
318
319   When writing tests there are still mechanisms available to change
320   the locations of certain directories and files.
321
322 * Event scripts have moved to the scripts/legacy subdirectory of the
323   configuration directory
324
325   Event scripts must now end with a ".script" suffix.
326
327 * The following service-related event script options have been
328   removed:
329
330     CTDB_MANAGES_SAMBA
331     CTDB_MANAGES_WINBIND
332
333     CTDB_MANAGES_CLAMD
334     CTDB_MANAGES_HTTPD
335     CTDB_MANAGES_ISCSI
336     CTDB_MANAGES_NFS
337     CTDB_MANAGES_VSFTPD
338
339     CTDB_MANAGED_SERVICES
340
341   Event scripts for services are now disabled by default.  To enable
342   an event script and, therefore, manage a service use a command like
343   the following:
344
345     ctdb event script enable legacy 50.samba
346
347 * Notification scripts have moved to the scripts/notification
348   subdirectory of the configuration directory
349
350   Notification scripts must now end with a ".script" suffix.
351
352 * Support for setting CTDB_DBDIR=tmpfs has been removed
353
354   This feature has not been implemented in the new configuration
355   system.  If this is desired then a tmpfs filesystem should be
356   manually mounted on the directory pointed to by the "volatile
357   database directory" option.  See ctdb.conf(5) for more details.
358
359 * Support for the NoIPHostOnAllDisabled tunable has been removed
360
361   If all nodes are unhealthy or disabled then CTDB will not host
362   public IP addresses.  That is, CTDB now behaves as if
363   NoIPHostOnAllDisabled were set to 1.
364
365 * The onnode command's CTDB_NODES_FILE environment variable has been
366   removed
367
368   The -f option can still be used to specify an alternate node file.
369
370 * The 10.external event script has been removed
371
372 * The CTDB_SHUTDOWN_TIMEOUT configuration variable has been removed
373
374   As with other daemons, if ctdbd does not shut down when requested
375   then manual intervention is required.  There is no safe way of
376   automatically killing ctdbd after a failed shutdown.
377
378 * CTDB_SUPPRESS_COREFILE and CTDB_MAX_OPEN_FILES configuration
379   variable have been removed
380
381   These should be setup in the systemd unit/system file or, for SYSV
382   init, in the distribution-specific configuration file for the ctdb
383   service.
384
385 * CTDB_PARTIALLY_ONLINE_INTERFACES incompatibility no longer enforced
386
387   11.natgw and 91.lvs will no longer fail if
388   CTDB_PARTIALLY_ONLINE_INTERFACES=yes.  The incompatibility is,
389   however, well documented.  This option will be removed in future and
390   replaced by sensible behaviour where public IP addresses simply
391   switch interfaces or become unavailable when interfaces are down.
392
393 * Configuration file /etc/ctdb/sysconfig/ctdb is no longer supported
394
395
396 REMOVED FEATURES
397 ================
398
399
400
401 smb.conf changes
402 ================
403
404 As the most popular Samba install platforms (Linux and FreeBSD) both
405 support extended attributes by default, the parameters "map readonly",
406 "store dos attributes" and "ea support" have had their defaults changed
407 to allow better Windows fileserver compatibility in a default install.
408
409   Parameter Name                     Description             Default
410   --------------                     -----------             -------
411   map readonly                       Default changed              no
412   store dos attributes               Default changed             yes
413   ea support                         Default changed             yes
414   full_audit:success                 Default changed            none
415   full_audit:failure                 Default changed            none
416
417 VFS interface changes
418 =====================
419
420 The VFS ABI interface version has changed to 39. Function changes
421 are:
422
423 SMB_VFS_FSYNC: Removed: Only async versions are used.
424 SMB_VFS_READ: Removed: Only PREAD or async versions are used.
425 SMB_VFS_WRITE: Removed: Only PWRITE or async versions are used.
426 SMB_VFS_CHMOD_ACL: Removed: Only CHMOD is used.
427 SMB_VFS_FCHMOD_ACL: Removed: Only FCHMOD is used.
428
429 Any external VFS modules will need to be updated to match these
430 changes in order to work with 4.9.x.
431
432 KNOWN ISSUES
433 ============
434
435 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.9#Release_blocking_bugs
436
437
438 #######################################
439 Reporting bugs & Development Discussion
440 #######################################
441
442 Please discuss this release on the samba-technical mailing list or by
443 joining the #samba-technical IRC channel on irc.freenode.net.
444
445 If you do report problems then please try to send high quality
446 feedback. If you don't provide vital information to help us track down
447 the problem then you will probably be ignored.  All bug reports should
448 be filed under the Samba 4.1 and newer product in the project's Bugzilla
449 database (https://bugzilla.samba.org/).
450
451
452 ======================================================================
453 == Our Code, Our Bugs, Our Responsibility.
454 == The Samba Team
455 ======================================================================
456