Re: [Gluster-devel] 回复: Glusterfs crash when enable quota on Arm aarch 64platform.

2019-12-02 Thread Xie Changlong

It's my pleasure, CC devel to confirm this issue.

?? 2019/12/3 14:13, PSC :


Thank you for your help!
It seems that it is my fault, I didn't disable quota and enable it 
again, so it seems work fine on commits before 2fb445ba, when you 
write file to a volume which had already reached its usage limit, it 
tells Disk quota exceeded. But actually, on former 
commits(before?0?22fb445ba), if I disable quota and enable it again, the 
volume is crash. You are right! 2fb445ba addressed the quota issue!


Thank you very much!!

--?0?2?0?2--
*??:*?0?2"zgrep";
*:*?0?22019??11??29??(??) 6:35
*??:*?0?2"Yaniv Kaul";
*:*?0?2"PSC"<1173701...@qq.com>;"Gluster 
Devel";
*:*?0?2Re: [Gluster-devel] Glusterfs crash when enable quota on Arm 
aarch 64platform.


NO, this issue disappered since commit 2fb445ba.

?? 2019/11/29 18:12, Yaniv Kaul :

Does it happen on master?

On Fri, 29 Nov 2019, 12:06 Xie Changlong <mailto:zg...@139.com>> wrote:


Hi, PSC

We encounter the same issue a few month ago, and git bisect says
the first bad commit is 2fb445ba. This patch is not quota
related, but it addressed the quota issue!

Maybe it's gcc issue??

commit 2fb445babdd621b71676e40804fe98e95fc9084d
Author: Xavi Hernandez 
<mailto:xhernan...@redhat.com>
Date:?0?2?0?2 Thu Jan 31 08:13:58 2019 +0100

?0?2?0?2?0?2 syncop: remove unnecessary call to gf_backtrace_save()

?0?2?0?2?0?2 A call to gf_backtrace_save() was done on each context switch
of a
?0?2?0?2?0?2 synctask. The backtrace is generated writing to the
filesystem, so it
?0?2?0?2?0?2 can have an important impact on latency.

?0?2?0?2?0?2 The generated backtrace was not used anywhere, so it's been
removed.

?0?2?0?2?0?2 Change-Id: I399a93b932c5b6e981c696c72c3e1ef44710ba52
?0?2?0?2?0?2 Updates: bz#1193929
?0?2?0?2?0?2 Signed-off-by: Xavi Hernandez 
<mailto:xhernan...@redhat.com>

diff --git a/libglusterfs/src/glusterfs/syncop.h
b/libglusterfs/src/glusterfs/syncop.h
index 7a6167b..e0f1017 100644
--- a/libglusterfs/src/glusterfs/syncop.h
+++ b/libglusterfs/src/glusterfs/syncop.h
@@ -73,7 +73,6 @@ struct synctask {
?0?2?0?2?0?2?0?2 int done;

?0?2?0?2?0?2?0?2 struct list_head waitq; /* can wait only "once" at a time 
*/
-?0?2?0?2?0?2 char btbuf[GF_BACKTRACE_LEN];
?0?2};

