Bug 1368128

Summary: tiering: avoid ping-pong during appends
Product: [Community] GlusterFS Reporter: Milind Changire <mchangir>
Component: tieringAssignee: Milind Changire <mchangir>
Status: CLOSED WONTFIX QA Contact: bugs <bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: mainlineCC: bugs
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-11-02 08:15:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Milind Changire 2016-08-18 13:33:37 UTC
Description of problem:
when file is being written, especially appended to, then file ping-pongs between cold and hot tier

Version-Release number of selected component (if applicable):


How reproducible:
always


Steps to Reproduce:
1. create file BIGDEMO-1 on cold tier at mount point: /mnt/twoXtwo
2. attach hot tier bricks
3. start appending to file using the following shell command:

while true; do
    dd if=/dev/urandom of=/mnt/twoXtwo/BIGDEMO-1 ibs=1024 obs=2014 \
       conv=notrunc oflag=append count=100;
    ls -l /mnt/twoXtwo;
    sleep 1;
done

Comment 1 Milind Changire 2016-08-19 05:55:53 UTC
This seems to an issue with XFS as the brick file-system over-allocating blocks for performance reasons. Tests with EXT4 did not manifest this issue.

Comment 2 Amar Tumballi 2018-11-02 08:15:28 UTC
Patch https://review.gluster.org/#/c/glusterfs/+/21331/ removes tier functionality from GlusterFS. 

https://bugzilla.redhat.com/show_bug.cgi?id=1642807 is used as the tracking bug for this. Recommendation is to convert your tier volume to regular volume (either replicate, ec, or plain distribute) with "tier detach" command before upgrade, and use backend features like dm-cache etc to utilize the caching from backend to provide better performance and functionality.