Re: [Gluster-devel] GlusterFS Example

2007-07-31 Thread Sebastien LELIEVRE
Hello the thread

Nathan Allen Stratton a écrit :
 
 Which version of glusterfs are you using? tla, pre ?

 (that issue has been fixed for a little while now, so if your using pre6
 you shoulnd't have come across it)
 
 Yep, that was it, I was using 1.2, latest 1.3 fixes the problme.
 

Indeed, AFR is not available in the 1.2 release.

I'm really interested in your configuration and the issues you may have
(or have not !)

Please, keep us in touch !

Regards,

Sébastien.
___
Gluster-devel mailing list
Gluster-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] GlusterFS Example

2007-07-30 Thread Nathan Allen Stratton
On Mon, 30 Jul 2007, Matt Paine wrote:

 Hi Nathan,

  http://www.gluster.org/docs/index.php/GlusterFS_High_Availability_Storage_with_GlusterFS
 
  If anyone hasthe time for a few questions:

 I will do my best :)

Thanks!

  1) In the past, my server configuration had only the local volume as in
  http://www.gluster.org/docs/index.php/GlusterFS_Configuration_Example_for_Four_Bricks
  Your config looks like each server has its volume and all the others.

 This setup (i'm assuming you are talking about the high availability
 storage with glusterfs article) is specifically for high availability,

I am referencing the first link:
http://www.gluster.org/docs/index.php/GlusterFS_High_Availability_Storage_with_GlusterFS

I understand that the 2nd link is talking about doing everything on one
server, my question is why in the first link that looks like it is talking
about 3 physical boxes and each config file lists all the volumes
(mailspool-santa2-ds, santa3-ds) where in the 2nd link a server.vol file
only has the local volume information.

 if a brick goes down then there needs to be redundancy built in to
 provide a fallback option. If it was a simple unify solution, and a
 brick goes down, then you will be missing files (hence, not highly
 available at all unless you can guarantee 100% uptime of all bricks
 under all circumstances - which as far as I know noone offers :)

 In that specific example, it has been chosen to provide every brick with
   a copy of the files. In this case two bricks could fail and the
 cluster would still be up and running :). Extending this to 10 bricks,
 then you could potentially have 9 bricks fail and it would still be
 working.

 Point being, GlusterFS is highly configurable, you can set it up any way
 you like, more redundancy (afr), or more space (unify) or both. Your choice.


  2) Why do you use loopback IP vs the public IP in the first example?

 The first example introduces itself with this paragraph

 8-
 In this article, I will show you how to configure GlusterFS to simulate
 a cluster with:

  * one single mount point
  * 4 storage nodes serving the files

 I said simulate since we will deploy such a cluster on only one
 computer, but you can as well set it up over physical different
 computers by changing the IP addresses.
 -8

 Its only a simulation, run on one computer. If you wish to use the
 example over an actual cluster of computers, you will need to change the
 IP numbers accordingly.

Understood, however in the fist link the example has the first brick as a
127 address and the other 2 bricks as 192.168.252 address. My guess is
that it was a typo since when I looked at the page this morning the 172
address was corrected to be 192.168.242.2, consistent with the rest of the
example.

  3) Can I change option replicate *:3 to *:2 to just have two copies? I
  like having an extra copy, but in my application having 3 or 3 note or 4
  for 4 node is a bit overkill.

 Yes. As I said its highly configurable. You can even choose to replicate
 only certain files. E.g.

 option replicate *.tmp:1,*.html:4,*.php:4,*.db:1,*:2

 In this case any .tmp or .db files will not get replicated (will sit on
 the first afr brick only), all html and php files will be mirrored
 across the first four bricks of afr, and all other files will be
 mirrorred across the first two bricks. (note all on one line, note comma
 delimited, note also no spaces before or after the comma).

Right, but is it possible to just tell the config you want to store 2
copies of everything without telling each system where the redundant
copies should be stored? I.E. I am looking for something like RAID 6,
where I have say 8 bricks with two copies of every file. If I just enter
*:2 then the spare copies will just be on the first two bricks and since
each 8 brick has the same amount of storage I will run out of space on the
first two before the others vs the redundant copies distributed over the 8
bricks.

  4) In my application the server is also the client, in my current config
  when one out of 3 servers is done I can no longer write, even tho I am
  telling my config to write to the local brick. Is there any way to fix
  this? If a note is down I understand how I would not have access to the
  files, but I don't want to take down the full cluster.

 I'm note sure sorry. Maybe one of the devs can clarify that. I know
 there was an issue with an earlier relase to do with AFR. When the first
 brick was down then afr was no longer available.

