pub struct Pool {
pub id: String,
pub name: String,
pub element_type: u64,
pub unsupported_actions: u64,
pub total_space: u64,
pub free_space: u64,
pub status: u64,
pub status_info: Option<String>,
pub system_id: String,
/* private fields */
}Fields§
§id: StringIdentifier.
name: StringHuman friendly name.
element_type: u64The type of elements this pool could create. Valid element types are:
Pool::ELEMENT_TYPE_POOLPool::ELEMENT_TYPE_VOLUMEPool::ELEMENT_TYPE_FSPool::ELEMENT_TYPE_DELTAPool::ELEMENT_TYPE_VOLUME_FULLPool::ELEMENT_TYPE_VOLUME_THINPool::ELEMENT_TYPE_SYS_RESERVED
The values are stored in bitmap:
if (p.element_type & Pool::ELEMENT_TYPE_VOLUME) == 0 {
println!("Pool {}/{} could create volume", p.name, p.id);
}unsupported_actions: u64The actions does not supported by this pool. Valid values are:
The values are stored in bitmap:
if (p.unsupported_actions & Pool::UNSUPPORTED_VOLUME_GROW) == 0 {
println!("Pool {}/{} cannot grow size of volume", p.name, p.id);
}total_space: u64Total space in bytes.
free_space: u64Free space in bytes.
status: u64Pool status stored in bitmap. Valid status value are:
Pool::STATUS_UNKNOWNPool::STATUS_OKPool::STATUS_OTHERPool::STATUS_DEGRADEDPool::STATUS_ERRORPool::STATUS_STOPPEDPool::STATUS_STARTINGPool::STATUS_RECONSTRUCTINGPool::STATUS_VERIFYINGPool::STATUS_INITIALIZINGPool::STATUS_GROWING
if (p.status & Pool::STATUS_OK) == 0 {
println!("Pool {}/{} is not healthy", p.name, p.id);
}status_info: Option<String>Additional message for status.
system_id: StringIdentifier of owner system.
Implementations§
Source§impl Pool
impl Pool
Sourcepub const ELEMENT_TYPE_POOL: u64 = 2u64
pub const ELEMENT_TYPE_POOL: u64 = 2u64
This pool could allocate space for sub-pool.
Sourcepub const ELEMENT_TYPE_VOLUME: u64 = 4u64
pub const ELEMENT_TYPE_VOLUME: u64 = 4u64
This pool could create volume.
Sourcepub const ELEMENT_TYPE_FS: u64 = 8u64
pub const ELEMENT_TYPE_FS: u64 = 8u64
This pool could create file system.
Sourcepub const ELEMENT_TYPE_DELTA: u64 = 16u64
pub const ELEMENT_TYPE_DELTA: u64 = 16u64
This pool could hold delta data for snapshots.
Sourcepub const ELEMENT_TYPE_VOLUME_FULL: u64 = 32u64
pub const ELEMENT_TYPE_VOLUME_FULL: u64 = 32u64
This pool could create fully allocated volume.
Sourcepub const ELEMENT_TYPE_VOLUME_THIN: u64 = 64u64
pub const ELEMENT_TYPE_VOLUME_THIN: u64 = 64u64
This pool could create thin provisioned volume.
Sourcepub const ELEMENT_TYPE_SYS_RESERVED: u64 = 1_024u64
pub const ELEMENT_TYPE_SYS_RESERVED: u64 = 1_024u64
This pool is reserved for system internal use.
Sourcepub const UNSUPPORTED_VOLUME_GROW: u64 = 1u64
pub const UNSUPPORTED_VOLUME_GROW: u64 = 1u64
This pool cannot grow size of its volume.
Sourcepub const UNSUPPORTED_VOLUME_SHRINK: u64 = 2u64
pub const UNSUPPORTED_VOLUME_SHRINK: u64 = 2u64
This pool cannot shrink size of its volume.
Sourcepub const STATUS_UNKNOWN: u64 = 1u64
pub const STATUS_UNKNOWN: u64 = 1u64
Plugin failed to query pool status.
Sourcepub const STATUS_OK: u64 = 2u64
pub const STATUS_OK: u64 = 2u64
The data of this pool is accessible with not data lose. But it might
along with Pool::STATUS_DEGRADED to indicate redundancy lose.
Sourcepub const STATUS_OTHER: u64 = 4u64
pub const STATUS_OTHER: u64 = 4u64
Vendor specific status. The Pool.status_info property will explain
the detail.
Sourcepub const STATUS_DEGRADED: u64 = 16u64
pub const STATUS_DEGRADED: u64 = 16u64
Pool is lost data redundancy due to I/O error or offline of one or more
RAID member. Often come with Pool::STATUS_OK to indicate data is
still accessible with not data lose. Example:
-
RAID 6 pool lost access to 1 disk or 2 disks.
-
RAID 5 pool lost access to 1 disk.
Sourcepub const STATUS_ERROR: u64 = 32u64
pub const STATUS_ERROR: u64 = 32u64
Pool data is not accessible due to some members offline. Example:
-
RAID 5 pool lost access to 2 disks.
-
RAID 0 pool lost access to 1 disks.
Sourcepub const STATUS_STOPPED: u64 = 512u64
pub const STATUS_STOPPED: u64 = 512u64
Pool is stopping by administrator. Pool data is not accessible.
Sourcepub const STATUS_STARTING: u64 = 1_024u64
pub const STATUS_STARTING: u64 = 1_024u64
Pool is reviving from STOPPED status. Pool data is not accessible yet.
Sourcepub const STATUS_RECONSTRUCTING: u64 = 4_096u64
pub const STATUS_RECONSTRUCTING: u64 = 4_096u64
Pool is reconstructing the hash data or mirror data. Mostly happen
when disk revive from offline or disk replaced. Pool.status_info may
contain progress of this reconstruction job. Often come with
Pool::STATUS_DEGRADED and Pool::STATUS_OK.
Sourcepub const STATUS_VERIFYING: u64 = 8_192u64
pub const STATUS_VERIFYING: u64 = 8_192u64
Array is running integrity check on data of current pool. It might be
started by administrator or array itself. The I/O performance will be
impacted. Pool.status_info may contain progress of this verification
job. Often come with Pool::STATUS_OK to indicate data is still
accessible.
Sourcepub const STATUS_INITIALIZING: u64 = 16_384u64
pub const STATUS_INITIALIZING: u64 = 16_384u64
Pool is not accessible and performing initializing task. Often happen on newly created pool.
Sourcepub const STATUS_GROWING: u64 = 32_768u64
pub const STATUS_GROWING: u64 = 32_768u64
Pool is growing its size and doing internal jobs. Pool.status_info
can contain progress of this growing job. Often come with
Pool::STATUS_OK to indicate data is still accessible.