\r
<title>Server Operations and Maintenance</title>\r
<abstract>\r
- <para>This chapter deals with basic server operations such as starting and stopping Evergreen as well wall security, backing up and troubleshooting Evergreen.</para>\r
+ <para>This chapter deals with basic server operations such as starting and stopping <application>Evergreen</application> as well wall \r
+ security, backing up and troubleshooting <application>Evergreen</application>.</para>\r
</abstract>\r
</info> \r
<section xml:id="startingopensrf">\r
<title>Starting, Stopping and Restarting</title>\r
- <para>Occasionally, you may need to restart Evergreen. It is imperative that you understand the basic \r
- commands to stop and start the Evergreen server. You can start and stop Evergreen from the command line of \r
- the server using the <filename >osrf_ctl.sh</filename> script located in the \r
+ <para>Occasionally, you may need to restart <application>Evergreen</application>. It is imperative that you understand the basic \r
+ commands to stop and start the <application>Evergreen</application> server. You can start and stop <application>Evergreen</application> from the command line of \r
+ the server using the <command>osrf_ctl.sh</command> script located in the \r
<filename class="directory">openils/bin</filename> directory.</para> \r
- <note><para>The osrf_ctl.sh script must be run as the <emphasis>opensrf</emphasis> user.</para></note>\r
- <para>To view help on <filename>osrf_ctl.sh</filename> and get all of its options, \r
- run:</para>\r
- <screen>osrf_ctl.sh -h</screen>\r
+ <note><para><command>The osrf_ctl.sh</command> command must be run as the <systemitem class="username">opensrf</systemitem> user.</para></note>\r
+ <para>To view help on <command>osrf_ctl.sh</command> and get all of its options, run:</para>\r
+ <screen><userinput>osrf_ctl.sh -h</userinput></screen>\r
<para>To start Evergreen, run:</para>\r
- <screen>osrf_ctl.sh -l -a start_all</screen>\r
- <para>The -l flag is used to indicate that Evergreen is configured to use <emphasis>localhost</emphasis> as \r
- the host. If you have configured opensrf.xml to use your real hostname, do not use the -l flag. The -a \r
+ <screen><userinput>osrf_ctl.sh -l -a start_all</userinput></screen>\r
+ <para>The <option>-l</option> flag is used to indicate that Evergreen is configured to use <systemitem class="domainname">localhost</systemitem> as \r
+ the host. If you have configured <filename>opensrf.xml</filename> to use your real hostname, do not use the <option>-l</option> flag. The <option>-a</option> \r
option is required and indicates the <emphasis>action</emphasis> of the command. In this case \r
- <emphasis>start_all</emphasis>. \r
+ <option>start_all</option>. \r
</para> \r
<note>\r
- <para>If you receive the error message bash: osrf_ctl.sh: \r
- command not found, then your environment variable PATH does not include the \r
- <filename class="directory">/openils/bin</filename> directory. \r
- You can set it using the following command:</para>\r
- <screen>export PATH=$PATH:/openils/bin</screen>\r
- <para>If you receive the error message Can't locate OpenSRF/System.pm in @INC … BEGIN \r
- failed–compilation aborted, then your environment variable <emphasis>PERL5LIB</emphasis> does not \r
+ <para>If you receive the error message: <errortext>osrf_ctl.sh: command not found</errortext>, then your environment variable \r
+ <varname>PATH</varname><indexterm><primary>environment variable</primary><secondary>PATH</secondary></indexterm> does not include the \r
+ <filename class="directory">/openils/bin</filename> directory. You can set it using the following command:</para>\r
+ <screen><userinput>export <varname>PATH</varname>=$PATH:<filename class="directory">/openils/bin</filename></userinput></screen>\r
+ <para>If you receive the error message <errortext>Can't locate OpenSRF/System.pm in @INC … BEGIN \r
+ failed–compilation aborted</errortext>, then your environment variable <varname>PERL5LIB</varname><indexterm><primary>environment \r
+ variable</primary><secondary>PERL5LIB</secondary></indexterm> does not \r
include the <filename class="directory">/openils/lib/perl5</filename> directory. You can set it \r
using the following command:</para>\r
- <screen>export PERL5LIB=$PERL5LIB:/openils/lib/perl5</screen>\r
+ <screen><userinput>export <varname>PERL5LIB</varname>=$PERL5LIB:<filename class="directory">/openils/lib/perl5</filename></userinput></screen>\r
</note> \r
<para>It is also possible to start a specific service. For example:</para>\r
- <screen>osrf_ctl.sh -l -a start_router</screen>\r
- <para>will only start the router service.</para>\r
+ <screen><userinput>osrf_ctl.sh -l -a start_router</userinput></screen>\r
+ <para>will only start the <systemitem class="service">router</systemitem> service.</para>\r
<caution>\r
<para>If you decide to start each service individually, you need to start them in a specific order \r
for Evergreen to start correctly. Run the commands in this exact order:</para>\r
- <screen>osrf_ctl.sh -l -a start_router</screen>\r
- <screen>osrf_ctl.sh -l -a start_perl</screen>\r
- <screen>osrf_ctl.sh -l -a start_c</screen>\r
+ <screen><userinput>osrf_ctl.sh -l -a start_router</userinput></screen>\r
+ <screen><userinput>osrf_ctl.sh -l -a start_perl</userinput></screen>\r
+ <screen><userinput>osrf_ctl.sh -l -a start_c</userinput></screen>\r
</caution> \r
- <para>After starting or restarting Evergreen, it is also necessary to restart the Apache web server for the \r
- OPAC to work correctly.</para> \r
- <para>To stop Evergreen, run:</para>\r
- <screen>osrf_ctl.sh -l -a stop_all</screen>\r
+ <para>After starting or restarting Evergreen, it is also necessary to restart the <systemitem class="service">Apache web server</systemitem>\r
+ <indexterm><primary>web server</primary><secondary>Apache</secondary></indexterm> for the OPAC to work correctly.</para> \r
+ <para>To stop <application>Evergreen</application>, run:</para>\r
+ <screen><userinput>osrf_ctl.sh -l -a stop_all</userinput></screen>\r
<para>As with starting, you can choose to stop one service</para>\r
- <para>To restart Evergreen, run:</para>\r
- <screen>osrf_ctl.sh -l -a restart_all</screen>\r
+ <para>To restart <application>Evergreen</application>, run:</para>\r
+ <screen><userinput>osrf_ctl.sh -l -a restart_all</userinput></screen>\r
</section>\r
<section xml:id="backingup">\r
<title>Backing Up</title>\r
<para>Backing up your system files and data is a critical task for server and database administrators. \r
Having a strategy for backing up and recovery could be the difference between a minor annoyance for users and\r
- a a complete catastrophe.</para> \r
+ a complete catastrophe.</para> \r
<simplesect>\r
- <title>Backing up the Evergreen Database</title>\r
- <para>Most of the critical data for an Evergreen system – patrons, bibliographic records, holdings, \r
- transactions, bills – is stored in the PostgreSQL database. You can therefore use normal PostgreSQL \r
- backup procedures to backup this data. For example, the simplest method of backing up the Evergreen\r
- database is to use the pg_dump command to create a live backup of the database without having to \r
- interrupt any Evergreen services as follows:</para>\r
- <screen># pg_dump -U [username] -h [hostname] -f [output-file] [database-name]</screen> \r
- <screen>pg_dump -U evergreen -h localhost -f evergreen_db.backup evergreen</screen>\r
+ <title>Backing up the <application>Evergreen</application> Database</title><indexterm><primary>databases</primary></indexterm>\r
+ <para>Most of the critical data for an <application>Evergreen</application> system – patrons, bibliographic records, holdings, \r
+ transactions, bills – is stored in the <application>PostgreSQL</application><indexterm><primary>databases</primary>\r
+ <secondary>PostgreSQL</secondary></indexterm> database. You can therefore use normal \r
+ <application>PostgreSQL</application> backup procedures to backup this data. For example, the simplest method of backing up the Evergreen\r
+ database is to use the <command>pg_dump</command> command to create a live backup of the database without having to \r
+ interrupt any Evergreen services:</para>\r
+ <screen><userinput># pg_dump -U [username] -h [hostname] -f [output-file] [database-name]</userinput></screen> \r
+ <screen><userinput>pg_dump -U evergreen -h localhost -f evergreen_db.backup evergreen</userinput></screen>\r
<para>To restore the backed up database into a new database, create a new database using the \r
- template0 database template and the UTF8 encoding, and run the psql command, specifying the new \r
+ template0 database template and the UTF8 encoding, and run the <command>psql</command> command, specifying the new \r
database as your target:</para>\r
- <screen>createdb -T template0 -E UTF8 -U evergreen -h localhost new_evergreen</screen>\r
- <screen>psql -U evergreen -h localhost -f evergreen_db.backup new_evergreen</screen>\r
+ <screen><userinput>createdb -T template0 -E UTF8 -U evergreen -h localhost new_evergreen</userinput></screen>\r
+ <screen><userinput>psql -U evergreen -h localhost -f evergreen_db.backup new_evergreen</userinput></screen>\r
<note>\r
<para>This method of backup is only suitable for small Evergreen instances. Larger sites \r
- should consider implementing continuous archiving (also known as “log shipping”) to provide \r
- more granular backups with lower system overhead. More information on backing up PostgreSQL \r
- databases can be found in the official PostgreSQL documentation.</para>\r
+ should consider implementing continuous archiving (also known as <quote>log shipping</quote>) to provide \r
+ more granular backups with lower system overhead. More information on backing up <application>PostgreSQL</application> \r
+ databases can be found in the official <link xl:href="http://www.postgresql.org/docs/"><application>PostgreSQL</application> documentation</link>.</para>\r
</note>\r
</simplesect>\r
<simplesect>\r
<title>Backing up Evergreen Files</title>\r
<para>When you deploy Evergreen, you will probably customize many aspects of your system including \r
- the system configuration files, Apache configuration files, OPAC and Staff Client. In order to \r
+ the system configuration files, <application>Apache</application> configuration files, OPAC and Staff Client. In order to \r
protect your investment of time, you should carefully consider the best approach to backing up \r
files.</para>\r
<para>There are a number of ways of tackling this problem. You could create a script that regularly \r
creates a time-stamped tarball of all of these files and copies it to a remote server - but that \r
- would build up over time to hundreds of files. You could use rsync to ensure that the files of \r
+ would build up over time to hundreds of files. You could use <link xl:href="http://www.samba.org/rsync/"><application>rsync</application></link>\r
+ <indexterm><primary>rsync</primary></indexterm> to ensure that the files of \r
interest are regularly updated on a remote server - but then you would lose track of the changes to \r
the files, should you make a change that introduces a problem down the road.</para>\r
- <para>Perhaps one of the best options is to use a version control system like Bazaar, git, \r
- Subversion, or CVS to regularly push updates of the files you care about to a repository on a \r
+ <para>Perhaps one of the best options is to use a version control system like <link xl:href="http://bazaar.canonical.com">\r
+ <application>Bazaar</application></link><indexterm><primary>Version Control System</primary><secondary>Subversion</secondary></indexterm>, \r
+ <link xl:href="http://git-scm.com/"><application>git</application></link><indexterm><primary>Version Control System</primary><secondary>git</secondary></indexterm> \r
+ or <link xl:href="http://subversion.apache.org/"><application>Subversion</application></link><indexterm><primary>Version Control System</primary>\r
+ <secondary>Subversion</secondary></indexterm> to regularly push updates of the files you care about to a repository on a \r
remote server. This gives you the advantage of quickly being able to run through the history of the \r
changes you made, with a commenting system that reminds you why each change was made, combined with \r
remote storage of the pertinent files in case of disaster on site. In addition, your team can create \r
<simplesect>\r
<title>Full System Backup</title>\r
<para>A full system backup archives every file on the file system. Some basic methods require you \r
- to shut down most system processes; other methods can use mirrored RAID setups or SAN storage to \r
- take “snapshot” backups of your full system while the system continues to run. The subject of how \r
+ to shut down most system processes; other methods can use mirrored RAID<indexterm><primary>RAID</primary></indexterm> setups or \r
+ SAN<indexterm><primary>SAN</primary></indexterm> storage to \r
+ take <quote>snapshot</quote> backups of your full system while the system continues to run. The subject of how \r
to implement full system backups is beyond the scope of this documentation.</para>\r
</simplesect>\r
</section>\r
<section xml:id="security">\r
<title>Security</title>\r
<para>As with an ILS and resource accessible from the world wide web careful consideration needs to be \r
- given to the security of your Evergreen servers and database. While it is impossible to cover all aspects \r
- of security, it is important to take several precautions when setting up production Evergreen site.</para>\r
+ given to the security of your <application>Evergreen</application> servers and database. While it is impossible to cover all aspects \r
+ of security, it is important to take several precautions when setting up production <application>Evergreen</application> site.</para>\r
<orderedlist>\r
<listitem>\r
- <para>Change the Evergreen <emphasis>Admin</emphasis> password and keep it secure. The \r
- default Admin password is known by anyone who has installed Evergreen. It is not a secret \r
+ <para>Change the Evergreen <systemitem class="username">admin</systemitem> password and keep it secure. The \r
+ default admin password is known by anyone who has installed <application>Evergreen</application>. It is not a secret \r
and needs to be changed by the Administrator. It should also only be shared by those who \r
- need the highest level access to Evergreen.</para>\r
+ need the highest level of access to your system.</para>\r
</listitem>\r
<listitem>\r
<para>Create strong passwords using a combination of numerical and alphabetical characters \r
- for all of the Administrative passwords used by Evergreen including the Evergreen \r
- postgresql user, opensrf Linux account, and Admin evergreen users, and of course, any\r
- superusers on your server.</para> \r
+ for all of the Administrative passwords including the <systemitem class="username">postgres</systemitem> and \r
+ <systemitem class="username">opensrf</systemitem> users</para> \r
</listitem>\r
<listitem>\r
- <para>Open ports in the firewall with Caution - It is necessary to open some ports to the \r
- server such as port 80 for http and 443 for ssl, and it can be helpful to open ports for \r
- remote access to the database or staff client. It is also critical for an administrator to \r
- understand the concepts of network security and take precautions to not allow the server to \r
- be vulnerable to the outside world. \r
+ <para>Open ports in the firewall<indexterm><primary>firewall</primary></indexterm> with caution - It is necessary to open some ports to the \r
+ server such as port 80 for <systemitem class="protocal">http</systemitem> <indexterm><primary>HTTP</primary></indexterm> and 443 \r
+ for <systemitem class="protocal">ssl</systemitem><indexterm><primary>SSL</primary></indexterm> , and it can be helpful to open ports for \r
+ remote access to the database or staff client. It is also critical for administrators to \r
+ understand the concepts of network security and take precautions to minimize vulnerabilities. \r
</para>\r
</listitem>\r
<listitem>\r
- <para>Use permissions and permission groups wisely - it is important to understand the \r
+ <para>Use permissions <indexterm><primary>permissions</primary></indexterm> and permission groups wisely - it is important to understand the \r
purpose of the permissions and to only give users the level of access that they require.\r
</para> \r
</listitem>\r
</section>\r
<section xml:id="logfiles">\r
<title>Managing Log Files</title>\r
- <para>Evergreen comes with a sophisticated logging system, but it is important to manage the OpenSRF and Evergreen logs. This section will provide a couple of log management techniques \r
- and tools.</para> \r
+ <para><application>Evergreen</application> comes with a sophisticated logging system, but it is important to manage the <application>OpenSRF</application> \r
+ and <application>Evergreen</application> logs. This section will provide a couple of log management techniques and tools.</para> \r
<simplesect>\r
- <title>Using the Log Rotate Utility to Manage Log Size</title> \r
- <para>Fortunately, this is not a new problem for Unix administrators, and there are a number of ways of keeping your logs under control. On Debian and Ubuntu, for example, \r
- the logrotate utility controls when old log files are compressed and a new log file is started. logrotate runs once a day and checks all log files that it knows about to see if a \r
+ <title>Using the Log Rotate<indexterm><primary>logrotate</primary></indexterm> Utility to Manage Log Size</title> \r
+ <para>Fortunately, this is not a new problem for <systemitem class="osname">Unix</systemitem> administrators, and there are a number of ways of keeping your logs under control. \r
+ On <systemitem class="osname">Debian</systemitem> and <systemitem class="osname">Ubuntu</systemitem>, for example, \r
+ the <systemitem class="service">logrotate</systemitem> utility controls when old log files are compressed and a new log file is started. \r
+ <systemitem class="service">logrotate</systemitem> runs once a day and checks all log files that it knows about to see if a \r
threshold of time or size has been reached and rotates the log files if a threshold condition has been met.</para>\r
- <para>To teach logrotate to rotate Evergreen logs on a weekly basis, or if they are > 50MB in size, create a new file <filename>/etc/logrotate.d/evergreen</filename> with the \r
- following contents: </para>\r
- <screen>compress</screen>\r
- <screen>/openils/var/log/*.log {</screen>\r
- <screen> # keep the last 4 archived log files along with the current log file</screen>\r
- <screen> # log log.1.gz log.2.gz log.3.gz log.4.gz</screen>\r
- <screen> # and delete the oldest log file (what would have been log.5.gz)</screen>\r
- <screen>rotate 5</screen>\r
- <screen># if the log file is > 50MB in size, rotate it immediately</screen>\r
- <screen> size 50M</screen>\r
- <screen> # for those logs that don't grow fast, rotate them weekly anyway</screen>\r
- <screen> weekly</screen>\r
- <screen>}</screen>\r
+ <para>To teach <systemitem class="service">logrotate</systemitem> to rotate Evergreen logs on a weekly basis, or if they are > 50MB in size, \r
+ create a new file <filename>/etc/logrotate.d/evergreen</filename> with the following contents: </para>\r
+ <programlisting>\r
+ compress\r
+ /openils/var/log/*.log {\r
+ # keep the last 4 archived log files along with the current log file\r
+ # log log.1.gz log.2.gz log.3.gz log.4.gz\r
+ # and delete the oldest log file (what would have been log.5.gz)\r
+ rotate 5\r
+ # if the log file is > 50MB in size, rotate it immediately\r
+ size 50M\r
+ # for those logs that don't grow fast, rotate them weekly anyway\r
+ weekly\r
+ }\r
+ </programlisting>\r
</simplesect>\r
<simplesect>\r
- <title>Changing Logging Level for Evergreen</title>\r
+ <title>Changing Logging Level for <application>Evergreen</application></title>\r
<para>Change the Log Levels in your config files. Changing the level of logging will help \r
narrow down errors.</para> \r
<tip>\r
will produce vastly larger log files and thus reduce server performance.</para>\r
</tip>\r
<para>Change logging levels by editing the configuration file \r
- <filename>/openils/conf/opensrf_core.xml</filename></para>\r
+ <filename>/openils/conf/opensrf_core.xml</filename><indexterm><primary>configuration files</primary><secondary>opensrf_core.xml</secondary></indexterm></para>\r
<para>you will want to search for lines containing <loglevel>.</para>\r
<para> the default setting for loglevel is 3 which will log <emphasis>errors</emphasis>, \r
<emphasis>warnings</emphasis> and <emphasis>information</emphasis>.</para>\r
<para>The next level is 4 which is for debugging and provides additional information \r
helpful for the debugging process.</para>\r
<para>Thus, lines with:</para>\r
- <screen><loglevel>3</loglevel></screen>\r
+ <programlisting><loglevel>3</loglevel></programlisting>\r
<para>Should be changed to:</para>\r
- <screen><loglevel>4</loglevel></screen>\r
+ <programlisting><loglevel>4</loglevel></programlisting>\r
<para>to allow debugging level logging</para>\r
<para>Other logging levels include <emphasis>0</emphasis> for no logging, \r
<emphasis>1</emphasis> for logging errors and <emphasis>2</emphasis> for logging warnings \r
<?xml version="1.0" encoding="utf-8"?>\r
<chapter xml:id="requirements" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="EN"\r
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">\r
- <info>\r
+ <info>\r
<title>System Requirements and Hardware Configurations</title>\r
- </info>\r
-\r
- <para>Evergreen is extremely scalable and can serve the need of a large range of libraries. The specific requirements and configuration of your system should be determined based on your \r
- specific needs of your organization or consortium.</para>\r
- \r
+ </info>\r
+ <para><application>Evergreen</application> is extremely scalable and can serve the need of a large range of libraries. The specific requirements and configuration of your \r
+ system should be determined based on your specific needs of your organization or consortium.</para>\r
<section xml:id="requirements_server">\r
- <info>\r
- <title>Server Minimum Requirements</title>\r
- </info> \r
- <para>The following are the base requirements setting Evergreen up on a test server:</para>\r
- <itemizedlist>\r
- <listitem><para>An available desktop, server or virtual image</para></listitem>\r
- <listitem><para>1GB RAM, or more if your server also runs a graphical desktop</para></listitem> \r
- <listitem><para>Linux Operating System</para></listitem>\r
- </itemizedlist>\r
- <tip><para>Debian and Ubuntu are the most widely used Linux distributions for installing Evergreen and most development takes place on Debian based systems. If you are new \r
- to Linux, it is strongly recommended that you install Evergreen on the latest stable server edition of Debian (<ulink url="http://www.debian.org/">http://www.debian.org/</ulink>)\r
- or Ubuntu 10.04 Server(<ulink url="http://www.ubuntu.com/">http://www.ubuntu.com/</ulink>) since the installation instructions have been tested on these distributions. Debian and Ubuntu are free distributions of Linux.</para></tip>\r
- </section> \r
- <section xml:id="hardwareconfigurations">\r
+ <info>\r
+ <title>Server Minimum Requirements</title>\r
+ </info> \r
+ <para>The following are the base requirements setting Evergreen up on a test server:</para>\r
+ <itemizedlist>\r
+ <listitem><para>An available desktop, server or virtual image<indexterm><primary>virtual image</primary></indexterm></para></listitem>\r
+ <listitem><para>1GB RAM, or more if your server also runs a graphical desktop</para></listitem> \r
+ <listitem><para><systemitem class="osname">Linux</systemitem> Operating System</para><indexterm><primary>Linux</primary></indexterm></listitem>\r
+ </itemizedlist>\r
+ <tip>\r
+ <para><systemitem class="osname">Debian</systemitem><indexterm><primary>Linux</primary><secondary>Debian</secondary></indexterm> and \r
+ <systemitem class="osname">Ubuntu</systemitem><indexterm><primary>Linux</primary><secondary>Ubuntu</secondary></indexterm> are the most widely used \r
+ <systemitem class="osname">Linux</systemitem> distributions for installing Evergreen and most development takes place on Debian based systems. If you are new \r
+ to Linux, it is strongly recommended that you install <application>Evergreen</application> on the latest stable server edition of <systemitem class="osname">Debian</systemitem> \r
+ (<ulink url="http://www.debian.org/">http://www.debian.org/</ulink>)\r
+ or <systemitem class="osname">Ubuntu 10.04</systemitem> Server(<ulink url="http://www.ubuntu.com/">http://www.ubuntu.com/</ulink>) since the installation instructions have been \r
+ tested on these distributions. <systemitem class="osname">Debian</systemitem> and <systemitem class="osname">Ubuntu</systemitem> are free distributions of \r
+ <systemitem class="osname">Linux</systemitem>.</para>\r
+ </tip>\r
+ </section> \r
+ <section xml:id="hardwareconfigurations">\r
+ <info>\r
+ <title>Server Hardware Configurations and Clustering</title><indexterm><primary>hardware</primary><secondary>clustering</secondary></indexterm>\r
+ </info>\r
+ <para>The hardware requirements for running a functional <application>Evergreen</application> server are minimal. It is also possible to scale up your evergreen configuration to be \r
+ spread your <application>Evergreen</application> resources and services over several or even many servers in a clustered approach for the purpose \r
+ of system redundancy, load balancing and downtime reduction. This allows very large \r
+ consortia to share one <application>Evergreen</application> system with hundreds of libraries with millions of records and millions of users, making the scalability of \r
+ <application>Evergreen</application> almost infinite.</para>\r
+ <para>Here are some example scenarios for networked server configurations:</para>\r
+ <itemizedlist>\r
+ <listitem><para>A small library library with 1 location, under 25,000 items and a few thousand users could easily run Evergreen on a single server \r
+ (1 machine).</para></listitem>\r
+ <listitem><para>A college or university with 1 million items and 20,000 users could run an <application>Evergreen</application> system using several servers balancing the \r
+ load on their \r
+ system by spreading services over multiple servers. It should host their <application>PostgreSQL</application><indexterm><primary>databases</primary>\r
+ <secondary>PostgreSQL</secondary></indexterm> \r
+ database on a separate server. They could also cluster the Evergreen services \r
+ strategically to minimize or eliminate any necessary downtown when upgrading Evergreen or other server software. Moreover, system redundancy will reduce the chance of \r
+ unplanned catastrophic downtime caused by system failure since <application>Evergreen</application> will be running over several machines.</para></listitem> \r
+ <listitem><para>A large library consortium with several public library systems and/or academic libraries with millions of users and items could run an \r
+ <application>Evergreen</application> \r
+ system over many servers with clusters for <application>Evergreen</application> services as well as a cluster for the Postgresql Database.</para></listitem>\r
+ </itemizedlist>\r
+ <para>The key to <application>Evergreen</application> scalability is in the <application>OpenSRF</application> configuration files \r
+ <filename>/openils/conf/opensrf.xml</filename><indexterm><primary>configuration files</primary><secondary>opensrf.xml</secondary></indexterm> and \r
+ <filename>/openils/conf/opensrf_core.xml</filename><indexterm><primary>configuration files</primary><secondary>opensrf_core.xml</secondary></indexterm>. \r
+ By configuring these files, an administrator could cluster evergreen services over multiple hosts, change the host running a specific service \r
+ or change the host of the <application>PostgreSQL</application> database.</para> \r
+\r
+ <note><para>The default configuration of <application>Evergreen</application> in the installation instructions assumes a single <systemitem class="domainname">localhost</systemitem> \r
+ server setup. For more complex \r
+ multi-server clustered configurations, some server administration and database administration experience or knowledge will be required.</para></note> \r
+ </section> \r
+ <section xml:id="requirements_staffclient">\r
+ <info>\r
+ <title>Staff Client Requirements</title>\r
+ </info>\r
+\r
+ <para> Staff terminals connect to the central database using the Evergreen staff client, available for download from \r
+ <link xlink:href="http://www.open-ils.org/downloads.php">The Evergreen download page</link>. The staff client must be installed on each staff workstation and requires at \r
+ minimum: </para>\r
+ <itemizedlist>\r
+ <listitem><para><systemitem class="osname">Windows</systemitem> (XP, Vista, or 7), <systemitem class="osname">Mac OS X</systemitem>, \r
+ or <systemitem class="osname">Linux</systemitem> operating system</para></listitem>\r
+ <listitem><para>a reliable high speed Internet connection</para></listitem>\r
+ <listitem><para>512Mb of RAM</para></listitem>\r
+ </itemizedlist>\r
+ <simplesect>\r
<info>\r
- <title>Server Hardware Configurations and Clustering</title>\r
+ <title>Barcode Scanners</title> \r
</info>\r
-<<<<<<< HEAD
- <para>The hardware requirements for running a functional Evergreen server are minimal. It is also possible to scale up your evergreen configuration to be spread your Evergreen resources and services over several or even many servers in a clustered approach for the purpose \r
-=======
- <para>The hardware requirements for running a functional Evergreen server are minimal. It is also possible\r
- to scale up your evergreen configuration to be spread your Evergreen resources and services over several or even many servers in a clustered approach for the purpose \r
->>>>>>> d7545acfb3e35c75cd8d52bf8ca16ca95df72832
- of system redundancy, load balancing and downtime reduction. This allows very large \r
- consortia to share one Evergreen system with hundreds of libraries with millions of records and millions of users, making the scalability of Evergreen almost infinite.</para>\r
- <para>Here are some example scenarios for networked server configurations:</para>\r
- <itemizedlist>\r
- <listitem><para>A small library library with 1 location, under 25,000 items and a few thousand users could easily run Evergreen on a single server \r
- (1 machine).</para></listitem>\r
- <listitem><para>A college or university with 1 million items and 20,000 users could run an Evergreen system using several servers balancing the load on their \r
- system by spreading services over multiple servers. It should host their PostgreSQL database on a separate server. They could also cluster the Evergreen services \r
- strategically to minimize or eliminate any necessary downtown when upgrading Evergreen or other server software. Moreover, system redundancy will reduce the chance of \r
- unplanned catastrophic downtime caused by system failure since Evergreen will be running over several machines.</para></listitem> \r
- <listitem><para>A large library consortium with several public library systems and/or academic libraries with millions of users and items could run an Evergreen \r
- system over many servers with clusters for Evergreen services as well as a cluster for the Postgresql Database.</para></listitem>\r
- </itemizedlist>\r
- <para>The key to Evergreen scalability is in the OpenSRF configuration files <filename>/openils/conf/opensrf.xml</filename> and \r
- <filename>/openils/conf/opensrf_core.xml</filename>. \r
- By configuring these files, an administrator could cluster evergreen services over multiple hosts, change the host running a specific service \r
- or change the host of the PostgreSQL database.</para> \r
-\r
- <note><para>The default configuration of Evergreen in the installation instructions assumes a single <emphasis>localhost</emphasis> server setup. For more complex \r
- multi-server clustered configurations, some server administration and database administration experience or knowledge will be required.</para></note> \r
- </section> \r
- \r
- <section xml:id="requirements_staffclient">\r
+ <para><application>Evergreen</application> will work with virtually any barcode scanner<indexterm><primary>barcode scanner</primary></indexterm> – \r
+ if it worked with your legacy system it should work on <application>Evergreen</application>.</para>\r
+ </simplesect>\r
+ <simplesect>\r
<info>\r
- <title>Staff Client Requirements</title>\r
+ <title>Printers</title>\r
</info>\r
- \r
- <para> Staff terminals connect to the central database using the Evergreen staff client, available for download from \r
- <link xlink:href="http://www.open-ils.org/downloads.php">The Evergreen download page</link>. The staff client must be installed on each staff workstation and requires at \r
- minimum: </para>\r
- <itemizedlist>\r
- <listitem><para>Windows (XP, Vista, or 7), Mac OS X, or Linux operating system</para></listitem>\r
- <listitem><para>a reliable high speed Internet connection</para></listitem>\r
- <listitem><para>512Mb of RAM</para></listitem>\r
- </itemizedlist>\r
- <simplesect>\r
- <info>\r
- <title>Barcode Scanners</title> \r
- </info>\r
- <para>Evergreen will work with virtually any barcode scanner – if it worked with your legacy system it should work on Evergreen.</para>\r
- </simplesect>\r
- <simplesect>\r
- <info>\r
- <title>Printers</title>\r
- </info>\r
- <para>Evergreen can use any printer configured for your terminal to print receipts, check-out slips, holds\r
- lists, etc. The single exception is spine label printing, which is still under development. Evergreen\r
- currently formats spine labels for output to a label roll printer. If you do not have a roll printer\r
- manual formatting may be required. For more on configuring receipt printers, see <link linkend="lsa-printer">Printer Settings</link>.</para> \r
- </simplesect> \r
- </section>\r
+ <para><application>Evergreen</application> can use any printer configured<indexterm><primary>printers</primary></indexterm> for your terminal to print receipts, check-out slips, holds\r
+ lists, etc. The single exception is spine label printing, which is still under development. <application>Evergreen</application>\r
+ currently formats spine labels for output to a label roll printer. If you do not have a roll printer\r
+ manual formatting may be required. For more on configuring receipt printers, see <link linkend="lsa-printer">Printer Settings</link>.</para> \r
+ </simplesect> \r
+ </section>\r
</chapter>\r