<div dir="ltr"><div>Hi All,</div><div><br></div><div>I&#39;m using gluster as dispersed volume and I send to ask for very serious thing.</div><div>I have 3 servers and there are 9 bricks.</div><div><br></div><div>My volume is like below.</div><div>------------------------------------------------------</div><div>Volume Name: TEST_VOL</div><div>Type: Disperse</div><div>Volume ID: be52b68d-ae83-46e3-9527-0e536b867bcc</div><div>Status: Started</div><div>Snapshot Count: 0</div><div>Number of Bricks: 1 x (6 + 3) = 9</div><div>Transport-type: tcp</div><div>Bricks:</div><div>Brick1: server1:/data/brick1</div><div>Brick2: server2:/data/brick1</div><div>Brick3: server3:/data/brick1</div><div>Brick4: server1:/data/brick2</div><div>Brick5: server2:/data/brick2</div><div>Brick6: server3:/data/brick2</div><div>Brick7: server1:/data/brick3</div><div>Brick8: server2:/data/brick3</div><div>Brick9: server3:/data/brick3</div><div>Options Reconfigured:</div><div>network.ping-timeout: 10</div><div>performance.write-behind: on</div><div>features.quota-deem-statfs: on</div><div>features.inode-quota: on</div><div>features.quota: on</div><div>transport.address-family: inet</div><div>nfs.disable: on</div><div>------------------------------------------------------</div><div><br></div><div>I generated the temporary files by various size to test.</div><div>But I have found out some files MD5 mismatch after uploading to glusterfs.</div><div><br></div><div>e.g</div><div>fallocate -l 130352 test1 </div><div>fallocate -l 2281569280 test2</div><div>fallocate -l 667417616 test3 </div><div><br></div><div>I have to calculate to make MD5 after uploading. </div><div>But the total size is different when reading the files to EOF. and MD5 is different, too.</div><div>( I write 42byte header in each files when create the file )</div><div><br></div><div><br></div><div>    char buf[128*1024] = {0,};</div><div>    offset += 42;</div><div>    while ((retr = glfs_pread(fd, (void*)&amp;buf, sizeof(buf), offset, 0)) &gt; 0) {</div><div>        DEBUG(&quot;retr : %ld, offset : %ld(%d)&quot;, retr,offset,errno)    ;</div><div>        offset += retr;</div><div>        MD5_Update(&amp;context, buf, retr);</div><div>    }</div><div><br></div><div>    DEBUG(&quot;total : %d&quot;, offset);</div><div><br></div><div>[DEBUG] retr : 130394, offset : 42(0) (star_glusterfs.c:96)</div><div>[DEBUG] retr : 1024, offset : 130436(0) (star_glusterfs.c:96)</div><div>[DEBUG] retr : 636, offset : 131460(0) (star_glusterfs.c:96)</div><div>[DEBUG] total : 132096 (star_glusterfs.c:109)</div><div><br></div><div><br></div><div>Why the glfs_pread(or glfs_read) function reads until over than the file size ?</div><div><br></div><div>This is fine on dispersed (4+2) and (8+1) volume but it is happend on (6+3) or (6+4) or (7+2) disperse volume.</div><div>I want to know exact cause.</div><div>Thank you.</div><div><br></div><div>Regards,</div><div><br></div><div>Jenny</div><div><br></div></div>