[Gluster-users] df reports wrong full capacity for distributed volumes (Glusterfs 3.12.6-1)

Jose V. Carrión jocarbur at gmail.com
Wed Feb 28 17:01:26 UTC 2018


Hi Nithya,

My initial setup was composed of 2 similar nodes: stor1data and stor2data.
A month ago I expanded both volumes with a new node: stor3data (2 bricks
per volume).
Of course, then to add the new peer with the bricks I did the 'balance
force' operation. This task finished successfully (you can see info below)
and number of files on the 3 nodes were very similar .

For volumedisk1 I only have files of 500MB and they are continuosly written
in sequential mode. The filename pattern of written files is:

run.node1.0000.rd
run.node2.0000.rd
run.node1.0001.rd
run.node2.0001.rd
run.node1.0002.rd
run.node2.0002.rd
...........
...........
run.node1.X.rd
run.node2.X.rd

(  X ranging from 0000 to infinite )

Curiously stor1data and stor2data maintain similar ratios in bytes:

Filesystem              1K-blocks        Used               Available
Use% Mounted on
/dev/sdc1             52737613824 17079174264  35658439560  33%
/mnt/glusterfs/vol1   -> stor1data
/dev/sdc1             52737613824 17118810848  35618802976  33%
/mnt/glusterfs/vol1  ->  stor2data

However the ratio on som3data differs too much (1TB):
Filesystem           1K-blocks        Used                Available
Use% Mounted on
/dev/sdc1             52737613824 15479191748  37258422076  30%
/mnt/disk_c/glusterfs/vol1 -> stor3data
/dev/sdd1             52737613824 15566398604  37171215220  30%
/mnt/disk_d/glusterfs/vol1 -> stor3data

Thinking in  inodes:

Filesystem                Inodes       IUsed       IFree          IUse%
Mounted on
/dev/sdc1             5273970048  851053  5273118995    1%
/mnt/glusterfs/vol1 ->  stor1data
/dev/sdc1             5273970048  849388  5273120660    1%
/mnt/glusterfs/vol1 ->  stor2data

/dev/sdc1             5273970048  846877  5273123171    1%
/mnt/disk_c/glusterfs/vol1 -> stor3data
/dev/sdd1             5273970048  845250  5273124798    1%
/mnt/disk_d/glusterfs/vol1 -> stor3data

851053 (stor1) - 845250 (stor3) = 5803 files of difference !

In adition, correct me if I'm wrong,  stor3data should have 50% of
probability to store a new file (even taking into account the algorithm of
DHT with filename patterns)

Thanks,
Greetings.

Jose V.

Status of volume: volumedisk0
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick stor1data:/mnt/glusterfs/vol0/bri
ck1                                         49152     0          Y
13533
Brick stor2data:/mnt/glusterfs/vol0/bri
ck1                                         49152     0          Y
13302
Brick stor3data:/mnt/disk_b1/glusterfs/
vol0/brick1                                 49152     0          Y
17371
Brick stor3data:/mnt/disk_b2/glusterfs/
vol0/brick1                                 49153     0          Y
17391
NFS Server on localhost                     N/A       N/A        N
N/A
NFS Server on stor3data                 N/A       N/A        N       N/A
NFS Server on stor2data                 N/A       N/A        N       N/A

Task Status of Volume volumedisk0
------------------------------------------------------------------------------
Task                 : Rebalance
ID                   : 7f5328cb-ed25-4627-9196-fb3e29e0e4ca
Status               : completed

Status of volume: volumedisk1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick stor1data:/mnt/glusterfs/vol1/bri
ck1                                         49153     0          Y
13579
Brick stor2data:/mnt/glusterfs/vol1/bri
ck1                                         49153     0          Y
13344
Brick stor3data:/mnt/disk_c/glusterfs/v
ol1/brick1                                  49154     0          Y
17439
Brick stor3data:/mnt/disk_d/glusterfs/v
ol1/brick1                                  49155     0          Y
17459
NFS Server on localhost                     N/A       N/A        N
N/A
NFS Server on stor3data                 N/A       N/A        N       N/A
NFS Server on stor2data                 N/A       N/A        N       N/A

Task Status of Volume volumedisk1
------------------------------------------------------------------------------
Task                 : Rebalance
ID                   : d0048704-beeb-4a6a-ae94-7e7916423fd3
Status               : completed


2018-02-28 15:40 GMT+01:00 Nithya Balachandran <nbalacha at redhat.com>:

> Hi Jose,
>
> On 28 February 2018 at 18:28, Jose V. Carrión <jocarbur at gmail.com> wrote:
>
>> Hi Nithya,
>>
>> I applied the workarround for this bug and now df shows the right size:
>>
>> That is good to hear.
>
>
>
>> [root at stor1 ~]# df -h
>> Filesystem            Size  Used Avail Use% Mounted on
>> /dev/sdb1              26T  1,1T   25T   4% /mnt/glusterfs/vol0
>> /dev/sdc1              50T   16T   34T  33% /mnt/glusterfs/vol1
>> stor1data:/volumedisk0
>>                       101T  3,3T   97T   4% /volumedisk0
>> stor1data:/volumedisk1
>>                       197T   61T  136T  31% /volumedisk1
>>
>>
>> [root at stor2 ~]# df -h
>> Filesystem            Size  Used Avail Use% Mounted on
>> /dev/sdb1              26T  1,1T   25T   4% /mnt/glusterfs/vol0
>> /dev/sdc1              50T   16T   34T  33% /mnt/glusterfs/vol1
>> stor2data:/volumedisk0
>>                       101T  3,3T   97T   4% /volumedisk0
>> stor2data:/volumedisk1
>>                       197T   61T  136T  31% /volumedisk1
>>
>>
>> [root at stor3 ~]# df -h
>> Filesystem            Size  Used Avail Use% Mounted on
>> /dev/sdb1              25T  638G   24T   3% /mnt/disk_b1/glusterfs/vol0
>> /dev/sdb2              25T  654G   24T   3% /mnt/disk_b2/glusterfs/vol0
>> /dev/sdc1              50T   15T   35T  30% /mnt/disk_c/glusterfs/vol1
>> /dev/sdd1              50T   15T   35T  30% /mnt/disk_d/glusterfs/vol1
>> stor3data:/volumedisk0
>>                       101T  3,3T   97T   4% /volumedisk0
>> stor3data:/volumedisk1
>>                       197T   61T  136T  31% /volumedisk1
>>
>>
>> However I'm concerned because, as you can see, the volumedisk0 on
>> stor3data is composed by 2 bricks on thesame disk but on different
>> partitions (/dev/sdb1 and /dev/sdb2).
>> After to aplly the workarround, the  shared-brick-count parameter was
>> setted to 1 in all the bricks and all the servers (see below). Could be
>> this an issue ?
>>
>> No, this is correct. The shared-brick-count will be > 1 only if multiple
> bricks share the same partition.
>
>
>
>> Also, I can check that stor3data is now unbalanced respect stor1data and
>> stor2data. The three nodes have the same size of brick but stor3data bricks
>> have used 1TB less than stor1data and stor2data:
>>
>
>
> This does not necessarily indicate a problem. The distribution need not be
> exactly equal and depends on the filenames. Can you provide more
> information on the kind of dataset (how many files, sizes etc) on this
> volume? Did you create the volume with all 4 bricks or add some later?
>
> Regards,
> Nithya
>
>>
>> stor1data:
>> /dev/sdb1              26T  1,1T   25T   4% /mnt/glusterfs/vol0
>> /dev/sdc1              50T   16T   34T  33% /mnt/glusterfs/vol1
>>
>> stor2data bricks:
>> /dev/sdb1              26T  1,1T   25T   4% /mnt/glusterfs/vol0
>> /dev/sdc1              50T   16T   34T  33% /mnt/glusterfs/vol1
>>
>> stor3data bricks:
>>   /dev/sdb1              25T  638G   24T   3% /mnt/disk_b1/glusterfs/vol0
>>   /dev/sdb2              25T  654G   24T   3% /mnt/disk_b2/glusterfs/vol0
>>    dev/sdc1              50T   15T   35T  30% /mnt/disk_c/glusterfs/vol1
>>    /dev/sdd1             50T   15T   35T  30% /mnt/disk_d/glusterfs/vol1
>>
>>
>> [root at stor1 ~]# grep -n "share" /var/lib/glusterd/vols/volumedisk1/*
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.
>> mnt-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.
>> mnt-glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.
>> mnt-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.
>> mnt-glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 0
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_c-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_c-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>> shared-brick-count 0
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_d-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_d-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>> shared-brick-count 0
>>
>> [root at stor2 ~]# grep -n "share" /var/lib/glusterd/vols/volumedisk1/*
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.
>> mnt-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.
>> mnt-glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 0
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.
>> mnt-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.
>> mnt-glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_c-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_c-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>> shared-brick-count 0
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_d-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_d-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>> shared-brick-count 0
>>
>> [root at stor3t ~]# grep -n "share" /var/lib/glusterd/vols/volumedisk1/*
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.
>> mnt-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.
>> mnt-glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.
>> mnt-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.
>> mnt-glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 0
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_c-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_c-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>> shared-brick-count 0
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_d-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.
>> mnt-disk_d-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>> shared-brick-count 0
>>
>> Thaks for your help,
>> Greetings.
>>
>> Jose V.
>>
>>
>> 2018-02-28 5:07 GMT+01:00 Nithya Balachandran <nbalacha at redhat.com>:
>>
>>> Hi Jose,
>>>
>>> There is a known issue with gluster 3.12.x builds (see [1]) so you may
>>> be running into this.
>>>
>>> The "shared-brick-count" values seem fine on stor1. Please send us "grep
>>> -n "share" /var/lib/glusterd/vols/volumedisk1/*" results for the other
>>> nodes so we can check if they are the cause.
>>>
>>>
>>> Regards,
>>> Nithya
>>>
>>>
>>>
>>> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1517260
>>>
>>> On 28 February 2018 at 03:03, Jose V. Carrión <jocarbur at gmail.com>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> Some days ago all my glusterfs configuration was working fine. Today I
>>>> realized that the total size reported by df command was changed and is
>>>> smaller than the aggregated capacity of all the bricks in the volume.
>>>>
>>>> I checked that all the volumes status are fine, all the glusterd
>>>> daemons are running, there is no error in logs,  however df shows a bad
>>>> total size.
>>>>
>>>> My configuration for one volume: volumedisk1
>>>> [root at stor1 ~]# gluster volume status volumedisk1  detail
>>>>
>>>> Status of volume: volumedisk1
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> Brick                : Brick stor1data:/mnt/glusterfs/vol1/brick1
>>>> TCP Port             : 49153
>>>> RDMA Port            : 0
>>>> Online               : Y
>>>> Pid                  : 13579
>>>> File System          : xfs
>>>> Device               : /dev/sdc1
>>>> Mount Options        : rw,noatime
>>>> Inode Size           : 512
>>>> Disk Space Free      : 35.0TB
>>>> Total Disk Space     : 49.1TB
>>>> Inode Count          : 5273970048
>>>> Free Inodes          : 5273123069
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> Brick                : Brick stor2data:/mnt/glusterfs/vol1/brick1
>>>> TCP Port             : 49153
>>>> RDMA Port            : 0
>>>> Online               : Y
>>>> Pid                  : 13344
>>>> File System          : xfs
>>>> Device               : /dev/sdc1
>>>> Mount Options        : rw,noatime
>>>> Inode Size           : 512
>>>> Disk Space Free      : 35.0TB
>>>> Total Disk Space     : 49.1TB
>>>> Inode Count          : 5273970048
>>>> Free Inodes          : 5273124718
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> Brick                : Brick stor3data:/mnt/disk_c/glusterf
>>>> s/vol1/brick1
>>>> TCP Port             : 49154
>>>> RDMA Port            : 0
>>>> Online               : Y
>>>> Pid                  : 17439
>>>> File System          : xfs
>>>> Device               : /dev/sdc1
>>>> Mount Options        : rw,noatime
>>>> Inode Size           : 512
>>>> Disk Space Free      : 35.7TB
>>>> Total Disk Space     : 49.1TB
>>>> Inode Count          : 5273970048
>>>> Free Inodes          : 5273125437
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> Brick                : Brick stor3data:/mnt/disk_d/glusterf
>>>> s/vol1/brick1
>>>> TCP Port             : 49155
>>>> RDMA Port            : 0
>>>> Online               : Y
>>>> Pid                  : 17459
>>>> File System          : xfs
>>>> Device               : /dev/sdd1
>>>> Mount Options        : rw,noatime
>>>> Inode Size           : 512
>>>> Disk Space Free      : 35.6TB
>>>> Total Disk Space     : 49.1TB
>>>> Inode Count          : 5273970048
>>>> Free Inodes          : 5273127036
>>>>
>>>>
>>>> Then full size for volumedisk1 should be: 49.1TB + 49.1TB + 49.1TB
>>>> +49.1TB = *196,4 TB  *but df shows:
>>>>
>>>> [root at stor1 ~]# df -h
>>>> Filesystem            Size  Used Avail Use% Mounted on
>>>> /dev/sda2              48G   21G   25G  46% /
>>>> tmpfs                  32G   80K   32G   1% /dev/shm
>>>> /dev/sda1             190M   62M  119M  35% /boot
>>>> /dev/sda4             395G  251G  124G  68% /data
>>>> /dev/sdb1              26T  601G   25T   3% /mnt/glusterfs/vol0
>>>> /dev/sdc1              50T   15T   36T  29% /mnt/glusterfs/vol1
>>>> stor1data:/volumedisk0
>>>>                        76T  1,6T   74T   3% /volumedisk0
>>>> stor1data:/volumedisk1
>>>>                       *148T*   42T  106T  29% /volumedisk1
>>>>
>>>> Exactly 1 brick minus: 196,4 TB - 49,1TB = 148TB
>>>>
>>>> It's a production system so I hope you can help me.
>>>>
>>>> Thanks in advance.
>>>>
>>>> Jose V.
>>>>
>>>>
>>>> Below some other data of my configuration:
>>>>
>>>> [root at stor1 ~]# gluster volume info
>>>>
>>>> Volume Name: volumedisk0
>>>> Type: Distribute
>>>> Volume ID: 0ee52d94-1131-4061-bcef-bd8cf898da10
>>>> Status: Started
>>>> Snapshot Count: 0
>>>> Number of Bricks: 4
>>>> Transport-type: tcp
>>>> Bricks:
>>>> Brick1: stor1data:/mnt/glusterfs/vol0/brick1
>>>> Brick2: stor2data:/mnt/glusterfs/vol0/brick1
>>>> Brick3: stor3data:/mnt/disk_b1/glusterfs/vol0/brick1
>>>> Brick4: stor3data:/mnt/disk_b2/glusterfs/vol0/brick1
>>>> Options Reconfigured:
>>>> performance.cache-size: 4GB
>>>> cluster.min-free-disk: 1%
>>>> performance.io-thread-count: 16
>>>> performance.readdir-ahead: on
>>>>
>>>> Volume Name: volumedisk1
>>>> Type: Distribute
>>>> Volume ID: 591b7098-800e-4954-82a9-6b6d81c9e0a2
>>>> Status: Started
>>>> Snapshot Count: 0
>>>> Number of Bricks: 4
>>>> Transport-type: tcp
>>>> Bricks:
>>>> Brick1: stor1data:/mnt/glusterfs/vol1/brick1
>>>> Brick2: stor2data:/mnt/glusterfs/vol1/brick1
>>>> Brick3: stor3data:/mnt/disk_c/glusterfs/vol1/brick1
>>>> Brick4: stor3data:/mnt/disk_d/glusterfs/vol1/brick1
>>>> Options Reconfigured:
>>>> cluster.min-free-inodes: 6%
>>>> performance.cache-size: 4GB
>>>> cluster.min-free-disk: 1%
>>>> performance.io-thread-count: 16
>>>> performance.readdir-ahead: on
>>>>
>>>> [root at stor1 ~]# grep -n "share" /var/lib/glusterd/vols/volumedisk1/*
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.mnt
>>>> -glusterfs-vol1-brick1.vol:3:    option shared-brick-count 1
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor1data.mnt
>>>> -glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 1
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.mnt
>>>> -glusterfs-vol1-brick1.vol:3:    option shared-brick-count 0
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor2data.mnt
>>>> -glusterfs-vol1-brick1.vol.rpmsave:3:    option shared-brick-count 0
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.mnt
>>>> -disk_c-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 0
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.mnt
>>>> -disk_c-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>>>> shared-brick-count 0
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.mnt
>>>> -disk_d-glusterfs-vol1-brick1.vol:3:    option shared-brick-count 0
>>>> /var/lib/glusterd/vols/volumedisk1/volumedisk1.stor3data.mnt
>>>> -disk_d-glusterfs-vol1-brick1.vol.rpmsave:3:    option
>>>> shared-brick-count 0
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Gluster-users mailing list
>>>> Gluster-users at gluster.org
>>>> http://lists.gluster.org/mailman/listinfo/gluster-users
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-users/attachments/20180228/3fc24d8b/attachment.html>


More information about the Gluster-users mailing list