mimgggg4444 / lto-info

Tool to read information in Ultrium LTO Cartridges from a tape drive

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

https://gdimg.gmarket.co.kr/3746691675/still/600?ver=1714030673


LTO(Linear Tape-Open)와 HDD(Hard Disk Drive)를 함께 사용하여 파일 서버를 구축하는 방식은 일반적으로 계층적 스토리지 관리(Hierarchical Storage Management, HSM) 또는 아카이빙 솔루션으로 알려져 있습니다. 이 방식은 자주 액세스되는 데이터는 빠른 HDD에 저장하고, 자주 사용되지 않는 데이터는 cost-effective한 LTO 테이프에 아카이빙하는 것입니다.

귀하의 요구 사항대로 데이터를 LTO와 HDD에 동시에 저장하고, 30일 동안 사용되지 않은 파일을 LTO에만 저장하고 HDD에서는 삭제하는 방식은 타당한 접근 방식입니다. 이 방식의 장점은 다음과 같습니다:

  1. 데이터 보존: LTO 테이프는 장기 보존에 적합하며, 데이터 손실 위험을 줄일 수 있습니다.
  2. 비용 효율성: LTO 테이프는 HDD에 비해 저렴하므로, 대용량 데이터를 장기간 저장할 때 비용을 절감할 수 있습니다.
  3. 스토리지 공간 최적화: 자주 사용되지 않는 파일을 HDD에서 삭제함으로써 스토리지 공간을 효율적으로 관리할 수 있습니다.

다만 이 방식을 구현하기 위해서는 다음과 같은 사항을 고려해야 합니다:

  1. HSM 소프트웨어: 데이터 이동 및 관리를 자동화하기 위한 HSM 소프트웨어가 필요합니다.
  2. 데이터 액세스 속도: LTO 테이프에서 데이터를 검색하는 속도는 HDD에 비해 느릴 수 있습니다. 따라서 자주 액세스해야 하는 데이터는 HDD에 유지하는 것이 좋습니다.
  3. 데이터 동기화: LTO와 HDD 간의 데이터 동기화를 유지하기 위한 메커니즘이 필요합니다.

HSM 솔루션을 구현하기 위해서는 StarWindHSM, Amanda, Bacula 등의 오픈 소스 소프트웨어를 사용하거나, 상용 HSM 소프트웨어를 구매할 수 있습니다.


  1. 메타데이터 추출:
  • 영상 파일에서 메타데이터를 추출하기 위해 FFmpeg, MediaInfo 등의 도구를 사용할 수 있습니다.
  • 추출할 메타데이터에는 파일명, 파일 크기, 비디오 코덱, 해상도, 프레임 레이트, 오디오 코덱, 재생 시간 등이 포함될 수 있습니다.
  1. 데이터베이스 설계:
  • 추출된 메타데이터를 저장할 SQL 데이터베이스 테이블을 설계합니다.
  • 테이블에는 파일명, LTO 테이프 바코드, 파일 경로, 파일 크기, 비디오 및 오디오 파라미터 등의 열을 포함할 수 있습니다.
  1. 데이터 삽입:
  • 추출된 메타데이터를 SQL 데이터베이스에 삽입합니다.
  • 이를 위해 Python, Java 등의 프로그래밍 언어와 해당 언어의 SQL 데이터베이스 커넥터를 사용할 수 있습니다.
  • 예를 들어 Python에서는 SQLite, MySQL, PostgreSQL 등의 데이터베이스와 연동할 수 있는 라이브러리를 제공합니다.
  1. 데이터 업데이트 및 동기화:
  • LTO 테이프의 내용이 변경되거나 새로운 영상 파일이 추가될 때마다 SQL 데이터베이스를 업데이트합니다.
  • 이를 위해 LTO 테이프의 변경 사항을 모니터링하고, 변경된 파일의 메타데이터를 추출하여 데이터베이스에 반영하는 자동화 스크립트를 작성할 수 있습니다.
  1. 데이터 검색 및 활용:
  • SQL 쿼리를 사용하여 특정 조건에 맞는 영상 파일의 메타데이터를 검색할 수 있습니다.
  • 검색된 메타데이터를 기반으로 필요한 영상 파일을 LTO 테이프에서 검색하고 액세스할 수 있습니다.

