Skip to content
This repository has been archived by the owner on May 31, 2022. It is now read-only.

jibudata/LTFS-Data-Management

 
 

Repository files navigation

LTFS Data Management

Overview

With LTFS Data Management it is possible to add tape within a storage hierarchy to disk. This is possible for Linux file system types that are compliant to the POSIX standard. If file is migrated from disk to tape data is removed from the disk file system and stored on tape. By using a Fuse overlay file system on top of the original disk file system, the original files name space and the original file sizes are exposed to applications. Accessing the file using read, write, or truncate system calls will trigger a recall to transfer back the data to disk. The corresponding system calls are blocked until the whole data is transferred.

Overview

Prerequisites

Because of other dependencies LTFS Data Management only is possible to operate at the following operating system:

  • Red Hat Enterprise Linux Server release 7.X

To build and run the code there are dependencies on other software. The following software needs to be installed prior to build and run the LTFS Data Management code:

  • non RHEL 7 software:
    • IBM Tape Device Driver at: Fix Central. Follow the documentation of this software for installation.
    • Spectrum Archive Library Edition version 2.4.0.X available at: Fix Central. This software will be installed in two steps. Follow the installation instructions specified within its documentation.
  • RHEL 7 packages:
    • protobuf
    • protobuf-compiler
    • protobuf-devel
    • sqlite
    • sqlite-devel
    • fuse
    • fuse-devel
    • libuuid
    • libuuid-devel
    • libmount
    • libmount-devel
    • libxml2
    • libxml2-devel
    • boost-system
    • boost-thread
    • boost-system
    • boost-devel

Build

To compile the code the GCC C++ compiler is required version 4.8.5 or higher that supports the C++11 standard. If all prerequisite software is installed and the code is extracted to a directory like the following:

<path to code>/LTFS-Data-Management

change to that directory and run the make command. The resulting executables are located within the

<path to code>/LTFS-Data-Management/bin

directory.

Design documentation

The documentation is include within the source code in a Doxygen format. It has to be compiled after the code has been built. The doxygen RHEL 7 software package has to be installed prior to compile the documentation. The compilation happens by executing the doxygen command within the

<path to code>/LTFS-Data-Management

directory. Error messages can be ignored. To read the documentation use a browser and access the

<path to code>/LTFS-Data-Management/html/index.html

file.

A copy of the documentation is available. It might not correspond to the current code level:

LTFS Data Management documentation

Setting up the environment

To run the code the following shell variables need to be extended by the following:

variable extension
PATH <path to code>/LTFS-Data-Management/bin
LD_LIBRARY_PATH /usr/local/lib:/opt/IBM/ltfs/lib64:<path to code>/LTFS-Data-Management/bin

Starting the software

Prior to starting LTFS Data Management, Spectrum Archive Library Edition needs to be started. A directory needs to be created as a mount point for LTFS. The name of this directory can be freely chosen. If e.g. the directory name is "/ltfs" and the corresponding IBM changer device name is "/dev/IBMchanger0" (look at the documentation for the IBM Tape Device drive - a prerequisite to the Spectrum Archive software - for more information), the Spectrum Archive software needs to be started with the following options:

/opt/IBM/ltfs/bin/ltfs /ltfs -o changer_devname=/dev/IBMchanger0 -o sync_type=unmount -o manual_mount_mode

After Spectrum Archive Library Edition is running LTFS Data Management can be started in the following way:

ltfsdm start

Contact information

Martin Petermann (MAP@zurich.ibm.com)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 93.3%
  • Python 3.9%
  • Makefile 1.8%
  • Other 1.0%