Skip to content

Commit a3ef44a

Browse files
committed
prep for 2.2.1 release
1 parent 6a306ed commit a3ef44a

File tree

5 files changed

+37
-26
lines changed

5 files changed

+37
-26
lines changed

CHANGELOG.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7-
## [2.2.1] - unreleased
7+
## [2.2.1] - 2019-03-15
88

99
### Fixed
1010
* `rpc.statd` debug output was invisible
1111

12+
### Changed
13+
* Further de-cluttered non-debug logging output
14+
1215
## [2.2.0] - 2019-03-08
1316

1417
### Added

doc/advanced/nfs-versions.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ By default, this image provides NFS versions 3 and 4 simultaneously. Using the f
44

55
| Environment variable | Description | Default |
66
|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
7-
| `NFS_VERSION` | Set to `3`, `4`, `4.1`, or `4.2` to fine tune the NFS protocol version. Enabling any version will also enable any lesser versions. e.g. `4.2` will enable versions 4.2, 4.1, 4, **and** 3. | `4.2` |
7+
| `NFS_VERSION` | Set to `3`, `4`, `4.1`, or `4.2` to fine tune the NFS protocol version. Enabling any version will also enable any lesser versions. e.g. `4.1` will enable versions 4.1, 4, **and** 3. | `4.2` |
88
| `NFS_DISABLE_VERSION_3` | Set to a non-empty value (e.g. `NFS_DISABLE_VERSION_3=1`) to disable NFS version 3 and run a version-4-only server. This setting is not compatible with `NFS_VERSION=3` | *not set* |

doc/advanced/performance-tuning.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# Performance tuning
22

