Compare commits

...

25 Commits
v0.0.2 ... main

Author SHA1 Message Date
Mark Nellemann f5440d764c Update version
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-11-22 10:50:13 +01:00
Mark Nellemann 98db370f0b Dependency updates and cleanup.
continuous-integration/drone/push Build is passing Details
2023-11-22 10:47:00 +01:00
Mark Nellemann c7644a9137 Revert gradle plugin update (due to Java-8 compatibility)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-08-08 14:41:44 +02:00
Mark Nellemann 046470eec1 Update 3rd party deps.
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/tag Build is failing Details
2023-08-08 14:37:36 +02:00
Mark Nellemann 9468c1b695 Merge pull request 'Support for InfluxDB 2.x (now requires 1.8 or later)' (#2) from influxdb2 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #2
2023-05-25 13:23:01 +00:00
Mark Nellemann 04d3d8d0cd Fix typos.
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-05-25 15:18:53 +02:00
Mark Nellemann 88e45c21d9 Merge conflicts
continuous-integration/drone/push Build is passing Details
2023-05-25 15:17:10 +02:00
Mark Nellemann 0995d91287 Support for InfluxDB 2.x (now requires 1.8 or later).
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is failing Details
2023-05-20 12:38:35 +02:00
Mark Nellemann 708302d1ab Fix typo in config example and update some build deps. 2023-05-10 10:54:41 +02:00
Mark Nellemann 3b9119f9ad Update documentation.
continuous-integration/drone/push Build is passing Details
2023-03-08 10:28:27 +01:00
Mark Nellemann 39c227b2de Update dashboard link.
continuous-integration/drone/push Build is passing Details
2023-02-06 19:40:27 +01:00
Mark Nellemann 3146ad455a Provide screenshot in README and update dependencies.
continuous-integration/drone/push Build is passing Details
2023-02-06 19:21:33 +01:00
Mark Nellemann 5bfbeccbd2 Update links.
continuous-integration/drone/push Build is passing Details
2023-01-18 15:45:42 +01:00
Mark Nellemann 0285bd09e8 Update links.
continuous-integration/drone/push Build is passing Details
2023-01-06 08:04:10 +01:00
Mark Nellemann 8bffec7606 Update links.
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-01-04 15:32:57 +01:00
Mark Nellemann 4fa9fe047f Updates and prep for migrations. 2023-01-04 15:22:29 +01:00
Mark Nellemann 97c9053ff2 Update dashboard, README and bump version. 2022-12-20 10:26:16 +01:00
Mark Nellemann 12b1ca4724 Update drawio file 2022-12-20 08:51:16 +01:00
Mark Nellemann 425cf54d6a Update dashboard and README. 2022-12-19 13:57:52 +01:00
Mark Nellemann d1c5b1146a Merge remote-tracking branch 'origin/main' 2022-12-17 10:34:40 +01:00
Mark Nellemann a3631fe78e Update README with links to other related projects. 2022-12-17 10:34:32 +01:00
Mark Nellemann fbc5c57914 Cleanup 2022-12-15 14:54:36 +01:00
Mark Nellemann 28b4448b7c Merge remote-tracking branch 'origin/main' 2022-12-10 11:20:54 +01:00
Mark Nellemann 766b2fa91f Set influx time precision to seconds. 2022-12-10 11:20:45 +01:00
Mark Nellemann 71fe249c27 Update dashboard 2022-12-05 15:20:04 +01:00
51 changed files with 5738 additions and 561 deletions

23
.drone.yml Normal file
View File

@ -0,0 +1,23 @@
---
kind: pipeline
name: default
type: docker
steps:
- name: test
image: eclipse-temurin:8-jdk
commands:
- ./gradlew test
- name: build
image: eclipse-temurin:8-jdk
environment:
AUTH_TOKEN: # Gitea access token ENV variable
from_secret: auth # Name of DroneCI secret exposed above
commands:
- ./gradlew build packages
- for file in build/libs/*-all.jar ; do curl --user "${DRONE_REPO_OWNER}:$${AUTH_TOKEN}" --upload-file "$${file}" "https://git.data.coop/api/packages/${DRONE_REPO_OWNER}/generic/${DRONE_REPO_NAME}/${DRONE_TAG}/$(basename $file)" ; done
- for file in build/distributions/*.deb ; do curl --user "${DRONE_REPO_OWNER}:$${AUTH_TOKEN}" --upload-file "$${file}" "https://git.data.coop/api/packages/${DRONE_REPO_OWNER}/generic/${DRONE_REPO_NAME}/${DRONE_TAG}/$(basename $file)" ; done
- for file in build/distributions/*.rpm ; do curl --user "${DRONE_REPO_OWNER}:$${AUTH_TOKEN}" --upload-file "$${file}" "https://git.data.coop/api/packages/${DRONE_REPO_OWNER}/generic/${DRONE_REPO_NAME}/${DRONE_TAG}/$(basename $file)" ; done
when:
event:
- tag

View File

@ -1,3 +1,10 @@
# Changelog
All notable changes to this project will be documented in this file.
## 0.1.2 - 2023-08-08
- Updated 3rd party dependencies
## 0.1.1 - 2023-05-20
- Support for InfluxDB v2, now requires InfluxDB 1.8 or later

View File

@ -1,26 +1,43 @@
# SVC Insights
# Spectrum Virtualize Insights / SVCi
**SVCi** is a utility that collects metrics from one or more *IBM SAN Volume Controllers*. The metric data is processed and saved into an InfluxDB time-series database. Grafana is used to visualize the metrics data from InfluxDB through provided dashboards, or your own customized dashboards.
This software is free to use and is licensed under the [Apache 2.0 License](https://bitbucket.org/mnellemann/svci/src/master/LICENSE), but is not supported or endorsed by International Business Machines (IBM).
This software is free to use and is licensed under the [Apache 2.0 License](LICENSE), but is not supported or endorsed by International Business Machines (IBM).
![architecture](doc/SVCi.png)
Some of my other related projects are:
- [hmci](https://git.data.coop/nellemann/hmci) for agent-less monitoring of IBM Power servers
- [sysmon](https://git.data.coop/nellemann/sysmon) for monitoring all types of servers with a small Java agent
- [syslogd](https://git.data.coop/nellemann/syslogd) for redirecting syslog and GELF to remote logging destinations
## Screenshots
![screenshot](doc/screenshots/v7000-8_4_2_0-1.png)
More screenshots can be found in the [doc/screenshots/](doc/screenshots) folder.
## Installation and Setup
There are few steps in the installation.
1. Installation of InfluxDB and Grafana software
2. Installation and configuration of *SVC Insights* (SVCi)
3. Configure Grafana and import example dashboards
1. Prepare your Spectrum Virtualize
2. Installation of InfluxDB and Grafana software
3. Installation and configuration of *SVC Insights* (SVCi)
4. Configure Grafana and import example dashboards
### 1 - InfluxDB and Grafana Installation
### 1 - Prepare Spectrum Virtualize
Install InfluxDB (v. **1.8.x** or **1.9.x** for best compatibility with Grafana) on a host which is network accessible by the SVCi utility (the default InfluxDB port is 8086). You can install Grafana on the same server or any server which are able to connect to the InfluxDB database. The Grafana installation needs to be accessible from your browser (default on port 3000). The default settings for both InfluxDB and Grafana will work fine as a start.
- Create a user with the "Monitor" role
- To start extended statistics, the user must be in the "Administrator" role (svctask startstats -interval 30)
### 2 - InfluxDB and Grafana Installation
Install InfluxDB (v. **1.8** or later) on a host which is network accessible by the SVCi utility (the default InfluxDB port is 8086). You can install Grafana on the same server or any server which are able to connect to the InfluxDB database. The Grafana installation needs to be accessible from your browser (default on port 3000). The default settings for both InfluxDB and Grafana will work fine as a start.
- You can download [Grafana ppc64le](https://www.power-devops.com/grafana) and [InfluxDB ppc64le](https://www.power-devops.com/influxdb) packages for most Linux distributions and AIX on the [Power DevOps](https://www.power-devops.com/) site.
- Binaries for amd64/x86 are available from the [Grafana website](https://grafana.com/grafana/download) (select the **OSS variant**) and [InfluxDB website](https://portal.influxdata.com/downloads/) and most likely directly from your Linux distributions repositories.
- Create the empty *svci* database by running the **influx** CLI command and type:
```text
@ -29,20 +46,20 @@ CREATE DATABASE "svci" WITH DURATION 365d REPLICATION 1;
See the [Influx documentation](https://docs.influxdata.com/influxdb/v1.8/query_language/manage-database/#create-database) for more information on duration and replication.
### 2 - SVCi Installation & Configuration
### 3 - SVCi Installation & Configuration
Install *SVCi* on a host, that can connect to your SAN Volume Controllers (on port 7443), and is also allowed to connect to the InfluxDB service. This *can be* the same LPAR/VM as used for the InfluxDB installation.
- Ensure you have **correct date/time** and NTPd running to keep it accurate!
- The only requirement for **svci** is the Java runtime, version 8 (or later)
- Install **SVCi** from [downloads](https://bitbucket.org/mnellemann/svci/downloads/) (rpm, deb or jar) or build from source
- Install **SVCi** from from [packages](https://git.data.coop/nellemann/-/packages/generic/svci/) (rpm, deb or jar) or build from source
- On RPM based systems: ```sudo rpm -ivh svci-x.y.z-n.noarch.rpm```
- On DEB based systems: ```sudo dpkg -i svci_x.y.z-n_all.deb```
- Copy the **/opt/svci/doc/svci.toml** configuration example into **/etc/svci.toml** and edit the configuration to suit your environment. The location of the configuration file can optionally be changed with the *--conf* option.
- Run the **/opt/svci/bin/svci** program in a shell, as a @reboot cron task or configure as a proper service - there are instructions in the [doc/](doc/) folder.
- When started, *svci* expects the InfluxDB database to exist already.
### 3 - Grafana Configuration
### 4 - Grafana Configuration
- Configure Grafana to use InfluxDB as a new datasource
- **NOTE:** set *Min time interval* depending on your SVCi *refresh* setting.
@ -54,16 +71,6 @@ Install *SVCi* on a host, that can connect to your SAN Volume Controllers (on po
This is most likely due to timezone, date and/or NTP not being configured correctly on the SAN Volune Controller and/or host running SVCi.
### Start InfluxDB and Grafana at boot (systemd compatible Linux)
```shell
systemctl enable influxdb
systemctl start influxdb
systemctl enable grafana-server
systemctl start grafana-server
```
### InfluxDB Retention Policy
Examples for changing the default InfluxDB retention policy for the svci database:
@ -92,7 +99,6 @@ systemctl restart svci
journalctl -f -u svci # to check log output
```
### AIX Notes
To install (or upgrade) on AIX, you need to pass the *--ignoreos* flag to the *rpm* command:
@ -102,7 +108,9 @@ rpm -Uvh --ignoreos svci-x.y.z-n.noarch.rpm
```
## Known problems
## Screenshots
Screenshots of the provided Grafana dashboard can be found in the [doc/screenshots/](doc/screenshots) folder.
## Development Information
@ -120,9 +128,9 @@ Use the gradle build tool, which will download all required dependencies:
### Local Testing
#### InfluxDB
#### InfluxDB v1.x
Start the InfluxDB container:
Start a InfluxDB container:
```shell
docker run --name=influxdb --rm -d -p 8086:8086 influxdb:1.8
@ -134,10 +142,21 @@ Create the *svci* database:
docker exec -i influxdb influx -execute "CREATE DATABASE svci"
```
#### InfluxDB v2.x
Start a InfluxDB container:
```shell
docker run --name=influxdb --rm -d -p 8086:8086 influxdb:latest
```
- Then use the Web UI to create an initial user (for the web UI), an organization and bucket: http://localhost:8086/
- Then create an API token with RW access to your bucket.
#### Grafana
Start the Grafana container, linking it to the InfluxDB container:
Start a Grafana container, linking it to the InfluxDB container:
```shell
docker run --name grafana --link influxdb:influxdb --rm -d -p 3000:3000 grafana/grafana
@ -145,5 +164,6 @@ docker run --name grafana --link influxdb:influxdb --rm -d -p 3000:3000 grafana/
Setup Grafana to connect to the InfluxDB container by defining a new datasource on URL *http://influxdb:8086* named *svci*.
Grafana dashboards can be imported from the *doc/dashboards/* folder.
If you are [connecting](https://docs.influxdata.com/influxdb/v2.7/tools/grafana/) to InfluxDB v2.x, then add a custom http header, enter bucket as database and disable authorization.
- Authorization = Token abcdef_random_token_from_nfluxdb==
- Import dashboards from the [doc/dashboards/](doc/dashboards/) folder.

View File

@ -2,13 +2,11 @@ plugins {
id 'java'
id 'groovy'
id 'application'
// Code coverage of tests
id 'jacoco'
id "com.github.johnrengelman.shadow" version "7.1.2"
id "net.nemerosa.versioning" version "2.15.1"
id "nebula.ospackage" version "9.1.1"
id "com.netflix.nebula.ospackage" version "11.4.0"
id "com.github.johnrengelman.shadow" version "7.1.2"
}
repositories {
@ -20,22 +18,19 @@ group = projectGroup
version = projectVersion
dependencies {
annotationProcessor 'info.picocli:picocli-codegen:4.7.0'
implementation 'info.picocli:picocli:4.7.0'
implementation 'org.influxdb:influxdb-java:2.23'
//implementation 'com.influxdb:influxdb-client-java:6.7.0'
implementation 'org.slf4j:slf4j-api:2.0.4'
implementation 'org.slf4j:slf4j-simple:2.0.4'
implementation 'com.squareup.okhttp3:okhttp:4.10.0' // Also used by InfluxDB Client
//implementation "org.eclipse.jetty:jetty-client:9.4.49.v20220914"
implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.1'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.1'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.14.1'
annotationProcessor 'info.picocli:picocli-codegen:4.7.5'
implementation 'info.picocli:picocli:4.7.5'
implementation 'com.influxdb:influxdb-client-java:6.10.0'
implementation 'org.slf4j:slf4j-api:2.0.9'
implementation 'org.slf4j:slf4j-simple:2.0.9'
implementation 'com.squareup.okhttp3:okhttp:4.11.0' // Also used by InfluxDB Client
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.3'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.15.3'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.slf4j:slf4j-simple:2.0.4'
testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0'
testImplementation "org.mock-server:mockserver-netty-no-dependencies:5.14.0"
testImplementation 'org.spockframework:spock-core:2.3-groovy-4.0'
testImplementation "org.mock-server:mockserver-netty-no-dependencies:5.15.0"
}
application {
@ -52,8 +47,6 @@ test {
useJUnitPlatform()
}
apply plugin: 'nebula.ospackage'
ospackage {
packageName = 'svci'
release = '1'
@ -129,7 +122,7 @@ jar {
}
}
tasks.create("packages") {
tasks.register("packages") {
group "build"
dependsOn ":build"
dependsOn ":buildDeb"

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 56 KiB

19
doc/TODO.md Normal file
View File

@ -0,0 +1,19 @@
# TODO
Extended stats
```shell
svctask stopstats
svctask startstats -interval 5
lsdumps -prefix /dumps/iostats
```
The files generated are written to the /dumps/iostats directory.
https://www.ibm.com/docs/en/flashsystem-5x00/8.4.x?topic=commands-startstats
https://www.ibm.com/support/pages/overview-svc-v510-performance-statistics

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,6 @@
Please note that the software versions referenced in this document might have changed and might not be available/working unless updated.
More details are available in the [README.md](../README.md) file.
- Grafana and InfluxDB can be downloaded from the [Power DevOps](https://www.power-devops.com/) website - look under the *Monitor* section.
- Ensure Java (version 8 or later) is installed and available in your PATH.
@ -11,9 +9,10 @@ More details are available in the [README.md](../README.md) file.
## Download and Install svci
[Download](https://git.data.coop/nellemann/-/packages/generic/svci/) the latest version of SVCi packaged for rpm.
```shell
wget https://bitbucket.org/mnellemann/svci/downloads/svci-0.0.1-1_all.rpm
rpm -i --ignoreos svci-0.0.1-1_all.rpm
rpm -ivh --ignoreos svci-0.0.3-1_all.rpm
cp /opt/svci/doc/svci.toml /etc/
```

View File

@ -1,15 +1,13 @@
# Instruction for Debian / Ubuntu Systems
# Instructions for Debian / Ubuntu Systems
Please note that the software versions referenced in this document might have changed and might not be available/working unless updated.
More details are available in the [README.md](../README.md) file.
All commands should be run as root or through sudo.
## Install the Java Runtime from repository
```shell
apt-get install default-jre-headless
apt-get install default-jre-headless wget
```
@ -25,13 +23,17 @@ systemctl start influxdb
Run the ```influx``` cli command and create the *svci* database.
```sql
CREATE DATABASE "svci" WITH DURATION 365d REPLICATION 1;
```
## Download and Install Grafana
```shell
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_9.1.3_amd64.deb
dpkg -i grafana_9.1.3_amd64.deb
apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_9.1.7_amd64.deb
dpkg -i grafana_9.1.7_amd64.deb
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
@ -42,9 +44,11 @@ When logged in to Grafana (port 3000, admin/admin) create a datasource that poin
## Download and Install svci
[Download](https://git.data.coop/nellemann/-/packages/generic/svci/) the latest version of SVCi packaged for deb.
```shell
wget https://bitbucket.org/mnellemann/svci/downloads/svci_0.0.1-1_all.deb
dpkg -i svci_0.0.1-1_all.deb
wget https://git.data.coop/api/packages/nellemann/generic/svci/v0.0.3/svci_0.0.3-1_all.deb
dpkg -i svci_0.0.3-1_all.deb
cp /opt/svci/doc/svci.toml /etc/
cp /opt/svci/doc/svci.service /etc/systemd/system/
systemctl daemon-reload

View File

@ -2,16 +2,14 @@
Please note that the software versions referenced in this document might have changed and might not be available/working unless updated.
More details are available in the [README.md](../README.md) file. If you are running Linux on Power (ppc64le) you should look for ppc64le packages at the [Power DevOps](https://www.power-devops.com/) website.
All commands should be run as root or through sudo.
## Install the Java Runtime from repository
```shell
dnf install java-11-openjdk-headless
dnf install java-11-openjdk-headless wget
# or
yum install java-11-openjdk-headless
yum install java-11-openjdk-headless wget
```
@ -27,12 +25,15 @@ systemctl start influxdb
Run the ```influx``` cli command and create the *svci* database.
```sql
CREATE DATABASE "svci" WITH DURATION 365d REPLICATION 1;
```
## Download and Install Grafana
```shell
wget https://dl.grafana.com/oss/release/grafana-9.1.3-1.x86_64.rpm
rpm -ivh grafana-9.1.3-1.x86_64.rpm
wget https://dl.grafana.com/oss/release/grafana-9.1.7-1.x86_64.rpm
rpm -ivh grafana-9.1.7-1.x86_64.rpm
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
@ -44,13 +45,12 @@ When logged in to Grafana (port 3000, admin/admin) create a datasource that poin
## Download and Install svci
```shell
wget https://bitbucket.org/mnellemann/svci/downloads/svci-0.0.1-1_all.rpm
rpm -ivh svci-0.0.1-1_all.rpm
wget https://git.data.coop/api/packages/nellemann/generic/svci/v0.0.3/svci-0.0.3-1.noarch.rpm
rpm -ivh svci-0.0.3-1_all.rpm
cp /opt/svci/doc/svci.toml /etc/
cp /opt/svci/doc/svci.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable svci
systemctl start svci
```
Now modify */etc/svci.toml* and test your setup by running ```/opt/svci/bin/svci -d``` manually and verify connection to SVC and InfluxDB. Afterwards start service with ```systemctl start svci``` .

View File

@ -9,7 +9,7 @@ All commands should be run as root or through sudo.
## Install the Java Runtime from repository
```shell
zypper install java-11-openjdk-headless
zypper install java-11-openjdk-headless wget
```
@ -25,12 +25,15 @@ systemctl start influxdb
Run the ```influx``` cli command and create the *svci* database.
```sql
CREATE DATABASE "svci" WITH DURATION 365d REPLICATION 1;
```
## Download and Install Grafana
```shell
wget https://dl.grafana.com/oss/release/grafana-9.1.3-1.x86_64.rpm
rpm -ivh --nodeps grafana-9.1.3-1.x86_64.rpm
wget https://dl.grafana.com/oss/release/grafana-9.1.7-1.x86_64.rpm
rpm -ivh --nodeps grafana-9.1.7-1.x86_64.rpm
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
@ -41,9 +44,11 @@ When logged in to Grafana (port 3000, admin/admin) create a datasource that poin
## Download and Install SVCi
[Download](https://git.data.coop/nellemann/-/packages/generic/svci/) the latest version of SVCi packaged for rpm.
```shell
wget https://bitbucket.org/mnellemann/svci/downloads/svci-0.0.1-1_all.rpm
rpm -ivh svci-0.0.1-1_all.rpm
wget https://git.data.coop/api/packages/nellemann/generic/svci/v0.0.3/svci-0.0.3-1.noarch.rpm
rpm -ivh svci-0.0.3-1_all.rpm
cp /opt/svci/doc/svci.toml /etc/
cp /opt/svci/doc/svci.service /etc/systemd/system/
systemctl daemon-reload

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

View File

@ -1,17 +1,41 @@
# SVCi Configuration
# Copy this file into /etc/svci.toml and customize it to your environment.
# InfluxDB to save metrics
###
### Define one InfluxDB to save metrics into
### There must be only one and it should be named [influx]
###
# InfluxDB v1.x example
#[influx]
#url = "http://localhost:8086"
#username = "root"
#password = ""
#database = "svci"
# InfluxDB v2.x example
[influx]
url = "http://localhost:8086"
username = "root"
password = ""
database = "svci"
org = "myOrg"
token = "rAnd0mT0k3nG3neRaT3dByInF1uxDb=="
bucket = "svci"
###
### Define one or more SVC's to query for metrics
### Each entry must be named [svc.<something-unique>]
###
###
### Define one or more SVC's to query for metrics
### Each entry must be named [svc.<something-unique>]
###
# SVC on our primary site
[svc.site1]
url = "https://10.10.10.12:7443"
url = "https://10.10.10.5:7443"
username = "superuser"
password = "password"
refresh = 30
trust = true # Ignore SSL cert. errors
refresh = 30 # How often to query SVC for data - in seconds
trust = true # Ignore SSL cert. errors (due to default self-signed cert.)

View File

@ -1,3 +1,3 @@
projectId = svci
projectGroup = biz.nellemann.svci
projectVersion = 0.0.2
projectVersion = 0.1.3

Binary file not shown.

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

6
gradlew vendored
View File

@ -205,6 +205,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.

14
gradlew.bat vendored
View File

@ -14,7 +14,7 @@
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@ -25,7 +25,7 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
if "%DIRNAME%"=="" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal

View File

@ -15,17 +15,19 @@
*/
package biz.nellemann.svci;
import biz.nellemann.svci.dto.toml.Configuration;
import com.fasterxml.jackson.dataformat.toml.TomlMapper;
import picocli.CommandLine;
import picocli.CommandLine.Option;
import picocli.CommandLine.Command;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import com.fasterxml.jackson.dataformat.toml.TomlMapper;
import biz.nellemann.svci.dto.toml.Configuration;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
@Command(name = "svci",
mixinStandardHelpOptions = true,
versionProvider = biz.nellemann.svci.VersionProvider.class,
@ -94,7 +96,7 @@ public class Application implements Callable<Integer> {
}
influxClient.logoff();
} catch (Exception e) {
} catch (InterruptedException | IOException e) {
System.err.println(e.getMessage());
return 1;
}

View File

@ -30,16 +30,22 @@ public class CapacityToDoubleConverter extends StdConverter<String, Double> {
log.debug("Input: {} {}", input, unit);
double output = input;
if(unit.equals("PB")) {
output = input * 1000;
} else if(unit.equals("TB")) {
output = input;
} else if(unit.equals("GB")) {
output = input / 1000;
} else if(unit.equals("MB")) {
output = input / 1_000_000;
} else {
log.warn("convert() - Unit {} not supported.", unit);
switch (unit.toUpperCase()) {
case "PB":
output = input * 1000;
break;
case "TB":
output = input;
break;
case "GB":
output = input / 1000;
break;
case "MB":
output = input / 1_000_000;
break;
default:
log.warn("convert() - Unit {} not supported.", unit);
break;
}
log.debug("Output: {} TB", output);

View File

@ -4,6 +4,7 @@ import picocli.CommandLine;
public class DefaultProvider implements CommandLine.IDefaultValueProvider {
@Override
public String defaultValue(CommandLine.Model.ArgSpec argSpec) throws Exception {
if(argSpec.isOption()) {
switch (argSpec.paramLabel()) {

View File

@ -15,43 +15,56 @@
*/
package biz.nellemann.svci;
import biz.nellemann.svci.dto.toml.InfluxConfiguration;
import org.influxdb.BatchOptions;
import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.influxdb.dto.Point;
import static java.lang.Thread.sleep;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.WriteApi;
import com.influxdb.client.WriteOptions;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;
import static java.lang.Thread.sleep;
import biz.nellemann.svci.dto.toml.InfluxConfiguration;
public final class InfluxClient {
private final static Logger log = LoggerFactory.getLogger(InfluxClient.class);
final private String url;
final private String username;
final private String password;
final private String database;
final private String org; // v2 only
final private String token;
final private String bucket; // Bucket in v2, Database in v1
private InfluxDB influxDB;
private InfluxDBClient influxDBClient;
private WriteApi writeApi;
InfluxClient(InfluxConfiguration config) {
this.url = config.url;
this.username = config.username;
this.password = config.password;
this.database = config.database;
if(config.org != null) {
this.org = config.org;
} else {
this.org = "svci"; // In InfluxDB 1.x, there is no concept of organization.
}
if(config.token != null) {
this.token = config.token;
} else {
this.token = config.username + ":" + config.password;
}
if(config.bucket != null) {
this.bucket = config.bucket;
} else {
this.bucket = config.database;
}
}
synchronized void login() throws RuntimeException, InterruptedException {
if(influxDB != null) {
if(influxDBClient != null) {
return;
}
@ -61,20 +74,20 @@ public final class InfluxClient {
do {
try {
log.debug("Connecting to InfluxDB - {}", url);
influxDB = InfluxDBFactory.connect(url, username, password).setDatabase(database);
influxDB.version(); // This ensures that we actually try to connect to the db
influxDBClient = InfluxDBClientFactory.create(url, token.toCharArray(), org, bucket);
influxDBClient.version(); // This ensures that we actually try to connect to the db
Runtime.getRuntime().addShutdownHook(new Thread(influxDBClient::close));
influxDB.enableBatch(
BatchOptions.DEFAULTS
.threadFactory(runnable -> {
Thread thread = new Thread(runnable);
thread.setDaemon(true);
return thread;
})
);
Runtime.getRuntime().addShutdownHook(new Thread(influxDB::close));
// Todo: Handle events - https://github.com/influxdata/influxdb-client-java/tree/master/client#handle-the-events
//writeApi = influxDBClient.makeWriteApi();
writeApi = influxDBClient.makeWriteApi(
WriteOptions.builder()
.bufferLimit(20_000)
.flushInterval(5_000)
.build());
connected = true;
} catch(Exception e) {
sleep(15 * 1000);
if(loginErrors++ > 3) {
@ -90,29 +103,32 @@ public final class InfluxClient {
synchronized void logoff() {
if(influxDB != null) {
influxDB.close();
if(influxDBClient != null) {
influxDBClient.close();
}
influxDB = null;
influxDBClient = null;
}
public void write(List<Measurement> measurements, Instant timestamp, String measurement) {
log.debug("write() - measurement: {} {}", measurement, measurements.size());
processMeasurementMap(measurements, timestamp, measurement).forEach( (point) -> { influxDB.write(point); });
public void write(List<Measurement> measurements, String name) {
log.debug("write() - measurement: {} {}", name, measurements.size());
if(!measurements.isEmpty()) {
processMeasurementMap(measurements, name).forEach((point) -> {
writeApi.writePoint(point);
});
}
}
private List<Point> processMeasurementMap(List<Measurement> measurements, Instant timestamp, String measurement) {
private List<Point> processMeasurementMap(List<Measurement> measurements, String name) {
List<Point> listOfPoints = new ArrayList<>();
measurements.forEach( (m) -> {
Point.Builder builder = Point.measurement(measurement)
.time(timestamp.toEpochMilli(), TimeUnit.MILLISECONDS)
.tag(m.tags)
.fields(m.fields);
listOfPoints.add(builder.build());
log.trace("processMeasurementMap() - timestamp: {}, tags: {}, fields: {}", m.timestamp, m.tags, m.fields);
Point point = new Point(name)
.time(m.timestamp.getEpochSecond(), WritePrecision.S)
.addTags(m.tags)
.addFields(m.fields);
listOfPoints.add(point);
});
return listOfPoints;
}

View File

@ -15,14 +15,23 @@
*/
package biz.nellemann.svci;
import java.time.Instant;
import java.util.Map;
public class Measurement {
final Instant timestamp;
final Map<String, String> tags;
final Map<String, Object> fields;
Measurement(Map<String, String> tags, Map<String, Object> fields) {
this.timestamp = Instant.now();
this.tags = tags;
this.fields = fields;
}
Measurement(Instant timestamp, Map<String, String> tags, Map<String, Object> fields) {
this.timestamp = timestamp;
this.tags = tags;
this.fields = fields;
}

View File

@ -5,10 +5,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Resource {
private final static Logger log = LoggerFactory.getLogger(Resource.class);

View File

@ -1,18 +1,7 @@
package biz.nellemann.svci;
import biz.nellemann.svci.dto.json.AuthResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import okhttp3.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.*;
import java.net.*;
import java.io.IOException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
@ -20,6 +9,23 @@ import java.security.cert.X509Certificate;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import biz.nellemann.svci.dto.json.AuthResponse;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class RestClient {
private final static Logger log = LoggerFactory.getLogger(RestClient.class);
@ -64,7 +70,8 @@ public class RestClient {
.addHeader("X-Auth-Username", username)
.addHeader("X-Auth-Password", password)
//.put(RequestBody.create(payload.toString(), MEDIA_TYPE_IBM_XML_LOGIN))
.post(RequestBody.create("", MediaType.get("text/plain")))
//.post(RequestBody.create("", MediaType.get("text/plain")))
.post(RequestBody.create("", MediaType.parse("application/json")))
.build();
String responseBody;
@ -83,7 +90,7 @@ public class RestClient {
authToken = authResponse.token;
log.debug("logon() - auth token: {}", authToken);
} catch (Exception e) {
} catch (IOException e) {
log.warn("logon() - error: {}", e.getMessage());
}

View File

@ -15,14 +15,8 @@
*/
package biz.nellemann.svci;
import biz.nellemann.svci.dto.json.*;
import biz.nellemann.svci.dto.json.System;
import biz.nellemann.svci.dto.toml.SvcConfiguration;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import static java.lang.Thread.sleep;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
@ -31,7 +25,17 @@ import java.util.HashMap;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import static java.lang.Thread.sleep;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import biz.nellemann.svci.dto.json.EnclosureStat;
import biz.nellemann.svci.dto.json.MDiskGroup;
import biz.nellemann.svci.dto.json.NodeStat;
import biz.nellemann.svci.dto.json.System;
import biz.nellemann.svci.dto.json.VDisk;
import biz.nellemann.svci.dto.toml.SvcConfiguration;
class VolumeController implements Runnable {
@ -50,7 +54,6 @@ class VolumeController implements Runnable {
this.refreshValue = configuration.refresh;
this.influxClient = influxClient;
restClient = new RestClient(configuration.url, configuration.username, configuration.password, configuration.trust);
}
@ -95,10 +98,10 @@ class VolumeController implements Runnable {
void refresh() {
log.debug("refresh()");
influxClient.write(getSystem(), Instant.now(),"system");
influxClient.write(getNodeStats(), Instant.now(),"node_stats");
influxClient.write(getEnclosureStats(), Instant.now(),"enclosure_stats");
influxClient.write(getMDiskGroups(), Instant.now(),"m_disk_groups");
influxClient.write(getSystem(),"system");
influxClient.write(getNodeStats(),"node_stats");
influxClient.write(getEnclosureStats(),"enclosure_stats");
influxClient.write(getMDiskGroups(), "m_disk_groups");
}
@ -296,4 +299,5 @@ class VolumeController implements Runnable {
return measurementList;
}
}

View File

@ -3,6 +3,10 @@ package biz.nellemann.svci.dto.toml;
public class InfluxConfiguration {
public String url;
public String org;
public String token;
public String bucket;
public String username;
public String password;
public String database;

View File

@ -26,6 +26,13 @@ class CapacityToDoubleConverterTest extends Specification {
result == 1024000.0
}
def "convert from PB (lowercase) String to TB Double"() {
when:
def result = converter.convert("1024.0pb")
then:
result == 1024000.0
}
def "convert from GB String to TB Double"() {
when:

View File

@ -22,10 +22,10 @@ class DeserializationTest extends Specification {
}
void "lssystem"() {
void "lssystem v8_4"() {
when:
Path testConfigurationFile = Paths.get(getClass().getResource('/json/lssystem.json').toURI())
Path testConfigurationFile = Paths.get(getClass().getResource('/json/v8.4/lssystem.json').toURI())
System system = mapper.readerFor(System.class).readValue(testConfigurationFile.toFile())
then:
@ -38,10 +38,10 @@ class DeserializationTest extends Specification {
}
void "lsnodestat"() {
void "lsnodestat v8_4"() {
when:
Path testConfigurationFile = Paths.get(getClass().getResource('/json/lsnodestats.json').toURI())
Path testConfigurationFile = Paths.get(getClass().getResource('/json/v8.4/lsnodestats.json').toURI())
List<NodeStat> nodeStats = Arrays.asList(mapper.readerFor(NodeStat[].class).readValue(testConfigurationFile.toFile()))
then:
@ -52,10 +52,24 @@ class DeserializationTest extends Specification {
}
void "lsenclosurestats"() {
void "lsnodestat v8_5"() {
when:
Path testConfigurationFile = Paths.get(getClass().getResource('/json/lsenclosurestats.json').toURI())
Path testConfigurationFile = Paths.get(getClass().getResource('/json/v8.5/lsnodestats_8.5.2.2.json').toURI())
List<NodeStat> nodeStats = Arrays.asList(mapper.readerFor(NodeStat[].class).readValue(testConfigurationFile.toFile()))
then:
nodeStats.size() == 92
nodeStats.get(3).nodeName == "node1"
nodeStats.get(3).statName == "fc_io"
nodeStats.get(3).statCurrent == 2115
}
void "lsenclosurestats v8_4"() {
when:
Path testConfigurationFile = Paths.get(getClass().getResource('/json/v8.4/lsenclosurestats.json').toURI())
List<EnclosureStat> enclosureStats = Arrays.asList(mapper.readerFor(EnclosureStat[].class).readValue(testConfigurationFile.toFile()))
then:

View File

@ -1,22 +0,0 @@
package biz.nellemann.svci
import biz.nellemann.svci.dto.toml.InfluxConfiguration
import spock.lang.Ignore
import spock.lang.Specification
@Ignore
class InfluxClientTest extends Specification {
InfluxClient influxClient
def setup() {
influxClient = new InfluxClient(new InfluxConfiguration("http://localhost:8086", "root", "", "svci"))
influxClient.login()
}
def cleanup() {
influxClient.logoff()
}
}

View File

@ -1,112 +0,0 @@
package biz.nellemann.svci
import org.mockserver.integration.ClientAndServer
import org.mockserver.logging.MockServerLogger
import org.mockserver.socket.PortFactory
import org.mockserver.socket.tls.KeyStoreFactory
import spock.lang.Ignore
import spock.lang.Shared
import spock.lang.Specification
import javax.net.ssl.HttpsURLConnection
@Ignore
class VolumeControllerTest extends Specification {
@Shared
private static ClientAndServer mockServer;
@Shared
private RestClient serviceClient
@Shared
private VolumeController volumeController
@Shared
private File metricsFile
def setupSpec() {
HttpsURLConnection.setDefaultSSLSocketFactory(new KeyStoreFactory(new MockServerLogger()).sslContext().getSocketFactory());
mockServer = ClientAndServer.startClientAndServer(PortFactory.findFreePort());
serviceClient = new RestClient(String.format("http://localhost:%d", mockServer.getPort()), "user", "password", false)
MockResponses.prepareClientResponseForLogin(mockServer)
//MockResponses.prepareClientResponseForManagementConsole(mockServer)
//MockResponses.prepareClientResponseForManagedSystem(mockServer)
//MockResponses.prepareClientResponseForVirtualIOServer(mockServer)
//MockResponses.prepareClientResponseForLogicalPartition(mockServer)
serviceClient.login()
volumeController = new VolumeController(serviceClient, );
volumeController.discover()
}
def cleanupSpec() {
mockServer.stop()
}
def setup() {
}
def "test we got entry"() {
expect:
volumeController.entry.getName() == "Server-9009-42A-SN21F64EV"
}
void "test getDetails"() {
when:
volumeController.deserialize(metricsFile.getText('UTF-8'))
List<Measurement> listOfMeasurements = volumeController.getDetails()
then:
listOfMeasurements.size() == 1
listOfMeasurements.first().tags['servername'] == 'Server-9009-42A-SN21F64EV'
listOfMeasurements.first().fields['utilizedProcUnits'] == 0.00458
listOfMeasurements.first().fields['assignedMem'] == 40448.0
}
void "test getMemoryMetrics"() {
when:
volumeController.deserialize(metricsFile.getText('UTF-8'))
List<Measurement> listOfMeasurements = volumeController.getMemoryMetrics()
then:
listOfMeasurements.size() == 1
listOfMeasurements.first().fields['totalMem'] == 1048576.000
}
void "test getProcessorMetrics"() {
when:
volumeController.deserialize(metricsFile.getText('UTF-8'))
List<Measurement> listOfMeasurements = volumeController.getProcessorMetrics()
then:
listOfMeasurements.size() == 1
listOfMeasurements.first().fields['availableProcUnits'] == 4.65
}
void "test getSystemSharedProcessorPools"() {
when:
volumeController.deserialize(metricsFile.getText('UTF-8'))
List<Measurement> listOfMeasurements = volumeController.getSharedProcessorPools()
then:
listOfMeasurements.size() == 4
listOfMeasurements.first().fields['assignedProcUnits'] == 22.00013
}
void "test getPhysicalProcessorPool"() {
when:
volumeController.deserialize(metricsFile.getText('UTF-8'))
List<Measurement> listOfMeasurements = volumeController.getPhysicalProcessorPool()
then:
listOfMeasurements.size() == 1
listOfMeasurements.first().fields['assignedProcUnits'] == 22.0
}
}

View File

@ -0,0 +1,206 @@
[
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "0",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "0",
"node_id" : "",
"node_name" : "",
"slot_id" : "7",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "1",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "1",
"node_id" : "",
"node_name" : "",
"slot_id" : "6",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "2",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "2",
"node_id" : "",
"node_name" : "",
"slot_id" : "2",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "3",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "3",
"node_id" : "",
"node_name" : "",
"slot_id" : "8",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "4",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "4",
"node_id" : "",
"node_name" : "",
"slot_id" : "9",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "5",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "5",
"node_id" : "",
"node_name" : "",
"slot_id" : "3",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "6",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "6",
"node_id" : "",
"node_name" : "",
"slot_id" : "5",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "7",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "7",
"node_id" : "",
"node_name" : "",
"slot_id" : "4",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "8",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "8",
"node_id" : "",
"node_name" : "",
"slot_id" : "1",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "9",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "9",
"node_id" : "",
"node_name" : "",
"slot_id" : "10",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "10",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "10",
"node_id" : "",
"node_name" : "",
"slot_id" : "11",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
},
{
"auto_manage" : "inactive",
"capacity" : "20.0TB",
"drive_class_id" : "0",
"enclosure_id" : "1",
"error_sequence_number" : "",
"id" : "11",
"mdisk_id" : "0",
"mdisk_name" : "MDisk1",
"member_id" : "11",
"node_id" : "",
"node_name" : "",
"slot_id" : "12",
"status" : "online",
"tech_type" : "tier0_flash",
"use" : "member"
}
]

View File

@ -0,0 +1,14 @@
[
{
"PSU_id" : "1",
"enclosure_id" : "1",
"input_power" : "ac_highline",
"status" : "online"
},
{
"PSU_id" : "2",
"enclosure_id" : "1",
"input_power" : "ac_highline",
"status" : "online"
}
]

View File

@ -0,0 +1,23 @@
[
{
"enclosure_id" : "1",
"stat_current" : "475",
"stat_name" : "power_w",
"stat_peak" : "475",
"stat_peak_time" : "221218114925"
},
{
"enclosure_id" : "1",
"stat_current" : "22",
"stat_name" : "temp_c",
"stat_peak" : "22",
"stat_peak_time" : "221218114925"
},
{
"enclosure_id" : "1",
"stat_current" : "71",
"stat_name" : "temp_f",
"stat_peak" : "71",
"stat_peak_time" : "221218114925"
}
]

View File

@ -0,0 +1,50 @@
[
{
"host_cluster_id" : "",
"host_cluster_name" : "",
"id" : "0",
"iogrp_count" : "4",
"name" : "x3690-x5-01",
"owner_id" : "",
"owner_name" : "",
"port_count" : "2",
"portset_id" : "64",
"portset_name" : "portset64",
"protocol" : "scsi",
"site_id" : "",
"site_name" : "",
"status" : "online"
},
{
"host_cluster_id" : "",
"host_cluster_name" : "",
"id" : "1",
"iogrp_count" : "4",
"name" : "VMware_202",
"owner_id" : "",
"owner_name" : "",
"port_count" : "1",
"portset_id" : "0",
"portset_name" : "portset0",
"protocol" : "rdmanvme",
"site_id" : "",
"site_name" : "",
"status" : "online"
},
{
"host_cluster_id" : "",
"host_cluster_name" : "",
"id" : "2",
"iogrp_count" : "4",
"name" : "x3690_x5_04",
"owner_id" : "",
"owner_name" : "",
"port_count" : "2",
"portset_id" : "64",
"portset_name" : "portset64",
"protocol" : "scsi",
"site_id" : "",
"site_name" : "",
"status" : "online"
}
]

View File

@ -0,0 +1,170 @@
[
{
"capacity" : "178.90TB",
"child_mdisk_grp_capacity" : "0.00MB",
"child_mdisk_grp_count" : "3",
"compression_active" : "no",
"compression_compressed_capacity" : "0.00MB",
"compression_uncompressed_capacity" : "0.00MB",
"compression_virtual_capacity" : "0.00MB",
"data_reduction" : "yes",
"deduplication_capacity_saving" : "55.70GB",
"easy_tier" : "auto",
"easy_tier_fcm_over_allocation_max" : "100%",
"easy_tier_status" : "balanced",
"encrypt" : "no",
"extent_size" : "4096",
"free_capacity" : "174.75TB",
"id" : "0",
"mdisk_count" : "1",
"name" : "DRP_Pool0",
"overallocation" : "1",
"overhead_capacity" : "1.79TB",
"owner_id" : "",
"owner_name" : "",
"owner_type" : "none",
"parent_mdisk_grp_id" : "0",
"parent_mdisk_grp_name" : "DRP_Pool0",
"provisioning_policy_id" : "",
"provisioning_policy_name" : "",
"real_capacity" : "3.05TB",
"reclaimable_capacity" : "2.30GB",
"replication_pool_link_uid" : "000000000000120500000202E161FF90",
"site_id" : "",
"site_name" : "",
"status" : "online",
"type" : "parent",
"used_capacity" : "3.03TB",
"used_capacity_after_reduction" : "150.44GB",
"used_capacity_before_reduction" : "87.95GB",
"vdisk_count" : "18",
"virtual_capacity" : "1.78TB",
"warning" : "80"
},
{
"capacity" : "178.90TB",
"child_mdisk_grp_capacity" : "0.00MB",
"child_mdisk_grp_count" : "0",
"compression_active" : "no",
"compression_compressed_capacity" : "0.00MB",
"compression_uncompressed_capacity" : "0.00MB",
"compression_virtual_capacity" : "0.00MB",
"data_reduction" : "yes",
"deduplication_capacity_saving" : "0.00MB",
"easy_tier" : "auto",
"easy_tier_fcm_over_allocation_max" : "100%",
"easy_tier_status" : "balanced",
"encrypt" : "no",
"extent_size" : "4096",
"free_capacity" : "174.75TB",
"id" : "1",
"mdisk_count" : "0",
"name" : "Backup_0",
"overallocation" : "0",
"overhead_capacity" : "0.00MB",
"owner_id" : "",
"owner_name" : "",
"owner_type" : "safeguarded_copy",
"parent_mdisk_grp_id" : "0",
"parent_mdisk_grp_name" : "DRP_Pool0",
"provisioning_policy_id" : "",
"provisioning_policy_name" : "",
"real_capacity" : "0.00MB",
"reclaimable_capacity" : "0.00MB",
"replication_pool_link_uid" : "000000000000120600000202E161FF90",
"site_id" : "",
"site_name" : "",
"status" : "online",
"type" : "child_quotaless",
"used_capacity" : "0.00MB",
"used_capacity_after_reduction" : "0.00MB",
"used_capacity_before_reduction" : "0.00MB",
"vdisk_count" : "0",
"virtual_capacity" : "0.00MB",
"warning" : "80"
},
{
"capacity" : "178.90TB",
"child_mdisk_grp_capacity" : "0.00MB",
"child_mdisk_grp_count" : "0",
"compression_active" : "no",
"compression_compressed_capacity" : "0.00MB",
"compression_uncompressed_capacity" : "0.00MB",
"compression_virtual_capacity" : "0.00MB",
"data_reduction" : "yes",
"deduplication_capacity_saving" : "0.00MB",
"easy_tier" : "auto",
"easy_tier_fcm_over_allocation_max" : "100%",
"easy_tier_status" : "balanced",
"encrypt" : "no",
"extent_size" : "4096",
"free_capacity" : "174.75TB",
"id" : "2",
"mdisk_count" : "0",
"name" : "Application",
"overallocation" : "0",
"overhead_capacity" : "0.00MB",
"owner_id" : "",
"owner_name" : "",
"owner_type" : "none",
"parent_mdisk_grp_id" : "0",
"parent_mdisk_grp_name" : "DRP_Pool0",
"provisioning_policy_id" : "2",
"provisioning_policy_name" : "Compression_Deduplication",
"real_capacity" : "0.00MB",
"reclaimable_capacity" : "0.00MB",
"replication_pool_link_uid" : "000000000000127700000202E161FF90",
"site_id" : "",
"site_name" : "",
"status" : "online",
"type" : "child_quotaless",
"used_capacity" : "0.00MB",
"used_capacity_after_reduction" : "0.00MB",
"used_capacity_before_reduction" : "0.00MB",
"vdisk_count" : "17",
"virtual_capacity" : "153.00GB",
"warning" : "80"
},
{
"capacity" : "178.90TB",
"child_mdisk_grp_capacity" : "0.00MB",
"child_mdisk_grp_count" : "0",
"compression_active" : "no",
"compression_compressed_capacity" : "0.00MB",
"compression_uncompressed_capacity" : "0.00MB",
"compression_virtual_capacity" : "0.00MB",
"data_reduction" : "yes",
"deduplication_capacity_saving" : "0.00MB",
"easy_tier" : "auto",
"easy_tier_fcm_over_allocation_max" : "100%",
"easy_tier_status" : "balanced",
"encrypt" : "no",
"extent_size" : "4096",
"free_capacity" : "174.75TB",
"id" : "3",
"mdisk_count" : "0",
"name" : "DRP_CPool_3",
"overallocation" : "0",
"overhead_capacity" : "0.00MB",
"owner_id" : "",
"owner_name" : "",
"owner_type" : "none",
"parent_mdisk_grp_id" : "0",
"parent_mdisk_grp_name" : "DRP_Pool0",
"provisioning_policy_id" : "1",
"provisioning_policy_name" : "Dedup_Comp",
"real_capacity" : "0.00MB",
"reclaimable_capacity" : "0.00MB",
"replication_pool_link_uid" : "00000000000003DA00000204A040026C",
"site_id" : "",
"site_name" : "",
"status" : "online",
"type" : "child_quotaless",
"used_capacity" : "0.00MB",
"used_capacity_after_reduction" : "0.00MB",
"used_capacity_before_reduction" : "0.00MB",
"vdisk_count" : "8",
"virtual_capacity" : "860.00GB",
"warning" : "80"
}
]

View File

@ -0,0 +1,42 @@
[
{
"IO_group_id" : "0",
"IO_group_name" : "io_grp0",
"UPS_serial_number" : "",
"UPS_unique_id" : "",
"WWNN" : "500507680B00FFC8",
"canister_id" : "1",
"config_node" : "yes",
"enclosure_id" : "1",
"enclosure_serial_number" : "78F1073",
"hardware" : "6H2",
"id" : "1",
"iscsi_alias" : "",
"iscsi_name" : "iqn.1986-03.com.ibm:2145.fs-5200-1.node1",
"name" : "node1",
"panel_name" : "01-1",
"site_id" : "",
"site_name" : "",
"status" : "online"
},
{
"IO_group_id" : "0",
"IO_group_name" : "io_grp0",
"UPS_serial_number" : "",
"UPS_unique_id" : "",
"WWNN" : "500507680B00FFC9",
"canister_id" : "2",
"config_node" : "no",
"enclosure_id" : "1",
"enclosure_serial_number" : "78F1073",
"hardware" : "6H2",
"id" : "2",
"iscsi_alias" : "",
"iscsi_name" : "iqn.1986-03.com.ibm:2145.fs-5200-1.node2",
"name" : "node2",
"panel_name" : "01-2",
"site_id" : "",
"site_name" : "",
"status" : "online"
}
]

View File

@ -0,0 +1,738 @@
[
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "compression_cpu_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "6",
"stat_name" : "cpu_pc",
"stat_peak" : "6",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "fc_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "1970",
"stat_name" : "fc_io",
"stat_peak" : "2172",
"stat_peak_time" : "221218114529"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "sas_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "sas_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iscsi_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iscsi_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "write_cache_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "79",
"stat_name" : "total_cache_pc",
"stat_peak" : "79",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "304",
"stat_name" : "drive_mb",
"stat_peak" : "459",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "1212",
"stat_name" : "drive_io",
"stat_peak" : "1829",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.322",
"stat_name" : "drive_ms",
"stat_peak" : "0.536",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "304",
"stat_name" : "drive_r_mb",
"stat_peak" : "459",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "1212",
"stat_name" : "drive_r_io",
"stat_peak" : "1829",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.322",
"stat_name" : "drive_r_ms",
"stat_peak" : "0.536",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "drive_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "drive_w_io",
"stat_peak" : "5",
"stat_peak_time" : "221218114830"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "drive_w_ms",
"stat_peak" : "0.055",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iplink_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "202",
"stat_name" : "iplink_io",
"stat_peak" : "444",
"stat_peak_time" : "221218114504"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iplink_comp_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_up_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_up_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_down_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_down_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iser_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iser_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114925"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "compression_cpu_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "5",
"stat_name" : "cpu_pc",
"stat_peak" : "6",
"stat_peak_time" : "221218114541"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "fc_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "1924",
"stat_name" : "fc_io",
"stat_peak" : "2130",
"stat_peak_time" : "221218114826"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "sas_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "sas_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iscsi_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iscsi_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "write_cache_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "79",
"stat_name" : "total_cache_pc",
"stat_peak" : "79",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_mb",
"stat_peak" : "50",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_io",
"stat_peak" : "202",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_ms",
"stat_peak" : "0.606",
"stat_peak_time" : "221218114821"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_r_mb",
"stat_peak" : "50",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_r_io",
"stat_peak" : "202",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_r_ms",
"stat_peak" : "0.606",
"stat_peak_time" : "221218114821"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iplink_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "470",
"stat_name" : "iplink_io",
"stat_peak" : "620",
"stat_peak_time" : "221218114516"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iplink_comp_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_up_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_up_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_down_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_down_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iser_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iser_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
}
]

View File

@ -0,0 +1,738 @@
[
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "compression_cpu_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "6",
"stat_name" : "cpu_pc",
"stat_peak" : "6",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "fc_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "2115",
"stat_name" : "fc_io",
"stat_peak" : "2172",
"stat_peak_time" : "221218114529"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "sas_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "sas_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iscsi_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iscsi_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "write_cache_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "79",
"stat_name" : "total_cache_pc",
"stat_peak" : "79",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "397",
"stat_name" : "drive_mb",
"stat_peak" : "459",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "1581",
"stat_name" : "drive_io",
"stat_peak" : "1829",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.379",
"stat_name" : "drive_ms",
"stat_peak" : "0.536",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "397",
"stat_name" : "drive_r_mb",
"stat_peak" : "459",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "1581",
"stat_name" : "drive_r_io",
"stat_peak" : "1829",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.379",
"stat_name" : "drive_r_ms",
"stat_peak" : "0.536",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "drive_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "drive_w_io",
"stat_peak" : "5",
"stat_peak_time" : "221218114830"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "drive_w_ms",
"stat_peak" : "0.055",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iplink_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "120",
"stat_name" : "iplink_io",
"stat_peak" : "444",
"stat_peak_time" : "221218114504"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iplink_comp_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_up_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_up_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_down_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_down_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iser_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iser_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "compression_cpu_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "5",
"stat_name" : "cpu_pc",
"stat_peak" : "6",
"stat_peak_time" : "221218114541"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "fc_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "1924",
"stat_name" : "fc_io",
"stat_peak" : "2130",
"stat_peak_time" : "221218114826"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "sas_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "sas_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iscsi_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iscsi_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "write_cache_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "79",
"stat_name" : "total_cache_pc",
"stat_peak" : "79",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_mb",
"stat_peak" : "50",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_io",
"stat_peak" : "202",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_ms",
"stat_peak" : "0.606",
"stat_peak_time" : "221218114821"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_r_mb",
"stat_peak" : "50",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_r_io",
"stat_peak" : "202",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_r_ms",
"stat_peak" : "0.606",
"stat_peak_time" : "221218114821"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iplink_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "470",
"stat_name" : "iplink_io",
"stat_peak" : "620",
"stat_peak_time" : "221218114516"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iplink_comp_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_up_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_up_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_down_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_down_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iser_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iser_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
}
]

View File

@ -0,0 +1,738 @@
[
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "compression_cpu_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "6",
"stat_name" : "cpu_pc",
"stat_peak" : "6",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "fc_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "2115",
"stat_name" : "fc_io",
"stat_peak" : "2172",
"stat_peak_time" : "221218114529"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "sas_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "sas_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iscsi_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iscsi_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "write_cache_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "79",
"stat_name" : "total_cache_pc",
"stat_peak" : "79",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "397",
"stat_name" : "drive_mb",
"stat_peak" : "459",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "1581",
"stat_name" : "drive_io",
"stat_peak" : "1829",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.379",
"stat_name" : "drive_ms",
"stat_peak" : "0.536",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "vdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "vdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "mdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "mdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "397",
"stat_name" : "drive_r_mb",
"stat_peak" : "459",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "1581",
"stat_name" : "drive_r_io",
"stat_peak" : "1829",
"stat_peak_time" : "221218114449"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.379",
"stat_name" : "drive_r_ms",
"stat_peak" : "0.536",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "drive_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "drive_w_io",
"stat_peak" : "5",
"stat_peak_time" : "221218114830"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0.000",
"stat_name" : "drive_w_ms",
"stat_peak" : "0.055",
"stat_peak_time" : "221218114800"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iplink_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "120",
"stat_name" : "iplink_io",
"stat_peak" : "444",
"stat_peak_time" : "221218114504"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iplink_comp_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_up_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_up_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_down_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "cloud_down_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iser_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "1",
"node_name" : "node1",
"stat_current" : "0",
"stat_name" : "iser_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114920"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "compression_cpu_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "5",
"stat_name" : "cpu_pc",
"stat_peak" : "6",
"stat_peak_time" : "221218114541"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "fc_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "1924",
"stat_name" : "fc_io",
"stat_peak" : "2130",
"stat_peak_time" : "221218114826"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "sas_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "sas_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iscsi_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iscsi_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "write_cache_pc",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "79",
"stat_name" : "total_cache_pc",
"stat_peak" : "79",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_mb",
"stat_peak" : "50",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_io",
"stat_peak" : "202",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_ms",
"stat_peak" : "0.606",
"stat_peak_time" : "221218114821"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "vdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "vdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_r_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_r_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_r_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "mdisk_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "mdisk_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_r_mb",
"stat_peak" : "50",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_r_io",
"stat_peak" : "202",
"stat_peak_time" : "221218114546"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_r_ms",
"stat_peak" : "0.606",
"stat_peak_time" : "221218114821"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_w_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "drive_w_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0.000",
"stat_name" : "drive_w_ms",
"stat_peak" : "0.000",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iplink_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "470",
"stat_name" : "iplink_io",
"stat_peak" : "620",
"stat_peak_time" : "221218114516"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iplink_comp_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_up_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_up_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_down_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "cloud_down_ms",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iser_mb",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
},
{
"node_id" : "2",
"node_name" : "node2",
"stat_current" : "0",
"stat_name" : "iser_io",
"stat_peak" : "0",
"stat_peak_time" : "221218114921"
}
]

View File

@ -0,0 +1,66 @@
[
{
"WWPN" : "500507680B11FFC8",
"adapter_location" : "1",
"adapter_port_id" : "1",
"attachment" : "switch",
"cluster_use" : "local_partner",
"fc_io_port_id" : "1",
"id" : "0",
"node_id" : "1",
"node_name" : "node1",
"nportid" : "012200",
"port_id" : "1",
"port_speed" : "32Gb",
"status" : "active",
"type" : "fc"
},
{
"WWPN" : "500507680B12FFC8",
"adapter_location" : "1",
"adapter_port_id" : "2",
"attachment" : "switch",
"cluster_use" : "local_partner",
"fc_io_port_id" : "2",
"id" : "1",
"node_id" : "1",
"node_name" : "node1",
"nportid" : "011D00",
"port_id" : "2",
"port_speed" : "32Gb",
"status" : "active",
"type" : "fc"
},
{
"WWPN" : "500507680B11FFC9",
"adapter_location" : "1",
"adapter_port_id" : "1",
"attachment" : "switch",
"cluster_use" : "local_partner",
"fc_io_port_id" : "1",
"id" : "24",
"node_id" : "2",
"node_name" : "node2",
"nportid" : "012000",
"port_id" : "1",
"port_speed" : "32Gb",
"status" : "active",
"type" : "fc"
},
{
"WWPN" : "500507680B12FFC9",
"adapter_location" : "1",
"adapter_port_id" : "2",
"attachment" : "switch",
"cluster_use" : "local_partner",
"fc_io_port_id" : "2",
"id" : "25",
"node_id" : "2",
"node_name" : "node2",
"nportid" : "011F00",
"port_id" : "2",
"port_speed" : "32Gb",
"status" : "active",
"type" : "fc"
}
]

View File

@ -0,0 +1,514 @@
[
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "1",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "1",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "2",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "2",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "3",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "3",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "4",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "4",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "1",
"node_name" : "node1",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "1",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "1",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "2",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "2",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "3",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "3",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "no",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "4",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
},
{
"IP_address" : "",
"IP_address_6" : "",
"MAC" : "ff:ff:ff:ff:ff:ff",
"adapter_location" : "0",
"adapter_port_id" : "1",
"duplex" : "Full",
"failover" : "yes",
"gateway" : "",
"gateway_6" : "",
"host" : "",
"host_6" : "",
"host_port_grp_id" : "0",
"id" : "4",
"is_rdma_clustering" : "no",
"link_state" : "inactive",
"mask" : "",
"node_id" : "2",
"node_name" : "node2",
"prefix_6" : "",
"rdma_type" : "",
"remote_copy" : "0",
"remote_copy_6" : "0",
"remote_copy_status" : "",
"remote_copy_status_6" : "",
"speed" : "1Gb/s",
"state" : "unconfigured",
"storage" : "",
"storage_6" : "",
"vlan" : "",
"vlan_6" : ""
}
]

View File

@ -0,0 +1,41 @@
[
{
"active" : "no",
"controller_id" : "",
"controller_name" : "",
"id" : "4",
"name" : "",
"object_type" : "drive",
"override" : "no",
"quorum_index" : "0",
"site_id" : "",
"site_name" : "",
"status" : "online"
},
{
"active" : "yes",
"controller_id" : "",
"controller_name" : "",
"id" : "0",
"name" : "",
"object_type" : "drive",
"override" : "no",
"quorum_index" : "1",
"site_id" : "",
"site_name" : "",
"status" : "online"
},
{
"active" : "no",
"controller_id" : "",
"controller_name" : "",
"id" : "3",
"name" : "",
"object_type" : "drive",
"override" : "no",
"quorum_index" : "2",
"site_id" : "",
"site_name" : "",
"status" : "online"
}
]