Get system drives

NAS File Storage REST API Reference

Version
15.6.x
File Size
1291 KB
Audience
anonymous
Part Number
MK-92HNAS100-07
ft:lastEdition
2026-04-07
get /v9/storage/system-drives

Get system drives.

Authentication: x_subsystem_user Api Key "X-Subsystem-User"
Authentication: x_subsystem_password Api Key "X-Subsystem-Password"
Authentication: api_key Api Key "X-Api-Key"
Authentication: basicAuth HTTP - basic scheme
CLIENT REQUEST
curl -X 'GET'
-H "X-Subsystem-User: [[apiKey]]" \
-H "X-Subsystem-Password: [[apiKey]]" \
-H "X-Api-Key: [[apiKey]]" \
-H "Authorization: Basic [[basicHash]]" \
-H 'Accept: application/json'
'https://172.27.146.40:8444/v9/storage/system-drives'
import http.client conn = http.client.HTTPSConnection("172.27.146.40:8444") headers = { 'Authorization': "Basic REPLACE_BASIC_AUTH" } conn.request("GET", "/v9/storage/system-drives", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
require 'uri' require 'net/http' require 'openssl' url = URI("https://172.27.146.40:8444/v9/storage/system-drives") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) request["Authorization"] = 'Basic REPLACE_BASIC_AUTH' response = http.request(request) puts response.read_body
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("GET", "https://172.27.146.40:8444/v9/storage/system-drives"); xhr.setRequestHeader("Authorization", "Basic REPLACE_BASIC_AUTH"); xhr.send(data);
HttpResponse<String> response = Unirest.get("https://172.27.146.40:8444/v9/storage/system-drives") .header("Authorization", "Basic REPLACE_BASIC_AUTH") .asString();
import Foundation let headers = ["Authorization": "Basic REPLACE_BASIC_AUTH"] let request = NSMutableURLRequest(url: NSURL(string: "https://172.27.146.40:8444/v9/storage/system-drives")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume()
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_PORT => "8444", CURLOPT_URL => "https://172.27.146.40:8444/v9/storage/system-drives", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Basic REPLACE_BASIC_AUTH" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://172.27.146.40:8444/v9/storage/system-drives"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Basic REPLACE_BASIC_AUTH"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://172.27.146.40:8444/v9/storage/system-drives"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Basic REPLACE_BASIC_AUTH"); IRestResponse response = client.Execute(request);
Responses

Successful operation

Body
application/json
systemDrivesarray
[
capacityinteger

Actual capacity of the item in bytes

Example:"1406601789440"
commentstring

Comment associated with the item

Example:"This is a comment"
controllerPortstring

Storage controller port

Example:"0100"
externalLUNstring

External LUN

Example:"2"
formattedLuidstring

Globally unique string that represents a storage device

Example:"60:06:0E:80:12:D1:A9:00:50:40:D1:A9:00:00:00:0D"
internalLUNstring

Internal LUN

Example:"0031"
isAccessAllowedboolean

True if access to the system drive is enabled

isAssignedToStoragePoolboolean

True if the system drive is assigned to a storage pool

isDegradedboolean

True if the system drive is degraded in some way

isGadboolean

True if the system drive is part of a GAD pair

isInUseboolean

True if the system drive is in use

isMirrorPrimaryboolean

True if the system drive is mirrored and it is the primary mirror

isMirroredboolean

True if the drive has a mirror drive associated with it

labelstring

Label of the system drive

Example:"SD1"
mirrorDriveobject

Mirrored system drive details

labelstring

Label of the mirror drive

Example:"name1"
rackNamestring

The serial number of the storage system to which the system drive belongs

Example:"470651"
rawLuidstring

Globally unique string that represents a storage device

Example:"03 01 00 60 06 0E 80 12 D1 A9 00 50 40 D1 A9 00 00 00 0D"
systemDriveIdintegerint32

System drive ID

Example:5
modelstring

Model of the storage system

Example:"OPEN-V"
objectIdstring

Unique ID of the object

Example:"333a3a3a3a3a3a303a3a3a4f49445f24232140255f56"
poolNumberintegerint32

HDP pool number. A value of 65535 indicates the system drive is not part of an HDP pool

queueDepthintegerint32

The queue depth of a system drive. A value of -1 indicates the system drive is using the default system setting

Example:-1
rackNamestring

The serial number of the storage system to which the system drive belongs

Example:"470651"
rawLuidstring

Globally unique string that represents a storage device

Example:"03 01 00 60 06 0E 80 12 D1 A9 00 50 40 D1 A9 00 00 00 0D"
statusstring (Enum)

Status of the system drive

Allowed values:"NOT_PRESENT""DISCONNECTED""OFFLINE""INITIALISING""FAILED""OK""FORMATTING""WRITE_PROTECTED""SECONDARY""INVALID"
storagePoolIdinteger

Storage pool ID

Example:"8873842036252213788"
subModelstring

Storage array sub-model

Example:"HM84"
systemDriveIdintegerint32

System drive ID

Example:5
tierstring (Enum)

The tier that the system drive belongs to

Allowed values:"TIER0""TIER1""NO_TIER""BAD_TIER""UNKNOWN_TIER"
vendorstring

Vendor of storage system

Example:"HITACHI"
virtualizationTypestring (Enum)

Type of virtualization in use by the storage array

Allowed values:"HDP""UVM""DDM_UVM""OTHERS""UNKNOWN"
]
RESPONSE
{ "systemDrives": [ { "capacity": "1406601789440", "comment": "This is a comment", "controllerPort": "0100", "externalLUN": "2", "formattedLuid": "60:06:0E:80:12:D1:A9:00:50:40:D1:A9:00:00:00:0D", "internalLUN": "0031", "isAccessAllowed": false, "isAssignedToStoragePool": false, "isDegraded": false, "isGad": false, "isInUse": false, "isMirrorPrimary": false, "isMirrored": false, "label": "SD1", "mirrorDrive": { "label": "name1", "rackName": "470651", "rawLuid": "03 01 00 60 06 0E 80 12 D1 A9 00 50 40 D1 A9 00 00 00 0D", "systemDriveId": 5 }, "model": "OPEN-V", "objectId": "333a3a3a3a3a3a303a3a3a4f49445f24232140255f56", "poolNumber": 0, "queueDepth": -1, "rackName": "470651", "rawLuid": "03 01 00 60 06 0E 80 12 D1 A9 00 50 40 D1 A9 00 00 00 0D", "status": "NOT_PRESENT", "storagePoolId": "8873842036252213788", "subModel": "HM84", "systemDriveId": 5, "tier": "TIER0", "vendor": "HITACHI", "virtualizationType": "HDP" } ] }

Unauthorized - the request was rejected because the credentials or API key were either missing or invalid

Forbidden - the client does not have the required permissions to perform the operation

Body
application/json
errorMsgstring

Main error message

Example:"Forbidden request - the client does not have the required permissions to perform the operation"
RESPONSE
{ "errorMsg": "Forbidden request - the client does not have the required permissions to perform the operation" }

Internal Server Error

Body
application/json
errorCodeintegerint32

Generic error code

errorDetailobject

Detailed error information

detailstring

More details on why the error occurred

faultstring
fileNamestring

Source file where the error occurred

Example:"RestApiFilesystems.cpp"
functionstring

Internal function name where the error occurred

Example:"mountFilesystem"
lineNumberintegerint32

Line number within the source file, where the error occurred

messagestring

Reason why the error(s) occurred

Example:"The file system is currently unassigned"
reasonstring

Reason why the error(s) occurred

Example:"The file system is currently unassigned"
returnedValueintegerint32

Not used

subCodeintegerint32

Specific failure error code

errorMsgstring

Main error message

Example:"Failed to mount file system"
RESPONSE
{ "errorCode": 0, "errorDetail": { "detail": "", "fault": "", "fileName": "RestApiFilesystems.cpp", "function": "mountFilesystem", "lineNumber": 0, "message": "The file system is currently unassigned", "reason": "The file system is currently unassigned", "returnedValue": 0, "subCode": 0 }, "errorMsg": "Failed to mount file system" }