Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-27 Thread Rob Ross

I feel like the HUP should be a full server restart?

Clients don't have a way to know that they need to reload the config 
file, currently. Likewise, since someone could just kill the server and 
then restart with a totally different config file, I don't think that we 
want to try to enforce any rules on what parameters may be changed. This 
is just a convenient way to reload, right?


Rob

Phil Carns wrote:

I have a few questions about some details of the implementation:

- What exactly will a HUP do on the server side?  For example, is this 
pretty much a full server restart, a restart of the I/O components 
(job/trove/bmi/etc.), or just selectively reseting parameters that can 
be changed dynamically?


- How will a reload of the configuration affect clients that already 
have the file system mounted?  They typically have already read and 
parsed the configuration locally.  Do they continue with the previous 
configuration or do they get the updates as well?


- This sort of depends on the answers to the previous questions, but is 
there any restriction on what configuration parameters can actually be 
changed on the fly?  There are some obvious ones that cannot be changed 
(fsid, root handle, range ownership, etc.).  Are there any others?  Do 
we need anything to protect against this or just document what 
parameters are off limits?



FWIW, I agree with the direction that you guys are now heading with this 
stuff for the near future.  The dependence on a particular servers being 
around for startup and use of things like portmapper would cause 
problems for our environment.  We have to worry a good bit about 
firewalls, and asymmetric servers would make it harder to play nice with 
failover software.


-Phil



Rob Ross wrote:

Hi all,

Since I'm being discussed, I thought that I should chime in :).

I agree that what we're talking about here is just a couple of steps 
in the right general direction, not where we would really like to be 
in the long run.


The zero-conf concept sounds great to me, conceptually. However, I 
don't want to have an implementation of that that forces us into a 
dependence on a particular server for startup. More discussion might 
change my mind? I dunno.


Server-to-server (s2s) seems like the right way to do the config file 
verification in the long term. However, the code we're going to use to 
do that is just now shaping up. So we're not quite ready to do that yet.


So, I proposed (off-line) that we do this interim thing for now (which 
cleans things up quite a bit) and continue thinking and talking about 
how we might like the system to work in the longer term.


Regards,

Rob

Murali Vilayannur wrote:


Hi pete,


I thought with your discussion of getconfig/putconfig that you were
implicitly planning to get server-to-server communication to work
too.



I was planning on doing that. But it fizzled out because of RobR's 
concern

about scalability and dependence on a single root server..


What you describe here sounds like fine stuff.  And if later
somebody gets ambitious and wants to do more "zeroconf"-ish work,
they can build on this.  Thanks for the explanations.



Yep. Exactly. I hope so too :)
thanks!
Murali
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers



___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-27 Thread Phil Carns
Ok- just kinda checking to make sure of what you guys had in mind.  If 
the HUP is a full restart of the server, then it will complain on its 
own if the config file doesn't match what's in the storage space, so 
that isn't really a danger.  It also means that pretty much any tuning 
parameter is legal to change since all of the I/O components will be 
starting from scratch.


Just a heads up on one detail- we need to make sure that the server 
keeps its pid on the HUP or else updates its pidfile so that monitoring 
scripts don't get confused.


I think that leaving the client configuration alone is fine.

-Phil

Rob Ross wrote:

I feel like the HUP should be a full server restart?

Clients don't have a way to know that they need to reload the config 
file, currently. Likewise, since someone could just kill the server and 
then restart with a totally different config file, I don't think that we 
want to try to enforce any rules on what parameters may be changed. This 
is just a convenient way to reload, right?


Rob

Phil Carns wrote:


I have a few questions about some details of the implementation:

- What exactly will a HUP do on the server side?  For example, is this 
pretty much a full server restart, a restart of the I/O components 
(job/trove/bmi/etc.), or just selectively reseting parameters that can 
be changed dynamically?


- How will a reload of the configuration affect clients that already 
have the file system mounted?  They typically have already read and 
parsed the configuration locally.  Do they continue with the previous 
configuration or do they get the updates as well?


- This sort of depends on the answers to the previous questions, but 
is there any restriction on what configuration parameters can actually 
be changed on the fly?  There are some obvious ones that cannot be 
changed (fsid, root handle, range ownership, etc.).  Are there any 
others?  Do we need anything to protect against this or just document 
what parameters are off limits?



