Flush a pool's cache
Prerequisites
Before you can enable pool caching, you must have a storage pool with caching configured but currently disabled.
You can use the following commands to check if caching is disabled:
-
Run the
pxctl status
command the get the id of your pool:pxctl status
Status: PX is operational
License: Trial (expires in 29 days)
Node ID: xxxxxxxx-xxxx-xxxx-xxxx-f929bc658862
IP: X.X.X.28
Local Storage Pool: 1 pool
POOL IO_PRIORITY RAID_LEVEL USABLE USED STATUS ZONE REGION
0 HIGH raid0 128 GiB 8.4 GiB Online default default
Local Storage Devices: 2 devices
Device Path Media Type Size Last-Scan
0:0 /dev/sdf STORAGE_MEDIUM_MAGNETIC 128 GiB 22 Sep 19 14:48 UTC
total - 128 GiB
Cache Devices:
Device Path Media Type Size Last-Scan
0:1 /dev/sdc STORAGE_MEDIUM_SSD 70 GiB 22 Sep 19 14:48 UTC
Cluster Summary
Cluster ID: doc-cluster-caching-2.2.0
Cluster UUID: xxxxxxxx-xxxx-xxxx-xxxx-70019d925a4a
Scheduler: none
Nodes: 3 node(s) with storage (3 online)
IP ID SchedulerNodeName StorageNode UseCapacity Status StorageStatus Version Kernel OS
X.X.X.28 xxxxxxxx-xxxx-xxxx-xxxx-f929bc658862 N/A Yes 8.4 GiB 128 GiB Online Up (This node) 2.2.0.0-328a043 4.20.13-1.el7.elrepo.x86_64 CentOS Linux 7 (Core)
X.X.X.240 xxxxxxxx-xxxx-xxxx-xxxx-2ae648891072 N/A Yes 8.4 GiB 128 GiB Online Up 2.2.0.0-328a043 4.20.13-1.el7.elrepo.x86_64 CentOS Linux 7 (Core)
X.X.X.32 xxxxxxxx-xxxx-xxxx-xxxx-9bf257e9973a N/A Yes 8.4 GiB 128 GiB Online Up 2.2.0.0-328a043 4.20.13-1.el7.elrepo.x86_64 CentOS Linux 7 (Core)
Global Storage Pool
Total Used : 25 GiB
Total Capacity : 384 GiB -
Enter the
pxctl service pool cache status
command with the ID of your storage pool:pxctl service pool cache status 0
PX Cache Configuration and Status:
Pool ID: 0
Enabled: false
Members: [/dev/sdc]
TotalBlocks: 0
UsedBlocks: 0
DirtyBlocks: 0
ReadHits: 0
ReadMisses: 0
WriteHits: 0
WriteMisses: 0
BlockSize: 1048576
Mode: writeback
Policy: smq
Tunables: migration_threshold=20480
Flush a pool's cache
-
Enter pool maintenance mode:
pxctl service pool maintenance --enter
Pool transition operation will restart PX.
Are you sure you want to proceed ? (Y/N): Y
Pool transition request submitted. -
Enter the
pxctl service pool cache flush
command, specifying the<pool_id>
of the pool you want to flush the cache of:pxctl service pool cache flush <pool_id>
Depending on how many dirty blocks are in the cache, the operation will either run immediately, or in the background:
-
The following example runs immediately and flushes the cache on pool
0
:pxctl service pool cache flush 0
Pool 0 has completed flush successfully
-
The following example runs in the background and flushes the cache on pool
0
:pxctl service pool cache flush 0
Pool 0 flush cache initiated(has 12 dirty blocks)
You can check the status of a background cache flush operation by entering the
pxctl service pool cache flush
command with the pool ID and the-o status
flag:pxctl service pool cache flush 0 -o status
Pool 0 has completed flush successfully
-
-
Exit pool maintenance mode:
pxctl service pool maintenance --exit
Pool transition operation will restart PX.
Are you sure you want to proceed ? (Y/N): Y
Pool transition request submitted.