IBM i overføring av filer

Når du har behov for å overføre filer mellom IBM i servere, er det en rekke valgmuligheter. I tillegg til fysisk tape eller andre eksterne lagringsenheter, så ligger dette mange funksjoner i IBM i operativsystemet for å overføre filer. I denne artikkelen skal vi se på noen av disse.

Av Trond Bjerkvold, Basefarm

Dette er noen av alternativene for overføring av filer:

  • File Transfer Protocol (FTP)
  • Network File System (NFS)
  • Object Connect (OC)
  • QFilesvr.400
  • IBM i Access Client Solution

Programeksempel

Eksempelet jeg bruker er et bibliotek som inneholder CL-program for å installere IBM i V7R3M0 lisensnøkler. Dette er aktuelt for Basefarm etter hvert som vi oppretter nye IBM i virtuelle servere på IBM Power-servere.

IBM i virtuell server (LPAR) XXTESTA skal sende til XXTESTB. Disse IBM i virtuelle serverne befinner seg på to fysiske IBM Power-servere i hvert sitt fysisk adskilte datasenter. Det er derfor to sett lisensnøkler, en for hver fysisk server. I biblioteket IBMi73KEY er det disse filene:

KILDEFIL inneholder da kildekoden til CL programmene.
Eksempel på CL program med kommando for å legge inn lisensnøkkel

For å kjøre programmet som legger inn lisensnøkler på XXTESTA:

CALL PGM(IBMI73KEY/XXTESTAKEY)

Vi ønsker å kopiere biblioteket IBMI73KEY biblioteket fra server XXTESTA til XXTESTB, og her vil du lese om ulike måter å få til dette.

File Transfer Protocol (FTP)

Product: 5770-TC1

Option: Base

Lisensnøkkel: Nei

FTP brukes av mange systemer, som Unix, Linux, Windows, og kan betraktes som en standard for å overføre filer mellom ulike servere og klienter.

Eksempel:

Server XXTESTA skal overføre et bibliotek IBMi73KEY til server XXTESTB.

For FTP må vi lagre biblioteket IBMI73KEY i en savefile, sende savefilen, og restore fra savefilen

På XXTESTA
SAVLIB LIB(IBMI73KEY) DEV(*SAVF) SAVF(QGPL/IBMI73KEYS)

FTP XXTESTB
(login med IBM I brukerid/password)
binary
quote site namefmt 1
namefmt 1
put IBMi73KEYS.file
250 Now using naming format “1”.
257 “/QSYS.LIB/QGPL.LIB” is current library.
150 Sending file to member IBMI73KEYS in file IBMI73KEYS in library QGPL
226 File transfer completed successfully.

På XXTESTB
RSTLIB SAVLIB(IBMI73KEY) DEV(*SAVF) SAVF(QGPL/IBMI73KEYS)

Kommentar:

Relativt greit å bruke FTP, men kan være hvis det er mange filer som skal overføres kan det være en ide å lage et CL program som utfører alle FTP funksjonene.

Se: Creating a CL program to start FTP

Network File System (NFS)

Product: 5770-SS1

Dette er en funksjon der man eksporterer et filområde og gjøre det tilgjengelig for andre servere.

Men for vårt formål, å kopiere et bibliotek fra en server til en annen, så kan vi ikke bruke savefile:

“…savefiles cannot be accessed through the Network File System (NFS)…”

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/ifs/rzaaxcopydatastreamsave.htm

Så istedenfor lager vi en image-katalog på server XXTESTA, saver IBMi73KEY biblioteket til image katalogen, gjør denne tilgjengelig for XXTESTB via NSF export/mount, og restorer biblioteket på XXTESTB.

På XXTESTA:
Start NFS server: STRNFSSVR SERVER(*ALL)
Lag image catalog: CRTIMGCLG IMGCLG(XXTESTAIMG) DIR(‘/imgcat/xxtestaimg’) ADDVRTVOL(1)

Lag virtuell DVD enhet: CRTDEVOPT DEVD(OPTVRT01) RSRCNAME(*VRT) LCLINTNETA(*N)