FWIW, I agree with the direction that you guys are now heading with 
this stuff for the near future.  The dependence on a particular 
servers being around for startup and use of things like portmapper 
would cause problems for our environment.  We have to worry a good bit 
about firewalls, and asymmetric servers would make it harder to play 
nice with failover software.


-Phil



Rob Ross wrote:


Hi all,

Since I'm being discussed, I thought that I should chime in :).

I agree that what we're talking about here is just a couple of steps 
in the right general direction, not where we would really like to be 
in the long run.


The zero-conf concept sounds great to me, conceptually. However, I 
don't want to have an implementation of that that forces us into a 
dependence on a particular server for startup. More discussion might 
change my mind? I dunno.


Server-to-server (s2s) seems like the right way to do the config file 
verification in the long term. However, the code we're going to use 
to do that is just now shaping up. So we're not quite ready to do 
that yet.


So, I proposed (off-line) that we do this interim thing for now 
(which cleans things up quite a bit) and continue thinking and 
talking about how we might like the system to work in the longer term.


Regards,

Rob

Murali Vilayannur wrote:


Hi pete,


I thought with your discussion of getconfig/putconfig that you were
implicitly planning to get server-to-server communication to work
too.




I was planning on doing that. But it fizzled out because of RobR's 
concern

about scalability and dependence on a single root server..


What you describe here sounds like fine stuff.  And if later
somebody gets ambitious and wants to do more "zeroconf"-ish work,
they can build on this.  Thanks for the explanations.




Yep. Exactly. I hope so too :)
thanks!
Murali
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers





___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-27 Thread Phil Carns

I have a few questions about some details of the implementation:

- What exactly will a HUP do on the server side?  For example, is this 
pretty much a full server restart, a restart of the I/O components 
(job/trove/bmi/etc.), or just selectively reseting parameters that can 
be changed dynamically?


- How will a reload of the configuration affect clients that already 
have the file system mounted?  They typically have already read and 
parsed the configuration locally.  Do they continue with the previous 
configuration or do they get the updates as well?


- This sort of depends on the answers to the previous questions, but is 
there any restriction on what configuration parameters can actually be 
changed on the fly?  There are some obvious ones that cannot be changed 
(fsid, root handle, range ownership, etc.).  Are there any others?  Do 
we need anything to protect against this or just document what 
parameters are off limits?



FWIW, I agree with the direction that you guys are now heading with this 
stuff for the near future.  The dependence on a particular servers being 
around for startup and use of things like portmapper would cause 
problems for our environment.  We have to worry a good bit about 
firewalls, and asymmetric servers would make it harder to play nice with 
failover software.


-Phil



Rob Ross wrote:

Hi all,

Since I'm being discussed, I thought that I should chime in :).

I agree that what we're talking about here is just a couple of steps in 
the right general direction, not where we would really like to be in the 
long run.


The zero-conf concept sounds great to me, conceptually. However, I don't 
want to have an implementation of that that forces us into a dependence 
on a particular server for startup. More discussion might change my 
mind? I dunno.


Server-to-server (s2s) seems like the right way to do the config file 
verification in the long term. However, the code we're going to use to 
do that is just now shaping up. So we're not quite ready to do that yet.


So, I proposed (off-line) that we do this interim thing for now (which 
cleans things up quite a bit) and continue thinking and talking about 
how we might like the system to work in the longer term.


Regards,

Rob

Murali Vilayannur wrote:


Hi pete,


I thought with your discussion of getconfig/putconfig that you were
implicitly planning to get server-to-server communication to work
too.



I was planning on doing that. But it fizzled out because of RobR's 
concern

about scalability and dependence on a single root server..


What you describe here sounds like fine stuff.  And if later
somebody gets ambitious and wants to do more "zeroconf"-ish work,
they can build on this.  Thanks for the explanations.



Yep. Exactly. I hope so too :)
thanks!
Murali
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-20 Thread Rob Ross

Hi all,

Since I'm being discussed, I thought that I should chime in :).

I agree that what we're talking about here is just a couple of steps in 
the right general direction, not where we would really like to be in the 
long run.


The zero-conf concept sounds great to me, conceptually. However, I don't 
want to have an implementation of that that forces us into a dependence 
on a particular server for startup. More discussion might change my 
mind? I dunno.


Server-to-server (s2s) seems like the right way to do the config file 
verification in the long term. However, the code we're going to use to 
do that is just now shaping up. So we're not quite ready to do that yet.


So, I proposed (off-line) that we do this interim thing for now (which 
cleans things up quite a bit) and continue thinking and talking about 
how we might like the system to work in the longer term.


Regards,

Rob

Murali Vilayannur wrote:

Hi pete,


I thought with your discussion of getconfig/putconfig that you were
implicitly planning to get server-to-server communication to work
too.


I was planning on doing that. But it fizzled out because of RobR's concern
about scalability and dependence on a single root server..


What you describe here sounds like fine stuff.  And if later
somebody gets ambitious and wants to do more "zeroconf"-ish work,
they can build on this.  Thanks for the explanations.


Yep. Exactly. I hope so too :)
thanks!
Murali
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-19 Thread Murali Vilayannur
Hi pete,

> I thought with your discussion of getconfig/putconfig that you were
> implicitly planning to get server-to-server communication to work
> too.

I was planning on doing that. But it fizzled out because of RobR's concern
about scalability and dependence on a single root server..

> What you describe here sounds like fine stuff.  And if later
> somebody gets ambitious and wants to do more "zeroconf"-ish work,
> they can build on this.  Thanks for the explanations.

Yep. Exactly. I hope so too :)
thanks!
Murali
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-19 Thread Pete Wyckoff
[EMAIL PROTECTED] wrote on Tue, 19 Sep 2006 10:41 -0500:
> Without some form of server-to-server communication, verification of this
> config file is probably not doable. I was not envisioning adding the
> verification protocols at the server. I have vastly simplified the
> problem by relying on admins to ensure that the files are kept uptodate,
> which admittedly is quite unrealistic.
> 
> Instead, the clients verify whether all servers have the same config files
> which we recently added to the fs-add state machine and optionally
> verify at the time of PVFS_isys_fs_add.

Alright, totally makes sense.  The client verification is just a
sanity check that the admin has not messed anything up, then.  Valid.

> Admins are expected to edit the fs.conf files, copy it to all servers (or
> if it was on an NFS volume edit just once), and have a new mgmt tool which
> causes all servers to re-read the config files and have clients do the
> verification..

Okay, that's fine, and a vast improvement on our current scenario.

I thought with your discussion of getconfig/putconfig that you were
implicitly planning to get server-to-server communication to work
too.

What you describe here sounds like fine stuff.  And if later
somebody gets ambitious and wants to do more "zeroconf"-ish work,
they can build on this.  Thanks for the explanations.

-- Pete
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-19 Thread Murali Vilayannur
Hi Pete,

> Then on top of this you add some sort of verification protocol to
> make sure that file is up-to-date, right?  A server with an old
> config file exits with error?

Without some form of server-to-server communication, verification of this
config file is probably not doable. I was not envisioning adding the
verification protocols at the server. I have vastly simplified the
problem by relying on admins to ensure that the files are kept uptodate,
which admittedly is quite unrealistic.

Instead, the clients verify whether all servers have the same config files
which we recently added to the fs-add state machine and optionally
verify at the time of PVFS_isys_fs_add.

> Regarding your idea about SIGHUP, and forcing a config file re-read.
> This would be implemented by sending a message to all servers that
> they should locally read their fs.conf again?  And verify against
> the one provided by the root server?

> Admins are expected to edit one of the fs.conf files, copy it to all
> the server machines, then SIGHUP the root server?

Admins are expected to edit the fs.conf files, copy it to all servers (or
if it was on an NFS volume edit just once), and have a new mgmt tool which
causes all servers to re-read the config files and have clients do the
verification..

> Sorry to be tedious, but reading the earlier mails on the topic, I
> obviously did not understand some fundamental aspects of your
> design.

Nope, my bad. I should have described things in more detail.
Does this sound ok to you guys?
If it is too simplistic a view of the problem, then please let me know
what you would like to see to mitigate the configuration problems :)
thanks!
Murali
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-19 Thread Pete Wyckoff
[EMAIL PROTECTED] wrote on Tue, 19 Sep 2006 09:57 -0500:
> > Then there is exactly one process that every reads any configuration
> > file from disk.  It would likely be the one mentioned in fstabs.
> > All the other servers are started by passing a BMI address to this
> > primary server process on the command line.  (This is maybe not what
> > you had in mind.)
> 
> Sam and I had discussed this possibility and I think RobR does not wish to
> go down this path because every server would depend on this one particular
> server to get started.
> In the short term, it is easiest to remove the dependence on the second
> config file by passing in the server alias as the command line parameter
> and having the parsing code figure out BMI addresses, storage spaces, log
> file pathname etc from the fs.conf file.

Oh, I see.  Your scope for overhauling the config setups is not
what I had imagined.

Now instead of every server reading two files from disk, every
server will read one file from disk.  That's a good first step.

Then on top of this you add some sort of verification protocol to
make sure that file is up-to-date, right?  A server with an old
config file exits with error?

Regarding your idea about SIGHUP, and forcing a config file re-read.
This would be implemented by sending a message to all servers that
they should locally read their fs.conf again?  And verify against
the one provided by the root server?

Admins are expected to edit one of the fs.conf files, copy it to all
the server machines, then SIGHUP the root server?

Sorry to be tedious, but reading the earlier mails on the topic, I
obviously did not understand some fundamental aspects of your
design.

-- Pete
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-19 Thread Murali Vilayannur
Hi pete,

> Then there is exactly one process that every reads any configuration
> file from disk.  It would likely be the one mentioned in fstabs.
> All the other servers are started by passing a BMI address to this
> primary server process on the command line.  (This is maybe not what
> you had in mind.)

Sam and I had discussed this possibility and I think RobR does not wish to
go down this path because every server would depend on this one particular
server to get started.
In the short term, it is easiest to remove the dependence on the second
config file by passing in the server alias as the command line parameter
and having the parsing code figure out BMI addresses, storage spaces, log
file pathname etc from the fs.conf file.

> You'll also need a command-line argument to specify each server's
> address.  A good default _could_ be chosen by the primary server
> by looking at the peer name given by BMI and seeing if the hostname
> part matches something in the config file.  Some setups, like for
> failover or for machines serving through a non-primary interface,
> will need to be able to specify their own server address on the
> command-line; it can't be guessed from hostname.

Right; except that since we do not wish to add that initial handshaking,
we will probably just pass the server's alias as command line argument.
Does that sound ok to you?

> I'd rather see StorageSpace and LogFile as normal tags in the
> Filesystem section, then add  ...  as a
> way to override any particular setting, like in ssh_config, e.g.
> Most central setups will use similar pathnames on each machine.
> But this is only a slight preference.

Okay. Makes sense.
>
> (And your "localhost1" etc. must be server aliases, not hostnames.)

Right.. My bad.

>
> > NOTE: each server maintains a global in-memory session identifier that is
> > propagated by the putconfig() from the root-server and this identifier
> > is part of every client servreq structure. If it matches with the server
> > id, the requests are processed, else the clients are forced to do a
> > getconfig().
>
> That's a nice addition.  Can you use the hash value of the config
> file itself?

That's true. We could just pass that around instead of maintaining a
separate session identifier.

I will try to put together a patch for eliminating the second config
file and support for SIGHUP handling.
thanks for the comments!
Murali
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-17 Thread Pete Wyckoff
[EMAIL PROTECTED] wrote on Tue, 12 Sep 2006 17:07 -0500:
> Sam and I discussed the option of overhauling the configuration file and
> server setup options today and here is a summary of what we had come up
> with.. (Sam, please correct me if I missed out anything or misunderstood
> something)
> 
> Well-known problems with the current setup are
> a) the need for 2 config files (a global one and a per-server config file)
> and the implicit reliance on a savvy admin to keep these consistent and
> synchronized.
> b) Not having a clean way to be able to do a SIGHUP or equivalent to get
> restart functionality on servers.

These are great goals.  I like your approach.

> We were thinking of going about solving this in a 3 step process.

> 1) Eliminate the need for a per-server config file and pass the
> server host id as a command line parameter.

Then there is exactly one process that every reads any configuration
file from disk.  It would likely be the one mentioned in fstabs.
All the other servers are started by passing a BMI address to this
primary server process on the command line.  (This is maybe not what
you had in mind.)

You'll also need a command-line argument to specify each server's
address.  A good default _could_ be chosen by the primary server
by looking at the peer name given by BMI and seeing if the hostname
part matches something in the config file.  Some setups, like for
failover or for machines serving through a non-primary interface,
will need to be able to specify their own server address on the
command-line; it can't be guessed from hostname.

