- 浏览: 5173084 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
NFS 是由SUN公司发展, 并於1984年推出, NFS是一个RPC service ,它使我们能够达到档案的共享, 它的设计是为了在不同的系统间使用, 所以它的通讯协定设计与主机及作业系统无关.当使用者想用远端档案时只要用"mount"就可把remote档案系统挂接在自己的档案系统之下,使得远端的档案使用上和local机器的档案没两样.
machine A machine B
/ /
bin etc usr bin etc usr
man man share local
假如我们在机器A上, 要把机器B上的 /usr/man 挂接到machine A 的/usr/man只要下
mount machine_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 /pcfs pcfs 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 档的□例
● syntax filesystem directory type options freq pass
oak:/export/root/boomer / nfs rw 0 0
^^^
因为档案在server上,not on client
所以client的设定为0
oak:/export/exec/sun3 /usr nfs ro 0 0
oak:/export/exec/kvm/sun3 /usr/kvm nfs ro 0 0
oak:/usr/share /usr/share nfs ro 0 0
oak:/home/oak /home/oak nfs rw,bg 0 0
§ 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
<hard> mount fail
NFS server hostname not responding, still trying
<soft> . . .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 -n nfsd 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
nobody 3d91f44568fbbefada5a7:7675cd9b8753b5db09dabf12
在管理者给予user权力之后, user 就可使用 chkey 修改自己的secret key 创造自己的帐号路口,
willow% chkey
Generating new key for username
password : <enter 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 to mount 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 ,就会出现此讯息
fyx2008 回复于:2004-03-20 17:53:55
写得很详尽嘛。。。
success_king 回复于:2004-03-20 19:44:22
谢谢谢谢
pengtao_hlp 回复于:2004-03-21 11:44:23
风兄。好贴。好文笔。。。不错。。多多向您学习!!
charley 回复于:2004-03-23 01:44:07
写得好。
提个建议,在实际应用的直接使用mount连接NFS只适用于测试护着临时性的连接,正常使用应该采用autofs, 建议加入。
另外仁兄使用的命令是Solaris的命令么?
openview 回复于:2004-03-24 10:01:52
[quote:581f9509d2="charley"]写得好。
提个建议,在实际应用的直接使用mount连接NFS只适用于测试护着临时性的连接,正常使用应该采用autofs, 建议加入。
另外仁兄使用的命令是Solaris的命令么?[/quote:581f9509d2]
好像是linux上的东西。东西不错。
icebreak 回复于:2004-03-26 10:02:47
很好,感觉好像是linux上的,不是solaris上面的。
ward_bao 回复于:2004-03-26 10:08:21
那如果server是sun的,client是windows2000 or winxp的怎么办呢?也是用nfs吗?
..............
另外,NFS是极品飞车的意思(游戏),哈哈
转自:http://zhidao.baidu.com/question/2588916
machine A machine B
/ /
bin etc usr bin etc usr
man man share local
假如我们在机器A上, 要把机器B上的 /usr/man 挂接到machine A 的/usr/man只要下
mount machine_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 /pcfs pcfs 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 档的□例
● syntax filesystem directory type options freq pass
oak:/export/root/boomer / nfs rw 0 0
^^^
因为档案在server上,not on client
所以client的设定为0
oak:/export/exec/sun3 /usr nfs ro 0 0
oak:/export/exec/kvm/sun3 /usr/kvm nfs ro 0 0
oak:/usr/share /usr/share nfs ro 0 0
oak:/home/oak /home/oak nfs rw,bg 0 0
§ 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
<hard> mount fail
NFS server hostname not responding, still trying
<soft> . . .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 -n nfsd 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
nobody 3d91f44568fbbefada5a7:7675cd9b8753b5db09dabf12
在管理者给予user权力之后, user 就可使用 chkey 修改自己的secret key 创造自己的帐号路口,
willow% chkey
Generating new key for username
password : <enter 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 to mount 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 ,就会出现此讯息
fyx2008 回复于:2004-03-20 17:53:55
写得很详尽嘛。。。
success_king 回复于:2004-03-20 19:44:22
谢谢谢谢
pengtao_hlp 回复于:2004-03-21 11:44:23
风兄。好贴。好文笔。。。不错。。多多向您学习!!
charley 回复于:2004-03-23 01:44:07
写得好。
提个建议,在实际应用的直接使用mount连接NFS只适用于测试护着临时性的连接,正常使用应该采用autofs, 建议加入。
另外仁兄使用的命令是Solaris的命令么?
openview 回复于:2004-03-24 10:01:52
[quote:581f9509d2="charley"]写得好。
提个建议,在实际应用的直接使用mount连接NFS只适用于测试护着临时性的连接,正常使用应该采用autofs, 建议加入。
另外仁兄使用的命令是Solaris的命令么?[/quote:581f9509d2]
好像是linux上的东西。东西不错。
icebreak 回复于:2004-03-26 10:02:47
很好,感觉好像是linux上的,不是solaris上面的。
ward_bao 回复于:2004-03-26 10:08:21
那如果server是sun的,client是windows2000 or winxp的怎么办呢?也是用nfs吗?
..............
另外,NFS是极品飞车的意思(游戏),哈哈
转自:http://zhidao.baidu.com/question/2588916
发表评论
-
CIFS (Common Internet File System)术语
2011-12-03 20:40 1981CIFS (Common Internet File Sy ... -
DAS、NAS、SAN、iSCSI 存储方案概述
2011-12-03 20:37 2474目前服务器所使用的专 ... -
SAN和NAS的区别
2011-12-03 20:29 38965SAN : STORAGE AREA NETWORK 存储 ... -
光纤网卡和HBA卡的区别
2011-12-03 17:17 2647在讨论这个问题的时候,需要先说清楚一个问题:我们知道,在早 ... -
解析LUN Mapping和ZONE的存储网络应用
2011-11-20 21:35 1848SAN是满足迅速增长 ... -
LUN的概念
2011-11-20 21:31 1675LUN的全称是Logical Un ... -
SAN和NAS两种产品概念对比介绍
2011-11-17 22:59 4293存储技术比对:SAN和NAS ... -
服务器与磁盘阵列柜有哪些连接方式
2011-11-17 22:57 4375转自:http://www.uhn.cn/server/blo ... -
RAID0、RAID1及RAID5
2011-10-28 13:21 9678RAID 0主要是为了提升数据传输速度而生的,它的原理 ... -
为VMware增加虚拟硬盘
2011-09-25 23:43 1993转自:http://hi.baidu.com/shenshui ...
相关推荐
本资料可能是一份关于Linux入门的文档,涵盖了多个关键概念和术语,旨在帮助初学者理解Linux的基础知识。 第一章介绍了Linux系统的基本概念,包括实验室环境的设置,可能涉及到在虚拟机或实际硬件上安装和配置Linux...
掌握Linux指令是至关重要的,因为大多数嵌入式系统的操作都是通过指令执行的,而由于目标机的性能限制,往往没有图形界面,所以熟悉TFTP、Telnet和NFS等网络服务的使用对于远程管理和文件传输至关重要。 学习嵌入式...
在深入学习过程中,会涉及更多高级主题,如Linux服务的管理和配置,如TFTP、Telnet和NFS服务。这些服务对于远程文件传输、设备启动和网络共享至关重要。此外,对于嵌入式软件开发者,熟悉C语言是必要的,因为它是...
网络是现代社会不可或缺的一部分,它连接了...这些术语构成了网络基础架构的核心,理解和掌握它们对于网络学习和实践至关重要。无论是配置网络设备、解决网络问题,还是开发网络应用程序,这些知识都将起到关键作用。
文档约定部分则提供了实验教程中使用的术语和符号的规范,确保学习者能够正确理解教程内容。 具体到实验内容上,教程包含了Linux内核基础实验、应用程序基础实验、程序设计实验、启动代码编程实验以及嵌入式系统...
本书还包括了几个有用的附录,涵盖了缩写词和术语表、常用命令、知名端口号列表、参考文献等内容。这些资料对于深入理解和应用TCP/IP协议簇非常有帮助。 通过以上章节的详细介绍,《14天自学TCP/IP》第二版提供了一...
3. **安装方法**:学习不同的安装方法,如交互式安装、无人值守安装(使用响应文件)和网络安装(通过NFS、HTTP或FTP服务器)。无人值守安装尤其适用于大规模部署,可以显著提高效率。 4. **分区和文件系统**:理解...
4. 文件系统:讲解了VFS(虚拟文件系统)层,以及具体的文件系统实现,如EXT2、EXT3、EXT4等,以及网络文件系统如NFS和CIFS的工作原理。 5. I/O子系统:探讨了块设备驱动、字符设备驱动、网络驱动以及中断处理等...
1.3 Linux术语 5 1.4 Kernel 5 1.5 版本 5 1.6 安装RedHat Enterprise Linux ES 6 1.7 开关机操作 7 1.8 桌面环境简介 7 1.9 安装故障排除 7 1.10 安装逻辑卷 8 第二章 Linux设备管理和引导流程 9 2.1 Linux文本编辑...
"rfc4949.txt"可能涉及到网络安全方面,如"Internet Security Glossary, Version 2",提供了一套统一的安全术语和定义,有助于理解和执行安全策略。"rfc7826.txt"可能与互联网多媒体服务有关,比如新的编码格式或者...
在本课程建设实践参考中,提到的NFS、3D-CAD、CAD、EDG、MEDG、SolidWorks等术语,都是与三维设计和工程制图紧密相关的关键词。NFS(Network File System)是一种网络文件系统,它虽然与计算机三维设计直接关联不大...
在 Solaris 系统管理培训中,我们首先要理解操作系统的基础概念。Solaris 是一款基于 UNIX 的操作系统,其核心组成部分包括内核...通过深入学习和实践,可以更好地管理和维护 Solaris 系统,确保其高效、稳定地运行。
NFS(National Science Foundation)是一个美国的政府机构,它资助科学研究并推动国家信息基础设施的发展。NII(National Information Infrastructure)则是指在美国提出的国家范围内的信息高速公路,旨在通过高速网络...
AIX V6.1操作系统是IBM公司开发的UNIX操作系统版本之...由于文档中部分内容存在扫描识别错误,具体的命令和术语可能有所偏差,但整体知识点的框架是清晰的。学习这些知识点,对于掌握AIX系统管理和维护是非常有帮助的。
NetApp存储设备安装配置手册是一份详尽的文档资料,旨在指导用户正确地安装、配置和管理NetApp的存储解决方案...通过深入学习和实践,用户可以有效地管理和利用NetApp存储解决方案,为企业的数据存储需求提供强大支持。
同时,还会介绍网络文件系统(NFS)和网络透明文件访问(CIFS)的概念。 设备驱动是连接硬件和内核的重要桥梁。不同的设备需要不同的驱动程序来驱动,书中会介绍字符设备、块设备驱动的编写方法,以及中断处理和DMA...
读者可以在这里了解到IP地址、子网掩码、端口号等基本术语,同时,还会深入理解TCP的三次握手和四次挥手过程,以及TCP如何保证数据的可靠传输,包括序列号、确认应答、重传机制、滑动窗口等关键机制。 卷二《实现》...
在给定的文件内容中,我们看到了一系列有关嵌入式操作系统以及其相关技术的术语和概念。接下来将对文件中的关键知识点进行详细说明: 1. 文件系统和存储技术 - JFFS2 (Journalling Flash File System version 2):...
文档约定部分解释了手册中使用的特定术语和格式,帮助读者更好地理解内容。脚本样例展示了如何在Ubuntu系统中执行基本的命令行操作,而基本设置部分涵盖了初始系统配置,如用户账户、网络连接和时区设置。此外,章节...