Project

General

Profile

NetDRMS Installation » History » Version 209

Pablo Alingery, 07/06/2016 14:45

1 50 Herve Ballans
{{toc}}
2 1 Herve Ballans
3 1 Herve Ballans
h1. NetDRMS Installation
4 1 Herve Ballans
5 1 Herve Ballans
h2. Requirements
6 1 Herve Ballans
7 47 Pablo Alingery
h3. Configuring production environment
8 1 Herve Ballans
9 121 Pablo Alingery
Adding user production (en root)
10 47 Pablo Alingery
11 1 Herve Ballans
<pre>
12 1 Herve Ballans
# adduser production
13 1 Herve Ballans
# addgroup ias
14 1 Herve Ballans
# adduser production ias
15 1 Herve Ballans
</pre>
16 1 Herve Ballans
17 49 Herve Ballans
h3. Configure /home/production/.profile
18 1 Herve Ballans
19 49 Herve Ballans
Adding environment variables
20 1 Herve Ballans
21 1 Herve Ballans
<pre>
22 122 Herve Ballans
#Modif Herve.B Pablo.A 12/05/2016
23 122 Herve Ballans
24 1 Herve Ballans
PATH="/usr/local/netdrms_current/bin/linux_x86_64:$PATH"
25 49 Herve Ballans
PATH="/usr/local/netdrms_current/scripts:$PATH"
26 122 Herve Ballans
PATH="/usr/local/jmd/bin:$PATH"
27 122 Herve Ballans
PATH="/usr/local/jmd/scripts:$PATH"
28 141 Pablo Alingery
#The following is not needed as installed with 'apt-get install' 
29 141 Pablo Alingery
#PATH="/usr/local/pgsql/bin:$PATH"
30 122 Herve Ballans
PATH="/usr/local/netdrms-tools/scripts:$PATH"
31 49 Herve Ballans
#2014-12-17 Avec Herve et Pablo on pense que la ligne suivante est intutile as it is f.. install in /usr/local/lib
32 140 Pablo Alingery
PATH="/usr/local/cfitsio:$PATH"
33 1 Herve Ballans
#Done
34 49 Herve Ballans
35 122 Herve Ballans
DERBY_HOME=/usr/local/jmd/databases/derby/derbyBD
36 49 Herve Ballans
export DERBY_HOME
37 49 Herve Ballans
38 49 Herve Ballans
export CVSROOT=:pserver:anonymous@solarch.tuc.noao.edu:2401/vtarc1/vso/cvsroot
39 49 Herve Ballans
</pre>
40 49 Herve Ballans
41 162 Pablo Alingery
h3. Configure /varl/lib/postgres/.profile
42 161 Pablo Alingery
43 163 Pablo Alingery
Add to $PATH so postgres can exeute command like initdb
44 161 Pablo Alingery
45 161 Pablo Alingery
<pre>
46 161 Pablo Alingery
#Modif Herve.B Pablo.A 19/05/2016
47 161 Pablo Alingery
PATH="/usr/lib/postgresql/9.4/bin:$PATH"
48 161 Pablo Alingery
</pre>
49 161 Pablo Alingery
50 125 Pablo Alingery
h3. Setting privileges for SUMS_MANAGER
51 87 Herve Ballans
52 126 Pablo Alingery
Please modify file /etc/sudoers so user 'production' will be able to execute  'sum_chown' that we will locate in the dir : /usr/local/bin . See below
53 125 Pablo Alingery
Add to /etc/sudoers the following line :
54 1 Herve Ballans
	production host=NOPASSWD:/usr/local/bin/sum_chmown
55 1 Herve Ballans
56 127 Pablo Alingery
h3. Set passwords file for db postgres 
57 1 Herve Ballans
58 127 Pablo Alingery
Please create file .pgpass with the following information for user 'production" so he will be able to connect without password as 'production' or 'postgres' to 2 db that we will create later ias_sdo and ias_sdo_sums.
59 1 Herve Ballans
60 1 Herve Ballans
61 1 Herve Ballans
.pgpass content :
62 1 Herve Ballans
<pre>
63 128 Pablo Alingery
	#hostname:5432:ias_sdo:production: 
64 128 Pablo Alingery
	#hostname:5434:ias_sdo_sums:production: 
65 128 Pablo Alingery
	#hostname:5432:ias_sdo:postgres: 
66 128 Pablo Alingery
	#hostname:5434:ias_sdo_sums:postgres
67 1 Herve Ballans
</pre>
68 128 Pablo Alingery
69 129 Pablo Alingery
where #hostname is the name of your server
70 129 Pablo Alingery
71 129 Pablo Alingery
72 131 Pablo Alingery
%{color:red}WARNING : change hostname when migrate sdo-new to sdo%
73 1 Herve Ballans
74 143 Pablo Alingery
75 132 Pablo Alingery
76 133 Pablo Alingery
h3. Install missing libraries 
77 1 Herve Ballans
78 133 Pablo Alingery
• libreadline-dev (but already installed with postgresql)
79 133 Pablo Alingery
• libssl-dev 
80 133 Pablo Alingery
• libpam0g-dev 
81 133 Pablo Alingery
• libperl-dev 
82 1 Herve Ballans
83 133 Pablo Alingery
NB : Already done in Debian 8.4 Jessy
84 1 Herve Ballans
<pre>
85 1 Herve Ballans
# apt-get install $library_name
86 1 Herve Ballans
</pre> 
87 1 Herve Ballans
where
88 1 Herve Ballans
	_$library_name_ is the name of library