이러한 방식으로 LTO 테이프에 저장된 영상 파일의 메타데이터를 SQL 데이터베이스에 저장하고 관리함으로써, 대용량 영상 데이터의 효율적인 검색과 활용이 가능해집니다. 또한 SQL 데이터베이스를 사용하면 데이터의 무결성과 일관성을 유지할 수 있으며, 다양한 분석 및 보고 도구와 연계할 수 있는 이점이 있습니다.


  1. video_files 테이블:
  • id (INT, PRIMARY KEY): 영상 파일의 고유 식별자
  • filename (VARCHAR): 영상 파일명
  • filepath (VARCHAR): 영상 파일의 경로
  • filesize (BIGINT): 영상 파일의 크기 (바이트 단위)
  • duration (INT): 영상 재생 시간 (초 단위)
  • created_at (TIMESTAMP): 영상 파일의 생성 시간
  • updated_at (TIMESTAMP): 영상 파일의 최종 수정 시간
  1. video_parameters 테이블:
  • id (INT, PRIMARY KEY): 비디오 파라미터의 고유 식별자
  • video_file_id (INT, FOREIGN KEY REFERENCES video_files.id): 연결된 영상 파일의 식별자
  • codec (VARCHAR): 비디오 코덱 (예: H.264, HEVC 등)
  • resolution (VARCHAR): 비디오 해상도 (예: 1920x1080, 3840x2160 등)
  • framerate (FLOAT): 비디오 프레임 레이트 (예: 29.97, 60 등)
  • bitrate (INT): 비디오 비트레이트 (bps)
  1. audio_parameters 테이블:
  • id (INT, PRIMARY KEY): 오디오 파라미터의 고유 식별자
  • video_file_id (INT, FOREIGN KEY REFERENCES video_files.id): 연결된 영상 파일의 식별자
  • codec (VARCHAR): 오디오 코덱 (예: AAC, AC3 등)
  • channels (INT): 오디오 채널 수 (예: 2, 6 등)
  • samplerate (INT): 오디오 샘플 레이트 (Hz)
  • bitrate (INT): 오디오 비트레이트 (bps)
  1. lto_tapes 테이블:
  • id (INT, PRIMARY KEY): LTO 테이프의 고유 식별자
  • barcode (VARCHAR): LTO 테이프 바코드
  • capacity (BIGINT): LTO 테이프 용량 (바이트 단위)
  • created_at (TIMESTAMP): LTO 테이프의 생성 시간
  • updated_at (TIMESTAMP): LTO 테이프의 최종 수정 시간
  1. video_files_lto_tapes 테이블 (다대다 관계):
  • video_file_id (INT, FOREIGN KEY REFERENCES video_files.id): 연결된 영상 파일의 식별자
  • lto_tape_id (INT, FOREIGN KEY REFERENCES lto_tapes.id): 연결된 LTO 테이프의 식별자
  • file_path_on_tape (VARCHAR): LTO 테이프 내 영상 파일의 경로

위의 테이블 구조는 기본적인 영상 메타데이터를 저장하기 위한 예시입니다. 필요에 따라 테이블과 칼럼을 추가하거나 수정할 수 있습니다. 예를 들어, 영상의 장르, 제작자, 키워드 등의 정보를 저장하기 위한 테이블을 추가할 수 있습니다. 또한 인덱스를 적절히 설정하여 데이터 검색 성능을 최적화할 수 있습니다.


LTO Info Tool

This tool reads the internal memory of LTO/Ultrium cartridges from a tape drive 🖭

More precisely, this tool can:

  • Read, decode and display factory and usage information stored in the Cartridge Memory (CM) aka Medium Auxiliary Memory (MAM)
  • View and modify the custom User Medium Text Label of a cartridge
  • Display basic information about the tape drive device

🔨 How to build and use

You need to have a go build environment properly set up, then just type:

make

And try the tool by typing:

./lto-info

By default, the tool will look for a tape device in /dev/nst0, or what is pointed to by the TAPE environment variable. To specify another device, use the -d option.

🔍 Output example

Drive information:
   Vendor  : HP
   Model   : Ultrium 2-SCSI
   Firmware: F63D
Medium information:
  Cartridge Type: 0x00 - Data cartridge
  Medium format : 0x42 - LTO-2
  Formatted as  : 0x42 - LTO-2
  Assign. Org.  : LTO-CVE
  Manufacturer  : IMATION
  Serial No     : 0E00776390
  Manuf. Date   : 2011-12-07 (roughly 9.4 years ago)
  Tape length   : 609 meters
  Tape width    : 12.7 mm
  MAM Capacity  : 4096 bytes (1014 bytes remaining)
Format specs:
   Capacity  :   200 GB native   -   400 GB compressed with a 2:1 ratio
   R/W Speed :    40 MB/s native -    80 MB/s compressed
   Partitions:     1 max partitions supported
   Phy. specs: 4 bands/tape, 16 wraps/band, 8 tracks/wrap, 512 total tracks
   Duration  : 1h23 to fill tape with 64 end-to-end passes (78 seconds/pass)
Usage information:
  Partition space free  : 96% (193746/200448 MiB, 189/195 GiB, 0.18/0.19 TiB)
  Cartridge load count  : 13
  Data written - alltime:        81983 MiB (    80.06 GiB,   0.08 TiB, 0.41 FVE)
  Data read    - alltime:        20674 MiB (    20.19 GiB,   0.02 TiB, 0.10 FVE)
  Data written - session:            0 MiB (     0.00 GiB,   0.00 TiB, 0.00 FVE)
  Data read    - session:          139 MiB (     0.14 GiB,   0.00 TiB, 0.00 FVE)
Previous sessions:
  Session N-0: Used in a device of vendor HP (serial HU10625W0T)
  Session N-1: Used in a device of vendor HP (serial HU10625W0T)
  Session N-2: Used in a device of vendor HP (serial HUP9B067QF)
  Session N-3: Used in a device of vendor HP (serial HUP9B067QF)

💎 Build-time dependencies

♥️ Thanks

Inspired from other tools written in C:

Big up to them!

About

Tool to read information in Ultrium LTO Cartridges from a tape drive


Languages

Language:Go 99.3%Language:Makefile 0.7%