3-
The following tips might improve your NFS server's performance.
3+
The NFS server itself requires very little tuning; out-of-the-box it's blazingly fast even under high loads. You'll find that most performance gains will come from setting both the appropriate [mount options](https://linux.die.net/man/5/nfs) in your clients as well as the right [export options](https://linux.die.net/man/5/exports) on your shared filesystems.
4+
5+
That said, the following tips might improve your NFS server's performance.
46

57
* Set the **`NFS_SERVER_THREAD_COUNT`** environment variable to control how many server threads `rpc.nfsd` will use. A good minimum is one thread per CPU core, but 4 or 8 threads per core is probably better. The default is one thread per CPU core.
68

7-
* Running the container with `--network host` *might* improve network performance by 10% - 20% [[1](https://jtway.co/docker-network-performance-b95bce32b4b9),[2](https://www.percona.com/blog/2016/08/03/testing-docker-multi-host-network-performance/)], though this hasn't been tested.
9+
* Running the container with `--network host` *might* improve network performance by 10% - 20% on a heavily-loaded server [[1](https://jtway.co/docker-network-performance-b95bce32b4b9),[2](https://www.percona.com/blog/2016/08/03/testing-docker-multi-host-network-performance/)], though this hasn't been tested.

doc/feature/logging.md

+23-17
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Normal, non-debug logging will look something like this:
2828
SETTING UP ...
2929
==================================================================
3030
----> building /etc/exports from environment variables
31-
----> collected 4 valid export(s) from NFS_EXPORT_* environment variables
31+
----> collected 3 valid export(s) from NFS_EXPORT_* environment variables
3232
----> setup complete
3333

3434
==================================================================
@@ -37,8 +37,8 @@ Normal, non-debug logging will look something like this:
3737
----> starting rpcbind
3838
----> starting exportfs
3939
----> starting rpc.mountd on port 32767
40-
----> starting statd on port 32765 (outgoing from port 32766)
41-
----> starting idmapd
40+
----> starting rpc.statd on port 32765 (outgoing from port 32766)
41+
----> starting rpc.idmapd
4242
----> starting rpc.nfsd on port 2049 with 16 server thread(s)
4343
----> starting rpc.svcgssd
4444
----> all services started normally
@@ -51,7 +51,6 @@ Normal, non-debug logging will look something like this:
5151
----> /nfs/htpc-media *(ro,no_subtree_check,insecure,async)
5252
----> /nfs/homes/staff *(rw,no_subtree_check,insecure,no_root_squash,sec=krb5p)
5353
----> /nfs/homes/ehough *(rw,no_subtree_check,insecure,no_root_squash,sec=krb5p)
54-
----> /nfs/backup/duplicacy *(rw,no_subtree_check,insecure,sec=krb5p,all_squash,anonuid=0,anongid=0)
5554
----> list of container ports that should be exposed:
5655
----> 111 (TCP and UDP)
5756
----> 2049 (TCP and UDP)
@@ -75,7 +74,7 @@ Debug output will be much more detailed, and it may be very helpful when diagnos
7574
----> log level set to DEBUG
7675
----> will use requested rpc.nfsd thread count of 16
7776
----> building /etc/exports from environment variables
78-
----> collected 4 valid export(s) from NFS_EXPORT_* environment variables
77+
----> collected 3 valid export(s) from NFS_EXPORT_* environment variables
7978
----> kernel module nfs is loaded
8079
----> kernel module nfsd is loaded
8180
----> kernel module rpcsec_gss_krb5 is loaded
@@ -90,36 +89,36 @@ mount: mount('rpc_pipefs','/var/lib/nfs/rpc_pipefs','rpc_pipefs',0x00008000,'(nu
9089
mount: mount('nfsd','/proc/fs/nfsd','nfsd',0x00008000,'(null)'):0
9190
----> starting rpcbind
9291
----> starting exportfs
93-
exporting *:/nfs/backup/duplicacy
9492
exporting *:/nfs/homes/ehough
9593
exporting *:/nfs/homes/staff
9694
exporting *:/nfs/htpc-media
9795
----> starting rpc.mountd on port 32767
98-
----> starting statd on port 32765 (outgoing from port 32766)
99-
----> starting idmapd
96+
----> starting rpc.statd on port 32765 (outgoing from port 32766)
97+
----> starting rpc.idmapd
98+
----> starting rpc.nfsd on port 2049 with 16 server thread(s)
99+
rpc.nfsd: knfsd is currently down
100+
rpc.nfsd: Writing version string to kernel: -2 +3 +4 +4.1 +4.2
101+
rpc.nfsd: Created AF_INET TCP socket.
102+
rpc.nfsd: Created AF_INET UDP socket.
103+
rpc.nfsd: Created AF_INET6 TCP socket.
104+
rpc.nfsd: Created AF_INET6 UDP socket.
100105
rpc.idmapd: Setting log level to 11
101106
107+
----> starting rpc.svcgssd
102108
rpc.idmapd: libnfsidmap: using domain: hough.matis
103109
rpc.idmapd: libnfsidmap: Realms list: 'HOUGH.MATIS'
104110
rpc.idmapd: libnfsidmap: processing 'Method' list
105111
rpc.idmapd: static_getpwnam: name 'nfs/blue@HOUGH.MATIS' mapped to 'root'
106112
rpc.idmapd: static_getpwnam: localname 'melissa' for 'melissa@HOUGH.MATIS' not found
107113
rpc.idmapd: static_getpwnam: name 'ehough@HOUGH.MATIS' mapped to 'ehough'
114+
libtirpc: debug level 3
108115
rpc.idmapd: static_getgrnam: group 'nfs/blue@HOUGH.MATIS' mapped to 'root'
109116
rpc.idmapd: static_getgrnam: local group 'melissa' for 'melissa@HOUGH.MATIS' not found
110117
rpc.idmapd: static_getgrnam: group 'ehough@HOUGH.MATIS' mapped to 'ehough'
111118
rpc.idmapd: libnfsidmap: loaded plugin /usr/lib/libnfsidmap/static.so for method static
112119
rpc.idmapd: Expiration time is 600 seconds.
113120
rpc.idmapd: Opened /proc/net/rpc/nfs4.nametoid/channel
114121
rpc.idmapd: Opened /proc/net/rpc/nfs4.idtoname/channel
115-
----> starting rpc.nfsd on port 2049 with 16 server thread(s)
116-
rpc.nfsd: knfsd is currently down
117-
rpc.nfsd: Writing version string to kernel: -2 +3 +4 +4.1 +4.2
118-
rpc.nfsd: Created AF_INET TCP socket.
119-
rpc.nfsd: Created AF_INET UDP socket.
120-
rpc.nfsd: Created AF_INET6 TCP socket.
121-
rpc.nfsd: Created AF_INET6 UDP socket.
122-
----> starting rpc.svcgssd
123122
entering poll
124123
----> all services started normally
125124
@@ -128,7 +127,6 @@ entering poll
128127
==================================================================
129128
----> list of enabled NFS protocol versions: 4.2, 4.1, 4, 3
130129
----> list of container exports:
131-
----> /nfs/backup/duplicacy *(rw,sync,wdelay,hide,nocrossmnt,insecure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=0,anongid=0,sec=krb5p,rw,insecure,root_squash,all_squash)
132130
----> /nfs/homes/ehough *(rw,sync,wdelay,hide,nocrossmnt,insecure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=krb5p,rw,insecure,no_root_squash,no_all_squash)
133131
----> /nfs/homes/staff *(rw,sync,wdelay,hide,nocrossmnt,insecure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=krb5p,rw,insecure,no_root_squash,no_all_squash)
134132
----> /nfs/htpc-media *(ro,async,wdelay,hide,nocrossmnt,insecure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,ro,insecure,root_squash,no_all_squash)
@@ -141,6 +139,14 @@ entering poll
141139
==================================================================
142140
READY AND WAITING FOR NFS CLIENT CONNECTIONS
143141
==================================================================
142+
rpc.statd: Version 2.3.2 starting
143+
rpc.statd: Flags: No-Daemon Log-STDERR TI-RPC
144+
rpc.statd: Failed to read /var/lib/nfs/state: Address in use
145+
rpc.statd: Initializing NSM state
146+
rpc.statd: Local NSM state number: 3
147+
rpc.statd: Failed to open /proc/sys/fs/nfs/nsm_local_state: Read-only file system
148+
rpc.statd: Running as root. chown /var/lib/nfs to choose different user
149+
rpc.statd: Waiting for client connections
144150
leaving poll
145151
handling null request
146152
svcgssd_limit_krb5_enctypes: Calling gss_set_allowable_enctypes with 7 enctypes from the kernel

entrypoint.sh

+5-5
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ init_exports() {
434434
log "$PATH_FILE_ETC_EXPORTS is baked into the image"
435435
fi
436436

437-
# fallback to environment variables
437+
# fall back to environment variables
438438
else
439439

440440
local count_valid_exports=0
@@ -576,9 +576,9 @@ boot_helper_start_non_daemon() {
576576

577577
local -r bg_pid=$!
578578

579-
# somewhat arbitrary assumption that if the process isn't dead already, it will die within 1/20 of a second. for our
579+
# somewhat arbitrary assumption that if the process isn't dead already, it will die within a millisecond. for our
580580
# purposes this works just fine, but if someone has a better solution please open a PR.
581-
sleep .05
581+
sleep .001
582582
kill -0 $bg_pid 2> /dev/null
583583
on_failure stop "$process failed"
584584
}
@@ -660,7 +660,7 @@ boot_main_idmapd() {
660660
func=boot_helper_start_non_daemon
661661
fi
662662

663-
$func 'starting idmapd' $PATH_BIN_IDMAPD "${args[@]}"
663+
$func 'starting rpc.idmapd' $PATH_BIN_IDMAPD "${args[@]}"
664664
}
665665

666666
boot_main_statd() {
@@ -691,7 +691,7 @@ boot_main_statd() {
691691
func=boot_helper_start_non_daemon
692692
fi
693693

694-
$func "starting statd on port $port_in (outgoing from port $port_out)" $PATH_BIN_STATD "${args[@]}"
694+
$func "starting rpc.statd on port $port_in (outgoing from port $port_out)" $PATH_BIN_STATD "${args[@]}"
695695
}
696696

697697
boot_main_nfsd() {

0 commit comments

Comments
 (0)