[Gluster-devel] nufa.limits.min-free-disk

Albert Shih Albert.Shih at obspm.fr
Tue Dec 11 15:01:21 UTC 2007


 Le 07/12/2007 à 17:44:43+0100, Albert Shih a écrit
Hi all
> 

I come back with my problem.

I've make many tests and the result is same. 

> I've put into my gluster-client config
> 
> volume node1
>   type storage/posix
>   option directory /_glusterfs
> end-volume
> 
> volume node2 
>   type protocol/client
>   option transport-type tcp/client     # for TCP/IP transport
>   option remote-host x.y.z.t
>   option transport-timeout 30
>   option remote-subvolume brick
> end-volume
> 
> volume node3 
> etc...
> 
> volume unify
>   type cluster/unify
>     subvolumes node1....node18
>     option scheduler nufa
>     option nufa.local-volume-name node1
>     option nufa.limits.min-free-disk 5%
>     option namespace ns
> end-volume
> 
> But....it's not working. Event the only left 1% gluster always write on
> local disk. He jump to another node when they left...nothing.

Well let me explain what kind a test I've make.

On one node I write enougth file to make the local file system full at 95 % (of 125Go)
After that I continue to write small file (1Go) in my glusterfs partition and event 
when the local-disk is full at 98% when I start to write a new file It's continu to write on local
disk

Unfortunaly I'm not a developper I'm going to check in nufa.c source code
and I don't understand much (but I've see the nufa.limits-min-free-disk is
in % and not on GB or something like that). But in nufa.c in this block
I've add

  if (op_ret == 0) {
    percent = (trav_stats->free_disk * 100) / trav_stats->total_disk_size;
***********
	gf_log ("nufa", GF_LOG_ERROR, "percent at %d", percent);
***********
    if (nufa_struct->array[idx].free_disk > percent) {
      if (nufa_struct->array[idx].eligible)
        gf_log ("nufa", GF_LOG_CRITICAL,
                "node \"%s\" is _almost_ full",
                nufa_struct->array[idx].xl->name);
      nufa_struct->array[idx].eligible = 0;
    } else {
      nufa_struct->array[idx].eligible = 1;
    }
  } else {
    nufa_struct->array[idx].eligible = 0;
  }

restart my glusterfs with log and I've seen the calculation of percent is
correct but what's I don't understand is when this calculation is make.
Because I've just one group of the log with my «special» add sometime after
I umount/remount my glusterfs partition. And never after that even when the
disk is full at 95%, 98%, 99%. Maybe it's normal (I'm really not a
developper). 

Anyone have a solution ? or make nufa.limits working ? 
 
Regards.

JAS


--
Albert SHIH
Observatoire de Paris Meudon
SIO batiment 15
Heure local/Local time:
Mar 11 déc 2007 15:48:00 CET





More information about the Gluster-devel mailing list