I guess this should be pretty elementary but I've tried to google it and I've read the docker documentation. However, I still can't grasp what exactly does "Thin Pool" mean and the role it plays in the docker world.
What does "Thin Pool" in docker mean?
21.7k Views Asked by Antonio Gomez Alvarado At
1
There are 1 best solutions below
Related Questions in DOCKER
- sqlplus myusername/mypassword@ORCL not working with Oracle on Docker
- Golang == Error: OCI runtime create failed: unable to start container process: exec: "./bin": stat ./bin: no such file or directory: unknown
- Only the first SQL script gets executed inside Docker Postgres container
- Retrieve the Dockerfile configuration from the Kubernetes and also change container Java parameter?
- Polars with Rust: Out of Memory Error when Processing Large Dataset in Docker Using Streaming
- Compiling eBPF program in Docker fails due to missing '__u64' type
- AttributeError: module 'numba' has no attribute 'generated_jit'
- Phoenix in a docker dev environment - generated code can't be saved from VSCode
- Docker on Multipass VMs: Connecting worker nodes to swarm results in rcp error
- Facing error in creating image of my react+vite project . Dockerfile error
- NextJS Docker build fails: fetch failed ECONNREFUSED
- Docker container unable to make HTTPS requests to external API
- Failed to connect to your instance after deploying mern app on aws ec2 instance when i try to access frontend
- Connecting to Postgres running in a Docker container using psql
- Can't connect to local postgresql server from my docker container
Related Questions in STORAGE
- Worth it to access data by blocks on modern OS/hardware?
- Remove files with LastWriteTime
- spring security + form login + redis session storage -> keep coming out anonymous User
- How to redirect to another page eg main.py after user fill in and click register button and store it on .ini local database on python using kivy
- JSON document based storage Flutter(android and iOS)
- Invoke-WebRequest : Cannot validate argument on parameter 'Uri' Brocade switch FOS REST API
- How to set storage path for main domain from sub domain - Laravel
- Could converting a JPG to PNG or PPM be a good idea?
- How to restart automatically the application after clearing its storage?
- How to change an item in a list forever?
- Internal Storage Video Downloder
- Flask Download File with Get Request
- How to initialize a data storage system
- Slow D3DX11CreateShaderResourceViewFromFile relatively CrystalDiskMark speed
- How to store and build paths that depend on user input
Related Questions in BLOCK-STORAGE
- Incorrect volume usage in FSx for ONTAP
- How do you configure the EBS block size to be different than the default?
- Are Azure "Block Blobs" an example of "block storage", "object storage", or (somehow) both?
- What am I doing wrong using the IBM Cloud Block Storage plug-in
- Is ext4 considered file storage or block storage?
- What filesystem type is appropriate for openstack cinder volume?
- Is it practical to mount a block storage to multiple VPS running Docker Swarm for shared storage?
- IBM Cloud: Which API to use to get list of all block volume sanctioned
- Isn't everything block-storage? (File-storage, object-storage, block-storage)
- How kubernetes block, file and object storage types are used inside containers
- AWS EBS volume not showing up windows disk management
- File based storage vs Block based storage?
- IBM Cloud: How do I see the newly attached block storage in a virtual server?
- How to use Redhat CloudForms Cinder volumes for Kubernetes PersistentVolumes
- Kubernetes persistent volume on own rack
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Short story:
A thin pool is a storage source that provides on-demand allocation for storage space. It is more or less similar to virtual memory, which provides full address space to every process.
Long story:
Fat Provisioning
The traditional storage allocation method is called "fat" or "thick" provisioning.
For example, a user claims to use 10G storage space. Fat provisioning then reserves 10G physical storage space for this user even though he/she only uses 1% of it. No one else can use this reserved space.
Thin Provisioning
Thin provisioning provides a mechanism of on-demand storage allocation, which allows a user to claim more storage space than has been physically reserved for that user.
In other words, it enables over-allocation for storage space. Think about RAM's over-commit feature.
Thin Pool
Thin pool is a conceptional term which stands for the backing storage source used by thin provisioning. Thin provisioning allocates virtual chunks of storage from thin pool, while fat provisioning allocates physical blocks of storage from the traditional storage pool.
Thin Pool in Docker
The Docker Engine can be configured to use Device Mapper as its storage driver. This is where you deal with thin provisioning. According to Docker's documentation:
Two different spaces of thin pool need to be taken care of: the Metadata space (which stores pointers) and the Data space (which stores the real data). At the very beginning, all the pointers in Metadata space point to no real chunks in the pool. No chunk in data space is really allocated until a write request arrives. This is nothing new if you are familiar with the virtual memory mechanism.
Let's take a look at the output of
docker info:Here, the only confusing one is the
Thin Pool Minimum Free Space. What does it stand for?It specifies the min free space in GB in a thin pool required for a new device creation to succeed. This check applies to both free data space as well as free metadata space.
Container creation (during
docker pullordocker run) fails if free space in thin pool is less than the value inThin Pool Minimum Free Space. Insufficient space requires either adding more storage into thin pool or clearing up unused images.Links: