NFS简介_nfs
来源:网络 作者:蓝澈天 更新 :2023-06-16 13:22 科技百科
下面是小弟写的一些介绍 NFS 的文章, 由於想参与网路管理的工作学长指派这一个主题给我报告, 由於本身对这方面并不太懂, 只是找一些书籍随便拼拼凑凑, 不知道有没有写到重点,或是一些要点没有提到,因此post出来希望熟悉NFS 的高手们能花一点时间看看我的文章然後mail给我,指出错误的地方,或者直接reply也可以, 谢谢 !
E-mail : u3430854@sparc20.ncu.edu.tw
===========================================================================
◎ What is NFS ?
NetworkFileSystem
NFS 是由SUN公司发展, 并於1984年推出, NFS是一个RPC service ,
它使我们能够达到档案的共享, 它的设计是为了在不同的系统间使用, 所
以它的通讯协定设计与主机及作业系统无关.当使用者想用远端档案时只
要用"mount"就可把remote档案系统挂接在自己的档案系统之下,使得远端
的档案使用上和local机器的档案没两样.
MachineAmachineB
/ /
bin etc usr bin etcusr
manman share local
假如我们在机器A上, 要把机器B上的 /usr/man 挂接到machine A 的
/usr/man只要下
mountmachine_name:/usr/man/usr/home
就可mount过来.而我们不只是可以mount目录,就是一个档也是可以的.在
挂接之後我们只能对档案做reading (or writing) 的动作,而不能在
remote machIE上把此档或目录move,delete掉 , 但须注意的是如我们
mount /usr 後 , 不能再mount /usr底下的目录, 否则会发生错误
□ Servers & Clients
NFS就是促使Servers上的档案能被其他的机器mount,而达到资源共享,
享用这些档案的机器就可称为Client,一个client可以从server上mount一
个档或是一个层次的目录(file hierarchies) . 然而事实上任何一台机器
都可以做NFS server or NFS client ,甚至同时为NFS server and NFS
client 也可以.
□ Server"s Exporting & Client"s Mounting
NFS server 所export 出来的档案或目录都记录在 /etc/exports 这
一个档中,当我们启动NFS server 时 在 /etc/rc.local 的这一个script
会自动的启动 exportfs 这一个程式 , 搜寻 /etc/exports 这一个档是否
存在, 并且赋予正确的权限给所有export出去的 file hierarchies .
但须注意的是,只有server所export出去的路径,NFS client才能够mount
, 同样的当启动client时 , 系统会自动去mount所有server export的路径,
而mount到的所有路径都会记录在 /etc/fstab 下 , 类似如下的fstab档
/dev/sd0a/4.2 rw 1 1
/dev/sd0h/tmp 4.2 rw 1 3
/dev/sd0g/usr 4.2 rw 1 2
/dev/fd0 /pcfspcfs rw,noauto 0 0
sparc20:/swap /swap nfs rw,intr,bg,soft 0 0
sparc17:/home /home nfs rw,intr,bg,soft 0 0
sparc17:/home3 /home3 nfs rw,intr,bg,soft 0 0
sparc14:/home4 /home4 nfs rw,intr,bg,soft 0 0
sparc20:/home2 /home2 nfs rw,intr,bg,soft 0 0
sparc20:/var/spool/mail /var/spool/mail nfs rw,intr,bg,soft 0 0
rs970:/home1 /home1 nfs rw,intr,bg,soft 0 0
★ Noted :
当client mount 到一个路径,绝对不是说copy server上的这一个路径
到local的机器上,我们可以用 cd 进入这一个mount到的路径,就如同是使用
local Directory一样
□ Setting Up a NFS Server
1. 定义机器为 NFS file server
2. 划分server"s disk ,定义哪一些partitions 是要提供出来作为
client 所共享的file system
3. 在 Client Form 上定义每一台client 的参数
4. 写出 /etc/exports(一般系统都有一个default exports)
5. 重新boot NFS server or 用指令 exportfs -a 输出所有的
directories 并且用 nfsd 8 & 启动 nfsd守护程式,常驻在背景
※ ps. 一些细节
1. 检查 /etc/exports 输出路径的权限,确定只有root能修改,
all user只能read
2. 用exportfs 去增加或删除directories
exportfs -o access=engineering,ro=dancer /usr
exportfs -u /usr
3. 假如你的机器没有NIS(YP server)的服务,当更改资料时记得修改
/etc/passwd
/etc/group
/etc/hosts
/etc/ethers
4. 为你自己的network 设置security
exportfs的语法
/usr/etc/exportfs [ -avu ] [ -o option ][ directory ]
-a : 把 /etc/exports 中所有路径export出去
-u : 把 export出去的路径卸下 , 如 exportfs -u /usr
-o option :如 exportfs -o ro /usr ,所有人对/usr 都为read only
option 还有 root = hostname , access = client
access = netgroup
For example :
exportfs -a把exports中的路径全部export出去
exportfs -o access=engineering:other/usr
/usr 这路径export後只有engineering and other 这两个
group 能够 read & write
exportfs -o access=oak,ro=dancer/usr
设定dancer 这台client 对 /usr 为read only ,且只有
oak这一个 group 能做read
/etc/exports档的□例
●syntax : directory-option[,option]
(设定两个group能rw)
/usr -access=engineering:accounting
/home-access=engineering:accounting
/var/spool/mail-access=engineering:accounting
/export/exec/sun3-access=engineering:accounting
/export/exec/sun3.sunos.4.1-access=engineering:accounting
/export/exec/kvm/sun3.sunos.4.1-access=engineering:accounting
/export/root/birch-access=birch,root=birch
/export/swap/birch-access=birch,root=birch
/export/root/oak-access=oak,root=oak
/export/swap/oak-access=oak,root=oak
/export/root/willow -access=willow,root=willow
/export/swap/willow -access=willow,root=willow
/export/root/pine -accsee=pine,root=pine
/export/swap/pine -accsee=pine,root=pine
(access=client , root=hostname 如此只有这一台client的superuser有权力rw)
□ Setting Up a NFS Client
1. 宣告机器为没有磁碟机或没有资料的Client,在使用SunInstall之前
2. 编辑好 /etc/fstab 这一个档,确定要mount的路径都在fstab中
3. 依照fstab所设的内容,在Client上设定好Mount points
(mount_points 就是用mkdir 设exports所输出的路径)
4. 确定我们所要mount的路径,都有出现在 /etc/exports 中
5. 可以启动mount去连结server上的directories ( mount -a )
/etc/fstab 档的□例
● syntaxfilesystemdirectorytypeoptionsfreqpass
oak:/export/root/boomer/nfsrw00
^^^
因为档案在server上,not on client
所以client的设定为0
oak:/export/exec/sun3 /usrnfsro00
oak:/export/exec/kvm/sun3 /usr/kvm nfs ro00
oak:/usr/share/usr/sharenfsro00
oak:/home/oak /home/oaknfsrw,bg00
§ mount 的语法
● syntax : mount -t type [-rv] -o [option] server:pathname /mount_point
MOUNT :
mount -a 把/etc/fstab 中所列的路径全部挂上
mount -o ro,soft,bg dancer:/usr/local /usr/local/dancer
把dancer server 的/usr/local mount 到 client的
/usr/local/dancer 并且是read only
-t type : 你所要mount的型别, 如 nfs or 4.2
-r: 所mount的路径定为read only
-v: mount过程的每一个动作,都有messages 传回到萤幕上
hard : 重复要求,直到server回应为止,但如server一直不回应
the server may be down !
soft : 当client的请求得不到回应,retry one time 後 传回
error message
bg : 当第一次请求不成功,第二次的mount将放到背景执行
fg : retries mount 都一直在提示符号下进行
intr: 当正在进行 NFS 请求时,允许用键盘中断
mount 成功时的message
NFS server hostname ok
mount fail
NFS server hostname not responding, still trying
. . .hostname server not reponding:RPC: Timed out
§ UNMOUNT :
umount mount_point
umount -a卸下所有已经mount上的路径
==========================================================================
◎ How NFS Work ?
当我们启动 NFS file server 时,/etc/rc.local 会自动启动exportfs这
一个程式,指定可以export的档案或目录,而我们所能mount的也只能是其所指定
的目录.
□NFS 架设在 XDR/RPC的协定之上
XDR : (eXternal Data Representation)外部资料表示法
XDR(eXternal Data Representation) 提供一种方法把资料从一种格式转换
成另一种标准资料格式表示法,确保在不同的电脑,作业系统及电脑语言中,所
有资料代表的意义都是相同的
RPC : (Remote Procedure Calls) 远端程序呼叫
RPC(Remote Procedure Calls) 远端程序呼叫, 请求远端电脑给予服务. 委
托器(client)就会透过网路传送RPC到远端电脑,请求服务.
(一般 local machine : client remote machine : server )
□ NFS 如何运用 RPC 传送资料
客户端process 主服务端process
┌————┐ ┌—————┐
│ 客户端 │ │ 主服务站 │
│routines│ │ routines │
└—┬——┘ └┬————┘
本地程序呼叫│《 │《
(1) ││ (10)(6) ││ (5)
》│ 》│
┌———┴┐ ┌————┴┐
│ 客户端 │ │ 主服务端 │
│stub│ │ stub │
└—┬——┘ └┬————┘
系统呼叫│《 │《
(2)││ (9) (7) ││ (4)
》│ 》│
┌———┴┐ (8) ┌————┴┐
│network │ <——————┤ network│
│routines├——————> │ routines │
└————┘ (3) └—————┘
本地系统核心 网路通讯远端系统核心
(1) client 送出讯息,请求服务
(2) client stub (客户株) 把client 送出的参数转换成XDR---标准资料
格式并用系统呼叫(system call) 把讯息送到网路上
(3) 讯息经过网路送达远端主机系统
(4) 远端主机将接受到的讯息传给server stub (服务站株)
(5) 把XDR形式的资料,转换成符合主机端的格式,取出client发出的服务
请求参数,送给server
(6) -- (10) 则是逆向而行 , server 送出服务给 client
□ rc.local 启动守护程式
一个NFS server 要 inet , portmap , nfs , mount 此四个守护程式,保
持在背景执行的状态下才能运作. (if running NIS must add ypbind daemon)
◆当启动 NFS file server 时,
the /etc/rc.local script 会做如下的动作
1. 执行exportfs , 读取server"s /etc/exports 告诉kernel
所要输出的file hierarchies 和 存取的权限
( exportfs -a )
2. 启动 rpc.mountd daemon 和 nfsd daemon (通常是 8 个)
( rpc.mountd-nnfsd 8 & echo-n "nfsd" )
◆当启动 NFS client 时
rc.local会做如下的动作
1. 启动 boid daemons 处理读写的程序
(biod 8 echo -n " biod" )
2. 执行 mount -vat nfs 读取client"s /etc/fstab 并且 mount 所
有属於 NFS-type 的files
□ NFS daemons (守护程式) 的功用
nfsd, biod, rpc.mountd, inetd, portmap都可在/usr/etc 下找到
nfsd : 依client 对档案系统的需求情况, 而启动
" file system request daemon "
应付client 的需求,而一般file system request daemon 的数目
是 " 8 ", 这也就是我们在rc.local 中写 " nfsd 8 & "的原因了
biod : 此指令是在NFS client上用的 , 用来启动
" asynchronous block I/O daemon"
用来建立buffer cache , 处理在client上的读写
mountd : mountd 是一台 RPC server ,启动rpc.mountd daemon後 它会读取
/etc/xtab 查看哪一台client正在mount 哪一个file system,并回
应client 所要mount 的路径
(mountd处理的过程可用 showmount 来看)
inetd : inetd (Internet services daemon) , 当系统启动时rc.local
会启动inetd 读取 inetd.conf 这一个 configuration-file ,
读取网路上所有 server"s address , 连结启动inetd.conf中所
有的server , 当client 请求服务时, inetd 就会为clinet 启动
相关的server daemon 负责任务, 如user 用 telnet 时 , 则
inetd 启动telnetd 迎合user telnet 的需求, 其馀像 ftp ,
finger , rlogin 之类的应用程式 , inetd 也都会启动相对应的
daemons, ftpd, fingerd, rloingd
portmap :portmap 是一台server , 主要功能 转换 TCP/IP 通讯协定的
port number 变成 RPC program number , 因为这样clinet才能
做RPC calls
一般 RPC server 是被inetd 所启动的, 所以portmap 必须
在inetd之前启动, 否则无法做 RPC call
□ NFS 的网路安全的
NFS 使server上的档案能被client所取用, 乍看之下好像server 上
的档案任何人都可取用没什麽保护性, 其实不是如此的. 一开始server
要 exportfs 之前在 /etc/exporrc 中就已经设定了档案的使用权限, 像
/usr/src -access=engineering:accounting
就是限定只有 rcgineering 和 accounting 这两台 client 才能 mount
/usr/src
/usr/src-access=oak,root=oak
这是说只有 oak 这台 cilent 能 mount这一个路径 且只有 oak client"s
superuser 才能行使 read & write 的权力
另外管理者为了维护 exported 和 mounted 的安全, 一定要建
立公共(public)和私人(secret)的 key(passWord), 然而这些安全性
问题是要建立在 NIS (network infomation system) 上的, 有一个
/etc/publickey档 ,里面记录了public and secret keys , 而这些key
是依照 machine_name 和 user_name ,以16 进位码表示出来的, 管理
者可在有NIS的机器上用
newkey -u username 给予user login 权力
newkey -h hostname 造出login 此机器时所需的password
在NFS刚安装时user 是 "nobody" 任何人都可以进入, 所以管理者
一定要做修改, 以保护资料的安全.
当使用者为 nobody 时 publickey 的内容
netname user"s public key: user"s secret key
nobody3d91f44568fbbefada5a7:7675cd9b8753b5db09dabf12
在管理者给予user权力之後, user 就可使用 chkey 修改自己的
secret key 创造自己的帐号路口,
willow% chkey
Generating new key for username
password:
Sending key change request to server ...
Done.
willow%
所设定的password 是使用者位於 NIS 中的加密键 , 当我们login 时
NIS 就会将此密码解开,(因为publickey中是以16进位码记录) , 存放到
keyserv 里加以保管, 再将加密键传给client , 当client 发出请求时 ,
此键会附在每个NFS 请求上一起送到 NFS server 上, 当加密键和server上
所保存的keyserv核对无错後, 请求就会被接受
□ When fail tomount server
1. 用 rpcinfo -p server_name 去查看此server是否存在
2. 用 rpcinfo -u server_name mount 查看mountd daemon 是否有
在server上执行
3. 假如server 都没问题,检查 server 和 client 之间的
Ethernet connetions
4. 在client 上 用 ps ax 看portmap and several biod daemons
running or not !
(rpcinfo : 用来对 RPC server 做 RPC 呼叫,回传远端程序呼叫
过程中的讯息)
一些mount 失败的错误讯息
1./etc/mtab :No such file or directory
mtab 这一个路径或是档案必须存在,在mount之前
2.mount : ... Block device required
远端的机器名称可能打错了
3.mount: ... not found in /etc/fstab
fstab 一定要存在,client 上 /etc下
4.... not in hosts database
/etc/hosts 没有这一个 hosts database , 或是
NIS 的daemon, ypbind 没有在执行
5.Must be root to use mount
一般都只有 root 才能mount ,所以mount之前先成
为superuser
6.Stale NFS file handle
当我们已经mount 上的file or directory,在server
上突然被remove or unexport ,就会出现此讯息
关于NFS简介的内容就介绍到这边了,文章版权归原作者所有,如有侵犯您的权利,请联系我们删除,想了解更多nfs的相关资讯,请关注收藏本站。
E-mail : u3430854@sparc20.ncu.edu.tw
===========================================================================
◎ What is NFS ?
NetworkFileSystem
NFS 是由SUN公司发展, 并於1984年推出, NFS是一个RPC service ,
它使我们能够达到档案的共享, 它的设计是为了在不同的系统间使用, 所
以它的通讯协定设计与主机及作业系统无关.当使用者想用远端档案时只
要用"mount"就可把remote档案系统挂接在自己的档案系统之下,使得远端
的档案使用上和local机器的档案没两样.
MachineAmachineB
/ /
bin etc usr bin etcusr
manman share local
假如我们在机器A上, 要把机器B上的 /usr/man 挂接到machine A 的
/usr/man只要下
mountmachine_name:/usr/man/usr/home
就可mount过来.而我们不只是可以mount目录,就是一个档也是可以的.在
挂接之後我们只能对档案做reading (or writing) 的动作,而不能在
remote machIE上把此档或目录move,delete掉 , 但须注意的是如我们
mount /usr 後 , 不能再mount /usr底下的目录, 否则会发生错误
□ Servers & Clients
NFS就是促使Servers上的档案能被其他的机器mount,而达到资源共享,
享用这些档案的机器就可称为Client,一个client可以从server上mount一
个档或是一个层次的目录(file hierarchies) . 然而事实上任何一台机器
都可以做NFS server or NFS client ,甚至同时为NFS server and NFS
client 也可以.
□ Server"s Exporting & Client"s Mounting
NFS server 所export 出来的档案或目录都记录在 /etc/exports 这
一个档中,当我们启动NFS server 时 在 /etc/rc.local 的这一个script
会自动的启动 exportfs 这一个程式 , 搜寻 /etc/exports 这一个档是否
存在, 并且赋予正确的权限给所有export出去的 file hierarchies .
但须注意的是,只有server所export出去的路径,NFS client才能够mount
, 同样的当启动client时 , 系统会自动去mount所有server export的路径,
而mount到的所有路径都会记录在 /etc/fstab 下 , 类似如下的fstab档
/dev/sd0a/4.2 rw 1 1
/dev/sd0h/tmp 4.2 rw 1 3
/dev/sd0g/usr 4.2 rw 1 2
/dev/fd0 /pcfspcfs rw,noauto 0 0
sparc20:/swap /swap nfs rw,intr,bg,soft 0 0
sparc17:/home /home nfs rw,intr,bg,soft 0 0
sparc17:/home3 /home3 nfs rw,intr,bg,soft 0 0
sparc14:/home4 /home4 nfs rw,intr,bg,soft 0 0
sparc20:/home2 /home2 nfs rw,intr,bg,soft 0 0
sparc20:/var/spool/mail /var/spool/mail nfs rw,intr,bg,soft 0 0
rs970:/home1 /home1 nfs rw,intr,bg,soft 0 0
★ Noted :
当client mount 到一个路径,绝对不是说copy server上的这一个路径
到local的机器上,我们可以用 cd 进入这一个mount到的路径,就如同是使用
local Directory一样
□ Setting Up a NFS Server
1. 定义机器为 NFS file server
2. 划分server"s disk ,定义哪一些partitions 是要提供出来作为
client 所共享的file system
3. 在 Client Form 上定义每一台client 的参数
4. 写出 /etc/exports(一般系统都有一个default exports)
5. 重新boot NFS server or 用指令 exportfs -a 输出所有的
directories 并且用 nfsd 8 & 启动 nfsd守护程式,常驻在背景
※ ps. 一些细节
1. 检查 /etc/exports 输出路径的权限,确定只有root能修改,
all user只能read
2. 用exportfs 去增加或删除directories
exportfs -o access=engineering,ro=dancer /usr
exportfs -u /usr
3. 假如你的机器没有NIS(YP server)的服务,当更改资料时记得修改
/etc/passwd
/etc/group
/etc/hosts
/etc/ethers
4. 为你自己的network 设置security
exportfs的语法
/usr/etc/exportfs [ -avu ] [ -o option ][ directory ]
-a : 把 /etc/exports 中所有路径export出去
-u : 把 export出去的路径卸下 , 如 exportfs -u /usr
-o option :如 exportfs -o ro /usr ,所有人对/usr 都为read only
option 还有 root = hostname , access = client
access = netgroup
For example :
exportfs -a把exports中的路径全部export出去
exportfs -o access=engineering:other/usr
/usr 这路径export後只有engineering and other 这两个
group 能够 read & write
exportfs -o access=oak,ro=dancer/usr
设定dancer 这台client 对 /usr 为read only ,且只有
oak这一个 group 能做read
/etc/exports档的□例
●syntax : directory-option[,option]
(设定两个group能rw)
/usr -access=engineering:accounting
/home-access=engineering:accounting
/var/spool/mail-access=engineering:accounting
/export/exec/sun3-access=engineering:accounting
/export/exec/sun3.sunos.4.1-access=engineering:accounting
/export/exec/kvm/sun3.sunos.4.1-access=engineering:accounting
/export/root/birch-access=birch,root=birch
/export/swap/birch-access=birch,root=birch
/export/root/oak-access=oak,root=oak
/export/swap/oak-access=oak,root=oak
/export/root/willow -access=willow,root=willow
/export/swap/willow -access=willow,root=willow
/export/root/pine -accsee=pine,root=pine
/export/swap/pine -accsee=pine,root=pine
(access=client , root=hostname 如此只有这一台client的superuser有权力rw)
□ Setting Up a NFS Client
1. 宣告机器为没有磁碟机或没有资料的Client,在使用SunInstall之前
2. 编辑好 /etc/fstab 这一个档,确定要mount的路径都在fstab中
3. 依照fstab所设的内容,在Client上设定好Mount points
(mount_points 就是用mkdir 设exports所输出的路径)
4. 确定我们所要mount的路径,都有出现在 /etc/exports 中
5. 可以启动mount去连结server上的directories ( mount -a )
/etc/fstab 档的□例
● syntaxfilesystemdirectorytypeoptionsfreqpass
oak:/export/root/boomer/nfsrw00
^^^
因为档案在server上,not on client
所以client的设定为0
oak:/export/exec/sun3 /usrnfsro00
oak:/export/exec/kvm/sun3 /usr/kvm nfs ro00
oak:/usr/share/usr/sharenfsro00
oak:/home/oak /home/oaknfsrw,bg00
§ mount 的语法
● syntax : mount -t type [-rv] -o [option] server:pathname /mount_point
MOUNT :
mount -a 把/etc/fstab 中所列的路径全部挂上
mount -o ro,soft,bg dancer:/usr/local /usr/local/dancer
把dancer server 的/usr/local mount 到 client的
/usr/local/dancer 并且是read only
-t type : 你所要mount的型别, 如 nfs or 4.2
-r: 所mount的路径定为read only
-v: mount过程的每一个动作,都有messages 传回到萤幕上
hard : 重复要求,直到server回应为止,但如server一直不回应
the server may be down !
soft : 当client的请求得不到回应,retry one time 後 传回
error message
bg : 当第一次请求不成功,第二次的mount将放到背景执行
fg : retries mount 都一直在提示符号下进行
intr: 当正在进行 NFS 请求时,允许用键盘中断
mount 成功时的message
NFS server hostname ok
mount fail
NFS server hostname not responding, still trying
. . .hostname server not reponding:RPC: Timed out
§ UNMOUNT :
umount mount_point
umount -a卸下所有已经mount上的路径
==========================================================================
◎ How NFS Work ?
当我们启动 NFS file server 时,/etc/rc.local 会自动启动exportfs这
一个程式,指定可以export的档案或目录,而我们所能mount的也只能是其所指定
的目录.
□NFS 架设在 XDR/RPC的协定之上
XDR : (eXternal Data Representation)外部资料表示法
XDR(eXternal Data Representation) 提供一种方法把资料从一种格式转换
成另一种标准资料格式表示法,确保在不同的电脑,作业系统及电脑语言中,所
有资料代表的意义都是相同的
RPC : (Remote Procedure Calls) 远端程序呼叫
RPC(Remote Procedure Calls) 远端程序呼叫, 请求远端电脑给予服务. 委
托器(client)就会透过网路传送RPC到远端电脑,请求服务.
(一般 local machine : client remote machine : server )
□ NFS 如何运用 RPC 传送资料
客户端process 主服务端process
┌————┐ ┌—————┐
│ 客户端 │ │ 主服务站 │
│routines│ │ routines │
└—┬——┘ └┬————┘
本地程序呼叫│《 │《
(1) ││ (10)(6) ││ (5)
》│ 》│
┌———┴┐ ┌————┴┐
│ 客户端 │ │ 主服务端 │
│stub│ │ stub │
└—┬——┘ └┬————┘
系统呼叫│《 │《
(2)││ (9) (7) ││ (4)
》│ 》│
┌———┴┐ (8) ┌————┴┐
│network │ <——————┤ network│
│routines├——————> │ routines │
└————┘ (3) └—————┘
本地系统核心 网路通讯远端系统核心
(1) client 送出讯息,请求服务
(2) client stub (客户株) 把client 送出的参数转换成XDR---标准资料
格式并用系统呼叫(system call) 把讯息送到网路上
(3) 讯息经过网路送达远端主机系统
(4) 远端主机将接受到的讯息传给server stub (服务站株)
(5) 把XDR形式的资料,转换成符合主机端的格式,取出client发出的服务
请求参数,送给server
(6) -- (10) 则是逆向而行 , server 送出服务给 client
□ rc.local 启动守护程式
一个NFS server 要 inet , portmap , nfs , mount 此四个守护程式,保
持在背景执行的状态下才能运作. (if running NIS must add ypbind daemon)
◆当启动 NFS file server 时,
the /etc/rc.local script 会做如下的动作
1. 执行exportfs , 读取server"s /etc/exports 告诉kernel
所要输出的file hierarchies 和 存取的权限
( exportfs -a )
2. 启动 rpc.mountd daemon 和 nfsd daemon (通常是 8 个)
( rpc.mountd-nnfsd 8 & echo-n "nfsd" )
◆当启动 NFS client 时
rc.local会做如下的动作
1. 启动 boid daemons 处理读写的程序
(biod 8 echo -n " biod" )
2. 执行 mount -vat nfs 读取client"s /etc/fstab 并且 mount 所
有属於 NFS-type 的files
□ NFS daemons (守护程式) 的功用
nfsd, biod, rpc.mountd, inetd, portmap都可在/usr/etc 下找到
nfsd : 依client 对档案系统的需求情况, 而启动
" file system request daemon "
应付client 的需求,而一般file system request daemon 的数目
是 " 8 ", 这也就是我们在rc.local 中写 " nfsd 8 & "的原因了
biod : 此指令是在NFS client上用的 , 用来启动
" asynchronous block I/O daemon"
用来建立buffer cache , 处理在client上的读写
mountd : mountd 是一台 RPC server ,启动rpc.mountd daemon後 它会读取
/etc/xtab 查看哪一台client正在mount 哪一个file system,并回
应client 所要mount 的路径
(mountd处理的过程可用 showmount 来看)
inetd : inetd (Internet services daemon) , 当系统启动时rc.local
会启动inetd 读取 inetd.conf 这一个 configuration-file ,
读取网路上所有 server"s address , 连结启动inetd.conf中所
有的server , 当client 请求服务时, inetd 就会为clinet 启动
相关的server daemon 负责任务, 如user 用 telnet 时 , 则
inetd 启动telnetd 迎合user telnet 的需求, 其馀像 ftp ,
finger , rlogin 之类的应用程式 , inetd 也都会启动相对应的
daemons, ftpd, fingerd, rloingd
portmap :portmap 是一台server , 主要功能 转换 TCP/IP 通讯协定的
port number 变成 RPC program number , 因为这样clinet才能
做RPC calls
一般 RPC server 是被inetd 所启动的, 所以portmap 必须
在inetd之前启动, 否则无法做 RPC call
□ NFS 的网路安全的
NFS 使server上的档案能被client所取用, 乍看之下好像server 上
的档案任何人都可取用没什麽保护性, 其实不是如此的. 一开始server
要 exportfs 之前在 /etc/exporrc 中就已经设定了档案的使用权限, 像
/usr/src -access=engineering:accounting
就是限定只有 rcgineering 和 accounting 这两台 client 才能 mount
/usr/src
/usr/src-access=oak,root=oak
这是说只有 oak 这台 cilent 能 mount这一个路径 且只有 oak client"s
superuser 才能行使 read & write 的权力
另外管理者为了维护 exported 和 mounted 的安全, 一定要建
立公共(public)和私人(secret)的 key(passWord), 然而这些安全性
问题是要建立在 NIS (network infomation system) 上的, 有一个
/etc/publickey档 ,里面记录了public and secret keys , 而这些key
是依照 machine_name 和 user_name ,以16 进位码表示出来的, 管理
者可在有NIS的机器上用
newkey -u username 给予user login 权力
newkey -h hostname 造出login 此机器时所需的password
在NFS刚安装时user 是 "nobody" 任何人都可以进入, 所以管理者
一定要做修改, 以保护资料的安全.
当使用者为 nobody 时 publickey 的内容
netname user"s public key: user"s secret key
nobody3d91f44568fbbefada5a7:7675cd9b8753b5db09dabf12
在管理者给予user权力之後, user 就可使用 chkey 修改自己的
secret key 创造自己的帐号路口,
willow% chkey
Generating new key for username
password:
Sending key change request to server ...
Done.
willow%
所设定的password 是使用者位於 NIS 中的加密键 , 当我们login 时
NIS 就会将此密码解开,(因为publickey中是以16进位码记录) , 存放到
keyserv 里加以保管, 再将加密键传给client , 当client 发出请求时 ,
此键会附在每个NFS 请求上一起送到 NFS server 上, 当加密键和server上
所保存的keyserv核对无错後, 请求就会被接受
□ When fail tomount server
1. 用 rpcinfo -p server_name 去查看此server是否存在
2. 用 rpcinfo -u server_name mount 查看mountd daemon 是否有
在server上执行
3. 假如server 都没问题,检查 server 和 client 之间的
Ethernet connetions
4. 在client 上 用 ps ax 看portmap and several biod daemons
running or not !
(rpcinfo : 用来对 RPC server 做 RPC 呼叫,回传远端程序呼叫
过程中的讯息)
一些mount 失败的错误讯息
1./etc/mtab :No such file or directory
mtab 这一个路径或是档案必须存在,在mount之前
2.mount : ... Block device required
远端的机器名称可能打错了
3.mount: ... not found in /etc/fstab
fstab 一定要存在,client 上 /etc下
4.... not in hosts database
/etc/hosts 没有这一个 hosts database , 或是
NIS 的daemon, ypbind 没有在执行
5.Must be root to use mount
一般都只有 root 才能mount ,所以mount之前先成
为superuser
6.Stale NFS file handle
当我们已经mount 上的file or directory,在server
上突然被remove or unexport ,就会出现此讯息
关于NFS简介的内容就介绍到这边了,文章版权归原作者所有,如有侵犯您的权利,请联系我们删除,想了解更多nfs的相关资讯,请关注收藏本站。
- END -
冲阵马能激发虎嗔吗(冲阵马不能触发虎嗔的结算,有回响的给关妹带回响,然后带两个主)
冲阵马能激发虎嗔吗,冲阵马不能触发虎嗔的结算,可带可不带,灼烈这种神装必穿,有回响的给关妹带回响,然后带两个主动。《...
铁门关到库尔勒开车需要多久(铁门关到库尔勒开车需要半个小时左右)
铁门关到库尔勒开车需要多久,铁门关到库尔勒开车需要半个小时左右。库尔勒铁门关,位于新疆维吾尔自治区巴音郭楞蒙古...
qq字符一共多少个(iPhone13,HUAWEI P50 系统)
品牌型号:iPhone 13,HUAWEI P50
pehm00什么型号手机(ColorOS 12)
品牌型号:OPPO A93
创新不辍下一句是厚积薄发
创新不辍下一句,创新不辍下一句是厚积薄发。创新不辍意思是创新不停止,形容继续不断,出自《论语微子》。厚积薄发的意...
水费网上怎么缴费(水费网上缴费的具体操作步骤)
进行水费网上缴费的具体操作步骤如下:1、打开微信,点击首页右下角的我,切换到微信个人页面。2、点击支付进入支付页面...
脸书相当于中国的什么脸书
脸书(facebook)是国外的社交网络,有点像是qq、微博的结合体。在facebook上可以把日常生活中的照片上传,并加以文字分...
手机酷狗音乐怎么转换mp3格式(手机酷狗音乐转换为mp3格式的操作)
将手机酷狗音乐转换为mp3格式的操作如下:1、打开电脑端的酷狗音乐,点击本地音乐按钮。2、选中歌曲,点击三横图标。3、...
excel中if三个条件怎么输入(Excel中输入if三个条件的方法)
品牌型号:Dell optiplex 7050
平方公里怎么算_一公里等于多少平方公里怎么算?(平方公里)
平方公里怎么算_一公里等于多少平方公里怎么算?(平方公里)1、平方公里一般指平方公里。2、平方公里是面积的公制单...