此操作用來批量查詢卷。可以通過設置過濾條件和range范圍進行查詢。如果未設置過濾條件和range范圍,則查詢所有的卷。
請求語法
GET /rest/v1/block/lun?filter=filter&range=i-j HTTP/1.1
Date: date
Host: ip:port
Authorization: authorization請求參數
| 參數 | 類型 | 描述 | 是否必須 |
|---|---|---|---|
| filter | String | 查詢的過濾條件。可以選擇多個查詢,如果是或的關系,使用“or”將查詢條件分隔開;如果是與的關系,使用“and”將查詢條件分隔開。 支持的過濾條件類型包括:
| 否 |
| range | String | 查詢卷的范圍,格式為i-j,i和j為正整數,0 < j-i < 1000。按照卷名稱進行排序,返回第i到第j的卷。如果輸入的查詢范圍超過卷的總個數,返回的結果為空,如果未指定range,則返回所有符合條件的卷。 | 否 |
響應結果
| 名稱 | 類型 | 描述 |
|---|---|---|
| luns | Array of lun | 卷信息集合,詳見“表1 響應參數lun說明”。 |
表1 響應參數lun說明
| 名稱 | 類型 | 描述 |
|---|---|---|
| lunName | String | 卷名稱。 |
| status | String | 卷的狀態:
|
| progress | Integer | 卷還原進度百分比。 僅卷狀態為Recovering時顯示。 |
| recoverFailedReason | String | 卷還原失敗的原因。 僅卷狀態為RecoverFailed時顯示。 |
| deleteFailedReason | String | 卷云上數據刪除失敗的原因。 僅卷狀態為DeleteFailed時顯示。 |
| wipeFailedReason | String | 卷清空失敗的原因。 僅卷狀態為WipeFailed時顯示。 |
| storageMode | String | 卷的存儲類型:
|
| capacity | Integer | 卷容量,單位是GiB。 |
| createTime | Long | 卷創建時間。unix時間戳(UTC),精確到毫秒。 |
| iSCSITargets | Array of iSCSITarget | iSCSI target屬性集合,詳見“表2響應參數說明iSCSITarget”。 |
| cloud.bucketName | String | OOS存儲桶的名稱(僅上云卷支持)。 |
| cloud.endpoint | String | OOS Endpoint(僅上云卷支持)。 |
| cloud.signVersion | String | 上云簽名認證的類型(僅上云卷支持):
|
| cloud.region | String | Endpoint資源池所在區域(僅上云卷支持)。 |
| cloud.provider | String | 對象存儲服務名稱:
|
| config.minReplica | Integer | 卷的最小副本數(僅集群版支持)。 |
| config.sectorSize | Integer | 扇區大小:
|
| config.highAvailability | String | 高可用模式類型(僅集群版支持):
|
| config.writePolicy | String | 卷的寫策略:
|
| config.cachePool | String | 緩存存儲池(僅集群版支持)。 |
| config.pool | String | 存儲池(僅集群版支持),表示最終存儲池,卷數據最終落在該存儲池內。 |
| config.redundancyOverlap | Integer | 卷的折疊副本數(僅集群版支持)。 |
| config.reclaimPolicy | String | 卷回收策略:
|
| config.serverAffinity | Object | 卷主備分布優先級設置,詳見“表4 響應參數config.serverAffinity說明”。 |
| config.qosPolicy | Object | 卷關聯的QoS策略信息,詳見“表5 響應參數config.qosPolicy說明”。 |
| config.qosPolicyforLUN | Object | 卷所在存儲池中卷的默認QoS策略信息(僅集群版支持),詳見“表6 響應參數config.qosPolicyforLUN”。 說明
|
| config.ECfragmentSize | String | 分片大小。如果冗余模式為EC N+M,則會返回此項。 |
| config.path | String | 數據目錄(僅單機版支持)。 |
| number | String | 卷編號。 |
| isClone | Boolean | 是否是克隆卷:
|
| sourceSnapshotName | String | 對應的快照名稱(僅克隆卷支持)。 |
| sourceLunName | String | 克隆卷的源卷名稱(僅克隆卷支持)。 |
| snapshots.snapshotNumbers | Integer | 卷快照的數量(僅本地卷支持)。 |
| snapshots.snapshotSize | Long | 卷關聯的快照大小的總和(僅本地卷支持),即快照記錄的數據量。單位是字節。 注意 卷異常或上游快照刪除等因素可能導致快照大小波動。 |
| WWID | String | 卷的唯一標識符。 |
表2 響應參數iSCSITarget說明
| 名稱 | 類型 | 描述 |
|---|---|---|
| iqn | String | iSCSI target IQN。 |
| status | String | 卷對應的target的狀態:
|
| ips | Array of ip | iSCSI target的IP屬性集合,詳見“表3 響應參數ip說明”。 |
| serverId | String | IQN所在的服務器ID。 |
表3 響應參數ip說明
| 名稱 | 類型 | 描述 |
|---|---|---|
| ip | String | iSCSI target的IP。 |
| port | Integer | iSCSI target的端口號。 |
表4 響應參數config.serverAffinity說明
| 名稱 | 類型 | 描述 |
|---|---|---|
| autoFailback | String | 針對卷主備狀態,當高優先級的服務器恢復正常后,是否自動進行主備狀態切換(僅集群版支持):
|
| priority | Array of string | 卷主備分布優先級的服務器ID(僅集群版支持),系統根據指定的服務器ID順序來選擇卷的主備IQN。 |
表5 響應參數config.qosPolicy
| 名稱 | 類型 | 描述 |
|---|---|---|
| qosName | String | QoS策略名稱。 |
表6 響應參數config.qosPolicyforLUN
| 名稱 | 類型 | 描述 |
|---|---|---|
| qosName | String | QoS策略名稱。 |
| poolName | String | 存儲池名稱。 |
請求示例1
單機版:查詢卷名稱包含luna或lunb的卷。
GET /rest/v1/block/lun?filter=lunName:luna or lunName:lunb HTTP/1.1
Date: Mon, 28 Jul 2025 07:03:02 GMT
Authorization: userName:signature
Host: 192.168.0.66:1443響應示例1
HTTP/1.1 200 OK
x-hblock-request-id: 5edd2f5158794fa28056194d46040bb6
Connection: keep-alive
Content-Length: 2421
Date: Mon, 28 Jul 2025 07:03:02 GMT
Content-Type: application/json;charset=utf-8
Server: HBlock
{
"data": {
"luns": [
{
"lunName": "luna1",
"status": "Normal",
"capacity": 100,
"storageMode": "Local",
"createTime": 1753172337496,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:targeta.1",
"status": "Active",
"ips": [
{
"ip": "192.168.0.66",
"port": 3260
}
],
"serverId": "hblock_1"
}
],
"config": {
"sectorSize": 4096,
"writePolicy": "WriteBack",
"path": "/mnt/stor01",
"reclaimPolicy": "Retain"
},
"number": 0,
"isClone": false,
"snapshots": {
"snapshotNumbers": 1,
"snapshotSize": 93028352
},
"WWID": "33fffffffc0597f3b"
},
{
"lunName": "luna1-clone",
"status": "Normal",
"capacity": 100,
"storageMode": "Local",
"createTime": 1753686082755,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:targeta.1",
"status": "Active",
"ips": [
{
"ip": "192.168.0.66",
"port": 3260
}
],
"serverId": "hblock_1"
}
],
"config": {
"sectorSize": 4096,
"writePolicy": "WriteBack",
"path": "/mnt/stor01",
"reclaimPolicy": "Retain"
},
"number": 3,
"isClone": true,
"sourceSnapshotName": "luna1-snap20250728150058",
"sourceLunName": "luna1",
"snapshots": {
"snapshotNumbers": 0,
"snapshotSize": 0
},
"WWID": "33000000038c9bf94"
},
{
"lunName": "luna2",
"status": "Normal",
"capacity": 200,
"storageMode": "Local",
"createTime": 1753237540272,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:targeta.1",
"status": "Active",
"ips": [
{
"ip": "192.168.0.66",
"port": 3260
}
],
"serverId": "hblock_1"
}
],
"config": {
"sectorSize": 4096,
"writePolicy": "WriteBack",
"path": "/mnt/stor01",
"reclaimPolicy": "Retain"
},
"number": 1,
"isClone": false,
"snapshots": {
"snapshotNumbers": 1,
"snapshotSize": 497209344
},
"WWID": "33fffffffbf313d76"
},
{
"lunName": "luna3",
"status": "Normal",
"capacity": 333,
"storageMode": "Local",
"createTime": 1753237686846,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:targeta.1",
"status": "Active",
"ips": [
{
"ip": "192.168.0.66",
"port": 3260
}
],
"serverId": "hblock_1"
}
],
"config": {
"sectorSize": 4096,
"writePolicy": "WriteBack",
"path": "/mnt/stor01",
"reclaimPolicy": "Retain",
"qosPolicy": {
"qosName": "QosPolicy1"
}
},
"number": 2,
"isClone": false,
"snapshots": {
"snapshotNumbers": 1,
"snapshotSize": 0
},
"WWID": "33fffffffb13cff89"
},
{
"lunName": "lunb1",
"status": "Normal",
"capacity": 1,
"storageMode": "Local",
"createTime": 1753237554343,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:targetb.2",
"status": "Active",
"ips": [
{
"ip": "192.168.0.66",
"port": 3260
}
],
"serverId": "hblock_1"
}
],
"config": {
"sectorSize": 4096,
"writePolicy": "WriteBack",
"path": "/mnt/stor01",
"reclaimPolicy": "Retain"
},
"number": 0,
"isClone": false,
"snapshots": {
"snapshotNumbers": 0,
"snapshotSize": 0
},
"WWID": "330000000707adbfc"
}
]
}
}請求示例2
集群版:查詢卷名稱包含lun04或lun01a的卷,并且只列出第1個到第3個查詢結果。
GET /rest/v1/block/lun?filter=lunName:lun04 or lunName:lun01a &range=1-3 HTTP/1.1
Date: Tue, 05 Aug 2025 07:51:58 GMT
Authorization: HBlock userName:signature
Connection: keep-alive
Host: 192.168.0.65:1443響應示例2
HTTP/1.1 200 OK
x-hblock-request-id: 815ca48ea4354260b463c09d25bb5592
Connection: keep-alive
Content-Length: 2383
Date: Tue, 05 Aug 2025 07:51:58 GMT
Content-Type: application/json;charset=utf-8
Server: HBlock
{
"data": {
"luns": [
{
"lunName": "lun01a",
"status": "Normal",
"capacity": 200,
"storageMode": "Local",
"createTime": 1753783083428,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target01.2",
"status": "Active",
"ips": [
{
"ip": "192.168.0.65",
"port": 3260
}
],
"serverId": "hblock_1"
},
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target01.1",
"status": "Standby",
"ips": [
{
"ip": "192.168.0.67",
"port": 3260
}
],
"serverId": "hblock_3"
}
],
"config": {
"localStorageClass": "EC 2+1",
"minReplica": 2,
"sectorSize": 4096,
"highAvailability": "ActiveStandby",
"writePolicy": "WriteBack",
"pool": "default",
"redundancyOverlap": 1,
"reclaimPolicy": "Retain",
"serverAffinity": {
"autoFailback": "Enabled"
},
"qosPolicy": {
"qosName": "QosPolicy20250731162809"
},
"ECfragmentSize": 16
},
"number": 0,
"isClone": false,
"snapshots": {
"snapshotNumbers": 3,
"snapshotSize": 794939392
},
"WWID": "3300000000778b304"
},
{
"lunName": "lun01a-clone2",
"status": "Normal",
"capacity": 200,
"storageMode": "Local",
"createTime": 1754039895491,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target01.2",
"status": "Active",
"ips": [
{
"ip": "192.168.0.65",
"port": 3260
}
],
"serverId": "hblock_1"
},
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target01.1",
"status": "Standby",
"ips": [
{
"ip": "192.168.0.67",
"port": 3260
}
],
"serverId": "hblock_3"
}
],
"config": {
"localStorageClass": "EC 2+1",
"minReplica": 2,
"sectorSize": 4096,
"highAvailability": "ActiveStandby",
"writePolicy": "WriteBack",
"pool": "default",
"redundancyOverlap": 1,
"reclaimPolicy": "Retain",
"serverAffinity": {
"autoFailback": "Enabled"
},
"ECfragmentSize": 16
},
"number": 4,
"isClone": false,
"snapshots": {
"snapshotNumbers": 0,
"snapshotSize": 0
},
"WWID": "3300000002e12e175"
},
{
"lunName": "lun04",
"status": "Normal",
"capacity": 404,
"storageMode": "Local",
"createTime": 1754380160811,
"iSCSITargets": [
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target04.7",
"status": "Active",
"ips": [
{
"ip": "192.168.0.64",
"port": 3260
}
],
"serverId": "hblock_2"
},
{
"iqn": "iqn.2012-08.cn.ctyunapi.oos:target04.8",
"status": "Standby",
"ips": [
{
"ip": "192.168.0.67",
"port": 3260
}
],
"serverId": "hblock_3"
}
],
"config": {
"localStorageClass": "EC 2+1",
"minReplica": 2,
"sectorSize": 4096,
"highAvailability": "ActiveStandby",
"writePolicy": "WriteBack",
"pool": "default",
"redundancyOverlap": 1,
"reclaimPolicy": "Retain",
"serverAffinity": {
"autoFailback": "Enabled"
},
"qosPolicy": {
"qosName": "QosPolicy20250731162809"
},
"ECfragmentSize": 16
},
"number": 0,
"isClone": false,
"snapshots": {
"snapshotNumbers": 0,
"snapshotSize": 0
},
"WWID": "3300000003c9f3f77"
}
]
}
}