-
Notifications
You must be signed in to change notification settings - Fork 51
Disk Management Guide
- CB-Spider provides Disk (or Volume) control functionality that allows users to control Disks provided by connected Cloud Service Providers (CSPs) using a unified interface.
- CB-Spider users can utilize Disks as Root-Disk (R-Disk, including operating system) and Data-Disk (D-Disk) as shown in the diagram below.
[CB-Spider Disk Types and Usage Overview]
-
(Creation/Attachment) When a user requests VM creation, a Root-Disk is automatically created,
- The created Root-Disk is attached to the created VM and utilized as a system disk necessary for OS operation.
- One VM can own one Root-Disk.
-
(Detachment/Deletion) Root-Disk cannot be explicitly detached from the VM,
- When the VM that owns the Disk is deleted, it is automatically detached and deleted together with the VM.
-
(Type/Size Configuration) Users can configure the Disk Type and Disk Size of the Root-Disk when requesting VM creation.
- Reference: VM Root Disk Configuration Guide
- (Creation) Users can create Data-Disks at any time as needed.
-
(Attachment) Users can attach created Data-Disks to specific running VMs for utilization.
- Additionally, existing Data-Disks can be configured to be attached during VM creation.
- Multiple Data-Disks can be attached to one VM, and one Data-Disk can only be attached to one VM.
-
(Detachment) Users can explicitly request to detach Data-Disks owned by a VM to reclaim them.
- When a VM is deleted, Data-Disks owned by the target VM are automatically detached.
- (Deletion) Users can delete Data-Disks when they are no longer needed.
- When requesting Disk creation, Disk type and Size (unit: GB) can be configured.
- When Disk Type is specified as "default" or "" (empty string), the CSP's default type is used.
- When Disk Size is specified as "default" or "" (empty string), the CSP's default size is used.
- Reference for CSP-specific available Disk Type and Size values
- Users can query a list of all Disks created in a Connection.
- Provides information such as type, Size, status, and owner VM IID of a specific Disk.
- The types of Disk statuses provided are as follows:
- Creating: Disk is being created
- Available: Disk is not attached to a VM and is available for use
-
Attached: Disk is attached to a VM and owned by a specific VM
- When in
Attachedstatus, information about the owner VM IID to which the target Disk is attached is provided.
- When in
- Deleting: Disk is being deleted
- Error: Disk error status
- Disk Size can be modified, and can only be changed to a larger size than the current size.
- Note: For AWS, modification is only possible after 6 hours have elapsed since the last modification.
- Disks in
Availablestatus can be attached to specific VMs for use. - Attached Disks can be utilized as block devices of the VM,
- If you want to mount a file system for utilization, formatting and mounting processes are required.
- Reference: Format / Mount / Umount
- Multiple Disks can be attached to one VM, and one Disk can only be attached to one VM.
- Disks attached to specific VMs can be detached.
- Detached Disks can be attached to other VMs for utilization.
- Unused Disks can be deleted.
- Disks in Attached status cannot be deleted normally, but can be forcefully deleted using the force option.
- Existing Disks in CSP can be registered and managed in CB-Spider.
- Registered Disks can be unregistered from CB-Spider management.
- Users can query the total number of Disks or the number of Disks for a specific Connection.
To utilize Data-Disks attached to VMs for file storage purposes within the VM, file system formatting and mounting processes are required.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 44.7M 1 loop /snap/snapd/15534
loop1 7:1 0 55.5M 1 loop /snap/core18/2344
...
sda 8:0 0 10G 0 disk
|-sda1 8:1 0 9.9G 0 part /
|-sda14 8:14 0 4M 0 part
`-sda15 8:15 0 106M 0 part /boot/efi
sdc 8:16 0 18G 0 disk <=======Check Disk Properties: If the property is data, formatting is required
$ sudo file -s /dev/sdc
/dev/sdc: dataPerform Format
$ sudo mkfs -t xfs /dev/sdc
meta-data=/dev/sdc isize=512 agcount=4, agsize=1048576 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0
data = bsize=4096 blocks=4194304, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0Check Disk Properties
$ sudo file -s /dev/sdc
/dev/sdc: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)Perform Mount
$ mkdir data
$ sudo mount /dev/sdc data
$ cd data
$ sudo chown cb-user:cb-user .Usage Example
$ cd ~/data
$ vi input.datPerform Umount
$ sudo umount -d /dev/sdc- Users can receive Disk information in JSON format using the following CB-Spider REST API.
# Disk Creation and Query
POST /spider/disk - Create Disk
GET /spider/disk - List Disks
GET /spider/disk/{Name} - Get Disk
DELETE /spider/disk/{Name} - Delete Disk
# Disk Registration/Unregistration (Integration with existing CSP Disk)
POST /spider/regdisk - Register Disk
DELETE /spider/regdisk/{Name} - Unregister Disk
# Disk Size Modification
PUT /spider/disk/{Name}/size - Increase Disk Size
# Disk Attachment/Detachment
PUT /spider/disk/{Name}/attach - Attach Disk to VM
PUT /spider/disk/{Name}/detach - Detach Disk from VM
# Disk List Query (All)
GET /spider/alldisk - List All Disks (CB-Spider + CSP)
GET /spider/alldiskinfo - List All Disk Info
# Disk Statistics
GET /spider/countdisk - Count All Disks
GET /spider/countdisk/{ConnectionName} - Count Disks by Connection
# Direct CSP Disk Deletion
DELETE /spider/cspdisk/{Id} - Delete CSP Disk
Disk Information (DiskInfo)
| Field | Description | Examples |
|---|---|---|
| IId | Disk identifier information (NameId, SystemId) | ● {Name: "disk-01", SystemId: "vol-1234abcd"} |
| Zone | Availability Zone where the Disk is located | ● "us-east-1a", "ap-northeast-2a", etc. |
| DiskType | Disk type | ● "gp2", "gp3", "io1" etc. |
| DiskSize | Disk size (GB) | ● "50", "100", "1000" etc. |
| Status | Disk status | ● "Creating", "Available", "Attached", "Deleting", "Error" |
| OwnerVM | VM information to which the Disk is attached (only when Status is Attached) | ● {Name: "vm-01", SystemId: "i-5678efgh"} |
| CreatedTime | Disk creation time | ● "2024-01-15T10:30:00Z" |
| TagList | List of tags assigned to the Disk | ● [{Key: "Purpose", Value: "Database"}] |
| KeyValueList | Additional Disk information provided by CSP | ● [{Key: "IOPS", Value: "3000"}] |
- API call example for creating a Data-Disk with specified Disk Type and Size:
curl -sX POST http://localhost:1024/spider/disk \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-config01",
"ReqInfo": {
"Name": "disk-01",
"Zone": "ap-southeast-2a",
"DiskType": "gp3",
"DiskSize": "100"
}
}' | jqResponse Example:
{
"IId": {
"NameId": "disk-01",
"SystemId": "vol-0513e712757fc92a7"
},
"Zone": "ap-southeast-2a",
"DiskType": "gp3",
"DiskSize": "100",
"Status": "Available",
"OwnerVM": {
"NameId": "",
"SystemId": ""
},
"CreatedTime": "2026-02-04T13:47:45.153Z",
"TagList": [
{
"Key": "Name",
"Value": "disk-01-d61krvu1pc4njtmut8v0"
}
],
"KeyValueList": [
{
"Key": "AvailabilityZone",
"Value": "ap-southeast-2a"
},
{
"Key": "Encrypted",
"Value": "false"
},
{
"Key": "Iops",
"Value": "3000"
},
{
"Key": "State",
"Value": "available"
},
{
"Key": "Throughput",
"Value": "125"
},
{
"Key": "VolumeType",
"Value": "gp3"
}
]
}- Creating a Disk with DiskType and DiskSize specified as "default":
curl -sX POST http://localhost:1024/spider/disk \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-config01",
"ReqInfo": {
"Name": "disk-02",
"DiskType": "default",
"DiskSize": "default"
}
}' | jq- API call example for querying created Disk information:
curl -sX GET 'http://localhost:1024/spider/disk/disk-01?ConnectionName=aws-config01' | jqResponse Example:
{
"IId": {
"NameId": "disk-01",
"SystemId": "vol-0a1b2c3d4e5f67890"
},
"Zone": "us-east-1a",
"DiskType": "gp3",
"DiskSize": "100",
"Status": "Available",
"CreatedTime": "2024-01-15T10:30:00Z",
"TagList": [],
"KeyValueList": [
{
"Key": "IOPS",
"Value": "3000"
}
]
}- API call example for querying all Disk lists created in a Connection:
curl -sX GET 'http://localhost:1024/spider/disk?ConnectionName=aws-config01' | jqResponse Example:
{
"disk": [
{
"IId": {
"NameId": "disk-01",
"SystemId": "vol-0a1b2c3d4e5f67890"
},
"Zone": "us-east-1a",
"DiskType": "gp3",
"DiskSize": "100",
"Status": "Available",
...
},
{
"IId": {
"NameId": "vm-01-root",
"SystemId": "vol-1b2c3d4e5f678901"
},
"Zone": "us-east-1a",
"DiskType": "gp2",
"DiskSize": "30",
"Status": "Attached",
"OwnerVM": {
"NameId": "vm-01",
"SystemId": "i-2c3d4e5f67890123"
},
...
}
]
}- API call example for attaching an Available Disk to a specific VM:
curl -sX PUT http://localhost:1024/spider/disk/disk-01/attach \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-config01",
"ReqInfo": {
"VMName": "vm-01"
}
}' | jqResponse Example:
{
"IId": {
"NameId": "disk-01",
"SystemId": "vol-0a1b2c3d4e5f67890"
},
"Zone": "us-east-1a",
"DiskType": "gp3",
"DiskSize": "100",
"Status": "Attached",
"OwnerVM": {
"NameId": "vm-01",
"SystemId": "i-2c3d4e5f67890123"
},
"CreatedTime": "2024-01-15T10:30:00Z",
...
}- API call example for detaching a Disk attached to a VM:
curl -sX PUT http://localhost:1024/spider/disk/disk-01/detach \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-config01",
"ReqInfo": {
"VMName": "vm-01"
}
}' | jqResponse Example:
{
"Result": "true"
}- API call example for increasing the Size of an existing Disk:
curl -sX PUT http://localhost:1024/spider/disk/disk-01/size \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-config01",
"ReqInfo": {
"Size": "200"
}
}' | jqResponse Example:
{
"Result": "true"
}- API call example for deleting a Disk:
curl -sX DELETE 'http://localhost:1024/spider/disk/disk-01' \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-config01"
}' | jqResponse Example:
{
"Result": "true"
}- API call example for forcefully deleting a Disk (deletes even if attached to a VM):
curl -sX DELETE 'http://localhost:1024/spider/disk/disk-01?force=true' \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-config01"
}' | jq-
The Disk management procedure through AdminWeb is as follows:
- Select Connection: Select target CSP Connection from the top of AdminWeb
- Access Disk Menu: Select "Disk" from the left menu
- Create Disk: Click "Create Disk" button and enter required information
- Manage Disk: Check Disk status, attach/detach, modify Size, delete, etc.
When viewing the Disk list in AdminWeb, the following information is displayed:
- Disk Name
- Zone
- Disk Type
- Disk Size (GB)
- Status (Creating, Available, Attached, Deleting, Error)
- Owner VM (if in Attached status)
- Action Buttons (Details, Attach, Detach, Modify Size, Delete, etc.)
When creating a Disk in AdminWeb, enter the following information:
- Disk Name: Disk name to be managed in CB-Spider
- Zone: Availability zone to create the Disk (optional, uses Connection's default Zone if not specified)
-
Disk Type: Select Disk type or enter "default"
- Examples: gp2, gp3, io1, io2 (AWS), Premium_LRS, Standard_LRS (Azure), etc.
-
Disk Size: Disk size (GB) or enter "default"
- Examples: 50, 100, 500, 1000, etc.
- Tags (optional): Resource tag information
The Disk details screen displays the following information:
Basic Information:
- Disk IId (NameId, SystemId)
- Zone
- Disk Type
- Disk Size (GB)
- Status
- Created Time
Owner VM Information (if in Attached status):
- Owner VM IId (NameId, SystemId)
Action Buttons:
- Attach to VM (if in Available status)
- Detach from VM (if in Attached status)
- Increase Size
- Delete Disk
- Zone Specification: Disk must be in the same Zone as the VM to be attached
- Disk Type: Check CSP-supported Disk Types in advance as they differ by CSP
- Disk Size: CSPs have minimum/maximum Size limitations
- Default Values: When DiskType or DiskSize is specified as "default" or "" (empty string), CSP's default values are used
- Zone Match: Disk and VM must be in the same Zone for attachment
- Available Status: Disk must be in Available status for attachment
- Attachment Limit: One Disk can only be attached to one VM
-
Format/Mount: After attachment, formatting and mounting are required for file system usage in the VM
- Reference: Format / Mount / Umount
- Increase Only: Can only be changed to a larger size than the current size (decrease not possible)
-
Modification Limit: CSPs have limitations on the frequency of Size modifications
- Example: AWS allows re-modification only after 6 hours have elapsed
- File System Expansion: After Size increase, file system expansion work is required in the VM
- Attached Status: Disks in Attached status cannot be deleted normally (possible with force option)
- Force Deletion: Using force=true option forcefully deletes without validating relationships with connected resources (caution!)
- Root-Disk: VM's Root-Disk is automatically deleted when the VM is deleted
-
Install & Start Guide
-
Usage Guide
- Usage Overview
- Connection Management
- Region/Zone Info
- Quota Info
- VM Price Info
- VM Image Info
- VM Spec Info
- VPC/Subnet Management
- Security Group Management
- KeyPair Management
- VM Management
- Disk Management
- Network Load Balancer(NLB) Management
- Kubernetes Cluster Management
- Object Storage(S3) Management
- Tag Management
- Cloud Driver Capability Info
- Function Menu
- MetaDB Auto Backup
- How to get CSP Credentials
- Tutorials
- Developer Guide
- Cloud Driver Developer Guide
- CB‐Spider Multi‐Cloud Driver Developer Team Skill
- Cloud Driver Developer Guide-WIP
- VM SSH Key Development Guide-WIP
- VM User Development Guide
- What is the CSP SDK API Version of drivers
- Region Zone Info and Driver API
- (StartVM TerminateVM) API Call Counts and Waiting
- StartVM and TerminateVM Main Flow of drivers
- VM Root Disk Configuration Guide
- Security Group Rules and Driver API
- Network Load Balancer and Driver API
- VM Snapshot, MyImage and Disk Overview
- Kubernetes and Driver API(PMKS, K8S)
- Tag and Cloud Driver API
- AnyCall API Extension Guide
- How to ...
- How to Use AWS S3 with Credentials
- How to Use Alibaba ECS i1.* Instance Types
- How to provision GPU VMs
- How to test CB Spider with Mock Driver
- How to install CB Spider on WSL2 under 공유기/사설망
- How to install CB Spider on macOS
- How to run CB Spider Container on macOS
- How to get Azure available Regions
- How to profile memory usage in Golang
- [For Cloud-Migrator]