Aktivere XXTESTAIMG på OPTVRT01: LODIMGCLG IMGCLG(XXTESTAImg) DEV(OPTVRT01)

Lagre biblioteket: SAVLIB LIB(IBMI73KEY) DEV(OPTVRT01)

Endre rettigheter på image catalog IFS området:

Eksporter filområdet

For å starte NFS server fra IBM Navigator for i:

Network – Servers – TCP/IP Servers – NFS Server – høyreklikk og velg start fra nedtrekksmenyen..

Alternativt kommando for å starte : Start NFS Server: STRNFSSVR

I nedtrekksmenyen for NFS Server velger du Export for å dele ut et område:

Her velger vi å eksportere området /imgcat/xxtestaimg

Bildet under viser hvordan Export av et filområde ser ut i IBM Navigator for i.

På XXTESTB
Start NFS server: STRNFSSVR SERVER(*ALL)
MD /nfsmount

For å mounte opp XXTESTA export området /imgcat/xxtestaimg under XXTESTB mappen /xxtestanfs
XXTESTB -Network – Servers – TCP/IP Servers – NFS Server – høyreklikk og velg start fra nedtrekksmenyen – Mount
Bildet under viser hvordan Mount av et filområde ser ut i IBM i Navigator for i

Lag image catalog:
CRTIMGCLG IMGCLG(XXTESTAIMG) DIR(‘/imgcat/xxtestaimg’)

Lag virtuell DVD enhet:
CRTDEVOPT DEVD(OPTVRT01) RSRCNAME(VRT) LCLINTNETA(N)

Kopier image fra XXTESTA:
ADDIMGCLGE IMGCLG(XXTESTAIMG) FROMFILE(‘/nfsmount/GEN01’)

Aktiver image katalogen:
LODIMGCLG IMGCLG(XXTESTAIMG) DEV(OPTVRT01)

Restore IBMi73KEY biblioteket:
RSTLIB SAVLIB(IBMI73KEY) DEV(OPTVRT01)

Kommentar:

Å bruke NSF for å overføre filer fra en IBM i server til en annen fungerer, men det er mange trinn i prosessen.

Object Connect (OC)

Product: 5770-SS1
Option: 22
Lisensnøkkel: Nei

Object Connect er en unik IBM funksjon, og er bygget på SNA-protokoll. For å få dette til å fungere over et IP nettverk må funksjonene derfor «pakkes» inn i IP-nettverket. Dette gjøres med IBM Network Extender.
Detaljer for å sette opp Network Extender finner du her: Configuring EE (Enterprise Extender) between Two IBM System i Systems

I korte trekk har vi laget en APPC kontroller med HPRIP, men først CHGNETA ALWHPRTWR(YES) på både XXTESTA og XXTESTB.
Lag en APPC kontroller på hver side, deretter VARY ON av kontrolerene.
På XXTESTB

CRTCTLAPPC CTLD(XXTESTAEE) LINKTYPE(HPRIP) RMTINTNETA(XXTESTA) RMTCPNAME(XXTESTA) På XXTESTA CRTCTLAPPC CTLD(XXTESTBEE) LINKTYPE(HPRIP) RMTINTNETA(XXTESTB) RMTCPNAME(XXTESTB)
STRMOD RMTLOCNAME(XXTESTB)

(Det er ikke nødvendig å kjøre STRMOD på XXTESTB hvis det allerede er kjørt på XXTESTA)
For å sende et bibliotek fra XXTESTA til XXTESTB:
SAVRSTLIB LIB(IBMI73KEY) RMTLOCNAME(XXTESTB)

Kommentar:

Object Connect kommandoer gjør alt i en kommando: sende og gjenopprette et objekt eller et bibliotek. Dette gjør at overføringen enkelt og greit.

QFilesvr.400

Product: 5770-SS1
Lisens: Nei
Dette ligger som en del av operativsystemet og brukes mellom IBM i systemer for å få tilgang til IFS området til en annen IBM i server. Vi kan ikke flytte IBM i bibliotek direkte fra en server til en annen, men må gå veien via en save file.

