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)를 사용한 테스트의 결과를 해당 서버에 저장하는 아카이브 설정입니다.

/etc/pscheduler/default-archives/local.json
{
    "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 웹서버의 쓰기 권한을 활성화 하여야 합니다.

/etc/apache2/conf-available/apache-logstash.conf
<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)에 저장하는 아카이브 설정입니다.

/etc/pscheduler/default-archives/central.json
{
    "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 웹서버의 쓰기 권한을 활성화 하여야 합니다.

/etc/apache2/conf-available/apache-logstash.conf
<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 노드들은 모두 상기 서버로 테스트 데이터를 보내도록 설정하였습니다.