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
- Docker, redirecting to virtualbox port
- Collect only from STDERR when using Docker syslog logging driver
- How can I create a docker image from the current system?
- Moving Docker Containers Around
- How can I test with serverspec that Jenkins is running in a jenkins docker container?
- How to deploy django 1.8 on Elastic Beanstalk using Docker
- Emulating `docker run` using the golang docker API
- Where are docker images and containers stored when we use it with Windows?
- docker compose, vagrant and insecure Repository
- Commit data in a mysql container
- oh-my-zsh installation returns non zero code
- Use custom docker binary in CoreOS
- Can I use docker image ubuntu 14.04 if my host is 12.04?
- Hide/obfuscate environmental parameters in docker
- How to add initial users when starting a RabbitMQ Docker container?
Related Questions in STORAGE
- Grabbing Edits from two strings
- How to determine which Windows drives map to which SAN storage devices using WMI?
- Send alert for 80% threshold comparing two values from Disk partition
- How to get storage capacity of mac programmatically?
- Store pdf from assets to internal storage(private)
- Storing images in MSSQL vs Disk
- Using puppet to create a lvm with dynamic size
- Is the storage location "storage" for all Android devices and versions fixed?
- Dismissing items from news feed in my app. Android - Java
- Access videos both in internal storage and external SD card - Android
- How to get total internal memory (including system memory)
- Use case HBase on EMR
- Best Data Type for Storing AWS ARNs in MySQL?
- Android ZTE Blade III camera intent not returning with data
- Historical data in Cassandra
Related Questions in BLOCK-STORAGE
- Finding location of Files (Ceph)
- AWS EBS volume not showing up windows disk management
- How do you configure the EBS block size to be different than the default?
- What am I doing wrong using the IBM Cloud Block Storage plug-in
- How kubernetes block, file and object storage types are used inside containers
- Mount BlockStorage Device on Bluemix VM
- What filesystem type is appropriate for openstack cinder volume?
- Isn't everything block-storage? (File-storage, object-storage, block-storage)
- How to order and delete a iscsi block storage on SoftLayer using the api's?
- IBM Cloud: Which API to use to get list of all block volume sanctioned
- What does "Thin Pool" in docker mean?
- How to use Redhat CloudForms Cinder volumes for Kubernetes PersistentVolumes
- Kubernetes persistent volume on own rack
- Is it practical to mount a block storage to multiple VPS running Docker Swarm for shared storage?
- IBM Cloud: How do I see the newly attached block storage in a virtual server?
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 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: