Most of them are outdated, but provide historical design context.
They are not user documentation and should not be treated as such.
Documentation is available here.
Gluster Host Disk Management: Design
Summary
This document describes the design of Disk Management feature for Gluster in oVirt. Refer Features/GlusterHostDiskManagement
Design
New Entities
StorageDevice
This entity helps to store the details of a storage device in the host. A host will nave multiple instance of this storage device to represent the storage devices in the host.
| Column name | Type | Description |
|---|---|---|
| id | UUID | Id generated by engine (Primary Key) |
| device_uuid | String | Dev UUID Given by the system to device |
| vds_id | UUID | Host ID (Foreign Key to Host). |
| name | String | Name of the device |
| model | String | Description about the device |
| device_path | String | Device Path |
| parent | String | Parent Device |
| mount_point | String | Mount Point |
| filesystem_type | String | File system type |
| fs_uuid | String | UUID for the file system in the device. |
| is_free | boolean | Is device is already used or its free for usage. |
Sync Job
Information about the storage devices in the host will be fetched periodically and stored in the DB by a sync job. This sync job will run for once in 24 hours. There will be an option in the UI to force sync the storage device details.
BLL commands
CreateBrick- creates a logical volume with the given set of storage devices and format it with XFS file system and mounts the LV at a pre configured path.ExtendBrick- Add the selected block devices to the given LV to increase the storage space available in the LV.SyncStorageDevices- Force sync the storage devices from host.
Engine Queries
GetStorageDevices- lists all the Storage Devices available in the HostHostGetUnusedBricksQuery- lists all the Unused LVs in the Host.
VDSM Verbs
VDSM verbs for Disk Provisioning
GlusterStorageDevicesList- Returns all the storage devices in the host
« TODO: explain verb’s parameters and return structure »
GlusterBrickCreate- Create an LV which can be to create gluster volume
« TODO: explain verb’s parameters and return structure »
GlusterBrickExpand- Expand the given LV by adding the selected disk
« TODO: explain verb’s parameters and return structure »
REST APIs
The details of the REST APIs for Disk Provisioning feature are as below -
storagedevices sub-collection of the host resource
-
Description: a collection of storage devices that are attached to a specific host.
-
Endpoint:
/api/hosts/{host:id}/storagedevices - Supported actions:
- GET returns a list of storage devices attached to the host
- Output:
<storage_devices>
<storage_device>
<id>Storage device guid</id>
<host>Host ID</host>
<name>Device Name</name>
<device_uuid>Device UUID</device_uuid>
<file_system_uuid>Device UUID</file_system_uuid>
<model>Device Model information</model>
<device_path>device_path</device_path>
<parent>Parent Device</parent>
<mount_point>mount point if mounted</mount_point>
<file_system_type>File System type</file_system_type>
<is_free>Is Device is Free for use<is_free>
</storage_device>
</storage_devices>
storagedevice resource under host
-
Endpoint:
/api/hosts/{host:id}/storagedevices/{storagedeviceuuid} - Supported actions:
- GET returns the details about the given storage device by uuid
- Output:
<storage_device>
<id>Storage device guid</id>
<host>Host ID</host>
<name>Device Name</name>
<device_uuid>Device UUID</device_uuid>
<file_system_uuid>Device UUID</file_system_uuid>
<model>Device Model information</model>
<device_path>device_path</device_path>
<parent>Parent Device</parent>
<mount_point>mount point if mounted</mount_point>
<file_system_type>File System type</file_system_type>
<is_free>Is Device is Free for use<is_free>
</storage_device>
Create Gluster Brick of the Host resource
-
Description: an action to create gluster brick
-
Endpoint:
/api/hosts/{host:id}/createbrick - Supported actions:
- POST - executes CreateBrick action on the host
- Input:
<action>
<name> Brick Name </name>
<storage_devices>
<storage_device>
<id>Device Id </id>
</storage_device>
</storage_devices>
</action>
Extend Gluster Brick of the Host resource
-
Description: An action to extand the given gluster brick
-
Endpoint:
/api/hosts/{host:id}/storagedevices/{storagedeviceuuid}/extendbrick - Supported actions:
- POST - executes ExtendBrick action on the given storage device. It extends the give LV with the specified storage devices.
- Input:
<action>
<storage_devices>
<storage_device>
<id> Device Id </id>
</storage_device>
</storage_devices>
</action>