89 19 Pablo Alingery
90 1 Herve Ballans
Then to update path on libraries, please type :
91 1 Herve Ballans
<pre>
92 19 Pablo Alingery
# ldconfig
93 1 Herve Ballans
</pre>
94 1 Herve Ballans
95 1 Herve Ballans
h3. Reconfigure locale
96 1 Herve Ballans
97 1 Herve Ballans
<pre>
98 1 Herve Ballans
# dpkg-reconfigure locales
99 1 Herve Ballans
</pre>
100 1 Herve Ballans
101 1 Herve Ballans
select fr_FR.UTF8 UTF8 and unselect en_US.UTF-8
102 1 Herve Ballans
103 1 Herve Ballans
localedef -i en_US -f UTF-8 en_US.UTF-8
104 1 Herve Ballans
105 1 Herve Ballans
(see here : [[http://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian]])
106 1 Herve Ballans
107 134 Pablo Alingery
h3. Install gfortran packages
108 1 Herve Ballans
109 1 Herve Ballans
<pre>
110 1 Herve Ballans
# apt-get install gfortran swig
111 1 Herve Ballans
</pre>
112 1 Herve Ballans
113 1 Herve Ballans
h3. Installation of cfitsio library
114 1 Herve Ballans
115 135 Pablo Alingery
In /usr/local dir
116 135 Pablo Alingery
117 135 Pablo Alingery
Version 3.39 (currently on sdo : 3.24)
118 1 Herve Ballans
<pre>
119 135 Pablo Alingery
# wget ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3390.tar.gz
120 1 Herve Ballans
</pre>
121 137 Pablo Alingery
Untar and  decompression
122 1 Herve Ballans
<pre>
123 136 Pablo Alingery
# tar -xzvf cfitsio3390.tar.gz
124 1 Herve Ballans
</pre> 
125 1 Herve Ballans
126 139 Pablo Alingery
Go into /usr/local and type
127 1 Herve Ballans
128 1 Herve Ballans
su - root and :
129 1 Herve Ballans
<pre>
130 1 Herve Ballans
# ./configure --prefix=/usr/local
131 1 Herve Ballans
# make 
132 1 Herve Ballans
# make install
133 135 Pablo Alingery
</pre>
134 118 Pablo Alingery
135 144 Pablo Alingery
h3. Installation of apache2 and lib perl
136 118 Pablo Alingery
137 118 Pablo Alingery
<pre>
138 118 Pablo Alingery
# apt-get install apache2
139 118 Pablo Alingery
140 118 Pablo Alingery
# apt-get install libjson-perl
141 118 Pablo Alingery
142 118 Pablo Alingery
# apt-get install libapache2-mod-perl2
143 118 Pablo Alingery
</pre>
144 1 Herve Ballans
145 183 Herve Ballans
h3. Installation of postgresql
146 1 Herve Ballans
147 145 Pablo Alingery
Into 'root'
148 145 Pablo Alingery
 
149 145 Pablo Alingery
<pre>
150 147 Pablo Alingery
apt-get install postgresql-9.4 postgresql-client-9.4 
151 145 Pablo Alingery
</pre>
152 145 Pablo Alingery
153 209 Pablo Alingery
154 209 Pablo Alingery
h3. Installation python3
155 209 Pablo Alingery
156 209 Pablo Alingery
Into 'root'
157 209 Pablo Alingery
 
158 209 Pablo Alingery
<pre>
159 209 Pablo Alingery
apt-get install python3 
160 209 Pablo Alingery
</pre>
161 209 Pablo Alingery
162 209 Pablo Alingery
163 1 Herve Ballans
h2. NetDRMS databases
164 1 Herve Ballans
165 156 Pablo Alingery
into /var/lib/postgresql  (hard mount point separated,  7 disks 15000 tr/min in raid5 in order to distribute read and write) 
166 1 Herve Ballans
167 1 Herve Ballans
<pre>
168 158 Pablo Alingery
# cd /var/lib/postgresql
169 157 Pablo Alingery
# mkdir data  data_sums data_monitor
170 157 Pablo Alingery
# chown -R postgres:postgres * 
171 1 Herve Ballans
</pre>
172 1 Herve Ballans
173 160 Pablo Alingery
h3. Initialize 3 servers data,  data_sums, data_monitor
174 1 Herve Ballans
175 159 Pablo Alingery
Into postgres
176 1 Herve Ballans
<pre>
177 1 Herve Ballans
# su - postgres
178 1 Herve Ballans
179 1 Herve Ballans
$ initdb --locale=C -D data -A md5 -W
180 1 Herve Ballans
(no password)
181 2 Herve Ballans
182 2 Herve Ballans
Success. You can now start the database server using:
183 2 Herve Ballans
184 2 Herve Ballans
    postgres -D data
185 2 Herve Ballans
or
186 2 Herve Ballans
    pg_ctl -D data -l logfile start
187 2 Herve Ballans
188 1 Herve Ballans
189 1 Herve Ballans
$ initdb --locale=C -D data_sums -A md5 -W
190 2 Herve Ballans
(no password)
191 2 Herve Ballans
192 2 Herve Ballans
Success. You can now start the database server using:
193 2 Herve Ballans
194 2 Herve Ballans
    postgres -D data_sums
195 2 Herve Ballans
or
196 2 Herve Ballans
    pg_ctl -D data_sums -l logfile start
197 8 Pablo Alingery
198 8 Pablo Alingery
$ initdb --locale=C -D data_monitor -A md5 -W
199 8 Pablo Alingery
(no password)
200 8 Pablo Alingery
201 8 Pablo Alingery
Success. You can now start the database server using:
202 8 Pablo Alingery
203 8 Pablo Alingery
    postgres -D data_monitor
204 8 Pablo Alingery
or
205 8 Pablo Alingery
    pg_ctl -D data_monitor -l logfile start
206 2 Herve Ballans
</pre>
207 2 Herve Ballans
208 1 Herve Ballans
209 1 Herve Ballans
210 1 Herve Ballans
Edition des fichiers postgresql.conf pour configurer les bons ports d'écoute :
211 1 Herve Ballans
listen_addresses = '*'
212 1 Herve Ballans
data -> port 5432
213 10 Pablo Alingery
data_sums -> port 5434
214 1 Herve Ballans
data_monitor -> port 5436
215 10 Pablo Alingery
216 165 Pablo Alingery
Edit files data*/pg_hba.conf : replace 'md5' by 'trust'
217 1 Herve Ballans
<pre>
218 1 Herve Ballans
#"local"
219 1 Herve Ballans
local   all             all                                     trust
220 1 Herve Ballans
#"IPv4"
221 1 Herve Ballans
host   all             all                                     trust
222 1 Herve Ballans
</pre>
223 166 Pablo Alingery
224 166 Pablo Alingery
h3. Tunning postgres 
225 166 Pablo Alingery
226 166 Pablo Alingery
In file postgres.conf ( according to https://www.qwant.com/?q=Tunning+postgres+server+9.4+&client=firefox  )
227 166 Pablo Alingery
228 168 Pablo Alingery
shared_buffer=4096MB %{color:red}So 1/12 of the total RAM memory available%
229 1 Herve Ballans
230 169 Pablo Alingery
work_mem = 24MB
231 168 Pablo Alingery
232 168 Pablo Alingery
maintenance_work_mem = 4096MB
233 1 Herve Ballans
234 169 Pablo Alingery
wal_buffers = 16MB
235 169 Pablo Alingery
236 169 Pablo Alingery
checkpoint_segments = 32
237 169 Pablo Alingery
238 169 Pablo Alingery
checkpoint_completion_target = 0.9
239 169 Pablo Alingery
240 169 Pablo Alingery
random_page_cost = 1.0
241 169 Pablo Alingery
242 169 Pablo Alingery
effective_cache_size = 16384MB so 1/4 of the max memory 
243 169 Pablo Alingery
244 170 Pablo Alingery
245 170 Pablo Alingery
246 170 Pablo Alingery
#log
247 169 Pablo Alingery
logging_collector = on 
248 169 Pablo Alingery
log_directory = 'pg_log' 
249 169 Pablo Alingery
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
250 169 Pablo Alingery
log_truncate_on_rotation = on           # If on, an existing log file with the
251 169 Pablo Alingery
log_rotation_age = 1d                   # Automatic rotation of logfiles will
252 170 Pablo Alingery
client_min_messages = error
253 170 Pablo Alingery
log_min_messages = error 
254 170 Pablo Alingery
log_min_duration_statement = 0
255 170 Pablo Alingery
256 170 Pablo Alingery
log_connections = on
257 170 Pablo Alingery
log_disconnections = on
258 170 Pablo Alingery
log_duration = off
259 170 Pablo Alingery
log_hostname = on
260 170 Pablo Alingery
log_line_prefix = '%t [%p]: %u@%h - %d :'  
261 170 Pablo Alingery
262 170 Pablo Alingery
track_counts = on
263 170 Pablo Alingery
autovacuum = on 
264 170 Pablo Alingery
265 170 Pablo Alingery
extra_float_digits = 3
266 170 Pablo Alingery
267 177 Pablo Alingery
h3. Start the 3 databases :
268 1 Herve Ballans
269 1 Herve Ballans
<pre>
270 1 Herve Ballans
# su - postgres
271 196 Herve Ballans
$ cd /var/lib/postgresql
272 172 Pablo Alingery
$ pg_ctl -D data  start
273 172 Pablo Alingery
$ pg_ctl -D data_sums start
274 172 Pablo Alingery
$ pg_ctl -D data_monitor start
275 1 Herve Ballans
</pre>
276 174 Pablo Alingery
277 1 Herve Ballans
h3. Create the 3 databases :
278 181 Pablo Alingery
279 178 Pablo Alingery
Into user 'postgres'
280 1 Herve Ballans
281 179 Pablo Alingery
* createdb --locale C -E LATIN1 -T template0 ias_sdo
282 179 Pablo Alingery
* createdb --locale C -E LATIN1 -T template0 -p 5434 ias_sdo_sums
283 179 Pablo Alingery
* createdb --locale C -E LATIN1 -T template0 -p 5436 ias_sdo_monitor
284 54 Herve Ballans
285 182 Herve Ballans
h3. Automatic startup
286 182 Herve Ballans
287 182 Herve Ballans
Add following lines in the /etc/rc.local file :
288 182 Herve Ballans
289 182 Herve Ballans
<pre>
290 197 Herve Ballans
su -l -c "/usr/lib/postgresql/9.4/bin/pg_ctl -D /var/lib/postgresql/data start" postgres
291 197 Herve Ballans
su -l -c "/usr/lib/postgresql/9.4/bin/pg_ctl -D /var/lib/postgresql/data_sums start" postgres
292 197 Herve Ballans
su -l -c "/usr/lib/postgresql/9.4/bin/pg_ctl -D /var/lib/postgresql/data_monitor start" postgres
293 182 Herve Ballans
</pre>
294 182 Herve Ballans
295 184 Herve Ballans
h2. System tuning
296 1 Herve Ballans
297 187 Herve Ballans
Current configuration :
298 185 Herve Ballans
<pre>
299 185 Herve Ballans
# sysctl -a
300 185 Herve Ballans
</pre>
301 1 Herve Ballans
302 187 Herve Ballans
In the following file :
303 185 Herve Ballans
<pre>
304 185 Herve Ballans
# vi /etc/sysctl.conf
305 185 Herve Ballans
</pre>
306 1 Herve Ballans
307 188 Herve Ballans
we change some values (default values are commented with '#')
308 194 Herve Ballans
309 195 Herve Ballans
(resources links [[Links|here]])
310 194 Herve Ballans
311 185 Herve Ballans
<pre>
312 191 Herve Ballans
# Semaphore is a object that is used to control utilization of a particular process.
313 191 Herve Ballans
# kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
314 191 Herve Ballans
# SEMMSL        maximum number of semaphores per array  (min 128)
315 191 Herve Ballans
# SEMMNS        maximum semaphores system-wide  
316 191 Herve Ballans
# SEMOPM        maximum operations per semop call       
317 191 Herve Ballans
# SEMMNI        maximum arrays 
318 191 Herve Ballans
#semop incresed from 32 (default value)operation to 100 (3rd value )
319 191 Herve Ballans
# kernel.sem = 250      32000   32      128
320 191 Herve Ballans
kernel.sem = 250 32000 100 128
321 191 Herve Ballans
322 191 Herve Ballans
In order to  apply changes :#This sets the  OS receive buffer size for all types of connections (default value 212992)
323 191 Herve Ballans
#net.core.rmem_default = 212992
324 191 Herve Ballans
#net.core.rmem_max = 212992
325 191 Herve Ballans
net.core.rmem_default = 33554432
326 191 Herve Ballans
net.core.rmem_max = 33554432
327 191 Herve Ballans
328 191 Herve Ballans
#This is the OS send buffer size for all types of connections (212992 default value) 
329 191 Herve Ballans
#net.core.wmem_default = 212992
330 191 Herve Ballans
#net.core.wmem_max = 212992
331 191 Herve Ballans
net.core.wmem_default = 33554432
332 191 Herve Ballans
net.core.wmem_max = 33554432
333 191 Herve Ballans
334 193 Pablo Alingery
#TCP Autotuning setting. "The first value tells the kernel the minimum receive buffer for each TCP connection, and this buffer is always
335 193 Pablo Alingery
# allocated to a TCP socket, even under high pressure on the system. ... The second value specified tells the kernel the default receive
336 193 Pablo Alingery
# buffer allocated for each TCP socket. This value overrides the /proc/sys/net/core/rmem_default value used by other protocols. ...
337 192 Pablo Alingery
# The third and last value specified in this variable specifies the maximum receive buffer that can be allocated for a TCP socket."
338 1 Herve Ballans
#net.ipv4.tcp_rmem = 4096       87380   6291456
339 1 Herve Ballans
net.ipv4.tcp_rmem = 10240 87380 33554432
340 1 Herve Ballans
341 193 Pablo Alingery
#TCP Autotuning setting. "This variable takes 3 different values which holds information on how much TCP sendbuffer memory space
342 193 Pablo Alingery
# each TCP socket has to use. Every TCP socket has this much buffer space to use before the buffer is filled up. Each of the three 
343 193 Pablo Alingery
#values are used under different conditions. ... The first value in this variable tells the minimum TCP send buffer space available
344 193 Pablo Alingery
# for a single TCP socket. ... The second value in the variable tells us the default buffer space allowed for a single TCP socket to use. ... 
345 193 Pablo Alingery
#The third value tells the kernel the maximum TCP send buffer space." 
346 191 Herve Ballans
#net.ipv4.tcp_wmem = 4096       16384   4194304
347 191 Herve Ballans
net.ipv4.tcp_wmem = 10240 87380 33554432
348 191 Herve Ballans
349 191 Herve Ballans
#Disable cache metrics so the initial conditions of the closed connections will not be saved to be used in near future connections
350 191 Herve Ballans
#net.ipv4.tcp_no_metrics_save = 0
351 191 Herve Ballans
net.ipv4.tcp_no_metrics_save = 1
352 191 Herve Ballans
353 1 Herve Ballans
# Increase number of incoming connections backlog
354 1 Herve Ballans
# net.core.netdev_max_backlog = 1000
355 1 Herve Ballans
net.core.netdev_max_backlog = 5000
356 1 Herve Ballans
357 1 Herve Ballans
# The tcp_mem variable defines how the TCP stack should behave when it comes to memory usage. ... 
358 192 Pablo Alingery
#The first value specified in the tcp_mem variable tells the kernel the low threshold. 
359 192 Pablo Alingery
#Below this point, the TCP stack do not bother at all about putting any pressure on the memory usage by different TCP sockets. ... 
360 193 Pablo Alingery
#The second value tells the kernel at which point to start pressuring memory usage down. ... The final value tells the kernel how many
361 193 Pablo Alingery
# memory pages it may use maximally
362 1 Herve Ballans
# net.ipv4.tcp_mem = 1543347    2057796 3086694
363 191 Herve Ballans
net.ipv4.tcp_mem = 786432 1048576 26777216
364 191 Herve Ballans
365 192 Pablo Alingery
# local port range that is used by TCP and UDP traffic to choose the local port. You will see in the parameters of this file two numbers:
366 192 Pablo Alingery
# The first number is the first local port allowed for TCP and UDP traffic on the server, the second is the last local port number.
367 191 Herve Ballans
# net.ipv4.ip_local_port_range = 32768  61000
368 191 Herve Ballans
net.ipv4.ip_local_port_range = 1024 65535
369 191 Herve Ballans
370 191 Herve Ballans
# maximum number of sockets in TIME-WAIT to be held simultaneously.
371 191 Herve Ballans
# net.ipv4.tcp_max_tw_buckets = 262144
372 191 Herve Ballans
net.ipv4.tcp_max_tw_buckets = 360000
373 1 Herve Ballans
</pre>
374 185 Herve Ballans
375 191 Herve Ballans
Then we run the following command to make our change take effect:
376 191 Herve Ballans
377 185 Herve Ballans
<pre>
378 185 Herve Ballans
# sysctl -p
379 185 Herve Ballans
</pre>
380 176 Pablo Alingery
381 1 Herve Ballans
h2. NetDRMS tool Install
382 23 Pablo Alingery
383 199 Pablo Alingery
The following installed is based on : [[http://inf-redmine.ias.u-psud.fr/redmine/attachments/download/114/Netdrms_First_Install.odt]]
384 1 Herve Ballans
385 207 Pablo Alingery
The sources are in : http://jsoc.stanford.edu/netdrms/dist/ 
386 207 Pablo Alingery
Locally on sdo-new in  : /home/production/sources
387 1 Herve Ballans
388 199 Pablo Alingery
Symbolic link created 'netdrms_current' that corresponds to the last release
389 1 Herve Ballans
ln -s netdrms_8.10/ netdrms_current 
390 1 Herve Ballans
391 199 Pablo Alingery
Edit file config.local
392 27 Pablo Alingery
<pre>
393 27 Pablo Alingery
cp config.local.template config.local
394 1 Herve Ballans
</pre>
395 29 Pablo Alingery
396 203 Pablo Alingery
%{color:red}Warning WEB_DBUSER      apache  We think that it should value www maybe , to be checked testing the cgi%
397 208 Pablo Alingery
%{color:red}So check the cgi to figure out which user is used to connect to bd%
398 32 Herve Ballans
399 199 Pablo Alingery
Create 2 followings dirs : 
400 1 Herve Ballans
<pre>
401 32 Herve Ballans
mkdir /usr/local/netdrms_8.10/logs/SUM
402 28 Pablo Alingery
mkdir /usr/local/netdrms_8.10/logs/slony
403 27 Pablo Alingery
</pre>
404 1 Herve Ballans
405 205 Pablo Alingery
%{color:red}Warning config.local from line 150 =>222 Remote config to provide data, series to externals%
406 205 Pablo Alingery
%{color:red}To be checked for PLATO%
407 1 Herve Ballans
408 1 Herve Ballans
Création d'un alias netdrms dans /root/.bashrc
409 27 Pablo Alingery
<pre>
410 1 Herve Ballans
alias netdrms='cd /usr/local/netdrms_current'
411 1 Herve Ballans
</pre>
412 31 Pablo Alingery
413 206 Pablo Alingery
%{color:red}In config.local we are at line 223%
414 206 Pablo Alingery
%{color:red}------------------------------------------------------------------------------------------------------------------%
415 206 Pablo Alingery
416 1 Herve Ballans
h3. Modification du fichier /usr/local/netdrms_current/configure (Not Applied in NetDrms_8.10)
417 1 Herve Ballans
418 1 Herve Ballans
<pre>
419 1 Herve Ballans
# The system configuration for configure script
420 1 Herve Ballans
set PERLBIN = "/usr/bin/perl"
421 1 Herve Ballans
set PYBIN = "/usr/bin/python"
422 200 Pablo Alingery
</pre>
423 200 Pablo Alingery
424 34 Herve Ballans
425 34 Herve Ballans
h3. Compilation problem due to uncorrect variable types
426 35 Herve Ballans
427 34 Herve Ballans
Art (art.amezcua@stanford.edu) purpose us a workaround and send us 2 files with correct declaration :
428 42 Herve Ballans
429 42 Herve Ballans
SUMLIB_RmDo.pgc (diff with original file : [[diff_SUMLIB_RmDo.pgc]])
430 34 Herve Ballans
SUMLIB_RmDoX.pgc (diff with original file : [[diff_SUMLIB_RmDoX.pgc]])
431 109 Pablo Alingery
432 109 Pablo Alingery
Dans le répertoire base/sums/libs/pg renommer les anciens en *.orig et placer les nouveau fichiers SUMLIB_RmDo.pgc et SUMLIB_RmDoX.pgc
433 36 Herve Ballans
434 36 Herve Ballans
<pre>
435 36 Herve Ballans
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDo.pgc
436 38 Herve Ballans
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDoX.pgc
437 34 Herve Ballans
</pre>
438 1 Herve Ballans
439 1 Herve Ballans
h3. Modification du fichier /usr/local/netdrms_current/build/jsoc_machine.csh
440 1 Herve Ballans
441 1 Herve Ballans
ligne 28 :
442 1 Herve Ballans
443 1 Herve Ballans
<pre>
444 1 Herve Ballans
  case "x86_64":
445 1 Herve Ballans
      echo linux_x86_64
446 1 Herve Ballans
      breaksw
447 109 Pablo Alingery
</pre>
448 109 Pablo Alingery
449 109 Pablo Alingery
Overwriting the existing files in the right place (base/sums/libs/pg) & modif in jsoc_machine.csh 
450 109 Pablo Alingery
=> the command 'make' works well.
451 109 Pablo Alingery
452 109 Pablo Alingery
But there is still problem with 'make sums'
453 109 Pablo Alingery
454 109 Pablo Alingery
h3. Workaround to solve make sums problem
455 109 Pablo Alingery
456 109 Pablo Alingery
Modify [[sum_rpc.h]] in order to match the type of some variables
457 109 Pablo Alingery
458 1 Herve Ballans
459 43 Pablo Alingery
460 1 Herve Ballans
h3. Copier /usr/local/netdrms_2.4_release/base/drms/apps/serverdefs.h dans /usr/local/netdrms_current/base/drms/apps (not applied in NetDrms_8.10)
461 44 Pablo Alingery
462 1 Herve Ballans
h3. Modification du fichier /usr/local/netdrms_current/configure (not applied in NetDrms_8.10)
463 1 Herve Ballans
464 1 Herve Ballans
au lieu de $? en csh on va mettre plutot $status
465 1 Herve Ballans
466 1 Herve Ballans
ligne 110 :
467 1 Herve Ballans
468 1 Herve Ballans
<pre>
469 1 Herve Ballans
  if ($status==0) 
470 1 Herve Ballans
</pre>
471 4 Herve Ballans
472 1 Herve Ballans
et ligne 123 :
473 1 Herve Ballans
474 1 Herve Ballans
<pre>
475 1 Herve Ballans
  if ($status==0) 
476 1 Herve Ballans
</pre>
477 4 Herve Ballans
478 4 Herve Ballans
Lancement :
479 4 Herve Ballans
<pre>
480 1 Herve Ballans
./configure
481 1 Herve Ballans
</pre>
482 1 Herve Ballans
483 1 Herve Ballans
h3. Installation des libraries libtar-dev, libcurl3-dev et libecpg-dev
484 1 Herve Ballans
485 4 Herve Ballans
<pre>
486 1 Herve Ballans
apt-get install libtar libtar-dev
487 1 Herve Ballans
</pre>
488 1 Herve Ballans
489 1 Herve Ballans
<pre>
490 1 Herve Ballans
apt-get install libcurl3-dev
491 1 Herve Ballans
</pre>
492 1 Herve Ballans
493 1 Herve Ballans
<pre>
494 1 Herve Ballans
apt-get install libecpg-dev
495 1 Herve Ballans
</pre>
496 45 Pablo Alingery
497 1 Herve Ballans
h3. #H4ck 2 Malade #PabloR0cks# (Not Applied in NetDrm_8.10)
498 1 Herve Ballans
499 1 Herve Ballans
Modification du fichier /usr/include/stdint.h
500 17 Herve Ballans
501 17 Herve Ballans
ligne 55 : long int remplacé par long long int
502 17 Herve Ballans
503 17 Herve Ballans
<pre>
504 17 Herve Ballans
#if __WORDSIZE == 64
505 17 Herve Ballans
typedef unsigned long int       uint64_t; --> ici long long int
506 17 Herve Ballans
#else
507 17 Herve Ballans
__extension__
508 17 Herve Ballans
typedef unsigned long long int  uint64_t;
509 17 Herve Ballans
#endif
510 1 Herve Ballans
</pre>
511 1 Herve Ballans
512 1 Herve Ballans
"Allo Linus ?!?.."
513 1 Herve Ballans
514 1 Herve Ballans
h3. Compilation
515 1 Herve Ballans
516 1 Herve Ballans
<pre>
517 1 Herve Ballans
# make
518 53 Herve Ballans
# make sums
519 1 Herve Ballans
# make jsoc_fetch
520 1 Herve Ballans
</pre>
521 1 Herve Ballans
522 6 Pablo Alingery
NB : lib64 does not exist on debian 8. so ln -s /usr/lib lib64
523 46 Pablo Alingery
524 1 Herve Ballans
h2. make sums KO  (Not applied in NetDrms_8.10)
525 6 Pablo Alingery
526 6 Pablo Alingery
Solution found : Take old lib libcrypto instead libssl
527 16 Herve Ballans
528 6 Pablo Alingery
dans le fichier base/sums/apps/Rules.mk ligne 51 
529 55 Herve Ballans
replace -lssl by -lcrypto LD flag
530 57 Herve Ballans
531 55 Herve Ballans
h2. NetDRMS replication
532 56 Herve Ballans
533 56 Herve Ballans
<pre>
534 60 Herve Ballans
# cd base/drms/replication/etc
535 60 Herve Ballans
# scp production@sdo:/usr/local/netdrms/install-config-files/ias.subscribe_list.cfg  .
536 104 Pablo Alingery
# scp production@sdo:/usr/local/netdrms/install-config-files/ias.repclient.cfg  .
537 104 Pablo Alingery
WRONG !!!!!
538 104 Pablo Alingery
To be done cp repclient.template.cfg into ias.subscribe_list.cfg because new field in config file can't appear 
539 104 Pablo Alingery
Correct that step in NetDrms doc 
540 104 Pablo Alingery
The existing ias.repclient.cfg can be used tough to fill params 
541 104 Pablo Alingery
542 56 Herve Ballans
543 104 Pablo Alingery
</pre>
544 6 Pablo Alingery
545 59 Herve Ballans
546 59 Herve Ballans
Create tmp dir in netdrms working directory (/usr/local/netdrms_current)
547 59 Herve Ballans
<pre>
548 59 Herve Ballans
# mkdir tmp
549 59 Herve Ballans
</pre>
550 61 Herve Ballans
551 61 Herve Ballans
Prevent from deleting files
552 61 Herve Ballans
<pre>
553 61 Herve Ballans
cd logs/SUM ; scp production@sdo:/usr/local/netdrms/install-config-files/sum_rm.cfg .
554 61 Herve Ballans
</pre>
555 117 Pablo Alingery
556 112 Herve Ballans
h2. JMD installation 
557 115 Pablo Alingery
558 115 Pablo Alingery
Donwnload new JMD package build by Niles Oien 2016-04-07 following thoses actions :
559 115 Pablo Alingery
560 116 Pablo Alingery
<pre>
561 116 Pablo Alingery
cd /urs/local
562 115 Pablo Alingery
563 115 Pablo Alingery
[oien@spsc-nso19-12 ~]$ ftp gong2.nso.edu
564 115 Pablo Alingery
Name (gong2.nso.edu:oien): anonymous
565 115 Pablo Alingery
Password: <---------------- use your email as the password
566 115 Pablo Alingery
ftp> cd outgoing/oien
567 115 Pablo Alingery
ftp> get pablo_jmd.tar.gz
568 115 Pablo Alingery
ftp> quit
569 115 Pablo Alingery
</pre>
570 115 Pablo Alingery
571 115 Pablo Alingery
Install new JMD package following thoses actions 
572 115 Pablo Alingery
573 115 Pablo Alingery
<pre>
574 1 Herve Ballans
[oien@spsc-nso19-12 ~]$ gunzip -vf pablo_jmd.tar.gz
575 1 Herve Ballans
pablo_jmd.tar.gz:      8.3% -- replaced with pablo_jmd.tar
576 116 Pablo Alingery
[oien@spsc-nso19-12 ~]$ tar xf pablo_jmd.tar
577 116 Pablo Alingery
[oien@spsc-nso19-12 ~]$ cd pablo_jmd
578 116 Pablo Alingery
[oien@spsc-nso19-12 pablo_jmd]$ less PABLO_README.txt
579 115 Pablo Alingery
cd ..
580 116 Pablo Alingery
mv jmd jmd_old
581 115 Pablo Alingery
mv pablo_jmd jmd 
582 112 Herve Ballans
</pre>
583 119 Pablo Alingery
584 112 Herve Ballans
h2. JMD Configuration
585 112 Herve Ballans
586 112 Herve Ballans
Configure webserver  to request jsoc_fetch
587 112 Herve Ballans
(following the mail from nilesoien@gmail.com)
588 113 Pablo Alingery
589 113 Pablo Alingery
config d 'apache2 fichier sdo3.ias.u-psud.fr 
590 113 Pablo Alingery
<pre>
591 113 Pablo Alingery
592 113 Pablo Alingery
<VirtualHost *:80>
593 113 Pablo Alingery
        ServerName sdo3.ias.u-psud.fr
594 113 Pablo Alingery
        ServerAdmin pablo.alingery@ias.u-psud.fr
595 113 Pablo Alingery
        #ErrorLog /var/log/apache2/error.log
596 113 Pablo Alingery
        DocumentRoot /var/www
597 113 Pablo Alingery
598 113 Pablo Alingery
        # Possible values include: debug, info, notice, warn, error, crit,
599 113 Pablo Alingery
        # alert, emerg.
600 113 Pablo Alingery
        LogLevel debug
601 113 Pablo Alingery
602 113 Pablo Alingery
        #CustomLog /var/log/apache2/VSO/access.log combined
603 113 Pablo Alingery
604 113 Pablo Alingery
        Alias /VSO/DRMS/cgi-bin/ "/home/production/netdrms-tools/scripts/cgi-bin/"
605 113 Pablo Alingery
606 113 Pablo Alingery
        <Location /VSO/DRMS/cgi-bin>
607 113 Pablo Alingery
                SetHandler perl-script
608 113 Pablo Alingery
                PerlResponseHandler ModPerl::Registry
609 113 Pablo Alingery
                PerlOptions +ParseHeaders
610 113 Pablo Alingery
                Options +ExecCGI
611 113 Pablo Alingery
                Order allow,deny
612 113 Pablo Alingery
                Allow from all
613 112 Herve Ballans
        </Location>
614 112 Herve Ballans
</VirtualHost>
615 112 Herve Ballans
616 112 Herve Ballans
</pre>
617 1 Herve Ballans
618 120 Pablo Alingery
619 1 Herve Ballans
Execution test cgi with URL :
620 112 Herve Ballans
http://sdo3.ias.u-psud.fr/ VSO/DRMS/cgi-bin/vso_jsoc_fetch.cgi
621 120 Pablo Alingery
622 112 Herve Ballans
expected result  :
623 112 Herve Ballans
<pre>
624 112 Herve Ballans
{
625 112 Herve Ballans
   "wait" : 0,
626 112 Herve Ballans
   "requestid" : "",
627 112 Herve Ballans
   "data" : {},
628 112 Herve Ballans
   "method" : "url_quick",
629 112 Herve Ballans
   "size" : 0,
630 112 Herve Ballans
   "errormsg" : "Empty query",
631 112 Herve Ballans
   "protocol" : "as-is",
632 112 Herve Ballans
   "status" : 1,
633 112 Herve Ballans
   "space_ratio" : 0.1,
634 112 Herve Ballans
   "load_ratio" : 0.066875,
635 112 Herve Ballans
   "dir" : "",
636 112 Herve Ballans
   "count" : 0
637 112 Herve Ballans
}
638 91 Herve Ballans
</pre>
639 91 Herve Ballans
640 91 Herve Ballans
h2. NetDRMS Start script
641 91 Herve Ballans
642 91 Herve Ballans
<pre>
643 91 Herve Ballans
sum_start.NetDRMS
644 91 Herve Ballans
</pre>
645 91 Herve Ballans
646 91 Herve Ballans
h2. Database repair (from Art)
647 91 Herve Ballans
648 91 Herve Ballans
On ias_sdo
649 91 Herve Ballans
650 91 Herve Ballans
<pre>
651 91 Herve Ballans
delete from admin.ns where name = 'lm_jps';
652 91 Herve Ballans
delete from admin.ns where name = 'aia_test';
653 91 Herve Ballans
</pre>
654 93 Pablo Alingery
655 93 Pablo Alingery
h2. Private key Public key generation 
656 93 Pablo Alingery
657 93 Pablo Alingery
<pre>
658 93 Pablo Alingery
ssh-keygen -t rsa
659 93 Pablo Alingery
</pre>
660 103 Herve Ballans
661 103 Herve Ballans
Not necessary cause we recover the ssh keys of the current server.
662 103 Herve Ballans
663 103 Herve Ballans
However, we have to retrieve the private key of production account on sdo3
664 103 Herve Ballans
665 103 Herve Ballans
From sdo :
666 103 Herve Ballans
<pre>
667 103 Herve Ballans
rsync -av id_rsa production@sdo3:/home/production/.ssh/
668 103 Herve Ballans
</pre>
669 94 Herve Ballans
670 94 Herve Ballans
h2. Node definition
671 94 Herve Ballans
672 94 Herve Ballans
file : /usr/local/netdrms_current/base/drms/replication/etc/ias.repclient.cfg
673 94 Herve Ballans
674 94 Herve Ballans
<pre>
675 1 Herve Ballans
node=IAStest
676 96 Herve Ballans
</pre>
677 96 Herve Ballans
678 96 Herve Ballans
h2. show_series and delete_series binaries
679 96 Herve Ballans
680 97 Pablo Alingery
Remark : these 2 sources are not compiled during installation
681 96 Herve Ballans
Issue : in netdrms_current 8.10 , do :
682 96 Herve Ballans
$ make delete_series
683 94 Herve Ballans
$ make show_series
684 98 Pablo Alingery
685 1 Herve Ballans
h2. SSH-HPN install 
686 98 Pablo Alingery
687 1 Herve Ballans
Intallation de openssh 6.3p1 car le dernier patch hpn dispo est 6.3hpn13.V6 
688 99 Herve Ballans
689 99 Herve Ballans
web site for open ssh : http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.3p1.tar.gz
690 1 Herve Ballans
patch hpn : http://www.psc.edu/index.php/hpn-ssh-patches/hpn-14-kitchen-sink-patches/viewdownload/24-hpn-14-kitchen-sink-patches/102-openssh-6-3p1-hpnssh14v2-kitchen-sink-patch
691 99 Herve Ballans
692 99 Herve Ballans
<pre>
693 99 Herve Ballans
# tar -xzvf openssh-6.3p1.tar.gz
694 99 Herve Ballans
# gunzip openssh-6.3p1-hpnssh14v2.diff.gz
695 99 Herve Ballans
# cd openssh-6.3p1
696 99 Herve Ballans
# zcat ../openssh-6.3p1-hpnssh14v2.diff.gz | patch -p1
697 99 Herve Ballans
# ./configure --prefix=/usr/local/hpn-ssh --with-pam --with-md5-passwords --without-zlib-version-check --with-tcp-wrappers
698 99 Herve Ballans
# make
699 99 Herve Ballans
# make install
700 1 Herve Ballans
</pre>
701 99 Herve Ballans
702 99 Herve Ballans
Depuis sdo :
703 99 Herve Ballans
<pre>
704 99 Herve Ballans
# cd /usr/local/hpn-ssh/etc/
705 99 Herve Ballans
# rsync -av *key* netadm@sdo3:/home/netadm/
706 99 Herve Ballans
</pre>
707 99 Herve Ballans
708 99 Herve Ballans
Sur sdo3 :
709 1 Herve Ballans
<pre>
710 100 Herve Ballans
rsync -av /home/netadm/*key* /usr/local/hpn-ssh/etc/
711 100 Herve Ballans
</pre>
712 100 Herve Ballans
713 100 Herve Ballans
We have to configure the port number to 55000
714 100 Herve Ballans
<pre>
715 100 Herve Ballans
# vi ssh_config
716 100 Herve Ballans
</pre>
717 101 Herve Ballans
718 100 Herve Ballans
and add :
719 100 Herve Ballans
<pre>
720 100 Herve Ballans
#Port 22
721 100 Herve Ballans
Port 55000
722 1 Herve Ballans
</pre>
723 101 Herve Ballans
724 100 Herve Ballans
We configure also the server hpn (even we don't use it yet)
725 100 Herve Ballans
<pre>
726 100 Herve Ballans
# vi sshd_config
727 100 Herve Ballans
</pre>
728 100 Herve Ballans
729 100 Herve Ballans
and add :
730 100 Herve Ballans
<pre>
731 100 Herve Ballans
#Port 22
732 100 Herve Ballans
Port 55000
733 100 Herve Ballans
734 100 Herve Ballans
#PidFile /var/run/sshd.pid
735 100 Herve Ballans
PidFile /var/run/sshd.55000.pid
736 100 Herve Ballans
737 100 Herve Ballans
# allow the use of the none cipher
738 100 Herve Ballans
#NoneEnabled no
739 99 Herve Ballans
NoneEnabled yes
740 98 Pablo Alingery
</pre>
741 106 Pablo Alingery
742 105 Pablo Alingery
h2. Correction
743 105 Pablo Alingery
744 105 Pablo Alingery
h3. Modification du fichier ias.repclient.cfg
745 105 Pablo Alingery
746 105 Pablo Alingery
Copier le template existant repclient.template.cfg dans le répertoire [netdrms_current]/base/drms/replication/etc
747 105 Pablo Alingery
 
748 105 Pablo Alingery
<pre>
749 105 Pablo Alingery
production@sdo3:/usr/local/netdrms_current/base/drms/replication/etc$ cp repclient.template.cfg ias.repclient.cfg
750 105 Pablo Alingery
</pre>
751 1 Herve Ballans
752 106 Pablo Alingery
Nouveau / netdrms2.4 
753 105 Pablo Alingery
<pre>
754 105 Pablo Alingery
# Apps
755 106 Pablo Alingery
kRSPerl=<path to Perl binary to use when Perl scripts are executed>
756 105 Pablo Alingery
</pre>
757 107 Pablo Alingery
758 107 Pablo Alingery
h2. Subscription test 
759 107 Pablo Alingery
760 107 Pablo Alingery
h3. Librairies manquantes
761 107 Pablo Alingery
762 107 Pablo Alingery
Errors 
763 107 Pablo Alingery
<pre>
764 107 Pablo Alingery
Failure to apply SQL file 'IAStest.subscribe_series.sql' from server: ABORTING!
765 107 Pablo Alingery
Can't locate DBI.pm 
766 107 Pablo Alingery
.
767 107 Pablo Alingery
.
768 107 Pablo Alingery
.
769 107 Pablo Alingery
Failure to apply SQL file 'IAStest.subscribe_series.sql' from server: ABORTING!
770 107 Pablo Alingery
Can't locate DBD/Pg.pm
771 107 Pablo Alingery
</pre>
772 1 Herve Ballans
773 1 Herve Ballans
<pre>
774 1 Herve Ballans
root@sdo3:/usr/local/netdrms_8.10/base/drms/replication/subscribe_series# apt-get install libdbi-perl 
775 1 Herve Ballans
root@sdo3:/usr/local/netdrms_8.10/base/drms/replication/subscribe_series# apt-get install libdbd-pg-perl
776 1 Herve Ballans
</pre>
777 110 Herve Ballans
778 110 Herve Ballans
h3. Series souscrites
779 110 Herve Ballans
780 110 Herve Ballans
hmi.sharp_720s_nrt
781 110 Herve Ballans
hmi.mharp_720s_nrt
782 110 Herve Ballans
hmi.bharp_720s_nrt
783 110 Herve Ballans
784 110 Herve Ballans
<pre>
785 110 Herve Ballans
production@sdo3:~$ show_info -s hmi.sharp_720s_nrt
786 110 Herve Ballans
First Record: hmi.sharp_720s_nrt[476][2012.09.14_02:12:00_TAI], Recnum = 829707
787 110 Herve Ballans
Last Record:  hmi.sharp_720s_nrt[4943][2016.03.22_18:24:00_TAI], Recnum = 2015202
788 110 Herve Ballans
Last Recnum:  2015202
789 110 Herve Ballans
Has shadow table: no
790 107 Pablo Alingery
</pre>
791 111 Herve Ballans
792 111 Herve Ballans
h3. Lancement de jetty
793 111 Herve Ballans
794 111 Herve Ballans
<pre>
795 111 Herve Ballans
$ jetty.sh start
796 111 Herve Ballans
</pre>
797 111 Herve Ballans
798 111 Herve Ballans
799 111 Herve Ballans
800 108 Pablo Alingery
801 108 Pablo Alingery
h2. Test recuperation de meta data 
802 108 Pablo Alingery
803 108 Pablo Alingery
librairies manquantes 
804 108 Pablo Alingery
apt-get install libnet-ssh-perl
805 108 Pablo Alingery
apt-get install libstring-shellquote-perl
806 108 Pablo Alingery
807 152 Pablo Alingery
h2. TO BE DONE FURTHER
808 108 Pablo Alingery
809 107 Pablo Alingery
810 152 Pablo Alingery
%{color:red} configure sytem nbr de fichier ouvert en meme temps%
811 1 Herve Ballans
812 152 Pablo Alingery
%{color:red} configure sytem taille  buffer%
813 152 Pablo Alingery
814 155 Pablo Alingery
%{color:red} swap désactivé ? discussion Stephane et Gilles%
815 152 Pablo Alingery
816 80 Pablo Alingery
817 1 Herve Ballans
h3. Modification du fichir config.local pour la souscription au jsoc
818 1 Herve Ballans
819 1 Herve Ballans
820 1 Herve Ballans
<pre>
821 1 Herve Ballans
# NetDRMS users can request subdirectories from the Stanford proj directories 
822 1 Herve Ballans
# (e.g., JSOC/proj/util). These users will need to contact Stanford and obtain
823 1 Herve Ballans
# the source subdirectories desired. They will then place these subdirectories
824 1 Herve Ballans
# in the JSOC/proj directory of their NetDRMS release. To properly build 
825 1 Herve Ballans
# targets in these subdirectories, using the JSOC make system, the user needs
826 1 Herve Ballans
# to add entries to this configuration file - one entry for each subdirectory
827 1 Herve Ballans
# that contains source code to be compiled. Each entry is a space-separated pair
828 1 Herve Ballans
# of strings: the string "PROJDIR" followed by a subdirectory (of the proj 
829 1 Herve Ballans
# directory).  For example:
830 1 Herve Ballans
#
831 1 Herve Ballans
# PROJDIR     util/apps
832 1 Herve Ballans
# PROJDIR     util/libs
833 1 Herve Ballans
# 
834 1 Herve Ballans
# NOTE: It is not sufficient to list only a parent directory, like util. Source code
835 18 Herve Ballans
# in child directories will not automatically be compiled.
836 18 Herve Ballans
</pre>
837 18 Herve Ballans
838 18 Herve Ballans
h3. Python library for multi-threaded SUMS
839 1 Herve Ballans
840 1 Herve Ballans
Installation de la librairie python3.4m