Re: CVS server upgrade?

2004-02-03 Thread Spiro Trikaliotis
Hello,

* On Mon, Feb 02, 2004 at 03:00:35PM -0500 Jim.Hyslop wrote:
 
 In order to minimize the impact on the users, we took the original server
 off-line just long enough to create the tarball. As soon as the tar was
 complete, we restarted the server in read-only mode (create an empty
 CVSROOT/writers file to make the whole repository read-only). Thus, people
 could still check out and browse the repository, but they couldn't check
 anything in (and thus throw the two repositories out of sync).

not that I would recommend it, but:

But about

1. Taking the CVS repository offline
2. Create the tarball
3. Take the CVS repository online with full access (!)
4. do anything needed to move to the new server
5. When everything is working fine, take the (original) repository
   offline again
6. Now perform an rsync between the two repositories
7. Take the new one online (with changing DNS entries and the like).

Would this make sense, or could 6. break something that was made with
4.?

I understand that this procedure seems more risky, but it seems to me
that this should work, too, shouldn't it?

Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: CVS server upgrade?

2004-02-03 Thread Mark D. Baushke
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Spiro Trikaliotis [EMAIL PROTECTED] writes:

 Hello,
 
 * On Mon, Feb 02, 2004 at 03:00:35PM -0500 Jim.Hyslop wrote:
  
  In order to minimize the impact on the users, we took the original server
  off-line just long enough to create the tarball. As soon as the tar was
  complete, we restarted the server in read-only mode (create an empty
  CVSROOT/writers file to make the whole repository read-only). Thus, people
  could still check out and browse the repository, but they couldn't check
  anything in (and thus throw the two repositories out of sync).
 
 not that I would recommend it, but:
 
 But about
 
 1. Taking the CVS repository offline
 2. Create the tarball
 3. Take the CVS repository online with full access (!)
 4. do anything needed to move to the new server
 5. When everything is working fine, take the (original) repository
offline again
 6. Now perform an rsync between the two repositories
 7. Take the new one online (with changing DNS entries and the like).
 
 Would this make sense, or could 6. break something that was made with
 4.?

Sure #6 could break something for #4, this is why it is considered
useful to test our your commitinfo, loginfo, verifinfo, and taginfo
scripts to be sure they wok regardless of the platform.

Your steps should work okay.

 I understand that this procedure seems more risky, but it seems to me
 that this should work, too, shouldn't it?

I have had occasion to move repositories from one machine to another a
number of times over the years.

I typically put something into the commitinfo script that denies any
commits to the repository unless the `hostname` matches what I expected.

I have also used 'rsync' (or CVSup soemtimes) to create mirror copies of
the repository.

0. Assume you have two machines oldbox.example.com and
   newbox.example.com and that everyone checks out using
   cvsbox.example.com which happens to be a DNS CNAME that
   points to oldbox.example.com.

1. Mirror the repository to a slave server (newbox) that will become
   the master eventually. On oldbox.example.com do the following:

   rsync --exclude '#cvs*' --exclude ',*,' --blocking-io \
  --recursive --perms --owner --group --times --links \
  --delete --stats /path/to/your/current/cvsroot/directory \
  newbox.example.com:/path/to/your/new/cvsroot/directory

   doing this rsync a few times in succession, I would expect to
   eventually not see any additional files copied. At that point,
   you have your functional mirror for testing and/or deployment.

2. test the new repository for the ability to checkout a tree any
   commits to this version of the repository will likely fail due to
   your commitinfo trigger test for the filename. It is up to you if
   you want to allow test commits to this test repository or not. I
   typically have a 'debugging' repository and module for this
   purpose.

3. Modify the the commitinfo trigger on the master repository, so
   that only commits to the mirror are allowed. This will have the
   effect of making the current master repository a read-only mirror
   that will not allow commits.

4. Repeat step #1 to effectively make the 'slave server' become
   the new master.

5. Alter your DNS so that cvsbox.example.com has a CNAME record
   that points to nwebox.example.com instead of oldbox.example.com.

You are now done and should be able to retire the oldbox.example.com
fairly soon.