På XXTESTA
Save bibliotek IBMi73KEY til savefile IBMi73KEYS i QGPL biblioteket.

På XXTESTB
Lag en tilgang i IFS til IFS på XXTESTA
MD DIR(‘/QFileSvr.400/XXTESTA’)

D kan bruke WRKLNK for å komme til savefilen:
/QFileSvr.400/XXTESTA/QSYS.LIB/QGPL.LIB/IBMI73KEYS.FILE

Bruk CPY kommandoen for å kopiere fra XXTESTA til XXTESTB
CPY OBJ(‘/QFileSvr.400/XXTESTA/QSYS.LIB/QGPL.LIB/IBMI73KEYS.FILE’) TODIR(‘/QSYS.LIB/QGPL.LIB’)
Deretter RSTLIB for å gjenopprette IBMi73KEY biblioteket fra savefile IBMi73KEYS i QGPL.

Kommentar:

Alternativ til FTP og NFS, relativt enkelt å sette opp.

IBM i Access Client Solution – Integrated File System – Send file

Product: 5770-SS1
Lisens: Nei
Informasjon om hvordan du laster ned installasjonsfilen for IBM i Access – Client Solutions IBMiAccess_v1r1.zip

Versjonen jeg bruker er IBM i Access Client Solutions (64-bit) Version: 1.1.8.1 Build id: 8452.
For å overføre filer, inkludert bibliotek, brukes Integrated File System. Dette krever ikke 5770-XW1 lisens. Derimot kreves det lisens for 5770-XW1 funksjonene 5250 Display and Print Emulator og Data Transfer.
Integrated File System gir tilgang til filsystemet (IFS) på IBM i, der du kan

  • Opprette nye mapper, kataloger, bibliotek
  • Slette objekter
  • Navne om objekter
  • Kopiere objekter mellom klient og IBM i
  • Kopiere IFS objekter mellom IBM i systemer
  • Sende objekter til en eller flere IBM i systemer.
  • Se egenskaper for objekter

Når objekter sendes mellom IBM i-systemer bruker QFileSvr.400 filsystemet.
Så når du skal sende et bibliotek går du inn i QSYS.LIB på systemet du skal sende fra og velger biblioteket – her IBMi73KEY.LIB.

Når du sender bibliotek IBMi73KEY skjer i grove trekk dette automatisk:
Det opprettes nytt bibliotek med en savefile på XXTESTA.
Det opprettes nytt bibliotek med en savefile på XXTESTB.
IBMi73KEY biblioteket saves på XXTESTA.
Savefilen kopieres til en fil i /tmp området på XXTESTA.
Filen sendes til /tmp på XXTESTB
Filen kopieres til savefilen i biblioteket som ble opprettet under punkt B på XXTESTB.
Bibliotek IBMi73KEY restores på XXTESTB fra savefilen.
På XXTESTA og XXTESTB slettes temporære filer, det vil si savefile, bibliotek og filen i /tmp området.

Kommentar:

Send file funksjonen i IBM i Access Client Solution er et godt alternativ når du ikke har tilgang til å sende filer direkte mellom IBM i systemer. Filer kan også hentes ned til og lastes opp fra filområder som IBM i Access klienten har tilgang til, på egen disk eller et fildelingsområde.

TCPIP-porter

Når du bruker de forskjellige funksjonene for å overføre filer mellom IBM i systemer, kan det være nyttig å vite hvilke TCP/UDP-porter som brukes.

Her er noen linker: TCP/IP Ports Required for IBM i Access and Related Functions

IBM i kommandoen WRKSRVTBLE viser tjenester og tilhørende TCP/UDP port.

TjenestePort
FTP20,21
NFS2049
QFilesvr.400449, 8473
Object Connect

IBM Network Extender

hprip-ctl 12000 udp
hprip-network 12001 udp
hprip-high12002 udp
hprip-low 12004 udp
hprip-med12003 udp