Network File System

>> eComStation index <<

OS/2 sectie

Linux sectie

OS/2 als NFS client

OS/2 als NFS server

NFS utilities

Gesignaleerde problemen

Internet: Enige basale zaken

Network File System (Linux)



NFS installeren

> Top <

NFS zit in de map \CID\SERVER\TCPAPPS van de bootable installatie CD.

Met het hierin aanwezige install.cmd wordt de Feature Installer Plugin van Netscape gelanceerd.

OS/2 als NFS client

> Top <

Voor het gebruik van OS/2 als Network File System client hoeft u maar weinig te doen. Net als onder samba zitten de belangrijke instellingen aan de server kant.

De CONFIG.SYS moet het stuurbestand voor het NFS bestandssysteem laden.

IFS=H:\MPTN\BIN\NFS300.IFS

U moet uw numerieke gebruikers en groeps ID op de NFS server weten. Het mount utility vraagt ernaar. Ze staan in /etc/passwd op de server, maar u kunt ze opvragen met de opdracht "id [naam]" tijdens een telnetsessie:

sjoerd@zolder:~ > id 
uid=500(sjoerd) gid=100(users) groups=100(users) 

Voor details zie: Linux gebruiken in de Linux sectie.

Het bestand /etc/exports op de Linux PC moet de te exporteren mappen weergeven.

/ visser(ro) 
/samba visser(rw) 

In dit geval wordt de rootmap read-only aan de host "visser" vrijgegeven. De map /samba is read-write voor "visser".

Ook de Linux server moet de portmap daemon draaien. Voor de OS/2 client is dit aanbevolen, maar niet noodzakelijk. Voor details zie: Network File System in de Linux sectie.

Onder OS/2 kunt u de NFS exportlijst opvragen met het showexp opdracht:

[H:\]showexp zolder 

IBM NFS for OS/2 
SHOWEXP Version 3.99 
Release: m16 

Export list for zolder: 
/samba visser.thuis 
/usr/doc visser.thuis 
/home/sjoerd visser.thuis 

De mount opdracht kent aardig wat opties (mount | more):

IBM NFS for OS/2 
MOUNT Version 3.99 
Release: m16 

NFS client MOUNT Version 3.99 command usage information: 

Function: This command allows one to attach an NFS server 
disk to the local file system. 

Syntax: mount <options> <drive> <hostname>:<mountpoint> 

<drive> Local drive. 
<hostname> Host to attach. 
<mountpoint> Directory to attach and any server 
specific parameters. 

Options: 
(There should be no spaces between the option name and the option value.) 
-u[UID] Set the UID. 
-g[GID] Set the GID. 
-lLOGINID Set server Login id (username). 
-pPASSWORD Set Password. 
-v[PASSWORD] Set VM-style password. 

-ac[S|M|L] Attribute Cache size. [M] 
-acto[TIMEOUT] Attribute Cache Time Out, in seconds [15]. 
-dc[S|M|L] Data Cache size. [M] 
-dcto[TIMEOUT] Data Cache Time Out, in seconds [15]. 

-c Set CR/LF translation option. 
-crlf Set CR/LF translation option. 
-cs Case Sensitive file name comparisons. 
-cl Check Lower case file names only. 
-rc Respect Case when creating files. 

-b[VALUE] Set transfer Buffer size, in bytes. [8192] 
-s Use Network Lock Manager. 
-rt[VALUE] Set RPC ReTry count. [5] 
-t[VALUE] Set RPC Timeout, in seconds. [1] 
-r[VALUE] Set number of Read biods, 0 - 8. [4] 
-w[VALUE] Set number of Write biods, 0 - 8. [0] 

-a Set Archive option. 

-um[VALUE] Set umask, 000 - 777 (octal). [0600] 
-fcbits[VALUE] Set file create permission bits, 
000 - 777 (octal). [0700] 
-dcbits[VALUE] Set directory create permission bits, 
000 - 777 (octal). [0700] 

-f Set deFault attributes for migrated MVS data sets. 

-tr Turn on TRacing. 
-? Display this information. 