Enjoy!
-- Mark
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAH3QF3x41pRYZE/gRAr1/AJ9O4UiJuuUT8X9fqXy1uIrUCyRbWQCfYkiq
VmXvIkOZCyVpaAMgnU3P55I=
=3wCu
-END PGP SIGNATURE-


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: CVS server upgrade?

2004-02-03 Thread Jim.Hyslop
David R. Chase [mailto:[EMAIL PROTECTED] wrote:
 Just wondering what minor problems you had, just in case they 
 might pertain
 to other peoples' migration strategies (or my own someday)?
Well, our situation was much more complex than Courier's. Not only did we
upgrade the server hardware, we went from FreeBSD to a Sun workstation, and
upgraded the server version from a very old 1.10.[something] to 1.11.5 We
have several remote repositories that mirror portions of the main
repository, and our main repository mirrors portions of the remote
repositories. We also have developed a client/server utility (LCVS - Leitch
extensions to CVS) that runs in conjunction with CVS, to provide some
functionality that the stock CVS program doesn't - the ability for users to
change their own passwords, or the ability to execute an 'ls' command in the
current directory, for example.

Most of the minor glitches we encountered had to do with porting the LCVS
utility to Sun, while maintaining FreeBSD compatibility (the remote
repositories still run FreeBSD). Setting up permissions is sufficiently
different on Sun than on FreeBSD (don't ask me the details - I'm not a UNIX
sysadmin) that we had to do some fine-tuning.

-- 
Jim Hyslop 
Senior Software Designer 
Leitch Technology International Inc. (http://www.leitch.com/) 
Columnist, C/C++ Users Journal (http://www.cuj.com/experts) 




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: CVS server upgrade?

2004-02-03 Thread Jim.Hyslop
Spiro Trikaliotis [mailto:[EMAIL PROTECTED] wrote:
 not that I would recommend it, but:
 
 But about
 
 1. Taking the CVS repository offline
 2. Create the tarball
 3. Take the CVS repository online with full access (!)
 4. do anything needed to move to the new server
 5. When everything is working fine, take the (original) repository
offline again
 6. Now perform an rsync between the two repositories
 7. Take the new one online (with changing DNS entries and the like).
 
 Would this make sense, or could 6. break something that was made with
 4.?
That would work, as long as nobody checked anything into the new server. We
decided to err on the side of safety, rather than take the chance that one
of our 150 or so users might discover the new server and check into it when
they shouldn't.

-- 
Jim Hyslop 
Senior Software Designer 
Leitch Technology International Inc. (http://www.leitch.com/) 
Columnist, C/C++ Users Journal (http://www.cuj.com/experts) 




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: CVS server upgrade?

2004-02-03 Thread Spiro Trikaliotis
Hello Jim,

* On Tue, Feb 03, 2004 at 09:28:59AM -0500 Jim.Hyslop wrote:
 Spiro Trikaliotis [mailto:[EMAIL PROTECTED] wrote:
  not that I would recommend it, but:
[...]
  Would this make sense, or could 6. break something that was made with
  4.?
 That would work, as long as nobody checked anything into the new server. We
 decided to err on the side of safety, rather than take the chance that one
 of our 150 or so users might discover the new server and check into it when
 they shouldn't.

A good point, I did not think about this case. I think that's the reason
why I said not that I would recommend it. ;-)

Thanks,
   Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: CVS server upgrade?

2004-02-02 Thread Jim.Hyslop
Courier [mailto:[EMAIL PROTECTED] wrote:
 Here is I would like to do: I will take currently cvs server off line,
 then tar the whole Repository, then bring up a new system and 
 cp and untar
 Repository on new server. Our cvs server is a stand alone 
 server. All my
 users are accessing via pserver. I don't have any problems 
 with username
 and their password migrations, but just concerned about cvs 
 Repository.
When we upgraded our server, we took a similar approach. 

We scheduled a dry-run of the process ahead of time, just to make sure there
were no problems and to work out any unforeseen problems. The dry run proved
very valuable, because there _were_ some minor things we had overlooked.
This saved us the time (and embarassment) of cutting off our users from the
repository multiple times.

In order to minimize the impact on the users, we took the original server
off-line just long enough to create the tarball. As soon as the tar was
complete, we restarted the server in read-only mode (create an empty
CVSROOT/writers file to make the whole repository read-only). Thus, people
could still check out and browse the repository, but they couldn't check
anything in (and thus throw the two repositories out of sync).

After we were satisfied the new server was up and running properly, we
simply did a DNS switch on the server name (the name the users see is an
alias to the actual machine name).

-- 
Jim Hyslop 
Senior Software Designer 
Leitch Technology International Inc. (http://www.leitch.com/) 
Columnist, C/C++ Users Journal (http://www.cuj.com/experts) 



___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


RE: CVS server upgrade?

2004-02-02 Thread Courier
Jim,

Thank you. That is what I have in mind. Good things about our cvs server
is   locally. Thus I have schedule for down time about and works with
couple developers when new cvs server back on line for testing and double
check very things are ok.

Again thank you very much for your comments.

C-


 Courier [mailto:[EMAIL PROTECTED] wrote:
 Here is I would like to do: I will take currently cvs server off line,
 then tar the whole Repository, then bring up a new system and
 cp and untar
 Repository on new server. Our cvs server is a stand alone
 server. All my
 users are accessing via pserver. I don't have any problems
 with username
 and their password migrations, but just concerned about cvs
 Repository.
 When we upgraded our server, we took a similar approach.

 We scheduled a dry-run of the process ahead of time, just to make sure
 there
 were no problems and to work out any unforeseen problems. The dry run
 proved
 very valuable, because there _were_ some minor things we had overlooked.
 This saved us the time (and embarassment) of cutting off our users from
 the
 repository multiple times.

 In order to minimize the impact on the users, we took the original server
 off-line just long enough to create the tarball. As soon as the tar was
 complete, we restarted the server in read-only mode (create an empty
 CVSROOT/writers file to make the whole repository read-only). Thus, people
 could still check out and browse the repository, but they couldn't check
 anything in (and thus throw the two repositories out of sync).

 After we were satisfied the new server was up and running properly, we
 simply did a DNS switch on the server name (the name the users see is an
 alias to the actual machine name).

 --
 Jim Hyslop
 Senior Software Designer
 Leitch Technology International Inc. (http://www.leitch.com/)
 Columnist, C/C++ Users Journal (http://www.cuj.com/experts)




___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


Re: CVS server upgrade?

2004-02-02 Thread David R. Chase
Jim,

Just wondering what minor problems you had, just in case they might pertain
to other peoples' migration strategies (or my own someday)?

Thanks!
David R. Chase
Senior Unemployed Software Developer  ; )

- Original Message -
From: Jim.Hyslop [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Monday, February 02, 2004 3:00 PM
Subject: RE: CVS server upgrade?


 Courier [mailto:[EMAIL PROTECTED] wrote:
  Here is I would like to do: I will take currently cvs server off line,
  then tar the whole Repository, then bring up a new system and
  cp and untar
  Repository on new server. Our cvs server is a stand alone
  server. All my
  users are accessing via pserver. I don't have any problems
  with username
  and their password migrations, but just concerned about cvs
  Repository.
 When we upgraded our server, we took a similar approach.

 We scheduled a dry-run of the process ahead of time, just to make sure
there
 were no problems and to work out any unforeseen problems. The dry run
proved
 very valuable, because there _were_ some minor things we had overlooked.
 This saved us the time (and embarassment) of cutting off our users from
the
 repository multiple times.

 In order to minimize the impact on the users, we took the original server
 off-line just long enough to create the tarball. As soon as the tar was
 complete, we restarted the server in read-only mode (create an empty
 CVSROOT/writers file to make the whole repository read-only). Thus, people
 could still check out and browse the repository, but they couldn't check
 anything in (and thus throw the two repositories out of sync).

 After we were satisfied the new server was up and running properly, we
 simply did a DNS switch on the server name (the name the users see is an
 alias to the actual machine name).

 --
 Jim Hyslop
 Senior Software Designer
 Leitch Technology International Inc. (http://www.leitch.com/)
 Columnist, C/C++ Users Journal (http://www.cuj.com/experts)



 ___
 Info-cvs mailing list
 [EMAIL PROTECTED]
 http://mail.gnu.org/mailman/listinfo/info-cvs






___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs