perfSONAR: Documentation
Appliance Details
Description
This appliance creates instances that are equipped with perfSONAR. Both Haswell and Skylake servers can be used. Desired perfSONAR bundle can be selected. One perfSONAR node with perfsonar-toolkit is created. Optionally, additional perfSONAR nodes can be created. Instances can be connected to any of the neutron networks (sharednet1, sharedwan1, isolated networks created by the users).
Installation of the perfSONAR software stack is defined as a postboot script (user_data) in the template file. Desired changes for tuning can be done in the user_data section. Installation is done on standard CC-CentOS7 image. There are no special requirements for the base OS.
Fundamental host tuning can be seen in /etc/sysctl.conf and /etc/profile.d/perfsonar.sh files. Additional information can be found here .
Initial Configuration
Configure tests through web-ui
- perfSONAR dashboard is available with the URL https://FLOATING_IP_ADDRESS/toolkit.
- A web user should be created to configure tests via web-ui.
[cc@perfsonar ~]$ sudo su -
Last login: Wed Oct 30 20:20:20 UTC 2019 on pts/0
There isn't a perfSONAR Website Administrator defined.
Enter the user whose account you'd like to add. Just hit enter to exit:
New password:
Re-type new password:
Adding password for user perfsonarweb
There isn't a perfSONAR sudo user defined. It is recommended that you create a sudo user and disable SSH root login.
WARNING: Be sure you remember the username and password you create with this script as root will no longer be able to login via SSH once this command completes. If you are using SSH as root now, your session should continue until you logout.
Would you like to create a sudo user and disable root SSH? [yes]
Enter the user whose account you'd like to add. Just hit enter to exit:
[root@perfsonar ~]#
Additional information can be found on here .
Also, Creating and Managing Tasks page includes information about configuring tests with pscheduler.
Basic network measurements
Once a stack with 2 perfSONAR instances are created, network measurement tests can be performed as below:
[root@perfsonar-1 ~]# LOCAL_HOST="192.168.201.12"
[root@perfsonar-1 ~]# REMOTE_HOST="192.168.201.14"
[root@perfsonar-1 ~]# pscheduler ping $REMOTE_HOST
192.168.201.14: pScheduler is alive
[root@perfsonar-1 ~]# pscheduler task trace --dest $REMOTE_HOST --source $LOCAL_HOST
Submitting task...
Task URL:
https://192.168.201.12/pscheduler/tasks/5e997239-e4f4-4290-93bc-43e6072ecf32
Running with tool 'traceroute'
Fetching first run...
Next scheduled run:
https://192.168.201.12/pscheduler/tasks/5e997239-e4f4-4290-93bc-43e6072ecf32/runs/440180a9-fb79-4c6c-8fcc-824fab2b897a
Starts 2019-10-31T05:12:46Z (~2 seconds)
Ends 2019-10-31T05:12:54Z (~7 seconds)
Waiting for result...
1 192.168.201.14 0.2 ms
No further runs scheduled.
[root@perfsonar-1 ~]# pscheduler task rtt --dest $REMOTE_HOST --source $LOCAL_HOST
Submitting task...
Task URL:
https://192.168.201.12/pscheduler/tasks/96d7ac95-3535-4d51-8ac7-c3178955a297
Running with tool 'ping'
Fetching first run...
Next scheduled run:
https://192.168.201.12/pscheduler/tasks/96d7ac95-3535-4d51-8ac7-c3178955a297/runs/142d77b7-da4f-4192-8923-2d5d6aea3a46
Starts 2019-10-31T05:13:12Z (~2 seconds)
Ends 2019-10-31T05:13:23Z (~10 seconds)
Waiting for result...
1 192.168.201.14 64 Bytes TTL 64 RTT 0.2430 ms
2 192.168.201.14 64 Bytes TTL 64 RTT 0.1640 ms
3 192.168.201.14 64 Bytes TTL 64 RTT 0.1840 ms
4 192.168.201.14 64 Bytes TTL 64 RTT 0.1850 ms
5 192.168.201.14 64 Bytes TTL 64 RTT 0.1580 ms
0% Packet Loss RTT Min/Mean/Max/StdDev = 0.158000/0.186000/0.243000/0.034000 ms
No further runs scheduled.
[root@perfsonar-1 ~]# pscheduler task simplestream --dest $REMOTE_HOST --source $LOCAL_HOST
Submitting task...
Task URL:
https://192.168.201.12/pscheduler/tasks/397bd755-3ddf-4514-b85e-30cfc3f64870
Running with tool 'simplestreamer'
Fetching first run...
Next scheduled run:
https://192.168.201.12/pscheduler/tasks/397bd755-3ddf-4514-b85e-30cfc3f64870/runs/c1a13a66-467a-4964-a53b-7480f80a5379
Starts 2019-10-31T05:13:49Z (~6 seconds)
Ends 2019-10-31T05:13:54Z (~4 seconds)
Waiting for result...
Dawdled ......... P0D
Text Sent ....... Data sent at 2019-10-31 05:13:49.226337
Text Received ... Data sent at 2019-10-31 05:13:49.226337
Elapsed Time .... PT0.466438S
No further runs scheduled.
[root@perfsonar-1 ~]# pscheduler task throughput --bandwidth 10G --dest $REMOTE_HOST --source $LOCAL_HOST
Submitting task...
Task URL:
https://192.168.201.12/pscheduler/tasks/5059ecc8-4bf0-4589-96e1-02363359733f
Running with tool 'iperf3'
Fetching first run...
Next scheduled run:
https://192.168.201.12/pscheduler/tasks/5059ecc8-4bf0-4589-96e1-02363359733f/runs/f0ea0e36-fb43-4005-b01d-f930d7fc8376
Starts 2019-10-31T05:14:24Z (~7 seconds)
Ends 2019-10-31T05:14:43Z (~18 seconds)
Waiting for result...
* Stream ID 5
Interval Throughput Retransmits Current Window
0.0 - 1.0 9.87 Gbps 4 796.37 KBytes
1.0 - 2.0 9.89 Gbps 0 859.01 KBytes
2.0 - 3.0 9.89 Gbps 0 876.90 KBytes
3.0 - 4.0 9.89 Gbps 0 903.75 KBytes
4.0 - 5.0 9.89 Gbps 0 1.10 MBytes
5.0 - 6.0 9.89 Gbps 0 1.31 MBytes
6.0 - 7.0 9.89 Gbps 0 1.32 MBytes
7.0 - 8.0 9.89 Gbps 0 1.53 MBytes
8.0 - 9.0 9.89 Gbps 0 1.53 MBytes
9.0 - 10.0 9.90 Gbps 0 1.55 MBytes
Summary
Interval Throughput Retransmits
0.0 - 10.0 9.89 Gbps 4
No further runs scheduled.
[root@perfsonar-1 ~]# pscheduler task latency --dest=$REMOTE_HOST --source=$LOCAL_HOST
Submitting task...
Task URL:
https://192.168.201.12/pscheduler/tasks/e48112c1-8b62-4a06-b50a-a91cf665074d
Running with tool 'owping'
Fetching first run...
Next scheduled run:
https://192.168.201.12/pscheduler/tasks/e48112c1-8b62-4a06-b50a-a91cf665074d/runs/868a847f-de89-44d3-bd62-808881dd94b0
Starts 2019-10-31T05:20:13Z (~3 seconds)
Ends 2019-10-31T05:20:34Z (~20 seconds)
Waiting for result...
Run did not complete: Failed
Limit system diagnostics for this run:
Hints:
requester: 192.168.201.12
server: 192.168.201.12
Identified as everybody, local-interfaces
Classified as default, friendlies
Application: Hosts we trust to do everything
Group 1: Limit 'always' passed
Group 1: Want all, 1/1 passed, 0/1 failed: PASS
Application PASSES
Application: Defaults applied to non-friendly hosts
Group 1: Limit 'innocuous-tests' passed
Group 1: Limit 'throughput-default-time' failed: Test is not 'throughput'
Group 1: Limit 'throughput-default-udp' failed: Test is not 'throughput'
Group 1: Limit 'idleex-default' failed: Test is not 'idleex'
Group 1: Want any, 1/4 passed, 3/4 failed: PASS
Application PASSES
Proposal meets limits
Priority set at 0:
Initial priority (Set to 0)
Error:
Process took too long to run.
Diagnostics from 192.168.201.12:
No diagnostics.
Error from 192.168.201.12:
No error.
No further runs scheduled.
Network measurements across UC and TACC
In this setup, we have isolated networks on UC and TACC sites. These networks have the same subnet with separate allocation pools. Both isolated networks are stitched through Layer2 circuits . On each site, 2 perfSONAR nodes are created.
- UC: 192.168.201.12, 192.168.201.14
- TACC: 192.168.201.24, 192.168.201.26
Create Networks
CHI@UC
$ openstack network show net-exogeni-perfsonar-1
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2019-10-31T03:48:11Z |
| description | VSwitchName=perfsonar |
| dns_domain | None |
| id | a12e3b1f-02c9-457f-8f08-67fdbd9c8286 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | None |
| is_vlan_transparent | None |
| location | None |
| mtu | 1500 |
| name | net-exogeni-perfsonar-1 |
| port_security_enabled | True |
| project_id | d9faac3973a847f1b718fa765fe312e2 |
| provider:network_type | vlan |
| provider:physical_network | exogeni |
| provider:segmentation_id | 3294 |
| qos_policy_id | None |
| revision_number | 2 |
| router:external | Internal |
| segments | None |
| shared | False |
| status | ACTIVE |
| subnets | c2cc881f-c504-469b-843c-f5f01b1d5bb2 |
| tags | |
| updated_at | 2019-10-31T03:55:44Z |
+---------------------------+--------------------------------------+
$ openstack subnet show subnet-net-exogeni-perfsonar-1
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| allocation_pools | 192.168.201.11-192.168.201.19 |
| cidr | 192.168.201.0/24 |
| created_at | 2019-10-31T03:55:44Z |
| description | |
| dns_nameservers | 130.202.101.37, 130.202.101.6 |
| enable_dhcp | True |
| gateway_ip | 192.168.201.10 |
| host_routes | |
| id | c2cc881f-c504-469b-843c-f5f01b1d5bb2 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| location | None |
| name | subnet-net-exogeni-perfsonar-1 |
| network_id | a12e3b1f-02c9-457f-8f08-67fdbd9c8286 |
| project_id | d9faac3973a847f1b718fa765fe312e2 |
| revision_number | 0 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| tags | |
| updated_at | 2019-10-31T03:55:44Z |
+-------------------+--------------------------------------+
$ openstack server list -f table -c Name -c Networks
+-------------+------------------------------------------------------+
| Name | Networks |
+-------------+------------------------------------------------------+
| perfsonar-1 | net-exogeni-perfsonar-1=192.168.201.12, 192.5.87.159 |
| ps-0 | net-exogeni-perfsonar-1=192.168.201.14 |
+-------------+------------------------------------------------------+
CHI@TACC
$ openstack network show net-exogeni-perfsonar-1
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2019-10-31T03:49:02Z |
| description | VSwitchName=perfsonar |
| dns_domain | None |
| id | 1535a613-10f0-4ecd-b2aa-0267a6530b4a |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | None |
| is_vlan_transparent | None |
| location | None |
| mtu | 1500 |
| name | net-exogeni-perfsonar-1 |
| port_security_enabled | True |
| project_id | d9faac3973a847f1b718fa765fe312e2 |
| provider:network_type | vlan |
| provider:physical_network | exogeni |
| provider:segmentation_id | 3509 |
| qos_policy_id | None |
| revision_number | 3 |
| router:external | Internal |
| segments | None |
| shared | False |
| status | ACTIVE |
| subnets | 12b694f5-7532-4bc8-a34b-59e8b11bdf13 |
| tags | |
| updated_at | 2019-10-31T04:26:05Z |
+---------------------------+--------------------------------------+
$ openstack subnet show subnet-net-exogeni-perfsonar-1
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| allocation_pools | 192.168.201.21-192.168.201.29 |
| cidr | 192.168.201.0/24 |
| created_at | 2019-10-31T03:56:14Z |
| description | |
| dns_nameservers | 8.8.4.4, 8.8.8.8 |
| enable_dhcp | True |
| gateway_ip | 192.168.201.20 |
| host_routes | |
| id | 12b694f5-7532-4bc8-a34b-59e8b11bdf13 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| location | None |
| name | subnet-net-exogeni-perfsonar-1 |
| network_id | 1535a613-10f0-4ecd-b2aa-0267a6530b4a |
| project_id | d9faac3973a847f1b718fa765fe312e2 |
| revision_number | 1 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| tags | |
| updated_at | 2019-10-31T04:26:05Z |
+-------------------+--------------------------------------+
$ openstack server list -f table -c Name -c Networks
+-------------+--------------------------------------------------------+
| Name | Networks |
+-------------+--------------------------------------------------------+
| perfsonar-2 | net-exogeni-perfsonar-1=192.168.201.24, 129.114.109.18 |
| ps-0 | net-exogeni-perfsonar-1=192.168.201.26 |
+-------------+--------------------------------------------------------+
Network Measurements
[root@perfsonar-1 ~]# pscheduler task rtt --dest $REMOTE_HOST --source $LOCAL_HOST
Submitting task...
Task URL:
https://192.168.201.12/pscheduler/tasks/f20d9626-65d3-482e-9283-0882a3655580
Running with tool 'ping'
Fetching first run...
Next scheduled run:
https://192.168.201.12/pscheduler/tasks/f20d9626-65d3-482e-9283-0882a3655580/runs/323cac7d-8432-4b46-be87-e27e4ab4d56c
Starts 2019-10-31T05:53:05Z (~4 seconds)
Ends 2019-10-31T05:53:16Z (~10 seconds)
Waiting for result...
1 192.168.201.24 64 Bytes TTL 64 RTT 31.2000 ms
2 192.168.201.24 64 Bytes TTL 64 RTT 31.1000 ms
3 192.168.201.24 64 Bytes TTL 64 RTT 31.2000 ms
4 192.168.201.24 64 Bytes TTL 64 RTT 31.1000 ms
5 192.168.201.24 64 Bytes TTL 64 RTT 31.1000 ms
0% Packet Loss RTT Min/Mean/Max/StdDev = 31.122000/31.181000/31.243000/0.164000 ms
No further runs scheduled.
[root@perfsonar-1 ~]# pscheduler task throughput --bandwidth 10G --dest $REMOTE_HOST --source $LOCAL_HOST
Submitting task...
Task URL:
https://192.168.201.12/pscheduler/tasks/f04b87c4-d466-40d0-90db-ded10fb100b7
Running with tool 'iperf3'
Fetching first run...
Next scheduled run:
https://192.168.201.12/pscheduler/tasks/f04b87c4-d466-40d0-90db-ded10fb100b7/runs/c2fae915-6803-465d-9811-a21f16eeef3a
Starts 2019-10-31T05:52:04Z (~7 seconds)
Ends 2019-10-31T05:52:23Z (~18 seconds)
Waiting for result...
* Stream ID 5
Interval Throughput Retransmits Current Window
0.0 - 1.0 7.55 Gbps 6 78.16 MBytes
1.0 - 2.0 9.90 Gbps 0 78.16 MBytes
2.0 - 3.0 9.90 Gbps 0 78.71 MBytes
3.0 - 4.0 9.90 Gbps 0 78.71 MBytes
4.0 - 5.0 9.90 Gbps 0 78.71 MBytes
5.0 - 6.0 9.90 Gbps 1 80.10 MBytes
6.0 - 7.0 9.90 Gbps 0 80.35 MBytes
7.0 - 8.0 9.90 Gbps 0 80.35 MBytes
8.0 - 9.0 9.90 Gbps 0 82.59 MBytes
9.0 - 10.0 9.81 Gbps 14 41.30 MBytes
Summary
Interval Throughput Retransmits
0.0 - 10.0 9.66 Gbps 21
No further runs scheduled.