![]() |
![]() |
![]() |
libblockdev Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <mdraid.h> gboolean bd_md_check_deps (); gboolean bd_md_init (); void bd_md_close (); #define BD_MD_SUPERBLOCK_SIZE #define BD_MD_CHUNK_SIZE GQuark bd_md_error_quark (void
); #define BD_MD_ERROR enum BDMDError; BDMDExamineData; BDMDExamineData * bd_md_examine_data_copy (BDMDExamineData *data
); void bd_md_examine_data_free (BDMDExamineData *data
); BDMDDetailData; void bd_md_detail_data_free (BDMDDetailData *data
); BDMDDetailData * bd_md_detail_data_copy (BDMDDetailData *data
); guint64 bd_md_get_superblock_size (guint64 member_size
,const gchar *version
,GError **error
); gboolean bd_md_create (const gchar *raid_spec
,const gchar *level
,const gchar **disks
,guint64 spares
,const gchar *version
,gboolean bitmap
,guint64 chunk_size
,const BDExtraArg **extra
,GError **error
); gboolean bd_md_destroy (const gchar *device
,GError **error
); gboolean bd_md_deactivate (const gchar *raid_spec
,GError **error
); gboolean bd_md_activate (const gchar *raid_spec
,const gchar **members
,const gchar *uuid
,gboolean start_degraded
,const BDExtraArg **extra
,GError **error
); gboolean bd_md_run (const gchar *raid_spec
,GError **error
); gboolean bd_md_nominate (const gchar *device
,GError **error
); gboolean bd_md_denominate (const gchar *device
,GError **error
); gboolean bd_md_add (const gchar *raid_spec
,const gchar *device
,guint64 raid_devs
,const BDExtraArg **extra
,GError **error
); gboolean bd_md_remove (const gchar *raid_spec
,const gchar *device
,gboolean fail
,const BDExtraArg **extra
,GError **error
); BDMDExamineData * bd_md_examine (const gchar *device
,GError **error
); gchar * bd_md_canonicalize_uuid (const gchar *uuid
,GError **error
); gchar * bd_md_get_md_uuid (const gchar *uuid
,GError **error
); BDMDDetailData * bd_md_detail (const gchar *raid_spec
,GError **error
); gchar * bd_md_node_from_name (const gchar *name
,GError **error
); gchar * bd_md_name_from_node (const gchar *node
,GError **error
); gchar * bd_md_get_status (const gchar *raid_spec
,GError **error
); gboolean bd_md_set_bitmap_location (const gchar *raid_spec
,const gchar *location
,GError **error
); gchar * bd_md_get_bitmap_location (const gchar *raid_spec
,GError **error
); gboolean bd_md_request_sync_action (const gchar *raid_spec
,const gchar *action
,GError **error
);
A plugin for basic operations with MD RAID. Also sizes are in bytes unless specified otherwise.
gboolean bd_md_check_deps ();
Returns : |
whether the plugin's runtime dependencies are satisfied or not Function checking plugin's runtime dependencies. |
gboolean bd_md_init ();
Initializes the plugin. **This function is called automatically by the library's initialization functions.**
void bd_md_close ();
Cleans up after the plugin. **This function is called automatically by the library's functions that unload it.**
typedef enum { BD_MD_ERROR_PARSE, BD_MD_ERROR_BAD_FORMAT, BD_MD_ERROR_NO_MATCH, BD_MD_ERROR_INVAL, BD_MD_ERROR_FAIL, } BDMDError;
typedef struct { gchar *device; gchar *level; guint64 num_devices; gchar *name; guint64 size; gchar *uuid; guint64 update_time; gchar *dev_uuid; guint64 events; gchar *metadata; guint64 chunk_size; } BDMDExamineData;
path of the MD device | |
RAID level of the device | |
number of devices used by the MD device | |
name of the MD device | |
size of the MD device | |
array UUID | |
update time of the MD device | |
UUID of the member device | |
number of events on the MD device | |
version of the metadata used by the MD device | |
chunk size used by the MD device |
BDMDExamineData * bd_md_examine_data_copy (BDMDExamineData *data
);
Creates a new copy of data
.
typedef struct { gchar *device; gchar *metadata; gchar *creation_time; gchar *level; gchar *name; guint64 array_size; guint64 use_dev_size; guint64 raid_devices; guint64 total_devices; guint64 active_devices; guint64 working_devices; guint64 failed_devices; guint64 spare_devices; gboolean clean; gchar *uuid; } BDMDDetailData;
path of the device | |
version of the metadata used by the device | |
creation time | |
level of the MD RAID | |
name of the MD device | |
size of the MD array | |
size of the used space | |
number of devices in the MD array | |
total number of devices in the MD array | |
number of active devices in the MD array | |
number of working devices in the MD array | |
number of failed devices in the MD array | |
number of spare devices in the MD array | |
whether the MD array is clean or not | |
uuid of the MD array |
BDMDDetailData * bd_md_detail_data_copy (BDMDDetailData *data
);
Creates a new copy of data
.
guint64 bd_md_get_superblock_size (guint64 member_size
,const gchar *version
,GError **error
);
|
size of an array member |
|
metadata version or NULL to use the current default version. [allow-none]
|
|
place to store error (if any). [out] |
Returns : |
Calculated superblock size for an array with a given member_size
and metadata version or default if unsupported version is used. |
gboolean bd_md_create (const gchar *raid_spec
,const gchar *level
,const gchar **disks
,guint64 spares
,const gchar *version
,gboolean bitmap
,guint64 chunk_size
,const BDExtraArg **extra
,GError **error
);
|
name of the device to create |
|
RAID level (as understood by mdadm, see mdadm(8)) |
|
disks to use for the new RAID (including spares). [array zero-terminated=1] |
|
number of spare devices |
|
metadata version. [allow-none] |
|
whether to create an internal bitmap on the device or not |
|
chunk size of the device to create |
|
extra options for the creation (right now passed to the 'mdadm' utility). [allow-none][array zero-terminated=1] |
|
place to store error (if any). [out] |
Returns : |
whether the new MD RAID device device_name was successfully created or not |
gboolean bd_md_destroy (const gchar *device
,GError **error
);
|
device to destroy MD RAID metadata on |
|
place to store error (if any). [out] |
Returns : |
whether the MD RAID metadata was successfully destroyed on device or not |
gboolean bd_md_deactivate (const gchar *raid_spec
,GError **error
);
|
specification of the RAID device (name, node or path) |
|
place to store error (if any). [out] |
Returns : |
whether the RAID device raid_spec was successfully deactivated or not |
gboolean bd_md_activate (const gchar *raid_spec
,const gchar **members
,const gchar *uuid
,gboolean start_degraded
,const BDExtraArg **extra
,GError **error
);
|
specification of the RAID device (name, node or path) to activate (if not given "--scan" is implied and members is ignored). [allow-none]
|
|
member devices to be considered for device activation. [allow-none][array zero-terminated=1]
|
|
UUID (in the MD RAID format!) of the MD RAID to activate. [allow-none] |
|
whether to start the array even if it's degraded |
|
extra options for the activation (right now passed to the 'mdadm' utility). [allow-none][array zero-terminated=1] |
|
place to store error (if any). [out] |
Returns : |
whether the MD RAID device was successfully activated or not
Note: either members or uuid (or both) have to be specified. |
gboolean bd_md_run (const gchar *raid_spec
,GError **error
);
|
specification of the (possibly degraded) RAID device (name, node or path) to be started |
|
place to store error (if any). [out] |
Returns : |
whether the raid_spec was successfully started or not |
gboolean bd_md_nominate (const gchar *device
,GError **error
);
|
device to nominate (add to its appropriate RAID) as a MD RAID device |
|
place to store error (if any). [out] |
Returns : |
whether the device was successfully nominated (added to its
appropriate RAID) or not
Note: may start the MD RAID if it becomes ready by adding device . |
gboolean bd_md_denominate (const gchar *device
,GError **error
);
|
device to denominate (remove from its appropriate RAID) as a MD RAID device |
|
place to store error (if any). [out] |
Returns : |
whether the device was successfully denominated (added to its
appropriate RAID) or not
Note: may start the MD RAID if it becomes ready by adding device . |
gboolean bd_md_add (const gchar *raid_spec
,const gchar *device
,guint64 raid_devs
,const BDExtraArg **extra
,GError **error
);
|
specification of the RAID device (name, node or path) to add device into |
|
name of the device to add to the raid_spec RAID device |
|
number of devices the raid_spec RAID should actively use or 0
to leave unspecified (see below) |
|
extra options for the addition (right now passed to the 'mdadm' utility). [allow-none][array zero-terminated=1] |
|
place to store error (if any). [out] |
Returns : |
whether the device was successfully added to the raid_spec RAID or
not
The raid_devs parameter is used when adding devices to a raid array that has
no actual redundancy. In this case it is necessary to explicitly grow the
array all at once rather than manage it in the sense of adding spares.
Whether the new device will be added as a spare or an active member is
decided by mdadm. |
gboolean bd_md_remove (const gchar *raid_spec
,const gchar *device
,gboolean fail
,const BDExtraArg **extra
,GError **error
);
|
specification of the RAID device (name, node or path) to remove device from |
|
device to remove from the raid_spec RAID |
|
whether to mark the device as failed before removing |
|
extra options for the removal (right now passed to the 'mdadm' utility). [allow-none][array zero-terminated=1] |
|
place to store error (if any). [out] |
Returns : |
whether the device was successfully removed from the raid_spec
RAID or not. |
BDMDExamineData * bd_md_examine (const gchar *device
,GError **error
);
|
name of the device (a member of an MD RAID) to examine |
|
place to store error (if any). [out] |
Returns : |
information about the MD RAID extracted from the device
|
gchar * bd_md_canonicalize_uuid (const gchar *uuid
,GError **error
);
|
UUID to canonicalize |
|
place to store error (if any). [out] |
Returns : |
cannonicalized form of uuid
This function expects a UUID in the form that mdadm returns. The change is as
follows: 3386ff85:f5012621:4a435f06:1eb47236 -> 3386ff85-f501-2621-4a43-5f061eb47236. [transfer full]
|
gchar * bd_md_get_md_uuid (const gchar *uuid
,GError **error
);
|
UUID to transform into format used by MD RAID |
|
place to store error (if any). [out] |
Returns : |
transformed form of uuid
This function expects a UUID in the canonical (traditional format) and
returns a UUID in the format used by MD RAID and is thus reverse to
bd_md_canonicalize_uuid() . The change is as follows:
3386ff85-f501-2621-4a43-5f061eb47236 -> 3386ff85:f5012621:4a435f06:1eb47236. [transfer full]
|
BDMDDetailData * bd_md_detail (const gchar *raid_spec
,GError **error
);
|
specification of the RAID device (name, node or path) to examine |
|
place to store error (if any). [out] |
Returns : |
information about the MD RAID raid_spec
|
gchar * bd_md_node_from_name (const gchar *name
,GError **error
);
|
name of the MD RAID |
|
place to store error (if any). [out] |
Returns : |
device node of the name MD RAID or NULL in case of error |
gchar * bd_md_name_from_node (const gchar *node
,GError **error
);
|
path of the MD RAID's device node |
|
place to store error (if any). [out] |
Returns : |
name of the MD RAID the device node belongs to or NULL in case of error |
gchar * bd_md_get_status (const gchar *raid_spec
,GError **error
);
|
specification of the RAID device (name, node or path) to get status |
|
place to store error (if any). [out] |
Returns : |
status of the raid_spec RAID. [transfer full]
|
gboolean bd_md_set_bitmap_location (const gchar *raid_spec
,const gchar *location
,GError **error
);
|
specification of the RAID device (name, node or path) to set the bitmap location |
|
bitmap location (none, internal or path) |
|
place to store error (if any). [out] |
Returns : |
whether location was successfully set for raid_spec
|
gchar * bd_md_get_bitmap_location (const gchar *raid_spec
,GError **error
);
|
specification of the RAID device (name, node or path) to get the bitmap location |
|
place to store error (if any). [out] |
Returns : |
bitmap location for raid_spec . [transfer full]
|
gboolean bd_md_request_sync_action (const gchar *raid_spec
,const gchar *action
,GError **error
);
|
specification of the RAID device (name, node or path) to request sync action on |
|
requested sync action (resync, recovery, check, repair or idle) |
|
place to store error (if any). [out] |
Returns : |
whether the action was successfully requested for the raid_spec
RAID or not. |