> The fs.conf file will have a
> new Defaults tag for the storage space in case it is the same on all
> servers (which is usually the case) like the log file pathname.
> Since the fs.conf aliases section maps aliases to host ids, servers can
> use that to obtain the aliases and thence the metahandle, datahandle
> ranges.
> If each server has a different storage space path, we could have a new tag
> 
> localhost1 /tmp/path1
> localhost2 /tmp/path2
> ...
> 
> and so on..

I'd rather see StorageSpace and LogFile as normal tags in the
Filesystem section, then add  ...  as a
way to override any particular setting, like in ssh_config, e.g.
Most central setups will use similar pathnames on each machine.
But this is only a slight preference.

(And your "localhost1" etc. must be server aliases, not hostnames.)

> Question is, how does this server talk to the remaining servers to push
> the config requests? We could just simply use tcp for this communication
> and have the putconfig act like an implicit SIGHUP which will cause all
> servers to restart and listen on the appropriate interfaces subsequent to
> the putconfig.

Please use the existing BMI infrastructure if possible.  It would
be preferable to allow any transport for these server-to-server
operations, and not to require TCP specifically.

> As regards the port numbers to do the putconfig, we could query the
> portmapper or dedicate a range of port numbers on each host for running
> the remaining servers initially.

Not crazy about portmapper or listening on random ports.  There are
two cases here:

1.  Initial server startup.  Acts as a client in connecting to
the root server to figure its config via "getconfig".  Does
not open any listening ports until this is resolved.

2.  Config file modification.  Here the root server acts as a
client and connects to each server on its given address with a
usual sendunexpected "putconfig" message.

I don't see the need to have a temporary ephemeral listening port
for each server.

> NOTE: each server maintains a global in-memory session identifier that is
> propagated by the putconfig() from the root-server and this identifier
> is part of every client servreq structure. If it matches with the server
> id, the requests are processed, else the clients are forced to do a
> getconfig().

That's a nice addition.  Can you use the hash value of the config
file itself?

Sam said:
> To continue the discussion here that I had offline with Murali, what
> about having servers send an initial hello message to the master
> server, so that they don't have to figure out what port to listen  
> on?  The master can send that server's HostID, wait for a ready
> response, and then push the config file to that endpoint.

Totally.

Julian's ideas about zeroconf are a natural extension of this
centralized config management, but I think they are a little out
of scope for most current PVFS usage models (centralized well-known
setup).  Maybe good for the future though.

-- Pete
___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers


Re: [Pvfs2-developers] RFC: Config file overhaul

2006-09-13 Thread Julian Martin Kunkel
Hi,
> We were thinking of going about solving this in a 3 step process.
This is really cool ;)
I  think it might be a good idea to thing about the zero conf issue and about 
extending the server farm during this process. This actually might not be  
much more efford to think about it and make plans for it so that you can 
later add another step to get to a zeroconf (extending) environment...
Concearning zeroconf a "" tag in the normal fs.conf I think is 
no good idea... The information of handle ranges and available servers should 
be maintained separately from the input of the sysadmin. For simplicity it 
could be generated on the fly by the rootserver, though... I mean so you 
could do something like giving each new server 1 million handles the first 
time it is added and later give another amount once the million is used up...
(Once it is assigned it has to be stored of course...)

>To continue the discussion here that I had offline with Murali, what  
>about having servers send an initial hello message to the master  
>server, so that they don't have to figure out what port to listen  
>on?  The master can send that server's HostID, wait for a ready  
>response, and then push the config file to that endpoint.
That sounds good. You still have to give a address of the rootserver to the 
non-rootservers, right ? Then it figures out which network it has to use for 
the first-contact :)

>>For instance server
>>(non root) restarts should cause putconfig's implicitly or getconfig's?
>To continue the discussion here that I had offline with Murali, what  
>about having servers send an initial hello message to the master  
>server, so that they don't have to figure out what port to listen  
>on?  The master can send that server's HostID, wait for a ready  
>response, and then push the config file to that endpoint
Cool, this seems to be a good idea. 
The other servers once they come up contact the rootserver for a new config 
the server implicitly gets their current used network address, the rootserver 
then could generate a new entry with that address... 
Once the admin changes global parameters a putconfig to all servers is 
necessary, of course. Also, if a new metaserver is added the client config is 
invalid, but not necessarily if a new dataserver is added...

I really like all the stuff ;)

Have a nice day,
Julian

___
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers