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.
Tjeneste | Port |
FTP | 20,21 |
NFS | 2049 |
QFilesvr.400 | 449, 8473 |
Object Connect IBM Network Extender | |
hprip-ctl | 12000 udp |
hprip-network | 12001 udp |
hprip-high | 12002 udp |
hprip-low | 12004 udp |
hprip-med | 12003 udp |