Examples: mount z: catch22:/home/catch22 
mount -b512 k slipserv:d:\karl 
mount -u312 -g1 k aix03:/home/wayne 
mount -v v vm1:myid.191,ro,u=myid 
mount -tr -c -lbruce -pmypasswd m: nfsserv:/usrs/bruce 

Het mounten van de map /samba op station V gaat dan als volgt:

[H:\]mount V: zolder:samba 
IBM NFS for OS/2 
MOUNT Version 3.99 
Release: m16 

MOUNT: zolder:samba 
UID: 500 
GID: 100 

NFS Drive V: was attached successfully. 

Of in één keer:

[H:\]mount -u500 -g100 v: zolder:samba 
IBM NFS for OS/2 
MOUNT Version 3.99 
Release: m16 

MOUNT: zolder:samba 
NFS Drive v: was attached successfully. 

Op deze mappen gelden de UNIX bestandspermissies. Sjoerd (met UID=500 en GID=100) is eigenaar van de map samba, maar niet van de root map. Die is van root (met UID=0 en GID=0)

[H:\]mount w: zolder:/ 
IBM NFS for OS/2 
MOUNT Version 3.99 
Release: m16 

MOUNT: zolder:/ 
UID: 0 
GID: 0 

NFSU1003: Drive w: could not be attached to the file system. 
NFSU1018: Access denied by server. 

Use the following command to show the export list of the server: 
showexp zolder 
Note: The VM NFS server does not support this command. 

Om veiligheidsredenen kan het NFS niet door root worden gemount, ook niet met de \lroot en \pwachtwoord optie (als root inloggen onder telnet lukt ook niet, hiervoor is de su opdracht bedacht).

NFS bleek bij een kopieer actie naar JFS even snel als de harde schijf van de Linux PC (rond de 600 k/s, geen DMA).

Hebt u er genoeg van, dan verwijdert u het netwerkstation weer.

[H:\]umount v: 
IBM NFS for OS/2 
UMOUNT Version 3.99 
Release: m16 

Unmounting v: zolder:samba ... 
The drive was successfully unmounted. 

De opdracht (u)mount zonder opties toont alle opties.

NFS 3

De NFS client heeft problemen met moderne NFS versie 3 servers .

[F:\]mount -u1000 -g100 x: zolder:tvixhd1
IBM NFS voor OS/2
MOUNT-versie 3.99
Release:  m23

MOUNT: zolder:tvixhd1

NFSU1003:  Station x: kan niet worden aangesloten op het bestandssysteem.
NFSU1028:  Fout bij maken NLM-client.

Gebruik de volgende opdracht om de exportlijst van de server af te beelden:
showexp zolder
Opmerking: Deze opdracht wordt niet ondersteund door de VM NFS-server.

[F:\]showexp zolder

IBM NFS voor OS/2
SHOWEXP-versie 3.99
Release:  m23

NFSU3002: Er is een fout opgetreden tijdens een poging een transporthandle voor
een RPC-client op afstand te maken: RPC_PMAP_FAILURE - RPC_CANT_SEND











OS/2 als NFS server

> Top <
IBM TCP/IP for OS/2
Network File System (NFS) Server
Version: 1.06 (32 Bit)
Date : Dec 15 1997


Reading the exports file...
Registering MOUNTD with Portmapper.
Registering NFSD with Portmapper.
NFS: File ownership set to uid 500, gid 100.
NFSD: Initialization complete. Server running.

De beta had blijkbaar toch een oudje... Mocht u een andere (maart 1997) versie hebben: ftp://ps.boulder.ibm.com/ps/products/tcpip/fixes/nfslatest/server/nfsd.exe

In eCS 1.2. zit wel een recente versie:

OS/2 Command Interpreter version 4.5

[F:\]detach portmap
The Process Identification Number is 1213.

[F:\]nfsd
NFSD0310:
Gelicentieerd materiaal - Eigendom van IBM
NFSD0311: IBM TCP/IP
NFSD0312: (c) Copyright IBM Corp. 1992, 1997. Alle rechten voorbehouden.

     **************************************************
           IBM OS/2 NFS Server
          Network File System (NFS) Server

                Versie: 3.05
                Release: m17
     **************************************************

NFSD0010: NFS-server is klaar voor opdrachten.

Met NFS kan OS/2 als bestanden server optreden voor UNIX systemen. Vooral Linux komt voor de thuisgebruiker in beeld.

Het op UDP sockets (blocks) gebaseerde NFS is in principe sneller dat het door Windows en OS/2 gebruikte "streaming" TCP/IP via NetBIOS (SMB) protocol. Dat bleek inderdaad het geval. Ik moet de finesses nog testen, maar de OS/2 PC was in ieder geval via NFS door Linux te benaderen, zoals de Midnight Commander in de secure shell terminal op de eCS desktop laat zien.

Instellingen op de OS/2 computer

De exporterende computer moet de poortmapper draaien. Dat kan zowel als onzichtbare (detach portmap) of als een zichtbare (start portmap) CMD sessie. Alleen de laatste verschijnt in het Taakoverzicht. In het TCP/IP Configuratie Notebook kan portmap.exe op beide manieren als Autostart Service gestart worden.

U wilt de OS/2 computer laten optreden als NFS server. De OS/2 computer exporteert dan haar bestanden naar andere computers op het TCP/IP netwerk. NFS werkt niet met wachtwoorden. Hoe voorkomt u dat iedereen op uw systeem kan komen?

Deze gegevens worden vastgelegd in het \mptn\etc\exports bestand.

i:\ -ro zolder 192.168.0.3 # Data op HPFS 
i:\ -rw zolder 192.168.0.3 # Data op HPFS 
d:\ -ro zolder laptop # D-schijf 
d:\ -rw zolder # D-schijf 
e:\ -ro zolder # E-schijf 
e:\ -rw zolder # E-schijf 
j:\ -ro zolder # JFS
j:\ -rw zolder # JFS

Als u niets doet blijft het exports bestand leeg en heeft niemand via NFS toegang.

Open het TCP/IP configuratie notebook.

Ga naar het achterste tabblad met de naam NFS.

nfsdconfig.gif
U moet allereerst een map opgeven die geëxporteerd moet worden. Dat gaat met de Add knop onderin het TCP/IP notebook op de Tab NFS (hierboven niet in beeld).

exportdir.gifDaarna komt het NFS Directory Entry popup menu (rechts) in beeld. Hier geeft u de map die geëxporteerd moet worden op. Hier gaat het om de rootdirectory van station I:, maar i:\home\sjoerd mag ook en heeft vaak de voorkeur. Bedenk steeds dat u niet alleen de map maar ook de subdirectories exporteert, dus ook eventuele wachtwoordbestanden in die mappen. Voor andere mappen klikt u opnieuw op Add.

U mag een commentaar invullen, maar laat de Alias ingang leeg. Het invoeren van een alias leidt bij mij steevast tot een foutmelding bij het starten van de NFS daemon:

Reading the exports file...
Invalid access option [-alias] specified for mount point i:\.
ReadOnly (-ro) and HOST security will be assumed.

Daarna is de map niet meer read write te benaderen. Ik weet niet of die bug ook voor de laatste nfsd.exe geldt. Voorlopig kunt u maar beter geen alias invoeren.

Het bestand etc/exports zou er zo uit kunnen zien (geef j:\vrij voor zolder en suse of beter hun IP adressen).

j:\ -rw zolder.thuis suse.thuis

Vervolgens moet u per map de computers opgeven die u toegang wilt verschaffen. Dat gaat via de Add knop van de Hosts list voor de export (hier i:\).

Zoals u in de afbeelding ziet hebt u vier mogelijkheden:

  1. Make directory public

  2. Allow all hosts read only

  3. Specify hosts

  4. Allow all hosts read/write

Specify hosts lijkt me hier de veiligste weg. Zoals u in de afbeelding ziet kunt de computers (in TCP/IP termen "hosts") die de exports benaderen mogen via hun IP adres (192.168.0.3) of via hun hostnaam (zolder) opgeven.

Let er op dat u als u een export wisselend alleen lezen (rw) en lees en schrijf (rw) benaderen (mounten) wilt, u dit ook expliciet aangeven moet. U moet dan twee ingangen in het \mptn\etc\exports bestand hebben: -rw alleen volstaat niet.

i:\ -ro zolder 192.168.0.3 # Data op HPFS 
i:\ -rw zolder 192.168.0.3 # Data op HPFS 

U exporteert naar een multi-user UNIX systeem. Om de bestandspermissies tijdens het exporteren op de OS/2 PC gelijk te houden met die van Linux zijn de volgende CONFIG.SYS ingangen nodig:

REM #### OS/2 und NFS ######
IFS=H:\MPTN\bin\nfs300.ifs
SET UNIX.UID=000500
SET UNIX.GID=000100
SET NFS.PERMISSION.BITS=755
SET NFS.PERMISSION.DBITS=755 

Uw UNIX Gebruikers ID (UID) en groeps ID (GID) vraagt u in een telnet sessie op met het id commando. De waarde 755 volgt uit de umask opdracht (777-022). Voor details zie: Octale getallen gebruiken met chmod en umask in de Linux sectie.

Last login: Sat Apr 21 22:24:07 2001 from visser.thuis
Have a lot of fun...
You have new mail.
sjoerd@zolder:~ > id
uid=500(sjoerd) gid=100(users) groups=100(users)
sjoerd@zolder:~ > umask
022
sjoerd@zolder:~ >

Dit levert de volgende output van de nfs daemon op:

IBM TCP/IP for OS/2
Network File System (NFS) Server
Version: 1.06 (32 Bit)
Date : Dec 15 1997

Reading the exports file...
Registering MOUNTD with Portmapper.
Registering NFSD with Portmapper.
NFS: File ownership set to uid 500, gid 100.
NFSD: Initialization complete. Server running.

Standaard is root (met uid 0 en gid 0) de eigenaar van de bestanden. Maar daar valt als gebruiker nooit mee te werken.

Met Ctr-C kunt u de NFS serveerdiensten beëindigen. U kunt de CONFIG.SYS instellingen weglaten (of overrulen) met een NFSD script.

@echo off
detach portmap
rem NFSD501.CMD
rem NFS toegang voor Bouke (uid 501)
@SET UNIX.UID=000501
@SET UNIX.GID=000100
@SET NFS.PERMISSION.BITS=755
@SET NFS.PERMISSION.DBITS=755
cd %etc%
start h:\mptn\bin\nfsd.exe
exit

Daarnaast moet u in het TCP/IP configuratie notebook onder de Tab Security / NFS server / Configure aangeven gebruiker sjoerd met Uid 500 en Gid 100 ook daadwerkelijk NFS toegang krijgt.

Instellingen op de Linux computer

De linux computer treedt op als client van OS/2 NFS server visser.

/etc/fstab

# visser:data /mnt/data_nfs nfs bg,rw,noauto,user,exec 0 0
# visser:i:\ /mnt/data_nfs nfs bg,rw,user,noauto,exec 0 0
visser:i:\ /mnt/data_nfs nfs defaults,user,noauto 0 0
# visser:i:\ /home/sjoerd/data nfs defaults,user,noauto 0

Het kan van de NFS client en server functies afhangen welke fstab ingang nodig is. Onder eCS 1.2 ging het gewoon met:

visser:d:    /mnt/data   nfs  noauto,user 0 0

Ik had mezelf (chown) eigenaar van het mountpunt /mnt/data gemaakt.

De Linux kant:

