GithubHelp home page GithubHelp logo

implement Usage about zfs HOT 11 CLOSED

containerd avatar containerd commented on July 22, 2024 4
implement Usage

from zfs.

Comments (11)

fuweid avatar fuweid commented on July 22, 2024 4

@AkihiroSuda @dmcgowan I prefer to use ZFS-native model as default instead of native-diff. In production, some apps like nodejs/python has a lot of small files and native-diff will consumes cpu resources in containerd side. It is cool to have ZFS-native model and native-diff both, and the switch is up to user's configuration.

from zfs.

ukd1 avatar ukd1 commented on July 22, 2024 2

Are there any plans to fix this? I'm still getting these errors...

from zfs.

sigxcpu76 avatar sigxcpu76 commented on July 22, 2024 2

Until there is a final and good solution for this, can we get a quick patch instead? This generates tons of useless logging.

from zfs.

apnar avatar apnar commented on July 22, 2024 1

Just ran into this issue as well. I expect it to be more frequent with Ubuntu 20.04 offering root on ZFS support now. The default microk8s install still uses native snapshotter but there is a how-to here https://microk8s.io/docs/install-alternatives on switching to ZFS snapshotter which triggers tons of error messages about Usage not being implemented unless you tweak the logging way down.

I imagine this would be a quick add for someone familiar with the code now that the decision to use ZFS native output was made above, but if no one has the time I may try diving into it.

from zfs.

AkihiroSuda avatar AkihiroSuda commented on July 22, 2024

@stevvooe @dmcgowan

Do we need to implement this before v1.1 GA?

If so, I'll port over btrfs implementation for consistency, rather than adopting the zfs-native USED value mentioned above.

containerd/containerd#1871

from zfs.

dmcgowan avatar dmcgowan commented on July 22, 2024

I didn't realize we didn't have usage implemented yet. I probably would have suggested we either implement it or not have it enabled by default. I think we are too late for 1.1.0 but we can fix for 1.1.1.

from zfs.

AkihiroSuda avatar AkihiroSuda commented on July 22, 2024

Still not sure whether we should use naive differ as we did for btrfs (containerd/containerd#1871), or use filesystem-native usage value, which we didn't adopt for btrfs (containerd/containerd#1836).

For consistency with btrfs/overlayfs, probably we should use the former one, but for performance and future potential support of zfs quota, we should use ZFS-native usage value.

Maybe we should support both and make them configurable?

from zfs.

dalbani avatar dalbani commented on July 22, 2024

Hey, I found this bug when trying to understand why I had hundreds of message in the logs of containerd in a MicroK8s environment with a ZFS snapshotter.
For example:
microk8s.daemon-containerd[19500]: time="2020-01-17T21:56:56.725325357Z" level=error msg="Failed to get usage for snapshot "sha256:xxxxxx" error="zfs does not implement Usage() yet"
I suppose it doesn't affect the functionality / reliability of the setup, but it would be nice not to have all those errors in the logs ;-)

Note to self: I see an entry stats_collect_period = 10 in containerd-template.toml, so I suppose that's the reason why the error messages are logged every 10 seconds.

from zfs.

fuweid avatar fuweid commented on July 22, 2024

@dalbani you are right. cri-containerd will collect usage about container snapshotters very stats_collect_period seconds. For the overlay/native/... snapshotter, Usage call will be act like du which means that it is time-consuming job. cri-containerd uses goroutine to collect data background. When kubelet wants to know the container status, cri-containerd will return the cache updated by that goroutine.

If not to have all those errors, zfs needs Usage implementation.

from zfs.

AkihiroSuda avatar AkihiroSuda commented on July 22, 2024

@fuweid @dmcgowan WDYT: #17 (comment)

from zfs.

fuweid avatar fuweid commented on July 22, 2024

close by #38

from zfs.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.