The cinder.volume.drivers.hitachi.hnas_backend Module¶
Hitachi Unified Storage (HUS-HNAS) platform. Backend operations.
- 
class HNASSSHBackend(backend_opts)¶
- Bases: - object- 
add_iscsi_conn(*args, **kwargs)¶
- Sets up the Logical Unit on the specified target port. - Parameters: - lu_name – id of the Logical Unit being extended
- fs_label – data pool of the Logical Unit
- port – iSCSI port
- tgt_alias – iSCSI qualified name
- initiator – initiator address
 - Returns: - dictionary (conn_info) with the connection information - conn_info={
- ‘lu’: Logical Unit ID, ‘iqn’: iSCSI qualified name, ‘lu_name’: Logical Unit name, ‘initiator’: iSCSI initiator, ‘fs_label’: File system to connect, ‘port’: Port to make the iSCSI connection }
 
 - 
check_lu(vol_name, fs_label)¶
- Checks if a given LU is already mapped - Parameters: - vol_name – name of the LU
- fs_label – storage pool of the LU
 - Returns: - dictionary (lu_info) with LU information - lu_info={
- ‘mapped’: LU state (mapped or not), ‘id’: ID of the LU, ‘tgt’: the iSCSI target alias }
 
 - 
check_snapshot_parent(volume_path, snap_name, fs_label)¶
- Check if a volume is the snapshot source - Parameters: - volume_path – path of the volume
- snap_name – name of the snapshot
- fs_label – filesystem label
 - Returns: - True if the volume is the snapshot’s source or False otherwise 
 - 
check_target(fs_label, target_alias)¶
- Checks if a given target exists and gets its info. - Parameters: - fs_label – pool name used
- target_alias – alias of the target
 - Returns: - dictionary (tgt_info) - tgt_info={
- ‘alias’: The alias of the target, ‘found’: boolean to inform if the target was found or not, ‘tgt’: dictionary with the target information }
 
 - 
create_cloned_lu(src_lu, fs_label, clone_name)¶
- Clones a Logical Unit - Clone primitive used to support all iSCSI snapshot/cloning functions. - Parameters: - src_lu – id of the Logical Unit being deleted
- fs_label – data pool of the Logical Unit
- clone_name – name of the snapshot
 
 - 
create_lu(fs_label, size, lu_name)¶
- Creates a new Logical Unit. - If the operation can not be performed for some reason, utils.execute() throws an error and aborts the operation. Used for iSCSI only - Parameters: - fs_label – data pool the Logical Unit will be created
- size – Size (GB) of the new Logical Unit
- lu_name – name of the Logical Unit
 
 - 
create_target(tgt_alias, fs_label, secret)¶
- Creates a new iSCSI target - Parameters: - tgt_alias – the alias with which the target will be created
- fs_label – the label of the file system to create the target
- secret – the secret for authentication of the target
 
 - 
del_iscsi_conn(evs_id, iqn, lu_id)¶
- Removes the Logical Unit on the specified target port. - Parameters: - evs_id – EVSID for the file system
- iqn – iSCSI qualified name
- lu_id – Logical Unit id
 
 - 
delete_lu(fs_label, lu_name)¶
- Deletes a Logical Unit. - Parameters: - fs_label – data pool of the Logical Unit
- lu_name – id of the Logical Unit being deleted
 
 - 
extend_lu(fs_label, new_size, lu_name)¶
- Extends an iSCSI volume. - Parameters: - fs_label – data pool of the Logical Unit
- new_size – new size of the Logical Unit
- lu_name – name of the Logical Unit
 
 - 
file_clone(fs_label, src, name)¶
- Clones NFS files to a new one named ‘name’. - Clone primitive used to support all NFS snapshot/cloning functions. - Parameters: - fs_label – file system label of the new file
- src – source file
- name – target path of the new created file
 
 - 
get_cloned_file_relatives(file_path, fs_label, raise_except=False)¶
- Gets the files related to a clone - Parameters: - file_path – path of the cloned file
- fs_label – filesystem of the cloned file
- raise_except – If True exception will be raised for files that
 - aren’t clones. If False, only an error message is logged. :returns: list with names of the related files 
 - 
get_evs(fs_label)¶
- Gets the EVS ID for the named filesystem. - Parameters: - fs_label – The filesystem label related to the EVS required - Returns: - EVS ID of the filesystem 
 - 
get_evs_info()¶
- Gets the IP addresses of all EVSs in HNAS. - Returns: - dictionary with EVS information - evs_info={
- <IP1>: {evs_number: number identifying the EVS1 on HNAS}, <IP2>: {evs_number: number identifying the EVS2 on HNAS}, ...
 - } 
 - 
get_existing_lu_info(lu_name, fs_label=None, evs_id=None)¶
- Gets the information for the specified Logical Unit. - Returns the information of an existing Logical Unit on HNAS, according to the name provided. - Parameters: - lu_name – label of the Logical Unit
- fs_label – label of the file system
- evs_id – ID of the EVS where the LU is located
 - Returns: - dictionary (lu_info) with LU information - lu_info={
- ‘name’: A Logical Unit name, ‘comment’: A comment about the LU, not used for Cinder, ‘path’: Path to LU inside filesystem, ‘size’: Logical Unit size returned always in GB (volume size), ‘filesystem’: File system where the Logical Unit was created, ‘fs_mounted’: Information about the state of file system (mounted or not), ‘lu_mounted’: Information about the state of Logical Unit (mounted or not) }
 
 - 
get_export_list()¶
- Gets information on each NFS export. - Returns: - a list of the exports configured on HNAS 
 - 
get_export_path(export, fs_label)¶
- Gets the path of an export on HNAS - Parameters: - export – the export’s name
- fs_label – the filesystem name
 - Returns: - string of the export’s path 
 - 
get_fs_info(fs_label)¶
- Gets the information of a given FS. - Parameters: - fs_label – Label of the filesystem - Returns: - dictionary with FS information - fs_info={
- ‘id’: a Logical Unit ID, ‘label’: a Logical Unit name, ‘evs_id’: the ID of the EVS in which the filesystem is created (not present if there is a single EVS), ‘total_size’: the total size of the FS (in GB), ‘used_size’: the size that is already used (in GB), ‘available_size’: the free space (in GB) }
 
 - 
get_target_iqn(tgt_alias, fs_label)¶
- Obtains the target full iqn - Returns the target’s full iqn rather than its alias. - Parameters: - tgt_alias – alias of the target
- fs_label – data pool of the Logical Unit
 - Returns: - string with full IQN 
 - 
get_target_secret(targetalias, fs_label)¶
- Gets the chap secret for the specified target. - Parameters: - targetalias – alias of the target
- fs_label – data pool of the Logical Unit
 - Returns: - CHAP secret of the target 
 - 
get_version()¶
- Gets version information from the storage unit. - Returns: - dictionary with HNAS information - storage_version={
- ‘mac’: HNAS MAC ID, ‘model’: HNAS model, ‘version’: the software version, ‘hardware’: the hardware version, ‘serial’: HNAS serial number}
 
 - 
rename_existing_lu(fs_label, vol_name, new_name)¶
- Renames the specified Logical Unit. Renames an existing Logical Unit on HNAS according to the new name provided.- Parameters: - fs_label – label of the file system
- vol_name – current name of the existing volume
- new_name – new name to the existing volume
 
 - 
set_target_secret(targetalias, fs_label, secret)¶
- Sets the chap secret for the specified target. - Parameters: - targetalias – alias of the target
- fs_label – data pool of the Logical Unit
- secret – CHAP secret of the target
 
 
-