Ah... That could be it.

  P.S. Our setup consists of 3 servers each with a 4 port video card. They
  continually capture video from the 4 inputs and save them in /share. Each
  box also acts as a video server accepting connections and reading any file
  in /share. I don't care much about redundancy, but I do care that /share
  has files from all servers, or all servers that are up 

Re: [Gluster-devel] GlusterFS Example

2007-07-30 Thread Nathan Allen Stratton
On Tue, 31 Jul 2007, Matt Paine wrote:

 Absolutly, except its there is a bit more work to do. AFR works by
 starting at the first brick and any replicating goes to the second,
 third etc as described above. But these are normal gluster bricks, so
 there is nothing stopping you from creating an AFR for the first brick,
 and AFR for the second, and just a posix brick for the rest (if thats
 what you want of course). Let me try to explain.

Wow, you should put this on the wiki, this is a very clear example. I can
see how this can work, but does it need to be that hard to setup? How hard
would it be to add functionality to AFR where you only need to specify the
number of copies you want and the scheduler takes care of the rest?

 Server one has one brick: S1
 Server two has one brick: S2
 Server three has one brick: S3
 Server four has one brick: S4
 Server five has one brick: S5

 Client unifies S1 and S2 (call him U1)
 Client unifies S3 and S4 (call him U2)
 Client then AFR's together U1 and U2 and S5

 In this example, if I save a file and its *:3, it will appear
 * on U1 (either S1 or S2 depending on scheduler)
 * on U2 (either S3 or S4 depending on sched.)
 * on S5

 If I save a file as only *:1, it will appear only on U1 (either S1 or S2
 depending on scheduler).

 Ad nausium.


 Of coures there is nothing stopping you from unifying three bricks, or
 even unifying an afr to afr.


 i.e. (might need a mono spaced font to see correctly...)

