InstallationGuide » History » Version 11

Anonymous, 08/30/2007 03:52 PM

1 1 Anonymous
= Installation Guide =
2 1 Anonymous
3 1 Anonymous
This guide describes the installation procedure for ''ProCKSI''. 
4 1 Anonymous
5 4 Anonymous
 ||'''Release'''     ||procksi_8-2
6 4 Anonymous
 ||'''Environment''' ||Cluster with one head node and two compute nodes 
7 1 Anonymous
         
8 1 Anonymous
All installations must be done with ''root'' access.
9 1 Anonymous
10 1 Anonymous
11 1 Anonymous
12 1 Anonymous
13 1 Anonymous
= System Design and Requirements =
14 1 Anonymous
15 1 Anonymous
== Cluster Design ==
16 1 Anonymous
The cluster is assumed to have a ''head node'' and several ''compute nodes''. 
17 1 Anonymous
18 1 Anonymous
 * The head node runs the webserver, the file server, the central database server, the email server, and the server for the queuing system. It can be used as a compute node itself. 
19 1 Anonymous
 * The compute nodes run the calculations.
20 1 Anonymous
 
21 1 Anonymous
22 3 Anonymous
[[Image(ClusterDesign.png)]]
23 2 Anonymous
24 1 Anonymous
== Software Requirements ==
25 4 Anonymous
We are assuming the following software components to be already installed the '''head node''':
26 1 Anonymous
27 4 Anonymous
 ||'''Operating system''' ||''Centos4'' (''RHEL4'')
28 4 Anonymous
 ||'''Webserver''' 	  ||Apache2 
29 4 Anonymous
 ||'''Database'''	  ||MySQL
30 4 Anonymous
 ||'''Email server'''	  ||Postfix (SMTP) 
31 4 Anonymous
 ||'''Queuing system'''	  ||PBS torque + maui
32 1 Anonymous
33 1 Anonymous
34 4 Anonymous
The '''compute nodes''' only requires the following components:
35 1 Anonymous
36 4 Anonymous
 ||'''Operating system'''||	''Centos4'' (''RHEL4'')
37 4 Anonymous
 ||'''Queuing system  '''||	PBS torque
