Start of change

/scalemgmt/v3/filesystems/{filesystem}/disks:batchDelete: POST

Deletes a batch of disks in an IBM Storage Scale file system.

Availability

Available on all IBM Storage Scale editions.

Description

The POST filesystems/{filesystem}/disks:batchDelete request deletes a batch of disks in an IBM Storage Scale file system. This operation for file system disks migrates all data that is otherwise lost to the remaining disks within the file system. It then removes the disks from the file system disk descriptor, continuously preserves replication, and optionally rebalances the file system after disk removal. This operation contains the following two functions:
  • Copy unreplicated data from the disks and removing the references to the disks.
  • Rereplicate or rebalance blocks across the remaining disks.
Note: If a replacement for a failing disk is available, use the filesystems/{filesystem}/disks/{disk_name}: PUT endpoint to maintain the file system balance.
  • If the file system is replicated, you can preserve replica copies by using the default preserve-replication option or the rebalance option during disk deletion.
  • The minimal-copy option does not preserve replication during disk deletion, as it only copies the minimal amount of data from the disk being deleted, ensuring that each block has at least one copy. The file system is then restriped to reestablish replication.
  • Previously, to move all data off the disk before deletion, you used the disk suspend API to suspend all disks to be deleted and then used the restripe (MIGRATE_ALL) or rebalance APIs. This step is no longer needed as the disk deletion operation performs the same function. If disk deletion fails or is canceled, the disks remain in the suspended state, and you can retry disk deletion once the issue that caused it to stop is resolved.
You can delete a disk with the following precautions:
  • If the file system is replicated, you can preserve replica copies by using the default preserve-replication option or the rebalance option during disk deletion.
  • The minimal-copy option does not preserve replication during disk deletion, as it only copies the minimal amount of data from the disk being deleted, ensuring that each block has at least one copy. The file system is then restriped to reestablish replication.
  • Previously, to move all data off the disk before deletion, you used the disk suspend API to suspend all disks to be deleted and then used the restripe (MIGRATE_ALL) or rebalance APIs. This step is no longer needed as the disk deletion operation performs the same function. If disk deletion fails or is canceled, the disks remain in the suspended state, and you can retry disk deletion once the issue that caused it to stop is resolved.
When disks are marked as suspended or to be emptied and you run a disk deletion operation against any disk in the file system, a restripe operation (MIGRATE_ALL) is triggered by default. This moves all data from both the disks being deleted and the suspended or to be emptied disks, slowing down disk deletion and causing unexpected data movement. To avoid this, use the disk resume operation to mark suspended or to be emptied disks as ready before running the disk deletion operation. For more information about fixing issues like permanently damaged disks, file systems not replicating, or disk deletions that repeatedly fail, see Disk media failure in IBM Storage Scale: Problem Determination Guide.

Request URL

https://<IP address or host name of API server>:<port>/scalemgmt/v3/filesystems/{filesystem}/disks:batchDelete
where
filesystems/{filesystem}/disks:batchDelete
Specifies the IBM Storage Scale file system disks as the target of the POST call.

Request headers

Accept: application/json

Parameters

The following parameters can be used in the request URL to customize the request:
Table 1. List of parameters
Parameter name Description and applicable keywords Required/optional
filesystem The name of the file system. Required.
disk_names The name of the disks. Optional.
qos_class The quality of service for IO operations to which the processing of this request is assigned. Optional.
rebalance_strategy The strategy to use for rebalancing the file system. The possible values are NO_REBALANCE, DEFAULT_STRATEGY, STRICT_STRATEGY. Optional.
minimal_copy Specifies minimal copying of data to preserve data that is located only on the disk being deleted. Optional.
preserve_replication Specifies to preserve replication of all files and metadata. Optional.
target_nodes.node _list.nodes List the target nodes. Optional.
target_nodes.node_class.node_classes List the target node classes. Optional.
pit_continues_on_error Specifies to continue repairing the remaining files, if errors are encountered in the parallel inode traverse (PIT). Optional.
X-StorageScaleDomain The domain to be authorized against for the request. The default value is StorageScaleDomain. Optional.

Request data

No request data.

Response data

  • 200: A successful response.
    {
      "done": true,
      "error": {
        "details": [
          {
            "@type": "string",
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ],
        "httpcode": 0,
        "message": "string",
        "status": "CANCELLED"
      },
      "metadata": {
        "@type": "string",
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "name": "string",
      "response": {
        "@type": "string",
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }
  • 202: The request has been accepted for processing, but the processing has not been completed.
    {
      "done": true,
      "error": {
        "details": [
          {
            "@type": "string",
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
          }
        ],
        "httpcode": 0,
        "message": "string",
        "status": "CANCELLED"
      },
      "metadata": {
        "@type": "string",
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "name": "string",
      "response": {
        "@type": "string",
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }

Examples

The following example batch deletes disks in the fs_no_replica_2 file system:

Request data:
curl -X 'POST' 'https://localhost:46443/scalemgmt/v3/filesystems/fs_no_replica_2/disks:batchDelete' -H 'accept: application/json' -H 'Content-Type: application/json' -n -k -d '{"disk_names":["nsd_fvt_nic_707","nsd_fvt_xii_560"],"minimal_copy":false,"pit_continues_on_error":true,"preserve_replication":true,"rebalance_strategy":"NO_REBALANCE","target_nodes":{"node_list":{"nodes":["c81f2u05","c81f2u03"]}}}'
Response data:
{
    "name": "MTo5ZmNjYzk5OC0zZWI0LTRlOTEtYTM5NC1jOTQzMWJhYzRkZjY=",
    "metadata": {
        "@type": "type.googleapis.com/generic.v3.LongRunningOperationMetadata",
        "job_id": "MTo5ZmNjYzk5OC0zZWI0LTRlOTEtYTM5NC1jOTQzMWJhYzRkZjY=",
        "operation_details": {
            "@type": "type.googleapis.com/disk.v3.BatchDeleteFilesystemDisksRequest",
            "filesystem": "fs_no_replica_2",
            "disk_names": [
                "nsd_fvt_nic_707",
                "nsd_fvt_xii_560"
            ],
            "rebalance_strategy": "NO_REBALANCE",
            "preserve_replication": true,
            "target_nodes": {
                "node_list": {
                    "nodes": [
                        "c81f2u05",
                        "c81f2u03"
                    ]
                }
            },
            "pit_continues_on_error": true
        },
        "status": "RUNNING",
        "request_time": "2025-04-01T01:04:55.474439407Z",
        "last_update_time": "2025-04-01T01:04:56.333579497Z",
        "output": "Attention: A disk being removed ...",
        "domain_ids": [
            0
        ]
    }
}
End of change