summaryrefslogtreecommitdiffstats
path: root/doc/release-notes/5.0.md
blob: a16b3f773c4f7f41a0916b174522f9b4952d91ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Release notes for Gluster 5.0

This is a major release that includes a range of code improvements and stability
fixes among a few features as noted below.

A selection of the key features and changes are documented on this page.
A full list of bugs that have been addressed is included further below.

- [Announcements](#announcements)
- [Major changes and features](#major-changes-and-features)
- [Major issues](#major-issues)
- [Bugs addressed in the release](#bugs-addressed)

## Announcements

1. Releases that receive maintenance updates post release 5 are, 4.1
([reference](https://www.gluster.org/release-schedule/))

**NOTE:** 3.12 long term maintenance release, will reach end of life (EOL) with
the release of 5.0. ([reference](https://www.gluster.org/release-schedule/))

2. Release 5 will receive maintenance updates around the 10th of every month
for the first 3 months post release (i.e Nov'18, Dec'18, Jan'18). Post the
initial 3 months, it will receive maintenance updates every 2 months till EOL.
([reference]https://lists.gluster.org/pipermail/announce/2018-July/000103.html)

## Major changes and features

Features are categorized into the following sections,

- [Management](#management)
- [Standalone](#standalone)

### Management

#### GlusterD2

> **IMP:** GlusterD2 in Gluster-5 is still considered a preview and is
> experimental. It should not be considered ready for production use. Users
> should still expect some breaking changes even though all efforts would be
> taken to ensure that these can be avoided. As GD2 is still under heavy
> development, new features can be expected throughout the Gluster 5 release.

The following major changes have been committed to GlusterD2 since v4.1.0.

1. Volume snapshots : Most snapshot operations are available including create,
delete, activate, deactivate, clone and restore.

2. Volume heal: Support for full heal and index heal for replicate volumes has
been implemented.

3. Tracing with Opencensus: Support for tracing distributed operations has been
implemented in GD2, using the Opencensus API. Tracing instrumentation has been
done for volume create, list and delete operations. Other operations will
follow subsequently.

4. Portmap refactoring: Portmap in GlisterD2 no longer selects a port for the
bricks to listen on, instead leaving the choice upto the bricks. Portmap only
saves port information provided by brick during signin.

5. Smartvol API merged with volume create API: The smart volume API which allows
user to create a volume by just specifying a size has been merged with the
normal volume create API.

6. Configure GlusterD2 with environment variables: In addition to CLI flags, and
the config file, GD2 configuration options can be set using environment
variables.

In addition to the above, many changes have been merged for minor bug-fixes and
to help with testing.

Refer to the user [documentation](https://github.com/gluster/glusterd2#documentation) section for details on how to get started with
GlusterD2.

### Standalone

#### 1. Entry creation and handling, consistency is improved

The dentry serializer feature was introduced in Gluster 4.0, to strengthen the
consistency handling of entry operations in the Gluster stack. Entry operations
refer to creating, linking, renaming and unlinking of files and directory names
into the filesystem space.

When this feature was first introduced (in 4.0) it was optional, with this
release this feature is enabled by default.

#### 2. Python code in Gluster packages is Python 3 ready

#### 3. Quota fsck script to correct quota accounting

See usage documentation [here](https://github.com/gluster/glusterfs/issues/390#issuecomment-389794575)

#### 4. Added noatime option in utime xlator

Enabling the utime and ctime feature, enables Gluster to maintain consistent
change and modification time stamps on files and directories across bricks.

The utime xlator is enhanced with a noatime option and is set by default to
enabled, when the utime feature is enabled. This helps to ignore atime updates
for operations that change may trigger an atime update on the file system
objects.

To enable the feature use,
```
# gluster volume set <volname> features.utime on
# gluster volume set <volname> features.ctime on
```

#### 5. Removed last usage of MD5 digest in code, towards better FIPS compliance

In an effort to ensure that Gluster can be installed and deployed on machines
that are compliant with the requirements for FIPS, remaining uses of MD5 digest
is removed from the code base.

Addressing this feature's requirements was initiated during the 4.0 release, at
which point enabling user space snapshots, which still used MD5 for certain
needs, broke the FIPS compliance requirements. This limitation is now addressed
in this release.

#### 6. Code improvements

Over the course of this release, the contributors have been active in addressing
various Coverity issues, GCC and clang warnings, clang formatting of the code
base, micro improvements to GLibC API usage and memory handling around
string handling and allocation routines.

The above are ongoing efforts, but major strides were made during this release
to actively address code quality in these areas.

## Major issues

1. The following options are removed from the code base and require to be unset
before an upgrade from releases older than release 4.1.0,
- features.lock-heal
- features.grace-timeout

To check if these options are set use,
```
# gluster volume info
```
and ensure that the above options are not part of the `Options Reconfigured:`
section in the output of all volumes in the cluster.

If these are set, then unset them using the following commands,
```
# gluster volume reset <volname> <option>
```

**NOTE:** Failure to do the above may result in failure during online upgrades,
and the reset of these options to their defaults needs to be done **prior** to
upgrading the cluster.

## Bugs addressed

Bugs addressed since release-4.1.0 are listed below.