From: Aaron B. <bir...@cs...> - 2008-06-03 19:30:59
|
sulochan acharya wrote: > hi all, > I am trying to get the fedora journaling leader/follower configuration > but no success. > I am trying to get a mirror of my primary fedora server to be a leader > and a different server > as a follower so that i get a mirror of my fedora repo. > This is what i did: > 1st server: Recover mode----------all i did was followed the > journaling guide for this > 2nd server: Recover mode as follower------again followed the > journaling guide The issue here is that only the following servers may be in recover mode. Recover mode implies read-only access. Here's an example from a leader configuration: <module class="fedora.server.journal.Journaller" role="fedora.server.management.Management"> <param name="journalFileSizeLimit" value="100M"/> <param name="journalFileAgeLimit" value="1H"/> <param name="journalWriterClassname" value="fedora.server.journal.readerwriter.multicast.MulticastJournalWriter"/> <param name="transport.local.classname" value="fedora.server.journal.readerwriter.multicast.LocalDirectoryTransport"/> <param name="transport.local.directoryPath" value="/path/to/journals/archiveFiles"/> <param name="transport.local.crucial" value="true"/> <param name="transport.follower1.classname" value="fedora.server.journal.readerwriter.multicast.rmi.RmiTransport"/> <param name="transport.follower1.crucial" value="false"/> <param name="transport.follower1.hostName" value="follower1.example.org"/> <param name="transport.follower1.service" value="RmiJournalReceiver"/> </module> This configuration uses the multicast journal writer, and creates two journals: a local journal, and a remote journal on follower1's rmi journal receiver service. The configuration for follower1 could look like: <module class="fedora.server.journal.Journaller" role="fedora.server.management.Management"> <param name="journalMode" value="recover"/> <param name="journalReaderClassname" value="fedora.server.journal.readerwriter.multifile.LockingFollowingJournalReader"/> <param name="journalDirectory" value="/path/to/journals/incomingFiles"/> <param name="archiveDirectory" value="/path/to/journals/archiveFiles"/> <param name="continueOnHashError" value="false"/> <param name="followPollingInterval" value="10"/> <param name="lockRequestedFilename" value="/usr/local/ndr-content/journals/StopAcceptingJournals.lock"/> <param name="lockAcceptedFilename" value="/usr/local/ndr-content/journals/AcceptedJournalStop.lock"/> <param name="journalRecoveryLogClassname" value="fedora.server.journal.recoverylog.RenamingJournalRecoveryLog"/> <param name="recoveryLogFilename" value="/usr/local/ndr-content/journals/journal.recovery.log"/> </module> In addition, follower1 would have an rmi receiver process running: java -Djava.rmi.server.codebase=file:/usr/local/fedora/RmiReceiver/RmiReceiver.jar -Djava.rmi.server.hostname=follower1.example.org fedora.server.journal.readerwriter.multicast.rmi.RmiJournalReceiver /path/to/journals/incomingFiles (Note: multicast/rmi is not a prerequisite for a leader/follower configuration.. you could just as easily mount the leader's journal file directory to the follower's incoming journal directory using nfs. There are some downsides to doing so, however) In this configuration, the follower will lag behind the leader by an hour (or 100MB of journal entries), since followers only start consuming completed/closed journal files. These thresholds can be decreased for closer following. -Aaron |