Comments (11)
@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.
Are there any plans to fix this? I'm still getting these errors...
from zfs.
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.
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.
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.
from zfs.
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.
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.
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.
@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.
@fuweid @dmcgowan WDYT: #17 (comment)
from zfs.
close by #38
from zfs.
Related Issues (16)
- travis not working
- `make test` locally failing with containerd@f3b85a91b09cdd786fc3ad624b98618cd0e3313e HOT 1
- Datasets don't seem to be cleaned up properly on image removal. HOT 1
- Containerd doesn't seem to be cleaning up after deleted containers HOT 1
- zfs plugin fails to load with error="invalid zfs configuration"
- Add CI for FreeBSD HOT 8
- Port unit tests to FreeBSD
- Limit for snapshot size
- Move zfs code into root HOT 1
- Data corruption on container image storage HOT 5
- Use defered destroy for better performance
- Using deprecated versions of github.com/containerd/containerd HOT 1
- Remove(): attempt roll-back on error
- ZFS datasets not cleaned up HOT 10
- ZFS Snapshotter - Excessive ZFS Snapshots? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zfs.