sjoerd@zolder:/ > cd /mnt/data
sjoerd@zolder:/mnt/data > ls
sjoerd@zolder:/mnt/data > cd
sjoerd@zolder:~ > mount /mnt/data
sjoerd@zolder:~ > cd /mnt/data
sjoerd@zolder:/mnt/data > ls -l
total 1
drwxrwxrwx 1 sjoerd users 512 Sep 5 2000 ACROBAT3
drwxrwxrwx 1 sjoerd users 512 Sep 11 2000 Actueel
drwxrwxrwx 1 sjoerd users 512 Sep 8 2000 BACKMAST
-rw-rwSrw- 1 sjoerd users 1102 Dec 21 22:25 CONFIG.SYS
drwxrwxrwx 1 sjoerd users 512 Apr 4 13:10 Data
drwxrwxrwx 1 sjoerd users 512 Feb 14 22:44 FP9Nl
drwxrwxrwx 1 sjoerd users 512 Feb 14 22:45 FTp
drwxrwxrwx 1 sjoerd users 512 Oct 8 2000 Office51
drwxrwxrwx 1 sjoerd users 512 Dec 21 22:51 SPOOL
drwxrwxrwx 1 sjoerd users 512 Apr 5 12:05 Sslurp
drwxrwxrwx 1 sjoerd users 512 Oct 7 2000 Temp
-rw-rw-rw- 1 sjoerd users 68 Apr 14 13:24 chkdsk.log
drwxrwxrwx 1 sjoerd users 512 Dec 25 00:06 cmd
drwxrwxrwx 1 sjoerd users 512 Oct 7 2000 home
drwxrwxrwx 1 sjoerd users 512 Apr 15 00:28 homepage
drwxrwxrwx 1 sjoerd users 512 Mar 3 00:25 tmp
drwxrwxrwx 1 sjoerd users 512 Sep 10 2000 var
sjoerd@zolder:/mnt/data >

Er is in de nsfd versie van TCP/IP 4.3 echter een groot probleem. We komen niet in de subdirecties!!

Version: 1.06 (32 Bit)
Date : Mar 3 1997

Zie ook: Unable to see files listed on OS/2®

Het probleem is opgelost als u de laatste versie (Dec 15 1997) gebruikt:

Version: 1.06 (32 Bit)
Date : Dec 15 1997

Op de Nederlandse eCS 1.2 (IBM OS/2 NFS Server versie: 3.05, Release: m17) was het probleem afwezig.

ftp://ps.boulder.ibm.com/ps/products/tcpip/fixes/nfslatest/server/nfsd.exe

Daarna blijkt NFS zeer buikbaar en loeiend snel (sneller dan de gemiddelde doorvoersnelheid van mijn harde schijf (;-).

NFS utilities

> Top <

Anders dan u zou verwachten zitten de de NFS utilities niet in \TCPIP\BIN, maar in \MPTN\BIN. De meeste beginnen met nfs, maar er bestaan ook utilities als showlock. De configuratiebestanden zitten standaard in \MPTN\etc (d.m.v. de SET %ETC% = variabele in de CONFIG.SYS). .



Gesignaleerde NFS problemen

> Top <

Onder WPS zag ik een trap error bij het openen van bepaalde mappen op V onder NFS. Op dat moment was dezelfde map op Linux zowel onder samba als NFS gemount. De oorzaak kan het volgende zijn gelegen:

SMB servers (ook die van OS/2) gebruiken een eigen buffermechanisme ("oplocking") om de effectiviteit van de bestanden serveerdiensten te verhogen. De gegevens die de SMB server aanbiedt zullen door de buffer niet stroken met die van NFS. De gelijktijdige schrijftoegang voor dezelfde mappen onder samba en NFS leidt dan tot bestands I/O fouten. Daarnaast zullen bestanden door de "opportunistic locking" langer open staan dan ze daadwerkelijk door de applicaties worden gebruikt. Dat kan verwarring scheppen voor de WPS en andere applicaties en zeker voor NFS dat geen "oplocking" toepast.

Een andere eigenaardigheid was het feit ik dit bestand niet onder Apache op kon vragen, terwijl ik het via NFS bewerkte. Ik vermoed dat het ook om een geval van file-locking ging.

Forbidden 
You don't have permission to access /hp/ecs-os2/tcpip43.html on this server. 
Apache/1.3.9 Server at zolder.thuis Port 80 

Onder samba gebeurt dit nooit.

Onder Samba komen soms WP ROOT. SF en WP SHARE. SF bestanden op het EXT2FS terecht (gevolg van kopieeracties?).



> Top <