?0?2struct syncproc {
diff --git a/libglusterfs/src/syncop.c b/libglusterfs/src/syncop.c
index bf70daf..6206d4c 100644
--- a/libglusterfs/src/syncop.c
+++ b/libglusterfs/src/syncop.c
@@ -327,7 +327,6 @@ synctask_yield(struct synctask *task)

?0?2?0?2?0?2?0?2 if (task->state != SYNCTASK_DONE) {
?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2 task->state = SYNCTASK_SUSPEND;
-?0?2?0?2?0?2?0?2?0?2?0?2?0?2 (void)gf_backtrace_save(task->btbuf);
?0?2?0?2?0?2?0?2 }
?0?2?0?2?0?2?0?2 if (swapcontext(>ctx, >proc->sched) < 0) {
?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2 gf_msg("syncop", GF_LOG_ERROR, errno,
LG_MSG_SWAPCONTEXT_FAILED,


?? 2019/11/29 16:12, PSC :

Hi, I am studying on port glusterfs to ARM platform. I compiled
and ran it. Most of its functions works fine, however, when I
enable quota on any kind of volume, and mount it, and try to
read or write anything to the volume. It will run into crash,
and tell me the "Transport endpoint is not connected".

The version of glusterfs I am using is GlusterFS 3.12.2.
And I test it from version 3.12.2 to 6.0. This problem was
solved on 6.0, but I didn't found any addressed Bugs relate to
quota.
I also do some test on x86 servers, quota works fine.

On both of x86 and ARM servers, I am using CentOS 7.6.

For stability reason, I had been told that I should use
GlusterFS 3.12.2, rather than new versions. So I need to find
out how to address this bug.

Please offer me some help. Thank you very much!!


___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge:https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge:https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org  <mailto:Gluster-devel@gluster.org>
https://lists.gluster.org/mailman/listinfo/gluster-devel


___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org <mailto:Gluster-devel@gluster.org>

Re: [Gluster-devel] Glusterfs crash when enable quota on Arm aarch 64platform.

2019-11-29 Thread Xie Changlong

NO, this issue disappered since commit 2fb445ba.

在 2019/11/29 18:12, Yaniv Kaul 写道:

Does it happen on master?

On Fri, 29 Nov 2019, 12:06 Xie Changlong <mailto:zg...@139.com>> wrote:


Hi, PSC

We encounter the same issue a few month ago, and git bisect says
the first bad commit is 2fb445ba. This patch is not quota related,
but it addressed the quota issue!

Maybe it's gcc issue??

commit 2fb445babdd621b71676e40804fe98e95fc9084d
Author: Xavi Hernandez 
<mailto:xhernan...@redhat.com>
Date:   Thu Jan 31 08:13:58 2019 +0100

    syncop: remove unnecessary call to gf_backtrace_save()

    A call to gf_backtrace_save() was done on each context switch of a
    synctask. The backtrace is generated writing to the
filesystem, so it
    can have an important impact on latency.

    The generated backtrace was not used anywhere, so it's been
removed.

    Change-Id: I399a93b932c5b6e981c696c72c3e1ef44710ba52
    Updates: bz#1193929
    Signed-off-by: Xavi Hernandez 
<mailto:xhernan...@redhat.com>

diff --git a/libglusterfs/src/glusterfs/syncop.h
b/libglusterfs/src/glusterfs/syncop.h
index 7a6167b..e0f1017 100644
--- a/libglusterfs/src/glusterfs/syncop.h
+++ b/libglusterfs/src/glusterfs/syncop.h
@@ -73,7 +73,6 @@ struct synctask {
 int done;

 struct list_head waitq; /* can wait only "once" at a time */
-    char btbuf[GF_BACKTRACE_LEN];
 };

 struct syncproc {
diff --git a/libglusterfs/src/syncop.c b/libglusterfs/src/syncop.c
index bf70daf..6206d4c 100644
--- a/libglusterfs/src/syncop.c
+++ b/libglusterfs/src/syncop.c
@@ -327,7 +327,6 @@ synctask_yield(struct synctask *task)

 if (task->state != SYNCTASK_DONE) {
 task->state = SYNCTASK_SUSPEND;
-    (void)gf_backtrace_save(task->btbuf);
 }
 if (swapcontext(>ctx, >proc->sched) < 0) {
 gf_msg("syncop", GF_LOG_ERROR, errno,
LG_MSG_SWAPCONTEXT_FAILED,


在 2019/11/29 16:12, PSC 写道:

Hi, I am studying on port glusterfs to ARM platform. I compiled
and ran it. Most of its functions works fine, however, when I
enable quota on any kind of volume, and mount it, and try to read
or write anything to the volume. It will run into crash, and tell
me the "Transport endpoint is not connected".

The version of glusterfs I am using is GlusterFS 3.12.2.
And I test it from version 3.12.2 to 6.0. This problem was solved
on 6.0, but I didn't found any addressed Bugs relate to quota.
I also do some test on x86 servers, quota works fine.

On both of x86 and ARM servers, I am using CentOS 7.6.

For stability reason, I had been told that I should use GlusterFS
3.12.2, rather than new versions. So I need to find out how to
address this bug.

Please offer me some help. Thank you very much!!


___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge:https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge:https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org  <mailto:Gluster-devel@gluster.org>
https://lists.gluster.org/mailman/listinfo/gluster-devel


___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org <mailto:Gluster-devel@gluster.org>
https://lists.gluster.org/mailman/listinfo/gluster-devel

___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel



Re: [Gluster-devel] Glusterfs crash when enable quota on Arm aarch 64platform.

2019-11-29 Thread Xie Changlong

Hi, PSC

We encounter the same issue a few month ago, and git bisect says the 
first bad commit is 2fb445ba. This patch is not quota related, but it 
addressed the quota issue!


Maybe it's gcc issue??

commit 2fb445babdd621b71676e40804fe98e95fc9084d
Author: Xavi Hernandez 
Date:   Thu Jan 31 08:13:58 2019 +0100

    syncop: remove unnecessary call to gf_backtrace_save()

    A call to gf_backtrace_save() was done on each context switch of a
    synctask. The backtrace is generated writing to the filesystem, so it
    can have an important impact on latency.

    The generated backtrace was not used anywhere, so it's been removed.

    Change-Id: I399a93b932c5b6e981c696c72c3e1ef44710ba52
    Updates: bz#1193929
    Signed-off-by: Xavi Hernandez 

diff --git a/libglusterfs/src/glusterfs/syncop.h 
b/libglusterfs/src/glusterfs/syncop.h

index 7a6167b..e0f1017 100644
--- a/libglusterfs/src/glusterfs/syncop.h
+++ b/libglusterfs/src/glusterfs/syncop.h
@@ -73,7 +73,6 @@ struct synctask {
 int done;

 struct list_head waitq; /* can wait only "once" at a time */
-    char btbuf[GF_BACKTRACE_LEN];
 };

 struct syncproc {
diff --git a/libglusterfs/src/syncop.c b/libglusterfs/src/syncop.c
index bf70daf..6206d4c 100644
--- a/libglusterfs/src/syncop.c
+++ b/libglusterfs/src/syncop.c
@@ -327,7 +327,6 @@ synctask_yield(struct synctask *task)

 if (task->state != SYNCTASK_DONE) {
 task->state = SYNCTASK_SUSPEND;
-    (void)gf_backtrace_save(task->btbuf);
 }
 if (swapcontext(>ctx, >proc->sched) < 0) {
 gf_msg("syncop", GF_LOG_ERROR, errno, LG_MSG_SWAPCONTEXT_FAILED,


在 2019/11/29 16:12, PSC 写道:
Hi, I am studying on port glusterfs to ARM platform. I compiled and 
ran it. Most of its functions works fine, however, when I enable quota 
on any kind of volume, and mount it, and try to read or write anything 
to the volume. It will run into crash, and tell me the "Transport 
endpoint is not connected".


The version of glusterfs I am using is GlusterFS 3.12.2.
And I test it from version 3.12.2 to 6.0. This problem was solved on 
6.0, but I didn't found any addressed Bugs relate to quota.

I also do some test on x86 servers, quota works fine.

On both of x86 and ARM servers, I am using CentOS 7.6.

For stability reason, I had been told that I should use GlusterFS 
3.12.2, rather than new versions. So I need to find out how to address 
this bug.


Please offer me some help. Thank you very much!!


___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel

___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel



Re: [Gluster-devel] [Gluster-users] [Gluster-Maintainers] Proposal to change gNFSstatus

2019-11-22 Thread Xie Changlong

~~Get in a word~~

Hi,  Kaleb Keithley. Could you give some comments on below url ? We 
encounter it in practice.


https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/465149

Thanks

在 2019/11/22 5:14, Kaleb Keithley 写道:
I personally wouldn't call three years ago — when we started to 
deprecate it, in glusterfs-3.9 — a recent change.


As a community the decision was made to move to NFS-Ganesha as the 
preferred NFS solution, but it was agreed to keep the old code in the 
tree for those who wanted it. There have been plans to drop it from 
the community packages for most of those three years, but we didn't 
follow through across the board until fairly recently. Perhaps the 
most telling piece of data is that it's been gone from the packages in 
the CentOS Storage SIG in glusterfs-4.0, -4.1, -5, -6, and -7 with no 
complaints ever, that I can recall.


Ganesha is a preferable solution because it supports NFSv4, NFSv4.1, 
NFSv4.2, and pNFS, in addition to legacy NFSv3. More importantly, it 
is actively developed, maintained, and supported, both in the 
community and commercially. There are several vendors selling it, or 
support for it; and there are community packages for it for all the 
same distributions that Gluster packages are available for.


Out in the world, the default these days is NFSv4. Specifically v4.2 
or v4.1 depending on how recent your linux kernel is. In the linux 
kernel, client mounts start negotiating for v4.2 and work down to 
v4.1, v4.0, and only as a last resort v3. NFSv3 client support in the 
linux kernel largely exists at this point only because of the large 
number of legacy servers still running that can't do anything higher 
than v3. The linux NFS developers would drop the v3 support in a 
heartbeat if they could.


IMO, providing it, and calling it maintained, only encourages people 
to keep using a dead end solution. Anyone in favor of bringing back 
NFSv2, SSHv1, or X10R4? No? I didn't think so.


The recent issue[1] where someone built gnfs in glusterfs-7.0 on 
CentOS7 strongly suggests to me that gnfs is not actually working 
well. Three years of no maintenance seems to have taken its toll.


Other people are more than welcome to build their own packages from 
the src.rpms and/or tarballs that are available from gluster — and 
support them. It's still in the source and there are no plans to 
remove it. (Unlike most of the other deprecated features which were 
recently removed in glusterfs-7.)




[1] https://github.com/gluster/glusterfs/issues/764

On Thu, Nov 21, 2019 at 5:31 AM Amar Tumballi <mailto:ama...@gmail.com>> wrote:


Hi All,

As per the discussion on https://review.gluster.org/23645,
recently we changed the status of gNFS (gluster's native NFSv3
support) feature to 'Depricated / Orphan' state. (ref:
https://github.com/gluster/glusterfs/blob/master/MAINTAINERS#L185..L189).
With this email, I am proposing to change the status again to 'Odd
Fixes' (ref:
https://github.com/gluster/glusterfs/blob/master/MAINTAINERS#L22)

TL;DR;

I understand the current maintainers are not able to focus on
maintaining it as the focus of the project, as earlier described,
is keeping NFS-Ganesha based integration with glusterfs. But, I am
volunteering along with Xie Changlong (currently working at
Chinamobile), to keep the feature running as it used to in
previous versions. Hence the status of 'Odd Fixes'.

Before sending the patch to make these changes, I am proposing it
here now, as gNFS is not even shipped with latest glusterfs-7.0
releases. I have heard from some users that it was working great
for them with earlier releases, as all they wanted was NFS v3
support, and not much of features from gNFS. Also note that, even
though the packages are not built, none of the regression tests
using gNFS are stopped with latest master, so it is working same
from at least last 2 years.

I request the package maintainers to please add '--with gnfs' (or
--enable-gnfs) back to their release script through this email, so
those users wanting to use gNFS happily can continue to use it.
Also points to users/admins is that, the status is 'Odd Fixes', so
don't expect any 'enhancements' on the features provided by gNFS.

Happy to hear feedback, if any.

Regards,
Amar

___
maintainers mailing list
maintain...@gluster.org <mailto:maintain...@gluster.org>
https://lists.gluster.org/mailman/listinfo/maintainers




Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968

NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-users mailing list
gluster-us...@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-users
___

Co

Re: [Gluster-devel] Modifying gluster's logging mechanism

2019-11-22 Thread Xie Changlong


在 2019/11/22 17:43, Barak Sason Rofman 写道:

Thank you for your input Atin and Xie Changlong.

Regarding log ordering - my initial thought was to do it offline using 
a dedicated too. Should be straight forward, as the logs have time 
stamp composed of seconds and microseconds, so ordering them using 
this value is definitely possible.
This is actually one of the main reasons I wanted to bring this up for 
discussion - will it be fine with the community to run a dedicated 
tool to reorder the logs offline?
Reordering the logs offline will allow us to gain the most performance 
improvement, as keeping the logs order online will have some cost 
(probably through stronger synchronization).
Moreover, we can take log viewing one step further and maybe create 
some GUI system (JAVA based?) to view and handle logs (e.g. one window 
to show the combined order logs, other windows to show logs per thread 
etc').


Regarding the test method - my initial testing was done by removing 
all logging from regression. Modifying the method "skip_logging" to 
return 'true' in all cases seems to remove most of the logs (though 
not all, "to be on the safe side", really removing all logging related 
methods is probably even better).



Thanks for sharing, i'll go back to your method and do some perf test : )


As regression tests use mostly single-node tests, some additional 
testing was needed. I've written a couple of very basic scripts to 
create large number of files / big files, read / write to / from them, 
move them around and perform some other basic functionality.
I'd actually be glad to test this in some 'real world' use cases - if 
you have specific use cases that you use frequently, we can model them 
and benchmark against - this will likely offer an even more accurate 
benchmark.


On Fri, Nov 22, 2019 at 7:27 AM Xie Changlong <mailto:zg...@139.com>> wrote:



在 2019/11/21 21:04, Barak Sason Rofman 写道:


I see two design / implementation problems with that mechanism:

1.

The mutex that guards the log file is likely under constant
contention.

2.

The fact that each worker thread perform the IO by himself,
thus slowing his "real" work.


Initial tests, done by *removing logging from the regression
testing, shows an improvement of about 20% in run time*. This
indicates we’re taking a pretty heavy performance hit just
because of the logging activity.



Hi Barak Sason Rofman.  Amazing perf improvement! Could show me
the detail test method ?

Thanks

    -Xie


In addition to these problems, the logging module is due for an
upgrade:

1.

There are dozens of APIs in the logger, much of them are
deprecated - this makes it very hard for new developers to
keep evolving the project.

2.

One of the key points for Gluster-X, presented in October at
Bangalore, is the switch to a structured logging all across
gluster.




--
*Barak Sason Rofman*

Gluster Storage Development

Red Hat Israel <https://www.redhat.com/>

34 Jerusalem rd. Ra'anana, 43501

bsaso...@redhat.com <mailto:a...@redhat.com>  T: _+972-9-7692304_
M: _+972-52-4326355_

<https://red.ht/sig>

___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel



Re: [Gluster-devel] Modifying gluster's logging mechanism

2019-11-21 Thread Xie Changlong


在 2019/11/21 21:04, Barak Sason Rofman 写道:


I see two design / implementation problems with that mechanism:

1.

The mutex that guards the log file is likely under constant
contention.

2.

The fact that each worker thread perform the IO by himself, thus
slowing his "real" work.


Initial tests, done by *removing logging from the regression testing, 
shows an improvement of about 20% in run time*. This indicates we’re 
taking a pretty heavy performance hit just because of the logging 
activity.



Hi Barak Sason Rofman.  Amazing perf improvement! Could show me the 
detail test method ?


Thanks

    -Xie


In addition to these problems, the logging module is due for an upgrade:

1.

There are dozens of APIs in the logger, much of them are
deprecated - this makes it very hard for new developers to keep
evolving the project.

2.

One of the key points for Gluster-X, presented in October at
Bangalore, is the switch to a structured logging all across gluster.

___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/441850968


NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/441850968

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel



Re: [Gluster-devel] [Gluster-Maintainers] Proposal to change gNFSstatus

2019-11-21 Thread Xie Changlong


在 2019/11/22 5:14, Kaleb Keithley 写道:
I personally wouldn't call three years ago — when we started to 
deprecate it, in glusterfs-3.9 — a recent change.


As a community the decision was made to move to NFS-Ganesha as the 
preferred NFS solution, but it was agreed to keep the old code in the 
tree for those who wanted it. There have been plans to drop it from 
the community packages for most of those three years, but we didn't 
follow through across the board until fairly recently. Perhaps the 
most telling piece of data is that it's been gone from the packages in 
the CentOS Storage SIG in glusterfs-4.0, -4.1, -5, -6, and -7 with no 
complaints ever, that I can recall.


Ganesha is a preferable solution because it supports NFSv4, NFSv4.1, 
NFSv4.2, and pNFS, in addition to legacy NFSv3. More importantly, it 
is actively developed, maintained, and supported, both in the 
community and commercially. There are several vendors selling it, or 
support for it; and there are community packages for it for all the 
same distributions that Gluster packages are available for.


Out in the world, the default these days is NFSv4. Specifically v4.2 
or v4.1 depending on how recent your linux kernel is. In the linux 
kernel, client mounts start negotiating for v4.2 and work down to 
v4.1, v4.0, and only as a last resort v3. NFSv3 client support in the 
linux kernel largely exists at this point only because of the large 
number of legacy servers still running that can't do anything higher 
than v3. The linux NFS developers would drop the v3 support in a 
heartbeat if they could.


IMO, providing it, and calling it maintained, only encourages people 
to keep using a dead end solution. Anyone in favor of bringing back 
NFSv2, SSHv1, or X10R4? No? I didn't think so.


The recent issue[1] where someone built gnfs in glusterfs-7.0 on 
CentOS7 strongly suggests to me that gnfs is not actually working 
well. Three years of no maintenance seems to have taken its toll.


Other people are more than welcome to build their own packages from 
the src.rpms and/or tarballs that are available from gluster — and 
support them. It's still in the source and there are no plans to 
remove it. (Unlike most of the other deprecated features which were 
recently removed in glusterfs-7.)




[1] https://github.com/gluster/glusterfs/issues/764



It seems https://bugzilla.redhat.com/show_bug.cgi?id=1727248 has 
resolved this issue.


Here i'll talk about something from commerical company view.  For 
security reasons most government procurement projects only allow 
universal storage protocol(nfs, cifs etc) what means fuse will be 
excluded.  Consindering performance requirements, the only option is nfs.


Nfsv4 is stateful protocol, but i see on performance improvement. Trust 
me, nfs-ganesha(v3, v4) shows  ~30% performance degradation versus gnfs  
for either small or big files r/w in practice. Further, many customers 
prefer nfs client than cifs in windows, because the poor cifs 
performance, AFAIK nfs-ganesha is not going well with windows nfs client.


Gnfs is stable enough, we have about ~1000 servers, 4~24 servers for a 
gluster cluster, about ~2000 nfs clients, all works fine till the last 
two years expect some memleak issue.


Thanks

    -Xie

On Thu, Nov 21, 2019 at 5:31 AM Amar Tumballi <mailto:ama...@gmail.com>> wrote:


Hi All,

As per the discussion on https://review.gluster.org/23645,
recently we changed the status of gNFS (gluster's native NFSv3
support) feature to 'Depricated / Orphan' state. (ref:
https://github.com/gluster/glusterfs/blob/master/MAINTAINERS#L185..L189).
With this email, I am proposing to change the status again to 'Odd
Fixes' (ref:
https://github.com/gluster/glusterfs/blob/master/MAINTAINERS#L22)

TL;DR;

I understand the current maintainers are not able to focus on
maintaining it as the focus of the project, as earlier described,
is keeping NFS-Ganesha based integration with glusterfs. But, I am
volunteering along with Xie Changlong (currently working at
Chinamobile), to keep the feature running as it used to in
previous versions. Hence the status of 'Odd Fixes'.

Before sending the patch to make these changes, I am proposing it
here now, as gNFS is not even shipped with latest glusterfs-7.0
releases. I have heard from some users that it was working great
for them with earlier releases, as all they wanted was NFS v3
support, and not much of features from gNFS. Also note that, even
though the packages are not built, none of the regression tests
using gNFS are stopped with latest master, so it is working same
from at least last 2 years.

I request the package maintainers to please add '--with gnfs' (or
--enable-gnfs) back to their release script through this email, so
those users wanting to use gNFS happily can continue to use it.
Also points to users/admins is that, the status is 'Odd F

Re: [Gluster-devel] Glusterfs performance regression with quota enabled

2019-08-16 Thread Xie Changlong


Hi changwei, i'm sure if you enable quota, the performance will sharply drop. 
There is a issue to implement glusterfs project quota just like xfs  project 
quota,  but no progress for a long time.

Pls ref: https://github.com/gluster/glusterfs/issues/184











 



发件人: Changwei Ge

时间: 2019/08/16(星期五)17:09

收件人: gluster-devel;

主题: [Gluster-devel] Glusterfs performance regression with quota enabledHi,

I am using glusterfs-5.6 with quota enabled. I observed a obvious 
performance regression about 30% against a certain vdbench workload[1].

But I didn't set up a hard-limit or soft-limit to any particular volume 
or directory yet, just enable quota.

After disabling features/quota, glusterfs performance went normal.


Is it normal that qutoa will make the performance sharply drop?


Thanks,

Changwei


[1]:

messagescan=no

fsd=fsd1,anchor=/mnt/q8,depth=1,width=1,files=5,size=(32k,20,64k,30,128k,30,256k,20)

fwd=fwd1,fsd=fsd1,operation=read,rdpct=80,xfersize=8k,fileio=random,fileselect=random,threads=8

rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=100,interval=1

___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/836554017

NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/486278655

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel

___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/836554017

NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/486278655

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel



[Gluster-devel] GETXATTR op pending on index xlator for more than 10 hours

2019-06-04 Thread Xie Changlong




Hi all,




Today, i found gnfs GETXATTR  bailing out on gluster release 3.12.0. I have a 
simple 4*2 Distributed-Rep volume. 




[2019-06-03 19:58:33.085880] E [rpc-clnt.c:185:Call_bail] 0-cl25vol01-client-4: 
bailing out frame type(GlusterFS 3.3) op(GETXATTR(18)) xid=0x21de4275 sent = 
2019-06-03 19:28:30.552356. timeout = 1800 for 10.3.133.57:49153




xid= 0x21de4275 = 568214133




Then i try to dump brick 10.3.133.57:49153, and find the GETXATTR op pending on 
index xlator for more than 10 hours!




MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0



  

[root@node0001 gluster]# grep -rn 568214133 
gluster-brick-1-cl25vol01.6078.dump.15596*

gluster-brick-1-cl25vol01.6078.dump.1559617125:5093:unique=568214133

gluster-brick-1-cl25vol01.6078.dump.1559618121:5230:unique=568214133

gluster-brick-1-cl25vol01.6078.dump.1559618912:5434:unique=568214133

gluster-brick-1-cl25vol01.6078.dump.1559628467:6921:unique=568214133




[root@node0001 gluster]# date -d @1559617125

Tue Jun  4 10:58:45 CST 2019

[root@node0001 gluster]# date -d @1559628467

Tue Jun  4 14:07:47 CST 2019

MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0



  

[root@node0001 gluster]# 








[global.callpool.stack.115]

stack=0x7f8b342623c0

uid=500

gid=500

pid=-6

unique=568214133

lk-owner=faff

op=stack

type=0

cnt=4




[global.callpool.stack.115.frame.1]

frame=0x7f8b1d6fb540

ref_count=0

translator=cl25vol01-index

complete=0

parent=cl25vol01-quota

wind_from=quota_getxattr

wind_to=(this->children->xlator)->fops->getxattr

unwind_to=default_getxattr_cbk




[global.callpool.stack.115.frame.2]

frame=0x7f8b30a14da0

ref_count=1

translator=cl25vol01-quota

complete=0

parent=cl25vol01-io-stats

wind_from=io_stats_getxattr

wind_to=(this->children->xlator)->fops->getxattr

unwind_to=io_stats_getxattr_cbk




[global.callpool.stack.115.frame.3]

frame=0x7f8b6debada0

ref_count=1

translator=cl25vol01-io-stats

complete=0

parent=cl25vol01-server

wind_from=server_getxattr_resume

wind_to=FIRST_CHILD(this)->fops->getxattr

unwind_to=server_getxattr_cbk




[global.callpool.stack.115.frame.4]

frame=0x7f8b21962a60

ref_count=1

translator=cl25vol01-server

complete=0




I've checked the code logic and got nothing, any advice? I still have the scene 
on my side, so we can dig more.







Thanks









___

Community Meeting Calendar:

APAC Schedule -
Every 2nd and 4th Tuesday at 11:30 AM IST
Bridge: https://bluejeans.com/836554017

NA/EMEA Schedule -
Every 1st and 3rd Tuesday at 01:00 PM EDT
Bridge: https://bluejeans.com/486278655

Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel



Re: [Gluster-devel] [Questions] why shard feature doesn't support quota

2017-06-29 Thread Xie Changlong

Hi Krutika

Thanks for your quick response!

在 6/29/2017 3:24 PM, Krutika Dhananjay 写道:
This is based on my high-level understanding of quota in gluster - 
supporting quota on sharded volumes will require us to make quota xlator 
account for shards residing under the hidden ".shard" directory per file 
and adding this to the quota-xattr representing aggregated consumed size 
on the parent directory of the original file.


This isn't hard to do. But at the moment we support sharding only for VM 
image store use case.


Why sharding only support VM large images? It's interesting. More, are 
there other limits for sharding usage? We want to reduce data 
reconstruction time with sharding, as you know it takes too long time to 
recover data with raid, and sharding is a good choice to us.


There are plans to make shard useful for more generic use cases in the 
near term. When we get there, we will support quota too on sharded files.


That's a *good* news. BTW we also have a plan to implement this part. 
Any suggestions?




-Krutika



--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

[Gluster-devel] [Questions] why shard feature doesn't support quota

2017-06-28 Thread Xie Changlong

Hi all

I did a small test on gluster 3.8.4, and found shard feature does not 
support quota.  Here is the step:

$ gluster volume set s1 features.shard on
$ gluster volume quota s1 enable
$ gluster volume quota s1 limit-usage /ttt 1GB
$ gluster volume quota s1 list
$ cd /mnt/s1/ttt; fallocate -l 2GB testfile
Then, i found testfile created sucessully.

So, It seems shard doesn't support quota. It's a technical issue or 
there is a ongoing plan?


--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-07 Thread Xie Changlong

在 6/7/2017 4:47 PM, Pranith Kumar Karampuri 写道:

Yes, they do. The patches I gave earlier provide the facility to this in
io-stats. Do let us know if you have any doubts.


Sorry for slowness, but i think i catch up with U now.






--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-07 Thread Xie Changlong

在 6/7/2017 3:08 PM, Pranith Kumar Karampuri 写道:

On Tue, Jun 6, 2017 at 8:14 AM, Xie Changlong <xiechanglon...@gmail.com>
wrote:


在 6/5/2017 6:30 PM, Pranith Kumar Karampuri 写道:


I meant what are you using gluster for? VM workload or image/video file
creation or lots of small files etc etc.



1) We use glusterfs for general purpose, no limit to image/video file
creation or small files etc.


Okay, this is good. What is the cluster size?
Is it replica 3 or replica 2 or arbiter or is it EC volume?


I use replica 2 on my test.
But in the real world, "we have deployed more than 100 glusterfs nodes 
in producion(20 nodes for the biggest single cluster)" per Liu Yuan. 
Replica 2/3, or EC are optional.




Please don't mind me asking so many details. I am delighted to see you guys


You are always welcome!


active in the community because I have seen Xiubo Li's work on tcmu-runner
who is also from chinamobile and his work is pretty good :-).


Yeah, i would be very pleasant to convey your praise. :)





2) We just want a low performance affect way to calculate each brick's
iops/bandwidth for the upper layer management app. BTW, is there any other
way to get iops/bandwith for each brick besides profile?



At the moment we have these stats using profile commands. As per Facebook
patches they enable json capture of io-stats on their volumes and measure
these. They have it enabled always. If that is not enough for you, then we


I think you mean FB guys gather data based on io-stats with profile 
always on, am i right?

BTW, are these patches open to everyone? so i can dig into it.


should probably look at enhancing things. Do send patches if you think
something would make things better :-).




--
Thanks
 -Xie







--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-05 Thread Xie Changlong

在 6/5/2017 6:30 PM, Pranith Kumar Karampuri 写道:

I meant what are you using gluster for? VM workload or image/video file
creation or lots of small files etc etc.


1) We use glusterfs for general purpose, no limit to image/video file
creation or small files etc.

2) We just want a low performance affect way to calculate each brick's 
iops/bandwidth for the upper layer management app. BTW, is there any 
other way to get iops/bandwith for each brick besides profile?


--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-05 Thread Xie Changlong

在 6/5/2017 3:10 PM, Xie Changlong 写道:

在 6/5/2017 2:34 PM, Pranith Kumar Karampuri 写道:

What is your usecase if I may ask?



Only fio/iozone now, maybe you can give me better test sugguestion :)

seq read
# dd if=/dev/zero  of=test bs=4k count=524288
#fio --filename=test -iodepth=64 -ioengine=libaio --direct=1 --rw=read 
--bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting 
--name=test-read

seq write
# fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=write 
-bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write


random read
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-read


random write
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-write



iozone  1 thread
# ./iozone -s 10g -r 1m -i 0 -i 1 -f /mnt/test-volume/test -Rb 
/tmp/test_iozone_1.xls

iozone  2 multi-threads
# ./iozone -s 10g -r 1m -i 0 -i 1 -f /mnt/test-volume/test -t 8 -Rb 
/tmp/test_iozone_2.xls




Re-declare,
For fio, i compare "bw" and "iops" fileds.
For iozone, i compare "write" "rewrite" "read" "re-read" fileds.




On Mon, Jun 5, 2017 at 11:08 AM, Xie Changlong<xiechanglon...@gmail.com>
wrote:


在 6/5/2017 1:22 PM, Pranith Kumar Karampuri 写道:


On Mon, Jun 5, 2017 at 8:29 AM, Xie Changlong<xiechanglon...@gmail.com>
wrote:

在 6/5/2017 10:50 AM, Pranith Kumar Karampuri 写道:
I think there have been improvements here to use special 
instructions to




--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-05 Thread Xie Changlong

在 6/5/2017 2:34 PM, Pranith Kumar Karampuri 写道:

What is your usecase if I may ask?



Only fio/iozone now, maybe you can give me better test sugguestion :)

seq read
# dd if=/dev/zero  of=test bs=4k count=524288
#fio --filename=test -iodepth=64 -ioengine=libaio --direct=1 --rw=read 
--bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting 
--name=test-read

seq write
# fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=write 
-bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write


random read
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-read


random write
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-write



iozone  1 thread
# ./iozone -s 10g -r 1m -i 0 -i 1 -f /mnt/test-volume/test -Rb 
/tmp/test_iozone_1.xls

iozone  2 multi-threads
# ./iozone -s 10g -r 1m -i 0 -i 1 -f /mnt/test-volume/test -t 8 -Rb 
/tmp/test_iozone_2.xls




On Mon, Jun 5, 2017 at 11:08 AM, Xie Changlong<xiechanglon...@gmail.com>
wrote:


在 6/5/2017 1:22 PM, Pranith Kumar Karampuri 写道:


On Mon, Jun 5, 2017 at 8:29 AM, Xie Changlong<xiechanglon...@gmail.com>
wrote:

在 6/5/2017 10:50 AM, Pranith Kumar Karampuri 写道:

I think there have been improvements here to use special instructions to


--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-04 Thread Xie Changlong

在 6/5/2017 1:22 PM, Pranith Kumar Karampuri 写道:

On Mon, Jun 5, 2017 at 8:29 AM, Xie Changlong <xiechanglon...@gmail.com>
wrote:


在 6/5/2017 10:50 AM, Pranith Kumar Karampuri 写道:


I think there have been improvements here to use special instructions to



if "special instructions" means profile command or more? Also can you
point which commit?



I meant Intel CPU extentions
You should look at
http://review.gluster.org/12209
http://review.gluster.org/12210
https://review.gluster.org/16963
https://review.gluster.org/17009


Useful enough for me, thanks for your patience.





do the increments instead of taking spin-locks and doing increments. So

may be it doesn't affect performance as much anymore. I think if you don't
see a difference, then the enhancements are doing a good job :-).

Which version of gluster are you using?



Our version is gluster 3.8.4

--
Thanks
 -Xie







--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-04 Thread Xie Changlong

在 6/5/2017 10:50 AM, Pranith Kumar Karampuri 写道:
I think there have been improvements here to use special instructions to 


if "special instructions" means profile command or more? Also can you 
point which commit?


do the increments instead of taking spin-locks and doing increments. So 
may be it doesn't affect performance as much anymore. I think if you 
don't see a difference, then the enhancements are doing a good job :-).


Which version of gluster are you using?


Our version is gluster 3.8.4

--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

[Gluster-devel] [Qusetions] How profile affect glusterfs performance?

2017-06-04 Thread Xie Changlong

Hi all

It's said[1] that profile based on io-stats, if you enable this feature, 
it can affect system performance while the profile information is being 
collected.


I do some tests on my two linux+vmware virtual machine with replica(lack 
of resources ). And the results shows no diffrence to me, following is 
the test case

#dd if=/dev/zero  of=test bs=4k count=524288
#fio --filename=test -iodepth=64 -ioengine=libaio --direct=1 --rw=read 
--bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting 
--name=test-read
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=write 
-bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-read
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-write
It's said that fio is only for lagre files, also i suspect that the test 
infrastructure is too small. The question is that, if you guys have 
detailed data for how profile affect performance?


More, we wanna gain the detail r/w iops/bandwidth data for each brick. 
It seems that only profile can provide relatived data to be 
calculated?if i'm wrong pls corrent me.


If profile really affect peformance so much, would you mind a new 
command such as "gluster volume io [nfs]" to acquire brick r/w 
fops/data? Or just help us review it?


[1] 
https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/administration_guide/chap-monitoring_red_hat_storage_workload#sect-Running_the_Volume_Profile_Command

--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel


[Gluster-devel] [Qusetions] How profile influnce glusterfs performance?

2017-06-04 Thread Xie Changlong

Hi all

It's said[1] that profile based on io-stats, if you enable this feature, 
it can affect system performance while the profile information is being 
collected.
I do some tests on my two linux+vmware virtual machine with replica(lack 
of resources :( ). And the results shows no diffrence to me, following 
is the test case

#dd if=/dev/zero  of=test bs=4k count=524288
#fio --filename=test -iodepth=64 -ioengine=libaio --direct=1 --rw=read 
--bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting 
--name=test-read
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=write 
-bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-read
#fio -filename=test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite 
-bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting 
-name=test-rand-write
It's said that fio is only for lagre files, also i suspect that the test 
infrastructure is too small. The question is that, if you guys have 
detailed data for how profile affect performance?
More, we wanna gain the detail r/w iops/bandwidth data for each brick. 
It seems that only profile can provide relatived data to be calculated?

if i'm wrong pls corrent me.
If profile really affect peformance so much, would you mind a new 
command such as "gluster volume io [nfs]" to acquire brick r/w 
fops/data? Or just help us review it?


	[1] 
https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/administration_guide/chap-monitoring_red_hat_storage_workload#sect-Running_the_Volume_Profile_Command


--
Thanks
-Xie
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel