Re: [PATCH] ovl: Allow changing default fsync_mode
Yafang Shao <[email protected]> Tue, 23 Jun 2026 17:59:18 +0800
| Newsgroups | org.kernel.vger.linux-unionfs |
|---|---|
| Message-ID | <CALOAHbAY-3GAd=7DsA74W4ax7aPdXC7ecYt6b+tHoxFu754ZjA@mail.gmail.com> |
On Tue, Jun 23, 2026 at 5:49 PM Gao Xiang <[email protected]> wrote: > > > > On 2026/6/23 17:34, Yafang Shao wrote: > > On Tue, Jun 23, 2026 at 5:25 PM Gao Xiang <[email protected]> wrote: > >> > >> > >> > >> On 2026/6/23 17:15, Yafang Shao wrote: > >>> On Tue, Jun 23, 2026 at 5:00 PM Gao Xiang <[email protected]> wrote: > >>>> > >>>> > >>>> > >>>> On 2026/6/23 16:43, Yafang Shao wrote: > >>>>> We have enabled "volatile" fsync_mode on our Kubernetes production > >>>>> environment to prevent container exit from being blocked when there > >>>>> are many dirty pages to flush. This has worked well without introducing > >>>>> any issues. > >>>>> > >>>>> However, on some of our production servers, upgrading the container > >>>>> runtime to support the "volatile" mount option is not straightforward [0]. > >>>>> To address this, we want to enable it by default within the kernel. > >>>> > >>>> Just a side note: "upgrade the container runtime is not > >>>> straightforward", how? it seems that issue is already resolved and > >>>> there is no more discussion. > >>> > >>> We still have many production servers running Docker, while the > >>> "volatile" mount option is only supported by containerd. Upgrading > >>> from Docker to containerd is a difficult process. > >> > >> But docker can be patched too: if upgrading the userspace is > >> hard, why upgrading the linux kernel is easy? > > > > It is quite easy since the kernel can be livepatched without > > rebooting. My employer is a heavy livepatch user. [1] > > > > [1]. https://lore.kernel.org/live-patching/ > > It's just a generic opinion, in general, docker can be live > upgraded without pausing the containers, and upgrading > userspace is easier / safer than patching the kernel. Are you sure? How would one change an already mounted overlayfs that was not enabled with "volatile"? > > > > >> > >>> > >>>> > >>>> Not quite sure applying a default volatile policy is quite feasible, > >>>> especially the issue documented in > >>>> https://github.com/containerd/containerd/pull/10274/files#diff-9239161e2af83fd84df5792f9fe64701c517fe4598eae60d4d245d039955f46cR33 > >>>> > >>>> then userspace cannot drop `volatile` option as a somewhat > >>>> workaround now. > >>> > >>> OS vendors can still set "auto" as the default config, while customers > >>> can override it dynamically via sysfs. We have been running with > >>> "volatile" on many production servers across different workloads for > >>> over a year, and it has worked as expected without any issues. > >> > >> but sysfs setting still applies as system-wide, and there > >> are some edge cases that we cannot apply volatile as > >> default, that is my one concern. > > > > It is unclear whether there are mixed workloads on the same server > > that require both "volatile" and "strict" modes, but we have not > > encountered such use cases across our large fleet of servers. > > At least containerd needs to strip out `volatile` in some use cases, > again see: > https://github.com/containerd/containerd/pull/9555 > https://github.com/containerd/containerd/pull/10274/files#diff-9239161e2af83fd84df5792f9fe64701c517fe4598eae60d4d245d039955f46cR33 > > So set `volatile` as default will break userspace (containerd), > and containerd needs to add another mount option to avoid the > default `volatile` behavior, which is messy and makes the > userspace more harder. However, our userspace is easier with it ;) > > > > >> > >> The other concern is that since `volatile` omits fsync, so > >> it's a posix violation (even that makes sense for container > >> writable layers), not sure if we have to use it as the > >> system-wide default configuration too. > > > > We have use cases for setting this as a system-wide configuration. It > > is unclear whether others have similar needs. > > While I cannot speak out of overlayfs, but really it depends > on if the use cases is generic. > > Usually filesystems need to obey posix semantics as much as > possible, and using specific mount option to relax (violate) > some restriction, but it shouldn't be a system-wide stuff > since otherwise user applications cannot know if they really > live in the posix world. AFAICS, the Linux kernel does not strictly follow POSIX in a number of areas. BTW, 1. The "volatile" is not the default option. 2. Even when the system-wide default is set to "volatile", users can still change it per mount. -- Regards Yafang