38 1 Anonymous
39 1 Anonymous
40 1 Anonymous
The configuration for these components will be described later in this installation guide.
41 1 Anonymous
42 1 Anonymous
43 1 Anonymous
44 1 Anonymous
= URL and Email Forwarding =
45 1 Anonymous
ProCKSI uses URL and email forwarding in order to provide a stable internet address and corresponding email addresses.
46 1 Anonymous
47 1 Anonymous
48 1 Anonymous
49 1 Anonymous
== Provider ==
50 4 Anonymous
These are data for the domain and email domain provider.
51 1 Anonymous
52 4 Anonymous
 ||'''Provider'''  ||	[http://www.planetdomain.com/ukcheap/home.jsp www.planetdomain.com/ukcheap/home.jsp]
53 4 Anonymous
 ||'''Login'''     || 	nkrasnogor
54 4 Anonymous
 ||'''Password'''  || 	[BBSRC GRANT NUMBER]
55 1 Anonymous
56 4 Anonymous
57 1 Anonymous
== Domains ==
58 4 Anonymous
ProCKSI's main domain name is [http://www.procksi.net www.procksi.net], which is redirected to [http://procksi.cs.nott.ac.uk procksi.cs.nott.ac.uk], which is an alias for [http://procksi0.cs.nott.ac.uk procksi0.cs.nott.ac.uk]. All other domain names are redirected to its main domain name.
59 1 Anonymous
60 1 Anonymous
  	
61 1 Anonymous
62 4 Anonymous
 ||'''Domain Name''' ||'''Redirected to'''                                  ||'''Expires at'''
63 4 Anonymous
 ||www.procksi.net   ||[http://procksi.cs.nott.ac.uk procksi.cs.nott.ac.uk] ||11-01-2011 
64 4 Anonymous
 ||www.procksi.org   ||[http://www.procksi.net/ www.procksi.net]            ||11-01-2011 
65 4 Anonymous
 ||www.procksi.com   ||[http://www.procksi.net/ www.procksi.net]            ||11-01-2011 
66 4 Anonymous
 ||www.procksi.info  ||[http://www.procksi.net/ www.procksi.net]            ||11-01-2008 
67 1 Anonymous
68 1 Anonymous
 
69 1 Anonymous
70 1 Anonymous
71 1 Anonymous
== DNS Settings	 ==
72 1 Anonymous
The primary and secondary DNS servers must be set as follows:
73 1 Anonymous
74 4 Anonymous
 {{{
75 4 Anonymous
 Primary	ns1.iprimus.com.au
76 4 Anonymous
 Secondary	ns2.iprimus.com.au 
77 4 Anonymous
 }}}
78 1 Anonymous
79 1 Anonymous
80 1 Anonymous
The following changes must be made manually in ''Advanced DNS settings'':
81 1 Anonymous
82 4 Anonymous
 {{{
83 4 Anonymous
 CNAME    *.procksi.net	    procksi.cs.nott.ac.uk.
84 4 Anonymous
 CNAME    *.procksi.org	    www.procksi.net.
85 4 Anonymous
 CNAME    *.procksi.com	    www.procksi.net.
86 4 Anonymous
 CNAME    *.procksi.info    www.procksi.net.
87 4 Anonymous
 }}}
88 1 Anonymous
      
89 1 Anonymous
90 1 Anonymous
91 1 Anonymous
== Email Settings ==
92 1 Anonymous
The following email addresses must be created and redirected to ''procksi@cs.nott.ac.uk'', which must be available:
93 1 Anonymous
 	
94 4 Anonymous
 ||'''Email Address'''  ||'''Redirected to'''	
95 4 Anonymous
 ||admin@procksi.net	||procksi@cs.nott.ac.uk
96 4 Anonymous
 ||develop@procksi.net	||procksi@cs.nott.ac.uk   
97 4 Anonymous
 ||info@procksi.net	||procksi@cs.nott.ac.uk
98 4 Anonymous
 ||research@procksi.net	||procksi@cs.nott.ac.uk
99 4 Anonymous
 ||pbs@procksi.net	||procksi@cs.nott.ac.uk
100 4 Anonymous
 ||webmaster@procksi.net||procksi@cs.nott.ac.uk
101 1 Anonymous
102 1 Anonymous
The following changes must be made manually in ''Advanced DNS settings:''
103 1 Anonymous
104 4 Anonymous
 {{{
105 4 Anonymous
 MX    @.procksi.net    mailhost.planetdomain.com    10
106 4 Anonymous
 }}}
107 1 Anonymous
 
108 1 Anonymous
109 1 Anonymous
110 1 Anonymous
== Domain Usage Monitoring ==
111 1 Anonymous
The usage of ProCKSI's domains is monitored. 
112 1 Anonymous
113 8 Anonymous
 ||Provider	||[http://www.sitemeter.com www.sitemeter.com] 
114 4 Anonymous
 ||Login:	||s18procksi
115 4 Anonymous
 ||Password:	||FAKUIL
116 1 Anonymous
 
117 1 Anonymous
118 1 Anonymous
All HTML documents must contain the following code in order to be tracked correctly.
119 1 Anonymous
120 4 Anonymous
 {{{
121 1 Anonymous
<!-- Site Meter -->
122 1 Anonymous
	<script type="text/javascript" src="http://s18.sitemeter.com/js/counter.js?site=s18procksi">
123 1 Anonymous
	</script>
124 1 Anonymous
	<noscript>
125 1 Anonymous
		<a href="http://s18.sitemeter.com/stats.asp?site=s18procksi" target="_top">
126 1 Anonymous
			<img	src=[http://s18.sitemeter.com/meter.asp?site=s18procksi http://s18.sitemeter.com/meter.asp?site=s18procksi]
127 1 Anonymous
    				alt="Site Meter" border="0"/>
128 1 Anonymous
		</a>
129 1 Anonymous
	</noscript>
130 1 Anonymous
131 1 Anonymous
<!-- Copyright (c)2006 Site Meter -->
132 4 Anonymous
 }}}
133 1 Anonymous
 
134 1 Anonymous
135 1 Anonymous
136 1 Anonymous
= Data Management and Exchange  =
137 4 Anonymous
The head node and all compute nodes must be able to communicate with each other and exchange data. Therefore, a common user management and shared file system is necessary.
138 1 Anonymous
139 1 Anonymous
 
140 1 Anonymous
141 1 Anonymous
142 1 Anonymous
== User Management ==
143 4 Anonymous
Make the following changes on the head node and each compute node:
144 1 Anonymous
145 4 Anonymous
 * Add a new user into ''/etc/passwd'': 
146 4 Anonymous
   {{{
147 4 Anonymous
   procksi:x:510:510:ProCKSI-Server:/home/procksi:/bin/bash
148 4 Anonymous
   }}}
149 4 Anonymous
 * Add an entry for the new user into ''/etc/shadow'' if desired: 
150 4 Anonymous
   {{{
151 4 Anonymous
   procksi:[ENCRYPTED_PASSWORD]:13483:0:99999:7:::
152 4 Anonymous
   }}}
153 4 Anonymous
 * Add a new group into ''/etc/group'', and add all users who should have access:
154 4 Anonymous
   {{{
155 4 Anonymous
   procksi:x:510:dxb
156 4 Anonymous
   }}} 
157 4 Anonymous
   The members for group procksi are now: ''procksi'', ''dxb''
158 1 Anonymous
 * Generate home directory for ''procksi''
159 1 Anonymous
  
160 1 Anonymous
161 1 Anonymous
162 1 Anonymous
== Firewall ==
163 4 Anonymous
 All network traffic using the internal (private) network is trusted and considered to be secure. So no firewall is needed on the internal network interface (''eth1'').
164 1 Anonymous
165 4 Anonymous
 * Modify ''/etc/sysconfig/iptables'' on the head node and on each compute node. [[BR]] 
166 4 Anonymous
   If ''eth1'' is on the private network, add
167 4 Anonymous
   {{{
168 4 Anonymous
   -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT
169 4 Anonymous
   }}}
170 4 Anonymous
   directly after
171 4 Anonymous
   {{{
172 4 Anonymous
    -A RH-Firewall-1-INPUT -i lo -j ACCEPT 
173 4 Anonymous
   }}}
174 4 Anonymous
 * Restart the firewall on the head node and on each compute node:
175 4 Anonymous
   {{{
176 4 Anonymous
   /sbin/service iptables restart
177 4 Anonymous
   }}}
178 1 Anonymous
179 4 Anonymous
 Changes in the firewall settings regarding the external network interface (''eth0'') will be described in other sections where necessary.
180 1 Anonymous
181 1 Anonymous
 
182 1 Anonymous
183 9 Anonymous
== DHCP Configuration ==
184 9 Anonymous
All machines obtain their IP addresses, names, etc. dynamically for the internal interface.
185 9 Anonymous
186 9 Anonymous
=== DHCP Server ===
187 10 Anonymous
Make sure that the DHCP server only responds to queries from the internal interface (ETH1).
188 10 Anonymous
Modify ''/etc/sysconfig/dhcpd'':
189 10 Anonymous
{{{
190 10 Anonymous
# Command line options here
191 10 Anonymous
DHCPDARGS=eth1
192 10 Anonymous
}}}
193 10 Anonymous
194 9 Anonymous
Modifiy ''/etc/dhcpd.conf'' on the head nodde:
195 9 Anonymous
{{{
196 9 Anonymous
#Allow to send negative acknowledgements (NAK) to clients
197 9 Anonymous
#authoritative;
198 9 Anonymous
ddns-update-style    none;
199 9 Anonymous
default-lease-time   259200;
200 9 Anonymous
201 9 Anonymous
#Allow clients with unknown MAC address to obtain an IP
202 9 Anonymous
#(useful for installing new machines)
203 9 Anonymous
boot-unknown-cliensts = true;
204 9 Anonymous
use-host-decl-names   = true;
205 9 Anonymous
206 9 Anonymous
subnet 192.168.199.0 netmask 255.255.255.0 {
207 9 Anonymous
   #Default Gateway
208 9 Anonymous
   option routers       192.168.199.10;
209 9 Anonymous
   option subnet-mask   255.255.255.0;
210 9 Anonymous
211 9 Anonymous
   #DNS Options
212 9 Anonymous
   option domain-name         "procksi.local";
213 9 Anonymous
#  option domain-name-servers 192.168.199.10;
214 9 Anonymous
215 9 Anonymous
   #NIS Options
216 9 Anonymous
#  option nis-domain    "procksi.nis";
217 9 Anonymous
#  option nis-servers   192.168.199.10;
218 9 Anonymous
219 9 Anonymous
   #Time Options
220 9 Anonymous
   option ntp-servers   128.243.21.16, 128.243.21.19;
221 9 Anonymous
222 9 Anonymous
   #Fixed IP Settings
223 9 Anonymous
   host procksi0-priv {
224 9 Anonymous
      option host-name "procksi0-priv";
225 9 Anonymous
      hardware ethernet 00:00:5A:9D:44:54;
226 9 Anonymous
      fixed-address 192.168.199.10;
227 9 Anonymous
   }
228 9 Anonymous
   host procksi1-priv {
229 9 Anonymous
      option host-name "procksi1-priv";
230 9 Anonymous
      hardware ethernet 00:15:C5:5D:89:5A;
231 9 Anonymous
      fixed-address 192.168.199.11;
232 9 Anonymous
   }
233 9 Anonymous
   host procksi2-priv {
234 9 Anonymous
      option host-name "procksi2-priv";
235 9 Anonymous
      hardware ethernet 00:15:C5:5D:B8:AC;
236 9 Anonymous
      fixed-address 192.168.199.12;
237 9 Anonymous
   }
238 9 Anonymous
  host procksi3-priv {
239 9 Anonymous
     option host-name "procksi3-priv";
240 9 Anonymous
     hardware ethernet ;
241 9 Anonymous
     fixed-address 192.168.199.13;
242 9 Anonymous
  }
243 9 Anonymous
  host procksi4-priv {
244 9 Anonymous
     option host-name "procksi4-priv";
245 9 Anonymous
     hardware ethernet 00:E0:81:48:19:80;
246 9 Anonymous
     fixed-address 192.168.199.14;
247 9 Anonymous
  }
248 9 Anonymous
249 9 Anonymous
}}}
250 9 Anonymous
251 9 Anonymous
Enable DHCP server at boottime
252 9 Anonymous
{{{
253 9 Anonymous
chkconfig dhcpd on
254 9 Anonymous
}}}
255 9 Anonymous
256 9 Anonymous
Start DHCP server
257 9 Anonymous
{{{
258 9 Anonymous
/sbin/service dhcpd start
259 9 Anonymous
}}}
260 9 Anonymous
261 9 Anonymous
=== DHCP Client ===
262 9 Anonymous
Modify ''/etc/sysconfig/network-scripts/ifcfg-eth0'' (INTERNAL INTERFACE) on each slave node and the head node:
263 9 Anonymous
{{{
264 9 Anonymous
DEVICE=eth0
265 9 Anonymous
BOOTPROTO=dhcp
266 9 Anonymous
HWADDR= [add MAC address here]
267 9 Anonymous
ONBOOT=yes
268 9 Anonymous
TYPE=Ethernet
269 9 Anonymous
}}}
270 9 Anonymous
271 9 Anonymous
272 1 Anonymous
273 1 Anonymous
== Host Name Resolution ==
274 1 Anonymous
As each node consists of two network interfaces (= multihomed host), the host name resolution must be configured correctly in order to prioritize the internal, trusted network for communication between different nodes.
275 1 Anonymous
276 4 Anonymous
 * The official hostname for each node must be set to the ''internal'' name of the machine in ''/etc/sysconfig/network''. This is an example for the head node:
277 4 Anonymous
 {{{
278 4 Anonymous
 HOSTNAME=procksi0-priv.cs.nott.ac.uk
279 4 Anonymous
 }}}
280 1 Anonymous
281 4 Anonymous
 The compute nodes must be named and configured accordingly.
282 4 Anonymous
 * Add the following to ''/etc/hosts'' on the head node:
283 4 Anonymous
 {{{
284 4 Anonymous
 127.0.0.1  procksi0-priv.cs.nott.ac.uk  procksi0-privlocalhost.localdomain  localhost
285 4 Anonymous
 }}}
286 4 Anonymous
 and alter the line for each compute node (procksi1, procksi2) accordingly.
287 4 Anonymous
 * Add the following to ''/etc/hosts'' on the head node and each compute node:
288 4 Anonymous
 {{{
289 4 Anonymous
 192.168.199.10  procksi0-priv.cs.nott.ac.uk  procksi0-priv
290 4 Anonymous
 192.168.199.11  procksi1-priv.cs.nott.ac.uk  procksi1-priv
291 4 Anonymous
 192.168.199.12  procksi2-priv.cs.nott.ac.uk  procksi2-priv
292 4 Anonymous
 }}}
293 4 Anonymous
 Edit ''/etc/host.conf'' so that local setting in ''/etc/hosts'' take precedence over DNS:
294 4 Anonymous
 {{{
295 4 Anonymous
 order hosts,bind
296 4 Anonymous
 }}}
297 4 Anonymous
298 1 Anonymous
== Data Access ==
299 1 Anonymous
 The head node hosts a RAID system of hard disks that will store all data generated by ProCKSI on all compute nodes and the head node itself. This partition must be accessible by all nodes and is exported as a network file system (NFS) therefore. Executables used by ProCKSI must be installed locally on each compute node for better performance.
300 1 Anonymous
301 4 Anonymous
 * Add the following to the end of ''/etc/exports'' on the head node (''procksi0''):
302 4 Anonymous
   {{{
303 4 Anonymous
   /home/procksi  procksi?-priv.cs.nott.ac.uk(sync,rw,no_root_squash)
304 4 Anonymous
   }}}
305 4 Anonymous
 * Add the following to the end of ''/etc/fstab'' on each compute node (''procksi1'', ''procksi2''): 
306 4 Anonymous
   {{{
307 4 Anonymous
   procksi0:/home/procksi       /home/procksi       nfs  bg,hard,intr  0 0
308 4 Anonymous
   procksi0:/usr/local/procksi	/usr/local/procksi  nfs  bg,hard,intr  0 0
309 4 Anonymous
   }}}
310 11 Anonymous
 * Tune NFS by increasing the number of nfsd threads. Modify ''/etc/sysconfig/nfs'':
311 11 Anonymous
   {{{
312 11 Anonymous
   RPCNFSDCOUNT=32
313 11 Anonymous
   }}}
314 4 Anonymous
 * Make the NFS daemons start at bootup. Enter at the command line of the head node and each compute node: 
315 4 Anonymous
   {{{
316 4 Anonymous
   /sbin/chkconfig  nfs  on
317 4 Anonymous
   }}}
318 4 Anonymous
 * Start the NFS daemons. Enter at the command line on the head node and on each compute node:
319 4 Anonymous
   {{{
320 4 Anonymous
   /sbin/service  nfsd  start
321 4 Anonymous
   }}}
322 4 Anonymous
 * Generate the following temp directory on the head node and each compute node, at best on a separate partition:
323 4 Anonymous
   {{{ 
324 4 Anonymous
   mkdir /scratch
325 4 Anonymous
   }}}
326 1 Anonymous
327 1 Anonymous
328 1 Anonymous
== Time Synchronisation ==
329 4 Anonymous
 The system time on all nodes must be synchronized as 
330 4 Anonymous
 a) data is written/read on/from a common, shared file system or even expires after a certain period of time and must be deleted, and 
331 4 Anonymous
 b) system logs are maintained independently but entries must be able to be associated with each other.
332 1 Anonymous
333 4 Anonymous
 * Add your own time server to ''/etc/ntp/ntpservers'': 
334 4 Anonymous
   {{{   
335 4 Anonymous
   marian.cs.nott.ac.uk
336 4 Anonymous
   }}}
337 4 Anonymous
 * Modify ''/etc/ntp.conf'' (at the of the file):
338 4 Anonymous
   {{{
339 4 Anonymous
   server    marian.cs.nott.ac.uk
340 4 Anonymous
   restrict  marian.cs.nott.ac.uk  mask 255.255.255.255  nomodify  notrap  noquery
341 4 Anonymous
   }}}
342 4 Anonymous
 * Make the NTP daemon start at bootup. Enter at the command line:
343 4 Anonymous
   {{{
344 4 Anonymous
   /sbin/chkconfig  ntpd  on
345 4 Anonymous
   }}}
346 4 Anonymous
 * Start the NTP daemon. Enter at the command line:
347 4 Anonymous
   {{{
348 4 Anonymous
   /sbin/service ntpd start
349 4 Anonymous
   }}}
350 1 Anonymous
351 1 Anonymous
352 1 Anonymous
353 1 Anonymous
= Queuing System =
354 1 Anonymous
 The queueing system (resource manager) is the heart of the distributed computing on a cluster. It consists of three parts, the server, the scheduler, and the machine-oriented mini-server (MOM) executing the jobs.
355 1 Anonymous
356 1 Anonymous
 
357 1 Anonymous
358 1 Anonymous
 We are assuming the following configuration:
359 1 Anonymous
360 1 Anonymous
 ||PBS TORQUE|| version 2.1.6           ||server, basic scheduler, mom 
361 1 Anonymous
 ||MAUI      || version 3.2.6.p18	||scheduler
362 1 Anonymous
363 1 Anonymous
364 1 Anonymous
 The sources can be obtained from:
365 1 Anonymous
366 1 Anonymous
 ||PBS TORQUE ||http://www.clusterresources.com/pages/products/torque-resource-manager.php
367 1 Anonymous
 ||MAUI       ||http://www.clusterresources.com/pages/products/maui-cluster-scheduler.php
368 1 Anonymous
 
369 1 Anonymous
370 1 Anonymous
 The install directories for ''TORQUE'' and ''MAUI'' will be:
371 1 Anonymous
372 1 Anonymous
 ||PBS TORQUE ||''/usr/local/torque''
373 1 Anonymous
 ||MAUI       ||''/usr/local/maui''
374 1 Anonymous
 
375 1 Anonymous
376 1 Anonymous
377 1 Anonymous
== TORQUE ==
378 1 Anonymous
379 1 Anonymous
=== Register new services ===
380 1 Anonymous
  Edit ''/etc/services'' and add at the end:
381 4 Anonymous
  {{{
382 1 Anonymous
  # PBS/Torque services
383 1 Anonymous
384 1 Anonymous
  pbs           15001/tcp    # pbs_server
385 1 Anonymous
  pbs           15001/udp    # pbs_server
386 1 Anonymous
  pbs_mom       15002/tcp    # pbs_mom <-> pbs_server
387 1 Anonymous
  pbs_mom       15002/udp    # pbs_mom <-> pbs_server
388 1 Anonymous
  pbs_resmom    15003/tcp    # pbs_mom resource management
389 1 Anonymous
  pbs_resmom    15003/udp    # pbs_mom resource management
390 1 Anonymous
  pbs_sched     15004/tcp    # pbs scheduler (pbs_sched)
391 1 Anonymous
  pbs_sched     15004/udp    # pbs scheduler (pbs_sched)
392 4 Anonymous
  }}}
393 1 Anonymous
  
394 1 Anonymous
395 1 Anonymous
  
396 1 Anonymous
397 1 Anonymous
398 1 Anonymous
=== Setup and Configuration on the Head Node ===
399 4 Anonymous
Extract and build the distribution TORQUE on the head node. Configure server, monitor and clients to use secure file transfer (scp).
400 4 Anonymous
{{{
401 4 Anonymous
export TORQUECFG=/usr/local/torque
402 4 Anonymous
tar -xzvf TORQUE.tar.gz
403 4 Anonymous
cd TORQUE
404 4 Anonymous
}}}
405 4 Anonymous
Configuration for a 64bit machine with the following compiler options:
406 4 Anonymous
{{{
407 4 Anonymous
FFLAGS   = “-m64 -march=nocona -O3 -fPIC"
408 4 Anonymous
CFLAGS   = “-m64 -march=nocona -O3 -fPIC"
409 4 Anonymous
CXXFLAGS = “-m64 -march=nocona -O3 -fPIC"
410 4 Anonymous
LDFLAGS	 = “-L/usr/local/lib -L/usr/local/lib64"
411 4 Anonymous
}}}
412 4 Anonymous
Configure, build, and install:
413 4 Anonymous
{{{
414 4 Anonymous
./configure  --enable-server  --enable-monitor  --enable-clients
415 4 Anonymous
             --with-server-home=$TORQUECFG  --with-server-name
416 4 Anonymous
             --with-rcp=scp  --disable-filesync
417 4 Anonymous
make
418 4 Anonymous
make install 
419 4 Anonymous
}}}
420 1 Anonymous
 
421 1 Anonymous
422 4 Anonymous
If not configures otherwise, binaries are installed in ''/usr/local/bin'' and ''/usr/local/sbin''. You should have these directories included in your path. But you can configure TORQUE to have the binaries in the default system directory with
423 4 Anonymous
{{{
424 1 Anonymous
./configure --bindir=/usr/bin --sbindir=/usr/sbin
425 4 Anonymous
}}}
426 1 Anonymous
 
427 1 Anonymous
428 4 Anonymous
Initialise/configure the queueing system's server daemon (pbs_server):
429 4 Anonymous
{{{
430 4 Anonymous
pbs_server -t create
431 4 Anonymous
}}}
432 1 Anonymous
433 4 Anonymous
Set the PBS operator and manager (must be a valid user name). 
434 4 Anonymous
{{{
435 4 Anonymous
qmgr
436 4 Anonymous
> set server_name = procksi0-priv.cs.nott.ac.uk
437 4 Anonymous
> set server scheduling = true
438 4 Anonymous
> set server operators += “root@procksi.cs.nott.ac.uk"
439 4 Anonymous
> set server operators += “procksi@ procksi.cs.nott.ac.uk"
440 4 Anonymous
> set server managers  += “root@ procksi.cs.nott.ac.uk"
441 4 Anonymous
> set server managers  += “procksi@ procksi.cs.nott.ac.uk"
442 4 Anonymous
}}}
443 1 Anonymous
444 4 Anonymous
Allow only ''procksi'' and ''root'' to submit jobs into the queue:
445 4 Anonymous
{{{
446 4 Anonymous
> set server acl_users = “root, procksi" 
447 4 Anonymous
> set server acl_user_enable = true
448 4 Anonymous
}}}
449 1 Anonymous
 
450 4 Anonymous
Set the default queue to ''batch''
451 4 Anonymous
{{{
452 4 Anonymous
> set server default_queue=batch
453 4 Anonymous
}}}
454 1 Anonymous
 
455 1 Anonymous
456 4 Anonymous
Set email address for email that is sent by PBS:
457 4 Anonymous
{{{
458 4 Anonymous
> set mail_from = pbs@procksi.net	
459 4 Anonymous
}}}
460 1 Anonymous
 
461 1 Anonymous
462 4 Anonymous
Allow submissions from compute hosts (only):
463 4 Anonymous
{{{
464 4 Anonymous
> set server allow_node_submit = true
465 4 Anonymous
> set server submit_hosts = procksi0-priv.cs.nott.ac.uk
466 4 Anonymous
                            procksi1-priv.cs.nott.ac.uk
467 4 Anonymous
                            procksi2-priv.cs.nott.ac.uk
468 4 Anonymous
}}}
469 1 Anonymous
 
470 1 Anonymous
471 4 Anonymous
Restrict nodes that can access the PBS server:
472 1 Anonymous
{{{
473 4 Anonymous
> set server acl_hosts = procksi0-priv.cs.nott.ac.uk
474 4 Anonymous
                         procksi1-priv.cs.nott.ac.uk                           
475 4 Anonymous
                         procksi2-priv.cs.nott.ac.uk
476 4 Anonymous
> set acl_host_enable = true
477 1 Anonymous
}}}
478 4 Anonymous
And set in ''torque.cfg'' in order to use the internal interface:
479 4 Anonymous
{{{
480 4 Anonymous
SERVERHOST              procksi0-priv.cs.nott.ac.uk
481 4 Anonymous
ALLOWCOMPUTEHOSTSUBMIT  true
482 4 Anonymous
}}}
483 1 Anonymous
 
484 1 Anonymous
485 4 Anonymous
Configure the main queue ''batch'':
486 4 Anonymous
{{{
487 4 Anonymous
> create queue batch queue_type=execution
488 4 Anonymous
> set queue batch started=true
489 4 Anonymous
> set queue batch enabled=true
490 4 Anonymous
> set queue batch resources_default.nodes=1
491 4 Anonymous
}}}
492 1 Anonymous
493 4 Anonymous
Configure queue ''test ''accordingly''. 
494 1 Anonymous
495 4 Anonymous
Configure default node to be used (see below):
496 4 Anonymous
{{{
497 4 Anonymous
> set server default_node = slave
498 4 Anonymous
}}}
499 1 Anonymous
500 4 Anonymous
Specify all compute nodes to be used by creating/editing ''$TORQUECFG/server_priv/nodes.'' This may include the same machine where pbs_server will run. If the compute nodes have more than one processor, just add np=X after the name with X being the number of processors. Add node attributes so that a subset of nodes can be requested during the submission stage.
501 1 Anonymous
{{{
502 4 Anonymous
procksi0-priv.cs.nott.ac.uk  np=1  procksi  head
503 4 Anonymous
procksi1-priv.cs.nott.ac.uk  np=2  procksi  slave  slave1
504 4 Anonymous
procksi2-priv.cs.nott.ac.uk  np=2  procksi  slave  slave2
505 1 Anonymous
}}}
506 1 Anonymous
507 4 Anonymous
Although the head node (''procksi0'') has two processors as well, we only allow one processor to be used for the queueing system as the other processor will be used for handling all frontend communication and I/O. (Make sure that hyperthreading technology is disabled on the head node and all compute nodes!)
508 1 Anonymous
509 1 Anonymous
 
510 4 Anonymous
Build packages for the compute nodes and copy them to each compute node:
511 4 Anonymous
{{{
512 4 Anonymous
cd $TORQUE
513 4 Anonymous
make packages
514 4 Anonymous
scp torque-package-mom-linux-i686.sh     procksi1|procksi2
515 4 Anonymous
scp torque-package-clients-linux-i686.sh procksi1|procksi2
516 4 Anonymous
}}}
517 1 Anonymous
518 1 Anonymous
519 1 Anonymous
=== Setup and Configuration on the Compute Nodes ===
520 4 Anonymous
Install prepared packes. A directory similar to ''$TORQUECFG'' will be automatically created.
521 4 Anonymous
{{{
522 4 Anonymous
psh compute torque-package-mom-linux-i686.sh -install
523 4 Anonymous
psh compute torque-package-clients-linux-i686.sh -install
524 4 Anonymous
}}}
525 1 Anonymous
526 1 Anonymous
 
527 4 Anonymous
Check if the nodes know the head node
528 4 Anonymous
{{{
529 4 Anonymous
$TORQUECFG/server_name
530 4 Anonymous
#procksi0-priv.cs.nott.ac.uk
531 4 Anonymous
}}}
532 1 Anonymous
533 4 Anonymous
Configure the compute nodes by creating/editing ''$TORQUECFG/mom_priv/config''. The first line specifies the PBS server, the second line specifies hosts which can be trusted to access mom services as non-root, and the last line allows to copy data via NFS without using SCP.
534 1 Anonymous
535 1 Anonymous
{{{
536 4 Anonymous
$pbsserver   procksi0-priv.cs.nott.ac.uk
537 4 Anonymous
$loglevel    255
538 4 Anonymous
$restricted  procksi?-priv.cs.nott.ac.uk
539 4 Anonymous
$usecp       procksi0-priv.cs.nott.ac.uk:/home/procksi  /home/procksi
540 1 Anonymous
}}}
541 1 Anonymous
542 4 Anonymous
Start the queueing system (manually) in the correct order:
543 4 Anonymous
 * Start the mom:
544 4 Anonymous
 {{{
545 4 Anonymous
 /usr/local/sbin/pbs_mom
546 4 Anonymous
 }}}
547 4 Anonymous
 * Kill the server:
548 4 Anonymous
 {{{
549 4 Anonymous
 /usr/local/sbin/qterm -t quick
550 4 Anonymous
 }}}
551 4 Anonymous
 * Start the server:
552 4 Anonymous
 {{{ 
553 4 Anonymous
 /usr/local/sbin/pbs_server
554 4 Anonymous
 }}}	
555 4 Anonymous
 * Start the scheduler:		
556 4 Anonymous
 {{{
557 4 Anonymous
 /usr/local/sbin/pbs_sched
558 4 Anonymous
 }}} 
559 1 Anonymous
560 4 Anonymous
If you want to use MAUI as the final scheduler, keep in mind to kill ''pbs_sched'' after testing the TORQURE installation.
561 1 Anonymous
562 1 Anonymous
563 4 Anonymous
Check that all nodes are properly configured and correctly reporting
564 4 Anonymous
{{{
565 4 Anonymous
qstat  -q
566 4 Anonymous
pbsnodes -a
567 4 Anonymous
}}}
568 1 Anonymous
569 1 Anonymous
 
570 1 Anonymous
571 1 Anonymous
572 1 Anonymous
=== Prologue and Epilogue Scripts ===
573 4 Anonymous
The ''prologue'' script is executed just before the submitted job starts. Here, it generates a unique temp directory for each job in ''/scratch''. It must be installed on each node:
574 4 Anonymous
{{{
575 4 Anonymous
cp $PROCKSI/install/prologue $TORQUECFG/mom_priv
576 4 Anonymous
chmod 500 $TORQUECFG/mom_priv/prologue
577 4 Anonymous
}}}
578 1 Anonymous
 
579 4 Anonymous
The ''epilogue'' script is executed right after the submitted job has ended. Here, it deletes the job's temp directory from ''/scratch.'' It must be installed on each node:
580 4 Anonymous
{{{
581 4 Anonymous
cp $PROCKSI/install/epilogue $TORQUECFG/mom_priv
582 4 Anonymous
chmod 500 $TORQUECFG/mom_priv/epilogue
583 4 Anonymous
}}}
584 4 Anonymous
  
585 1 Anonymous
586 1 Anonymous
587 1 Anonymous
== MAUI ==
588 1 Anonymous
589 1 Anonymous
=== Register new services ===
590 4 Anonymous
Edit ''/etc/services'' and add at the end:
591 1 Anonymous
{{{ 
592 4 Anonymous
# PBS/MAUI services
593 4 Anonymous
pbs_maui  42559/tcp    # pbs scheduler (maui)
594 4 Anonymous
pbs_maui  42559/udp    # pbs scheduler (maui)
595 1 Anonymous
}}}
596 1 Anonymous
597 1 Anonymous
598 1 Anonymous
=== Setup and Configuration on the Head Node ===
599 4 Anonymous
Extract and build the distribution MAUI.
600 4 Anonymous
{{{
601 4 Anonymous
export MAUIDIR=/usr/local/maui
602 4 Anonymous
tar -xzvf MAUI.tar.gz
603 4 Anonymous
cd TORQUE
604 4 Anonymous
}}}
605 1 Anonymous
606 4 Anonymous
Configuration for a 64bit machine with the following compiler options:
607 4 Anonymous
{{{
608 4 Anonymous
FFLAGS   = “-m64 -march=nocona -O3 -fPIC"
609 4 Anonymous
CFLAGS   = “-m64 -march=nocona -O3 -fPIC"
610 4 Anonymous
CXXFLAGS = “-m64 -march=nocona -O3 -fPIC"
611 4 Anonymous
LDFLAGS	 = “-L/usr/local/lib -L/usr/local/lib64"
612 4 Anonymous
}}}
613 1 Anonymous
614 4 Anonymous
Configure, build, and install:
615 4 Anonymous
{{{
616 4 Anonymous
./configure --with-pbs=$TORQUECFG --with-spooldir=$MAUIDIR
617 4 Anonymous
make
618 4 Anonymous
make install 
619 4 Anonymous
}}}
620 1 Anonymous
621 4 Anonymous
Fine-tune MAUI in $''MAUIDIR/maui.cfg'':
622 1 Anonymous
{{{
623 4 Anonymous
SERVERHOST            procksi0-priv.cs.nott.ac.uk
624 1 Anonymous
625 4 Anonymous
# primary admin must be first in list
626 4 Anonymous
ADMIN1                procksi
627 4 Anonymous
ADMIN1                root
628 1 Anonymous
        
629 4 Anonymous
# Resource Manager Definition
630 4 Anonymous
RMCFG[PROCKSI0-PRIV.CS.NOTT.AC.UK]		
631 4 Anonymous
TYPE=PBS 			
632 4 Anonymous
HOST=PROCKSI0-PRIV.CS.NOTT.AC.UK 		
633 4 Anonymous
PORT=15001
634 4 Anonymous
EPORT=15004	[CAN BE ALTERNATIVELY: 15017 - TRY!!!]
635 4 Anonymous
SERVERPORT  42559
636 4 Anonymous
SERVERMODE  NORMAL
637 1 Anonymous
638 4 Anonymous
# Node Allocation:
639 4 Anonymous
NODEALLOCATIONPOLICY  PRIORITY
640 4 Anonymous
NODECFG[DEFAULT] PRIORITY='- JOBCOUNT'
641 1 Anonymous
}}}
642 1 Anonymous
643 4 Anonymous
Configure attributes of compute nodes:
644 4 Anonymous
{{{
645 4 Anonymous
qmgr
646 4 Anonymous
> set node procksi0.cs.nott.ac.uk properties = “procksi, head"
647 4 Anonymous
> set node procksi1.cs.nott.ac.uk properties = “procksi, slave"
648 4 Anonymous
> set node procksi0.cs.nott.ac.uk properties = “procksi, slave"
649 4 Anonymous
}}}
650 1 Anonymous
651 4 Anonymous
Request job to be run on specific nodes (on submission):
652 1 Anonymous
653 4 Anonymous
 * Run on any compute node: 	
654 4 Anonymous
 {{{
655 4 Anonymous
 qsub -q batch -l nodes=1:procksi
656 4 Anonymous
 }}}
657 4 Anonymous
 * Run on any slave node:	
658 4 Anonymous
 {{{
659 4 Anonymous
 qsub -q batch -l nodes=1:slave
660 4 Anonymous
 }}}
661 4 Anonymous
 * Run on head node:		
662 4 Anonymous
 {{{
663 4 Anonymous
 qsub -q batch -l nodes=1:head
664 4 Anonymous
 }}}
665 1 Anonymous
666 4 Anonymous
Start the MAUI scheduler manually. Make sure that pbs_sched is not running any longer.
667 1 Anonymous
668 4 Anonymous
 * Start the scheduler:
669 4 Anonymous
 {{{
670 4 Anonymous
 /usr/local/sbin/maui
671 4 Anonymous
 }}}
672 1 Anonymous
 
673 1 Anonymous
674 4 Anonymous
Make the entire queueing system start at bootup:
675 4 Anonymous
{{{
676 4 Anonymous
cp /home/procksi/latest/install/pbs_head-node /etc/init.d/pbs 
677 4 Anonymous
/sbin/chkconfig --add pbs
678 4 Anonymous
/sbin/chkconfig pbs on
679 4 Anonymous
}}}
680 1 Anonymous
681 1 Anonymous
682 1 Anonymous
=== Setup and Configuration on the Compute Nodes ===
683 4 Anonymous
__Attention:__ 	If the head node is a compute node itself, do NOT proceed with the following steps as the head node was configured in the previous step!
684 1 Anonymous
    
685 1 Anonymous
686 4 Anonymous
Make the entire queueing system start at bootup:
687 4 Anonymous
{{{
688 4 Anonymous
cp /home/procksi/latest/install/pbs_compute-node /etc/init.d/pbs
689 4 Anonymous
/sbin/chkconfig --add pbs
690 4 Anonymous
/sbin/chkconfig pbs on
691 4 Anonymous
}}}
692 1 Anonymous
693 1 Anonymous
694 1 Anonymous
= Cluster Monitoring =
695 1 Anonymous
696 1 Anonymous
== Ganglia ==
697 4 Anonymous
“Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids."
698 1 Anonymous
699 4 Anonymous
See [http://ganglia.sourceforge.net/ http://ganglia.sourceforge.net] for information on requirements, configuration and installation.
700 6 Anonymous
701 6 Anonymous
Install Ganglia into ''/usr/local/ganglia'', its web frontend into ''/usr/local/ganglia/html/', and its databases into ''/usr/local/ganglia/rrds/'.
702 1 Anonymous
  
703 6 Anonymous
=== Further Customisation ===
704 6 Anonymous
In order to display more fine-grained time intervals, edit the following files in ''/usr/local/ganglia/html/'':
705 6 Anonymous
 * '''header.php'''
706 6 Anonymous
 {{{
707 6 Anonymous
  if (!$physical) {
708 6 Anonymous
   $context_ranges[]="10 minutes";
709 6 Anonymous
   $context_ranges[]="20 minutes";
710 6 Anonymous
   $context_ranges[]="30 minutes";
711 6 Anonymous
   $context_ranges[]="1 hour";
712 6 Anonymous
   $context_ranges[]="2 hours";
713 6 Anonymous
   $context_ranges[]="4 hours";
714 6 Anonymous
   $context_ranges[]="8 hours";
715 6 Anonymous
   $context_ranges[]="12 hours";
716 6 Anonymous
   $context_ranges[]="1 day";
717 6 Anonymous
   $context_ranges[]="2 days";
718 6 Anonymous
   $context_ranges[]="week";
719 6 Anonymous
   $context_ranges[]="month";
720 6 Anonymous
   $context_ranges[]="year";
721 6 Anonymous
 }}}
722 6 Anonymous
723 6 Anonymous
 * '''get_context.php'''
724 6 Anonymous
 {{{
725 6 Anonymous
  switch ($range) {
726 6 Anonymous
   case "10 minutes":   $start = -600; break;
727 6 Anonymous
   case "20 minutes":   $start = -1200; break;
728 6 Anonymous
   case "30 minutes":   $start = -1800; break;
729 6 Anonymous
   case "1 hour":       $start = -3600; break;
730 6 Anonymous
   case "2 hours":      $start = -7200; break;
731 6 Anonymous
   case "4 hours":      $start = -14400; break;
732 6 Anonymous
   case "8 hours":      $start = -28800; break;
733 6 Anonymous
   case "12 hours":     $start = -43200; break;
734 6 Anonymous
   case "1 day":        $start = -86400; break;
735 6 Anonymous
   case "2 days":       $start = -172800; break;
736 6 Anonymous
   case "week":         $start = -604800; break;
737 6 Anonymous
   case "month":        $start = -2419200; break;
738 6 Anonymous
   case "year":         $start = -31449600; break;
739 6 Anonymous
 }}}
740 1 Anonymous
741 1 Anonymous
742 1 Anonymous
== !JobMonarch ==
743 4 Anonymous
!JobMonarch is an add-on to Ganglia which provides PBS job monitoring through the web browser.
744 1 Anonymous
745 4 Anonymous
See [http://subtrac.rc.sara.nl/oss/jobmonarch/wiki/Documentation http://subtrac.rc.sara.nl/oss/jobmonarch/wiki/Documentation] for information on requirements, configuration and installation.
746 1 Anonymous
747 1 Anonymous
748 1 Anonymous
= Additional Software  =
749 1 Anonymous
750 1 Anonymous
== PERL Libraries ==
751 1 Anonymous
Please make sure that the following libraries are installed in the official library directory and install all depending libraries, if necessary. For ''Image::Magick'', use the corresponding libraries that come with the main installation.
752 1 Anonymous
753 1 Anonymous
754 1 Anonymous
||Error[[BR]]Image::Magick[[BR]] Digest::MD5[[BR]] Config::Simple[[BR]] DBI[[BR]] CGI[[BR]] CGI::Session[[BR]] Data::!FormValidator[[BR]] HTML::Template[[BR]] HTML::Template::Pro[[BR]] MIME::Lite[[BR]] !FreezeThaw[[BR]] Storable||  0.17008[[BR]]6.0.7[[BR]]2.36[[BR]]4.58[[BR]]1.53[[BR]]3.25[[BR]]4.13[[BR]]4.40[[BR]]2.8[[BR]]0.64[[BR]]3.01[[BR]]0.43[[BR]]2.12  ||Time::Format[[BR]]IMAP::Client[[BR]]File::Copy[[BR]] WWW::Mechanize[[BR]]Time::Local[[BR]]Clone[[BR]]SOAP::Lite[[BR]]||  1.02[[BR]]2.2.9[[BR]]2.08[[BR]]1.20[[BR]]1.13[[BR]]0.22[[BR]]0.69  ||
755 1 Anonymous
756 1 Anonymous
	
757 1 Anonymous
PERL modules are installed best with the CPAN shell:
758 4 Anonymous
{{{
759 4 Anonymous
perl -MCPAN -eshell
760 4 Anonymous
}}}
761 1 Anonymous
762 1 Anonymous
763 1 Anonymous
764 1 Anonymous
765 1 Anonymous
== Third Party Executables for ProCKSI ==
766 1 Anonymous
Generate the following directories on each compute node to contain important executables:
767 4 Anonymous
{{{
768 4 Anonymous
/usr/local/procksi/Cluster/
769 5 Anonymous
/usr/local/procksi/DaliLite
770 4 Anonymous
/usr/local/procksi/MaxCMO
771 5 Anonymous
/usr/local/procksi/MolScript
772 4 Anonymous
}}}
773 1 Anonymous
774 1 Anonymous
For the following installation of the ProCKSI server components, the following executables must be present:
775 4 Anonymous
{{{
776 4 Anonymous
/usr/local/procksi/Cluster/qclust
777 5 Anonymous
/usr/local/procksi/DaliLite/DaliLite
778 4 Anonymous
/usr/local/procksi/MaxCMO/ProtCompVNS
779 4 Anonymous
/usr/local/procksi/molauto
780 4 Anonymous
/usr/local/procksi/molscript
781 4 Anonymous
}}}
782 1 Anonymous
783 1 Anonymous
784 1 Anonymous
== Image Software ==
785 1 Anonymous
786 1 Anonymous
=== Installation ===
787 4 Anonymous
   * Install ''!ImageMagick'' from [http://www.imagemagick.org www.imagemagick.org] if not already installed.
788 4 Anonymous
   * Install ''!MolScript'' from [http://www.avatar.se/molscript www.avatar.se/molscript]. Please link the MesaGL libraries instead of the OpenGL libraries; a modified makefile can be found under [source:ProCKSI/install/Makefile.molscript]
789 1 Anonymous
 
790 1 Anonymous
791 1 Anonymous
792 1 Anonymous
=== Virtual Display  ===
793 1 Anonymous
!MolScript needs an X display in order to generate images (jpg, gif, …). Its possible to use the console X display for the OpenGL bits even if it is not logged in. Therefore, ''procksi'' must be authenticated and allowed to use this X display virtually.
794 1 Anonymous
795 1 Anonymous
796 1 Anonymous
797 1 Anonymous
On each node copy magic cookie file for x-authentication:
798 4 Anonymous
{{{
799 4 Anonymous
cp /home/procksi/latest/install/:0.Xauth /var/gdm/:0.Xauth
800 4 Anonymous
}}}
801 1 Anonymous
802 1 Anonymous
On each node copy scripts for automatic x-authentication:
803 4 Anonymous
{{{
804 4 Anonymous
cp /home/procksi/latest/install/procksixauth /usr/local/sbin/procksixauth
805 4 Anonymous
cp /home/procksi/latest/install/:0 /etc/X11/gdm/Init/:0
806 4 Anonymous
}}}
807 1 Anonymous
808 1 Anonymous
Restart the X display manager for the changes to take effect:
809 4 Anonymous
{{{
810 4 Anonymous
/usr/sbin/gdm-restart
811 4 Anonymous
}}}
812 1 Anonymous
813 1 Anonymous
814 4 Anonymous
The virtual X display can be used with unix socket '':0'', e.g.:
815 4 Anonymous
{{{
816 4 Anonymous
molauto protein.pdb | DISPLAY=unix:0.0 molscript -jpeg -out protein.jpeg
817 4 Anonymous
}}}
818 1 Anonymous
819 1 Anonymous
820 1 Anonymous
= ProCKSI Server Component =
821 1 Anonymous
822 1 Anonymous
== Installation and Basic Configuration ==
823 1 Anonymous
This section describes the installation and configuration of the ProCKSI server component. This includes the configuration of the web server and the database.
824 1 Anonymous
825 1 Anonymous
The server component will be installed into the home directory of the user ''procksi''. Therefore, make sure that it is on a separate partition / hard disk with much space. In the best case, this will be a RAID system.
826 1 Anonymous
827 1 Anonymous
Get the latest release of the server component, referred to in the following as ''RELEASE'', and extract it into ''/home/procksi/RELEASE.'' 
828 4 Anonymous
{{{
829 4 Anonymous
tar -xvzf RELEASE.tgz
830 4 Anonymous
}}}
831 1 Anonymous
832 1 Anonymous
Create a softlink from ''RELEASE'' to a generic directory ''/home/procksi/latest''. This will be accessed by the web server:
833 4 Anonymous
{{{
834 4 Anonymous
ln -s /home/procksi/RELEASE /home/procksi/latest
835 4 Anonymous
}}}
836 1 Anonymous
837 1 Anonymous
In order to test new versions, referred in the following as ''TEST'', before taking them officially online, create a softlink from ''TEST'' to a generic directory ''/home/procksi/test''. This will be accessed by the web server:
838 4 Anonymous
{{{
839 4 Anonymous
ln -s /home/procksi/TEST /home/procksi/test
840 4 Anonymous
}}}
841 1 Anonymous
842 1 Anonymous
In case that you want to bring the test version online, just delete the softlinks and repeat the previous steps for the new release. Please make sure that always both softlinks exist!
843 1 Anonymous
844 1 Anonymous
Change into the administrative directory and run the installation script. Change the server settings, database settings and directory settings if necessary.
845 4 Anonymous
{{{
846 4 Anonymous
cd /home/procksi/latest/admin
847 4 Anonymous
./configure.pl
848 4 Anonymous
}}}
849 1 Anonymous
850 1 Anonymous
851 1 Anonymous
== Database Configuration ==
852 1 Anonymous
Make sure that the MySQL daemon is running, and that it will start at boot time:
853 4 Anonymous
{{{
854 4 Anonymous
/sbin/service mysqld start
855 4 Anonymous
/sbin/chkconfig --add mysqld
856 4 Anonymous
/sbin/chkconfig mysqld on
857 4 Anonymous
}}}
858 1 Anonymous
859 1 Anonymous
Make sure that you have access to the MySQL database management as ''root'' and login as user ''root ''with the corresponding password:
860 4 Anonymous
{{{
861 4 Anonymous
mysql -u root -p
862 4 Anonymous
}}}
863 1 Anonymous
864 1 Anonymous
Create new mysql users ''procksi_user ''and ''procksi_admin'':
865 4 Anonymous
{{{
866 4 Anonymous
USE mysql;
867 4 Anonymous
INSERT INTO user SET host='localhost', user='procksi_user', password=PASSWORD('''password_procksi_user''');
868 4 Anonymous
INSERT INTO user SET host='localhost', user='procksi_admin', password=PASSWORD('''password_procksi_admin''');
869 4 Anonymous
FLUSH PRIVILEGES;
870 4 Anonymous
}}}
871 1 Anonymous
872 4 Anonymous
Repeat these steps analogously for ''procksi0-priv'', ''procksi1-priv'', and ''procksi2-priv.''
873 1 Anonymous
874 1 Anonymous
875 1 Anonymous
876 1 Anonymous
Create a new database:
877 4 Anonymous
{{{
878 4 Anonymous
CREATE DATABASE procksi_latest;
879 4 Anonymous
}}}
880 1 Anonymous
881 1 Anonymous
882 1 Anonymous
Give privileges to users  ''procksi_user ''and ''procksi_admin'' for all compute nodes:
883 4 Anonymous
{{{
884 4 Anonymous
GRANT ALL ON procksi_latest.* TO procksi_admin@localhost WITH GRANT OPTION;
885 4 Anonymous
GRANT SELECT, UPDATE, INSERT, DELETE ON procksi_latest.* TO procksi_user@localhost;
886 4 Anonymous
GRANT ALL ON procksi_latest.* TO procksi_admin@procksi0.cs.nott.ac.uk WITH GRANT OPTION;
887 4 Anonymous
GRANT SELECT, UPDATE, INSERT, DELETE ON procksi_latest.* TO procksi_user@procksi0.cs.nott.ac.uk;
888 4 Anonymous
GRANT SELECT, UPDATE, INSERT, DELETE ON procksi_latest.* TO procksi_user@procksi1.cs.nott.ac.uk;
889 4 Anonymous
GRANT SELECT, UPDATE, INSERT, DELETE ON procksi_latest.* TO procksi_user@procksi2.cs.nott.ac.uk;
890 4 Anonymous
FLUSH PRIVILEGES;
891 4 Anonymous
}}}
892 1 Anonymous
893 1 Anonymous
If you change the password for ''procksi_user'', please make sure that you also change it in ''/home/procksi/latest/config/main.ini''
894 1 Anonymous
895 1 Anonymous
Import the main database ''procksi_latest'' from the backup given in ''/home/procksi/RELEASE/admin'':
896 4 Anonymous
{{{
897 4 Anonymous
msysql -u procksi_admin -p procksi_latest < procksi_latest.sql
898 4 Anonymous
}}}
899 1 Anonymous
900 1 Anonymous
In order to create a database ''procksi_test'' for the test version, repeat the previous steps and set the privileges accordingly.
901 1 Anonymous
   
902 1 Anonymous
903 1 Anonymous
904 1 Anonymous
== Web Server Configuration ==
905 1 Anonymous
Make the following changes to the Apache configuration file (''/etc/httpd/conf/httpd.conf''):
906 1 Anonymous
{{{
907 4 Anonymous
User  			procksi
908 4 Anonymous
Group 			procksi
909 4 Anonymous
ServerAdmin		procksi@cs.nott.ac.uk
910 4 Anonymous
ServerName 		procksi.cs.nott.ac.uk
911 4 Anonymous
DocumentRoot /home/procksi/latest/html
912 4 Anonymous
<Directory /home/procksi/latest/html">
913 4 Anonymous
   AllowOverride AuthConfig
914 4 Anonymous
</Directory>
915 4 Anonymous
LogFormat "%t %h %l %u \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
916 4 Anonymous
LogFormat "%t %h %l %u \"%r\" %>s %b" common
917 4 Anonymous
LogFormat "%t %{Referer}i -> %U" referer
918 4 Anonymous
LogFormat "%t %{User-agent}i" agent
919 1 Anonymous
920 4 Anonymous
#Exclude Logging of Ganglia Requests
921 4 Anonymous
SetEnvIf Request_URI "ganglia" ganglia
922 1 Anonymous
923 4 Anonymous
#
924 4 Anonymous
# The location and format of the access logfile (Common Logfile Format).
925 4 Anonymous
# If you do not define any access logfiles within a <VirtualHost>
926 4 Anonymous
# container, they will be logged here.  Contrariwise, if you *do*
927 4 Anonymous
# define per-<VirtualHost> access logfiles, transactions will be
928 4 Anonymous
# logged therein and *not* in this file.
929 4 Anonymous
#
930 1 Anonymous
931 5 Anonymous
CustomLog /home/procksi/latest/logs/access.log common env=!ganglia
932 1 Anonymous
933 4 Anonymous
#
934 4 Anonymous
# If you would like to have agent and referer logfiles, uncomment the
935 4 Anonymous
# following directives.
936 4 Anonymous
#
937 1 Anonymous
938 4 Anonymous
CustomLog /home/procksi/latest/logs/referer.log referer env=!ganglia
939 4 Anonymous
CustomLog /home/procksi/latest/logs/agent.log agent env=!ganglia
940 1 Anonymous
941 4 Anonymous
#
942 4 Anonymous
# For a single logfile with access, agent, and referer information
943 4 Anonymous
# (Combined Logfile Format), use the following directive:
944 4 Anonymous
#
945 4 Anonymous
#CustomLog logs/access_log combined env=!ganglia
946 1 Anonymous
947 4 Anonymous
ScriptAlias /cgi-bin/ /home/procksi/latest/cgi-bin/
948 1 Anonymous
949 4 Anonymous
<Directory "/home/procksi/latest/cgi-bin">
950 4 Anonymous
    AllowOverride None
951 4 Anonymous
    Options None
952 4 Anonymous
    Order allow,deny
953 4 Anonymous
    Allow from all
954 4 Anonymous
</Directory>
955 1 Anonymous
956 4 Anonymous
Alias  /data/ 	  /home/procksi/latest/data/
957 4 Anonymous
Alias  /images/   /home/procksi/latest/images/
958 4 Anonymous
Alias  /styles/   /home/procksi/latest/styles/
959 4 Anonymous
Alias  /applets/  /home/procksi/latest/applets/
960 4 Anonymous
Alias  /scripts/  /home/procksi/latest/scripts/
961 7 Anonymous
Alias  /ganglia/  /usr/local/ganglia/html/
962 7 Anonymous
963 7 Anonymous
#Redirection
964 7 Anonymous
Redirect /trac https://psiren.cs.nott.ac.uk/projects/procksi/
965 1 Anonymous
966 4 Anonymous
AddLanguage de .de
967 4 Anonymous
AddLanguage en .en
968 4 Anonymous
AddLanguage es .es
969 4 Anonymous
AddLanguage fr .fr 
970 4 Anonymous
LanguagePriority en es de fr
971 1 Anonymous
972 4 Anonymous
Alias /errordocs/ "/home/procksi/errordocs"
973 4 Anonymous
<IfModule mod_negotiation.c>
974 4 Anonymous
    <IfModule mod_include.c>
975 4 Anonymous
        <Directory /home/procksi/errordocs>
976 4 Anonymous
            AllowOverride none
977 4 Anonymous
            Options MultiViews IncludesNoExec FollowSymLinks
978 4 Anonymous
            AddType text/html .shtml
979 4 Anonymous
            <FilesMatch "\.shtml[.$]">
980 5 Anonymous
                SetOutputFilter INCLUDES
981 4 Anonymous
            </FilesMatch>
982 4 Anonymous
        </Directory>
983 1 Anonymous
984 4 Anonymous
        ErrorDocument 400 /errordocs/400_BAD_REQUEST
985 4 Anonymous
        ErrorDocument 401 /errordocs/401_UNAUTHORIZED
986 4 Anonymous
        ErrorDocument 403 /errordocs/403_FORBIDDEN
987 4 Anonymous
        ErrorDocument 404 /errordocs/404_NOT_FOUND
988 4 Anonymous
        ErrorDocument 405 /errordocs/405_METHOD_NOT_ALLOWED
989 4 Anonymous
        ErrorDocument 406 /errordocs/406_NOT_ACCEPTABLE
990 4 Anonymous
        ErrorDocument 408 /errordocs/408_REQUEST_TIMEOUT
991 4 Anonymous
        ErrorDocument 410 /errordocs/410_GONE
992 4 Anonymous
        ErrorDocument 411 /errordocs/411_LENGTH_REQUIRED
993 4 Anonymous
        ErrorDocument 412 /errordocs/412_PRECONDITION_FAILED
994 4 Anonymous
        ErrorDocument 413 /errordocs/413_REQUEST_ENTITY_TOO_LARGE
995 4 Anonymous
        ErrorDocument 414 /errordocs/414_REQUEST_URI_TOO_LARGE
996 4 Anonymous
        ErrorDocument 415 /errordocs/415_UNSUPPORTED_MEDIA_TYPE
997 4 Anonymous
        ErrorDocument 500 /errordocs/500_INTERNAL_SERVER_ERROR
998 4 Anonymous
        ErrorDocument 501 /errordocs/501_NOT_IMPLEMENTED
999 4 Anonymous
        ErrorDocument 502 /errordocs/502_BAD_GATEWAY
1000 4 Anonymous
        ErrorDocument 503 /errordocs/503_SERVICE_UNAVAILABLE
1001 4 Anonymous
        ErrorDocument 506 /errordocs/506_VARIANT_ALSO_VARIES
1002 4 Anonymous
    </IfModule>
1003 4 Anonymous
</IfModule>
1004 1 Anonymous
1005 4 Anonymous
<Location /server-status>
1006 4 Anonymous
    SetHandler server-status
1007 4 Anonymous
    Order deny,allow
1008 4 Anonymous
    Deny from all
1009 4 Anonymous
    Allow from .cs.nott.ac.uk
1010 4 Anonymous
</Location>
1011 1 Anonymous
1012 4 Anonymous
<Location /server-info>
1013 4 Anonymous
    SetHandler server-info
1014 4 Anonymous
    Order deny,allow
1015 4 Anonymous
    Deny from all
1016 4 Anonymous
    Allow from .cs.nott.ac.uk
1017 4 Anonymous
</Location>
1018 1 Anonymous
}}} 
1019 1 Anonymous
1020 4 Anonymous
Make sure that the server accepts connections to port 80. Check the firewall settings in  ''/etc/sysconfig/iptables'' for the following entry:
1021 4 Anonymous
{{{
1022 4 Anonymous
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
1023 4 Anonymous
}}}
1024 1 Anonymous
1025 1 Anonymous
1026 1 Anonymous
Make sure that the apache daemon is running, and that it will start at boot time:
1027 4 Anonymous
{{{
1028 4 Anonymous
/sbin/service httpd start
1029 4 Anonymous
/sbin/chkconfig --add httpd
1030 4 Anonymous
/sbin/chkconfig httpd on
1031 4 Anonymous
}}}
1032 1 Anonymous
1033 1 Anonymous
1034 1 Anonymous
1035 1 Anonymous
== Email Configuration ==
1036 1 Anonymous
The ProCKSI server component send emails to the user for several occasions. In order to make sure that they are delivered correctly even when the internet is temporarily not available, a local SMTP server (''postfix'') is set up. This will accect emails from the private network only, store them temporarily (if necessary), and forward them to an email relay server.
1037 1 Anonymous
1038 1 Anonymous
1039 1 Anonymous
1040 1 Anonymous
Make sure that ''postfix'' is the default mailing software (and not ''sendmail''!).
1041 4 Anonymous
{{{
1042 4 Anonymous
system-switch-mail -activate postfix
1043 4 Anonymous
}}}
1044 1 Anonymous
1045 1 Anonymous
Make the following changes to the ''postfix ''configuration file (''/etc/postfix/main.cf''):
1046 1 Anonymous
{{{
1047 4 Anonymous
myhostname = procksi0.cs.nott.ac.uk
1048 4 Anonymous
mydomain = cs.nott.ac.uk
1049 4 Anonymous
myorigin = $mydomai
1050 4 Anonymous
inet_interfaces = all
1051 5 Anonymous
mydestination = $myhostname, localhost.$mydomain, localhost
1052 4 Anonymous
mynetworks_style = subnet
1053 4 Anonymous
virtual_alias_maps = hash:/etc/postfix/virtual
1054 4 Anonymous
relayhost = marian.cs.nott.ac.uk
1055 1 Anonymous
}}}
1056 1 Anonymous
1057 4 Anonymous
Create or modify ''/etc/postfix/virtual'':
1058 1 Anonymous
{{{
1059 4 Anonymous
root        root@localhost
1060 4 Anonymous
postmaster  postmaster@localhost
1061 4 Anonymous
adm         root@localhost
1062 1 Anonymous
}}}
1063 1 Anonymous
1064 1 Anonymous
Generate the corresponding database file (''virtual.db''):
1065 4 Anonymous
{{{
1066 4 Anonymous
postmap /etc/postfix/virtual
1067 4 Anonymous
}}}
1068 1 Anonymous
1069 1 Anonymous
Make sure that the postfix daemon is running, and that it will start at boot time:
1070 4 Anonymous
{{{
1071 4 Anonymous
/sbin/service postfix start
1072 4 Anonymous
/sbin/chkconfig --add postfix
1073 4 Anonymous
/sbin/chkconfig postfix on
1074 4 Anonymous
}}}
1075 1 Anonymous
1076 1 Anonymous
Make sure that the firewall is not open for port 25 or port 28!
1077 1 Anonymous
1078 1 Anonymous
Check that the STMTP server in ''/home/procksi/latest/conf/main.ini'' is set correctly set to ''procksi0.cs.nott.ac.uk''
1079 1 Anonymous
1080 1 Anonymous
1081 1 Anonymous
1082 1 Anonymous
== Garbage Cleanup Scheduling ==
1083 1 Anonymous
After a certain period of time, given in ''/home/procksi/latest/conf/main.ini'', sessions and requests expire and must be deleted. 
1084 1 Anonymous
1085 1 Anonymous
Edit ''procksi's'' crontab file taking effect for the ''latest'' and ''test'' version:
1086 1 Anonymous
{{{
1087 4 Anonymous
crontab -e
1088 4 Anonymous
  0-59/1 * * * * /home/procksi/latest/cron/check_sessions.sh
1089 4 Anonymous
  1-59/1 * * * * /home/procksi/latest/cron/check_tasks.sh
1090 4 Anonymous
  2-59/1 * * * * /home/procksi/latest/cron/check_requests.sh
1091 1 Anonymous
}}}
1092 1 Anonymous
1093 4 Anonymous
Analogously for ''/home/procksi/test''.
1094 1 Anonymous
1095 1 Anonymous
1096 1 Anonymous
1097 1 Anonymous
== Linking External Software ==
1098 1 Anonymous
Make sure that all links in ''/home/procksi/latest/bin'' point to the correct files of the operating system: 
1099 4 Anonymous
{{{
1100 4 Anonymous
sh, compress, bzip2, gzip, zip, ppmz, qsub
1101 4 Anonymous
}}}
1102 1 Anonymous
1103 1 Anonymous
1104 1 Anonymous
Make sure that all further executable links in ''/home/procksi/latest/bin'' point to the correct files on the file system: 
1105 4 Anonymous
{{{
1106 1 Anonymous
 exec_cluster, exec_!DaliLite, exec_MaxCMO, exec_molauto, exec_molscript
1107 4 Anonymous
}}}