I use Pine (old text based mail reader) so it looks great!

  A5
  +---+
  |   |
  U1  U2
   +-+   +-+
   | |   | |
   A1A2  A3A4
   +---+---+   +---+---+---+   +---+   +---+---+
   |   |   |   |   |   |   |   |   |   |   |   |
 S01 S02 S03 S04 S05 S06 S07 S08 S09 S10 S11 S12


 Where Sxx = Server bricks
 Ax = AFR brick
 Ux = Unify brick



 So in this configuration (which you have already worked out i'm sure)
 that if you save something *:2, then it will appear in both U1 and U2,
 which means (depending on the spec from a[1-4], assume *:2) it will
 appear in either A1 or A2 (because of the unify), AND it will also
 appear in either A3 or A4. etc etc etc.

 I think i've laboured the point far enough :)

Thanks, it was great!

 Which version of glusterfs are you using? tla, pre ?

 (that issue has been fixed for a little while now, so if your using pre6
 you shoulnd't have come across it)

Yep, that was it, I was using 1.2, latest 1.3 fixes the problme.



Nathan Stratton CTO, Voila IP Communications
nathan at robotics.net  nathan at voilaip.com
http://www.robotics.net http://www.voilaip.com


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


Re: [Gluster-devel] GlusterFS Example

2007-07-30 Thread DeeDee Park

Client unifies S1 and S2 (call him U1)
Client unifies S3 and S4 (call him U2)
Client then AFR's together U1 and U2 and S5

In this example, if I save a file and its *:3, it will appear
* on U1 (either S1 or S2 depending on scheduler)
* on U2 (either S3 or S4 depending on sched.)
* on S5


Is that supported? I was trying to do something similiar earlier, but was 
told that
AFR is under(is a subvolume of) unify since I was having too many problems. 
Can I create
a couple unifies, and then have both U1 and U2 as subvolumes of AFR? If so, 
let me

know, and I can test it.

Can I do something like the following?
BrickS1-1
BrickS1-2
Unify US1
  subvolumes S1-1,S1-2
BrickS2-1
BrickS2-2
Unify US2
  subvolumes S2-1,S2-2
AFR
 subvolumes US1, US2
 replicate *:2


From: Matt Paine [EMAIL PROTECTED]
To: gluster-devel@nongnu.org
Subject: Re: [Gluster-devel] GlusterFS Example
Date: Tue, 31 Jul 2007 09:15:32 +1000




option replicate *.tmp:1,*.html:4,*.php:4,*.db:1,*:2

In this case any .tmp or .db files will not get replicated (will sit on
the first afr brick only), all html and php files will be mirrored
across the first four bricks of afr, and all other files will be
mirrorred across the first two bricks. (note all on one line, note comma
delimited, note also no spaces before or after the comma).



Right, but is it possible to just tell the config you want to store 2
copies of everything without telling each system where the redundant
copies should be stored? I.E. I am looking for something like RAID 6,
where I have say 8 bricks with two copies of every file. If I just enter
*:2 then the spare copies will just be on the first two bricks and since
each 8 brick has the same amount of storage I will run out of space on the
first two before the others vs the redundant copies distributed over the 8
bricks.



Absolutly, except its there is a bit more work to do. AFR works by starting 
at the first brick and any replicating goes to the second, third etc as 
described above. But these are normal gluster bricks, so there is nothing 
stopping you from creating an AFR for the first brick, and AFR for the 
second, and just a posix brick for the rest (if thats what you want of 
course). Let me try to explain.



Server one has one brick: S1
Server two has one brick: S2
Server three has one brick: S3
Server four has one brick: S4
Server five has one brick: S5

Client unifies S1 and S2 (call him U1)
Client unifies S3 and S4 (call him U2)
Client then AFR's together U1 and U2 and S5

In this example, if I save a file and its *:3, it will appear
* on U1 (either S1 or S2 depending on scheduler)
* on U2 (either S3 or S4 depending on sched.)
* on S5

If I save a file as only *:1, it will appear only on U1 (either S1 or S2 
depending on scheduler).


Ad nausium.


Of coures there is nothing stopping you from unifying three bricks, or even 
unifying an afr to afr.



i.e. (might need a mono spaced font to see correctly...)

A5
+---+
|   |
U1  U2
 +-+   +-+
 | |   | |
 A1A2  A3A4
 +---+---+   +---+---+---+   +---+   +---+---+
 |   |   |   |   |   |   |   |   |   |   |   |
S01 S02 S03 S04 S05 S06 S07 S08 S09 S10 S11 S12


Where Sxx = Server bricks
   Ax = AFR brick
   Ux = Unify brick



So in this configuration (which you have already worked out i'm sure) that 
if you save something *:2, then it will appear in both U1 and U2, which 
means (depending on the spec from a[1-4], assume *:2) it will appear in 
either A1 or A2 (because of the unify), AND it will also appear in either 
A3 or A4. etc etc etc.


I think i've laboured the point far enough :)








4) In my application the server is also the client, in my current config
when one out of 3 servers is done I can no longer write, even tho I am
telling my config to write to the local brick. Is there any way to fix
this? If a note is down I understand how I would not have access to the
files, but I don't want to take down the full cluster.


I'm note sure sorry. Maybe one of the devs can clarify that. I know
there was an issue with an earlier relase to do with AFR. When the first
brick was down then afr was no longer available.



Ah... That could be it.


Which version of glusterfs are you using? tla, pre ?

(that issue has been fixed for a little while now, so if your using pre6 
you shoulnd't have come across it)






Matt.



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


_
http://newlivehotmail.com



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


Re: [Gluster-devel] GlusterFS Example

2007-07-30 Thread Matt Paine



Is that supported? I was trying to do something similiar earlier, but 
was told that
AFR is under(is a subvolume of) unify since I was having too many 
problems. Can I create
a couple unifies, and then have both U1 and U2 as subvolumes of AFR? If 
so, let me

know, and I can test it.



The beuaty about Gluster is you can try any configuration you like and 
see if it suites your purpose. Give it a go and see how it reacts. I 
cant see any issues with doing this, but an actual developer would be 
better at saying definitivly yes or no. Give it a go and let us know 
your experiences.




Can I do something like the following?
BrickS1-1
BrickS1-2
Unify US1
  subvolumes S1-1,S1-2
BrickS2-1
BrickS2-2
Unify US2
  subvolumes S2-1,S2-2
AFR
 subvolumes US1, US2
 replicate *:2



Thats how I would do it. But give it a go and see if it works for yourself.

The fantastic thing about the modularity and flexability of the xlators 
is that it can be used in combinations that even the developers didn't 
imagine.



Matt.




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


Re: [Gluster-devel] GlusterFS Example

2007-07-30 Thread Matt Paine

Hi Nathan


Wow, you should put this on the wiki, this is a very clear example. I can
see how this can work, but does it need to be that hard to setup? How hard
would it be to add functionality to AFR where you only need to specify the
number of copies you want and the scheduler takes care of the rest?



Possibly - i'll let the devs work that out - for the moment this is how 
I would do it. Personally i think AFR works great and I woudln't want to 
add any more complexity to it (afr does not do scheduling). If the devs 
think its a good idea i'm sure they will go for it. At the moment it 
might be a pain, but we are working on a management interface which will 
make things extremely easy (point and click in a web browser, fantastic :)




Matt




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


Re: [Gluster-devel] GlusterFS Example

2007-07-29 Thread Matt Paine

Hi Nathan,


http://www.gluster.org/docs/index.php/GlusterFS_High_Availability_Storage_with_GlusterFS

If anyone hasthe time for a few questions:


I will do my best :)



1) In the past, my server configuration had only the local volume as in
http://www.gluster.org/docs/index.php/GlusterFS_Configuration_Example_for_Four_Bricks
Your config looks like each server has its volume and all the others.


This setup (i'm assuming you are talking about the high availability 
storage with glusterfs article) is specifically for high availability, 
if a brick goes down then there needs to be redundancy built in to 
provide a fallback option. If it was a simple unify solution, and a 
brick goes down, then you will be missing files (hence, not highly 
available at all unless you can guarantee 100% uptime of all bricks 
under all circumstances - which as far as I know noone offers :)


In that specific example, it has been chosen to provide every brick with 
 a copy of the files. In this case two bricks could fail and the 
cluster would still be up and running :). Extending this to 10 bricks, 
then you could potentially have 9 bricks fail and it would still be 
working.


Point being, GlusterFS is highly configurable, you can set it up any way 
you like, more redundancy (afr), or more space (unify) or both. Your choice.




2) Why do you use loopback IP vs the public IP in the first example?


The first example introduces itself with this paragraph

8-
In this article, I will show you how to configure GlusterFS to simulate 
a cluster with:


* one single mount point
* 4 storage nodes serving the files

I said simulate since we will deploy such a cluster on only one 
computer, but you can as well set it up over physical different 
computers by changing the IP addresses.

-8

Its only a simulation, run on one computer. If you wish to use the 
example over an actual cluster of computers, you will need to change the 
IP numbers accordingly.




3) Can I change option replicate *:3 to *:2 to just have two copies? I
like having an extra copy, but in my application having 3 or 3 note or 4
for 4 node is a bit overkill.


Yes. As I said its highly configurable. You can even choose to replicate 
only certain files. E.g.


option replicate *.tmp:1,*.html:4,*.php:4,*.db:1,*:2

In this case any .tmp or .db files will not get replicated (will sit on 
the first afr brick only), all html and php files will be mirrored 
across the first four bricks of afr, and all other files will be 
mirrorred across the first two bricks. (note all on one line, note comma 
delimited, note also no spaces before or after the comma).




4) In my application the server is also the client, in my current config
when one out of 3 servers is done I can no longer write, even tho I am
telling my config to write to the local brick. Is there any way to fix
this? If a note is down I understand how I would not have access to the
files, but I don't want to take down the full cluster.


I'm note sure sorry. Maybe one of the devs can clarify that. I know 
there was an issue with an earlier relase to do with AFR. When the first 
brick was down then afr was no longer available.




P.S. Our setup consists of 3 servers each with a 4 port video card. They
continually capture video from the 4 inputs and save them in /share. Each
box also acts as a video server accepting connections and reading any file
in /share. I don't care much about redundancy, but I do care that /share
has files from all servers, or all servers that are up anyway.

My server.vol file, only change is the bind IP address.

volume brick
type storage/posix
option directory /md0
end-volume

volume server
type protocol/server
option transport-type tcp/server
option listen-port 6996
option bind-address 192.168.0.60
subvolumes brick
option auth.ip.brick.allow 192.168.0.*
end-volume

My client.vol file, the only change is option nufa.local-volume-name
client0 changes to client1 or client2 for each box. The above works as
long as all 3 servers are up, if one is down I can no longer read or write
to /share. I found that I could continue to write to /md0 on each server
and it still was replicated correctly, however if any server is down reads
on /share would break. : (


Could you post your client spec file? That would make it clearer to me. 
I have a feeling you are using separate client files for each of the 
clients, perhaps it would be easier for you to use a single spec file 
for your entire cluster, but we could clarify that if you post your 
client file :)





Any help would rock!


I hope that rocked at least a little :p


Matt.





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