nfs 基础1

来源:互联网 发布:java split空格 编辑:程序博客网 时间:2024/06/05 03:30

NFS:网络文件系统 一般都工作在内核空间

任何程序只要我们能自己执行命令的一定是工作在用户空间,因为内核空间的程序只有内核自我能够管理,,除非我

们使用接口与内核进行交互。(不准,自己就这么理解吧)

NFS:通过RPC来连接两个主机

PRC :一种编程技术,协议分为服务器端和客户端,他俩之间能够连接2个主机,从而使俩主机之间看上去就像一个主机一样,由此可完成两个主机间的进程通信(就好像本地两个进程间通信一样)

本地进程间通信或者进程和内核进行通信:通过IPC机制或系统调用,或函数调用。(IPC机制是指:信号量,共享内存,消息队列)

NFS:只能验证IP不能验证用户名  protmap 监控TCP/UDP的111端口

NFS:启动3个进程 NFSD(nfs的主服务),MOUNTED(接受nfs挂载请求的),quotad 限定客户端在本地可以使用对打磁盘空间的。

nfsd:2049/tcp 2049/udp

mounted与quotad的端口都是半随机的(之所以称为半随机是因为他不是自己打开的,是像rpc注册使用的,是rpc帮他选取的)

nfslock:锁  (每个用户向nfs写文件时都要像nfs申请加锁,每个文件的锁,是内核持有的锁)

nfs配置文件:/etc/exports     在配置文件最后添加客户端信息

/path/to/somedir/ ClIENT LIST

多个客户之间用空白字符分隔

每个客户端后面必须立即根一个小括号,里面定义了次客户的访问特性,如访问权限等

如:

172.16.0.0/16(ro,async,root_squash) 192.168.0.0/24(rw,sync)

root_squash:将root用户映射为来宾账号:默认启用此选项

no_root_sqush:不将root用户映射为来宾账号

all_squash:将所有账号映射为来宾账号

anonuid,anongid:指定映射的来宾账号的uid与gid

//--------------------------------------------------------------------------------

debian安装nfs

安装nfs服务器端

apt-get install nfs-kernel-server

rpcinfo -p localhost  查看rpc起了哪些服务与端口

vim /etc/exports

/shared          192.168.11.199(ro,async)      #在最后添加你要共享的文件路径,与共享给那些主机

root@debian:/home/lyw# /etc/init.d/nfs-kernel-server restart 重启nfs服务

root@debian:/home/lyw# showmount -e 192.168.11.99  查看服务器上给那些主机共享了什么目录

安装nfs客户端

apt-get install nfs-common

showmount -e 192.168.11.99 查看服务器的共享目录

mdkir -p /mnt/nfs 创建挂载文件夹

mount -t nfs 192.168.11.99:/shared /mnt/nfs 将共享目录挂载到文件夹下

服务器端向共享目录里cp些文件  在客户端查看  看是否能看到

showmount -a  服务器端ip或主机名  查看都有哪些客户端挂载在服务器上及客户端对应列表  
(根据nfs的版本不同 命令可能显示的结果不一样  如 nfs4系统就显示不出来 有哪些客户端挂载在服务器上)

开机自动挂载

vim /etc/fastab

192.168.11.99:/shared      /mnt/nfs    nfs    defaults,rnetdev    0 0

rnetdev (指定的网络设备 开机时如果挂载不上 就自动忽略掉 ,不加的话 如果没挂上,则机器就起不来了)

//-------------------------------------------------------------------------------------------------------------------------------------------


服务器端:

把所有来访用户都映射为uid为510的账号

服务器端:
把所有来访用户都映射为uid为510的账号
root@debian:/shared# useradd -u 510 nfstest
root@debian:/shared# touch ./nfstest
root@debian:/shared# chown nfstest.nfstest ./nfstest
root@debian:/shared# vim /etc/exports
/shared      192.168.11.199(rw,async,all_squash,anonuid=510,anongid=510)
root@debian:/shared# exportfs -ra

exportfs命令:

                     -a: 根-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出文件系统

                     -r:重新导出

                     -u:取消导出

                     -v:显示详细信息

客户端:

先卸载 root@zabbix:/home/lyw# umount /mnt/nfs
再挂载 root@zabbix:/home/lyw# mount -t nfs 192.168.11.99:/shared /mnt/nfs
root@zabbix:/mnt/nfs# ls -l

这样所有客户端的访问账号,都对应服务器端的uid为510的账号,服务器uid=510账号对共享目录里的文件有什么权限,客户端登陆的账号就对这些文件有什么权限











原创粉丝点击