4. 아카이브 설정
아카이브 개요
pscheduler 는 테스트를 등록하고 수행하는 스케줄러입니다.
pscheduler 로 실행한 테스트의 결과는 수행한 호스트로 전달됩니다.
예를 들어 호스트C에서 호스트A-B 사이의 대역폭 테스트를 수행하면 테스트 결과는 C로 전달됩니다.
pscheduler 명령줄 실행시 --archive 옵션을 주면, 테스트 결과는 해당 아카이브에 저장됩니다.
(참고) https://docs.perfsonar.net/pscheduler_ref_archivers.html
기본 아카이브
호스트C에서 호스트A-B 사이의 대역폭 테스트를 수행하면 테스트 결과는 C로 전달됩니다. 즉, 호스트 A와 B는 테스트에 참여했지만 해당 테스트 결과를 조화하지 못합니다.
호스트 A와 B를 운영하는 입장에서는, 다른 사용자가 내 서버를 이용해서 어떠한 테스트를 수행하였는지 관심이 있을 수 있습니다.
pscheduler 의 기본 아카이브를 설정하면, 외부의 사용자가 pscheduler 를 통해 등록한 테스트의 결과를 저장할 수 있습니다.
로컬 아카이브 설정
해당 서버(HOST_A_IP)를 사용한 테스트의 결과를 해당 서버에 저장하는 아카이브 설정입니다.
{
"archiver": "http",
"data": {
"schema": 3,
"_url": "https://127.0.0.1/logstash",
"verify-ssl": false,
"op": "put",
"_headers": {
"x-ps-observer": "{% scheduled_by_address %}",
"content-type": "application/json"
}
}
}
다음 파일을 수정하여, HTTP 웹서버의 쓰기 권한을 활성화 하여야 합니다.
<IfModule proxy_module>
ProxyRequests Off
<Proxy *>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order deny,allow
Allow from all
</IfVersion>
</Proxy>
ProxyPass /logstash http://localhost:11283 status=+I
ProxyPassReverse /logstash http://localhost:11283 status=+I
ProxyPreserveHost On
<Location /logstash>
Authtype Basic
Authname "Logstash Pass"
AuthUserFile /etc/perfsonar/opensearch/logstash_login
# passwordless
Require ip 127.0.0.1
Require ip HOST_A_IP
Require host kreonet.net
Require host kreonet2.net
<RequireAny>
# password required
Require valid-user
</RequireAny>
</Location>
</IfModule>
중앙 아카이브 설정
해당 서버(HOST_A_IP)를 사용한 테스트의 결과를 원격지의 중앙 아카이브(REMOTE_CENTRAL_ARCHIVE)에 저장하는 아카이브 설정입니다.
{
"archiver": "http",
"data": {
"schema": 3,
"_url": "https://REMOTE_CENTRAL_ARCHIVE/logstash",
"verify-ssl": false,
"op": "put",
"_headers": {
"x-ps-observer": "{% scheduled_by_address %}",
"content-type": "application/json"
}
},
"_meta": {
"esmond_url": "https://REMOTE_CENTRAL_ARCHIVE/esmond/perfsonar/archive/"
}
}
원격 서버(REMOTE_CENTRAL_ARCHIVE)에서 다음 파일을 수정하여, HTTP 웹서버의 쓰기 권한을 활성화 하여야 합니다.
<IfModule proxy_module>
ProxyRequests Off
<Proxy *>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order deny,allow
Allow from all
</IfVersion>
</Proxy>
ProxyPass /logstash http://localhost:11283 status=+I
ProxyPassReverse /logstash http://localhost:11283 status=+I
ProxyPreserveHost On
<Location /logstash>
Authtype Basic
Authname "Logstash Pass"
AuthUserFile /etc/perfsonar/opensearch/logstash_login
# passwordless
Require ip 127.0.0.1
Require ip HOST_A_IP
Require ip HOST_B_IP
...
<RequireAny>
# password required
Require valid-user
</RequireAny>
</Location>
</IfModule>
예
상기 방법으로 구축한 중앙 아카이브 서버 http://ps-dash.kreonet.net 를 구축하고, KREONET의 perfSONAR 노드들은 모두 상기 서버로 테스트 데이터를 보내도록 설정하였습니다.