Fix disk mount options

The nobarrier option is invalid in recent kernels (>= 4.19), and having
it makes the mount fail. It has no effect on kernel >= 4.10.

Also, adding "nofail" to avoid failure when booting a server if
there is a broken drive, which is common on a large cluster.

Change-Id: Ib5262c26244363a1c47bdd562d560735ddc82a36
This commit is contained in:
Thomas Goirand 2020-05-14 20:14:37 +02:00
parent ea1421b4ef
commit 3c3a1212b8
3 changed files with 12 additions and 4 deletions

View File

@ -31,9 +31,9 @@ define swift::storage::mount(
include swift::deps include swift::deps
if($loopback){ if($loopback){
$options = 'noatime,nodiratime,nobarrier,loop' $options = 'noatime,nodiratime,nofail,loop'
} else { } else {
$options = 'noatime,nodiratime,nobarrier' $options = 'noatime,nodiratime,nofail'
} }
if($fstype == 'xfs'){ if($fstype == 'xfs'){

View File

@ -0,0 +1,8 @@
---
features:
- |
The nobarrier XFS mount option is removed from kernel 4.19.0 and beyond.
It has no effect on kernel 4.10.0. Therefore, it is now removed from the
default mount options.
Also, puppet-swift now adds the nofail option, so that a swift store node
finishes to boot even if an HDD mount is failed.

View File

@ -19,7 +19,7 @@ describe 'swift::storage::mount' do
:ensure => 'present', :ensure => 'present',
:device => '/dev/sda', :device => '/dev/sda',
:fstype => 'xfs', :fstype => 'xfs',
:options => 'noatime,nodiratime,nobarrier,logbufs=8', :options => 'noatime,nodiratime,nofail,logbufs=8',
)} )}
end end
@ -33,7 +33,7 @@ describe 'swift::storage::mount' do
it { is_expected.to contain_mount('/srv/node/dans_mount_point').with( it { is_expected.to contain_mount('/srv/node/dans_mount_point').with(
:device => '/dev/sda', :device => '/dev/sda',
:options => 'noatime,nodiratime,nobarrier,loop,logbufs=8' :options => 'noatime,nodiratime,nofail,loop,logbufs=8'
)} )}
end end