publiek:ltfs_en_tape
Verschillen
Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.
| Beide kanten vorige revisieVorige revisieVolgende revisie | Vorige revisie | ||
| publiek:ltfs_en_tape [2025/11/23 20:10] – admin | publiek:ltfs_en_tape [2025/12/05 09:06] (huidige) – admin | ||
|---|---|---|---|
| Regel 1: | Regel 1: | ||
| ======LTFS en Tape====== | ======LTFS en Tape====== | ||
| + | |||
| + | =====Hardware===== | ||
| + | Als eerste kun je controleren of de PCI-kaart geïnstalleerd is. Dat doe je met het volgende commando: | ||
| + | < | ||
| + | lspci | ||
| + | </ | ||
| + | Daar kun je iets zien van bijv. Fibre Channel ... | ||
| + | |||
| + | Met het volgende commando kun je zien welke devices er zijn. Dit kunnen bijvoorbeeld harddisks, maar ook de tapestreamers zijn: | ||
| + | < | ||
| + | lsscsi -g | ||
| + | </ | ||
| + | |||
| + | Je ziet hier in de laatste twee kolommen zowel een stx en sgx. Dit zijn twee interfaces naar dezelfde hardware. | ||
| + | - STx = tape-interfacae : data/ | ||
| + | - SGx = direct SCSI : Status/ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | Je kunt sgY niet simpelweg “omrekenen” naar stX op basis van nummers; die tellers lopen onafhankelijk. De koppeling maak je via hetzelfde SCSI-adres (zoals ik eerder liet zien met sysfs/ | ||
| + | |||
| =====Tapedrive====== | =====Tapedrive====== | ||
| Regel 18: | Regel 38: | ||
| Wanneer het lang geleden is dat een tape gereinigd is, kun je een cleaning-tape laden. Dan wordt de drive automatisch gereinigd. | Wanneer het lang geleden is dat een tape gereinigd is, kun je een cleaning-tape laden. Dan wordt de drive automatisch gereinigd. | ||
| + | |||
| + | Als je benieuwd bent hoe oud een tape is, dan kun je dat uitlezen met: | ||
| + | < | ||
| + | ./ | ||
| + | </ | ||
| ---- | ---- | ||
| Regel 39: | Regel 64: | ||
| < | < | ||
| ./ | ./ | ||
| + | </ | ||
| + | |||
| + | ====Doorlopen van de tape==== | ||
| + | ===Terugspoelen naar begin van de tape=== | ||
| + | < | ||
| + | mt -f /dev/nst0 rewind | ||
| + | </ | ||
| + | |||
| + | ===Tonen welke tar op die plek staat=== | ||
| + | < | ||
| + | tar -tvf /dev/nst0 | ||
| + | </ | ||
| + | |||
| + | ===Naar volgende en vorige set=== | ||
| + | < | ||
| + | mt -f /dev/nst0 fsf 1 | ||
| + | </ | ||
| + | < | ||
| + | mt -f /dev/nst0 bsfm 1 | ||
| + | </ | ||
| + | Daarna weer tonen. | ||
| + | |||
| + | ====Naar einde==== | ||
| + | Met dit commando kun je naar het einde van de tape schrijven: | ||
| + | < | ||
| + | mt -f /dev/nst0 eod | ||
| </ | </ | ||
| Regel 53: | Regel 104: | ||
| Anders worden het losse sets. | Anders worden het losse sets. | ||
| + | |||
| + | ====Tape afsluiten==== | ||
| + | Je kunt aan het einde van de tape een EOF schrijven: | ||
| + | < | ||
| + | sudo mt -f /dev/nst0 weof 1 | ||
| + | </ | ||
| + | |||
| + | ====Tape terugspoelen==== | ||
| + | Terugspoelen kan handmatig door het volgende commando | ||
| + | < | ||
| + | sudo mt -f /dev/nst0 rewind | ||
| + | </ | ||
| ====Data teruglezen==== | ====Data teruglezen==== | ||
| Regel 62: | Regel 125: | ||
| ---- | ---- | ||
| + | |||
| + | =====LTFS===== | ||
| + | Een tape als LTFS gebruiken kan. Dan moet je wel een aantal dingen doen. Hiervoor heb je de volgende commando' | ||
| + | |||
| + | Dit kun je controleren met: | ||
| + | < | ||
| + | which ltfs mkltfs ltfsck | ||
| + | </ | ||
| + | |||
| + | ====LTFS Tape formatteren==== | ||
| + | De tape wordt geformatteerd met het volgende commando: | ||
| + | < | ||
| + | sudo mkltfs -d /dev/sg3 | ||
| + | </ | ||
| + | Zet er -f achter als je zeker weet dat je alles weg wilt gooien. | ||
| + | |||
| + | Vervolgens kun je een volumenaam aangeven: | ||
| + | < | ||
| + | sudo mkltfs -d /dev/sg3 -n " | ||
| + | </ | ||
| + | |||
| + | ====Tape mounten==== | ||
| + | Vervolgens kun je de tape mounten met het volgende commando: | ||
| + | < | ||
| + | ltfs -o devname=/ | ||
| + | </ | ||
| + | |||
| + | ====Tape unmounten==== | ||
| + | Aan het einde moet je altijd de tape unmounten. Dat gaat met het volgende commando: | ||
| + | < | ||
| + | sudo umount /mnt/ltfs | ||
| + | </ | ||
| + | |||
| + | =====Handige kopieeropdrachten===== | ||
| + | Als je wilt zien hoe het kopiëren gaat dan kun je pv gebruiken. Eerst installeren: | ||
| + | < | ||
| + | sudo dnf install pv | ||
| + | </ | ||
| + | |||
| + | Daarna kun je het volgende commando gebruiken om iets te kopiëren: | ||
| + | < | ||
| + | pv -s " | ||
| + | </ | ||
| + | Daarbij wordt de tool gestart met de grootte waardoor je kunt zien hoe lang het gaat duren. | ||
| + | |||
| + | Dit commando heb ik in een copy.sh gezet waarmee ik niet alle informatie hoef te kennen. De broncode staat beneden. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | =====Tapeloader===== | ||
| + | Je kunt de tapeloader uitlezen met het volgende commando : | ||
| + | < | ||
| + | sudo mtx -f /dev/sch0 status | ||
| + | </ | ||
| + | |||
| =====Broncodes===== | =====Broncodes===== | ||
| - | ===list_size.sh=== | + | ====list_size.sh==== |
| < | < | ||
| sudo sg_logs -p 0x31 /dev/sg3 \ | sudo sg_logs -p 0x31 /dev/sg3 \ | ||
| Regel 77: | Regel 195: | ||
| </ | </ | ||
| - | ===list_all_sets.sh=== | + | ====list_all_sets.sh==== |
| < | < | ||
| # | # | ||
| Regel 103: | Regel 221: | ||
| </ | </ | ||
| - | ===testdrive.sh=== | + | ====testdrive.sh==== |
| < | < | ||
| # | # | ||
| Regel 264: | Regel 382: | ||
| main " | main " | ||
| + | </ | ||
| + | |||
| + | ====tapeinfo.sh==== | ||
| + | < | ||
| + | # | ||
| + | set -euo pipefail | ||
| + | |||
| + | # Toon hoe vol een LTO-tape is via SCSI Tape Capacity page (0x31). | ||
| + | # Vereist: mt, sg_logs, awk (gawk), grep | ||
| + | # | ||
| + | # Gebruik: | ||
| + | # sudo ./ | ||
| + | # sudo ./ | ||
| + | # | ||
| + | # Devices kun je overrulen via env: | ||
| + | # sudo TAPE_DEV=/ | ||
| + | |||
| + | TAPE_DEV=" | ||
| + | SCSI_DEV=" | ||
| + | DO_EOD=1 | ||
| + | |||
| + | if [[ " | ||
| + | DO_EOD=0 | ||
| + | fi | ||
| + | |||
| + | log() { echo -e "\n== $* =="; } | ||
| + | |||
| + | need_root() { | ||
| + | if [[ $EUID -ne 0 ]]; then | ||
| + | echo "Run dit script met sudo/ | ||
| + | exit 1 | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | check_cmds() { | ||
| + | for c in mt sg_logs awk grep; do | ||
| + | if ! command -v " | ||
| + | echo "Mist commando: $c" | ||
| + | exit 1 | ||
| + | fi | ||
| + | done | ||
| + | } | ||
| + | |||
| + | show_status() { | ||
| + | mt -f " | ||
| + | } | ||
| + | |||
| + | to_eod() { | ||
| + | if [[ $DO_EOD -eq 1 ]]; then | ||
| + | log " | ||
| + | mt -f " | ||
| + | else | ||
| + | log "EOD overslaan (--no-eod)" | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | read_capacity() { | ||
| + | sg_logs --page=0x31 " | ||
| + | } | ||
| + | |||
| + | main() { | ||
| + | need_root | ||
| + | check_cmds | ||
| + | |||
| + | log " | ||
| + | show_status | ||
| + | |||
| + | to_eod | ||
| + | |||
| + | log "Tape Capacity log page (0x31)" | ||
| + | page=" | ||
| + | |||
| + | rem=$(echo " | ||
| + | max=$(echo " | ||
| + | |||
| + | if [[ -z " | ||
| + | echo "Kon geen geldige capaciteit uitlezen." | ||
| + | echo "Zorg dat er een tape ONLINE is en probeer opnieuw." | ||
| + | exit 2 | ||
| + | fi | ||
| + | |||
| + | used=$(( max - rem )) | ||
| + | |||
| + | pct_used=$(awk -v u=" | ||
| + | pct_free=$(awk -v r=" | ||
| + | |||
| + | used_gib=$(awk -v u=" | ||
| + | rem_gib=$(awk -v r=" | ||
| + | max_gib=$(awk -v m=" | ||
| + | |||
| + | log "Tape capaciteitsrapport" | ||
| + | echo "Tape device : $TAPE_DEV" | ||
| + | echo "SCSI device : $SCSI_DEV" | ||
| + | echo | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | main " | ||
| + | </ | ||
| + | |||
| + | ====Copy.sh==== | ||
| + | < | ||
| + | # | ||
| + | set -euo pipefail | ||
| + | |||
| + | echo "=== PV copy tool (1 bestand) ===" | ||
| + | echo | ||
| + | |||
| + | # Vraag bronbestand | ||
| + | read -r -e -p " | ||
| + | |||
| + | if [[ -z " | ||
| + | echo "Geen bron opgegeven, exit." >&2 | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | if [[ ! -f " | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # Vraag doelfolder | ||
| + | read -r -e -p " | ||
| + | |||
| + | if [[ -z " | ||
| + | echo "Geen doelfolder opgegeven, exit." >&2 | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # Maak doelfolder indien nodig | ||
| + | mkdir -p " | ||
| + | |||
| + | # Vraag optioneel doelnaam | ||
| + | DEFAULT_NAME=" | ||
| + | read -r -e -p " | ||
| + | DST_NAME=" | ||
| + | |||
| + | DST=" | ||
| + | |||
| + | # Overschrijf-check | ||
| + | if [[ -e " | ||
| + | echo | ||
| + | echo " | ||
| + | read -r -p " | ||
| + | case " | ||
| + | y|Y|yes|YES) | ||
| + | echo "Oké, ik overschrijf het bestand." | ||
| + | ;; | ||
| + | *) | ||
| + | echo " | ||
| + | exit 0 | ||
| + | ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | echo | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo | ||
| + | |||
| + | # Kopie met pv + size voor nette ETA | ||
| + | pv -s " | ||
| + | |||
| + | echo | ||
| + | echo " | ||
| + | ls -lh " | ||
| + | </ | ||
| + | |||
| + | ====tape-age.sh==== | ||
| + | < | ||
| + | for id in 0x0400 0x0401 0x0406 0x0806 0x0803 0x0003 0x0222 0x0223 0x0220 0x0221; do | ||
| + | sudo sg_read_attr -f $id /dev/sg4 | ||
| + | done | ||
| </ | </ | ||
publiek/ltfs_en_tape.1763925017.txt.gz · Laatst gewijzigd: door admin
