NFS安装配置

Ubuntu环境

1、安装nfs-server

$ apt-get install nfs-kernel-server

 

2、建立nfs专用文件夹

$ mkdir /data/share

 

3、配置nfs

$ vi /etc/exports

/data/share/ *(async,insecure,no_root_squash,no_subtree_check,rw)

 

/data/share:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致

*:所有可以ping同该主机的用户

192.168.1.*:  指定网段,在该网段中的用户可以挂载

192.168.1.12: 只有该用户能挂载

rw:挂接此目录的客户端对该共享目录具有读写权限

async:资料同步写入内存和硬盘

no_root_squash:root用户具有对根目录的完全管理访问权限。

no_subtree_check:不检查父目录的权限。

 

4、重启rpcbind 服务

nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind 设定。

$ /etc/init.d/rpcbind restart

 

5、重启nfs服务

$ /etc/init.d/nfs-kernel-server restart 

 

6、挂载指令

$ mount -t nfs 192.168.0.128:/data/share /nfsdir

 

 

 

通过docker centos

#启动centos Docker

$ docker run -itd --name docker-centos centos:latest

#进入docker后执行以下命令,报错

$ systemctl status firewalld.service

Failed to get D-Bus connection: Operation not permitted

#解决方法:

$ docker run --privileged -itd --name docker-centos centos:latest /usr/sbin/init

 

$ showmount -e 172.17.0.2

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

解决方法:

被访问的NFS服务器上的防火墙没有添加规则,向iptables里面添加查看的所有端口即可(也可以关闭防火墙,不过这样是比较不安全的)

查看端口命令:

$ rpcinfo -p localhost

 

$ mount -t nfs 172.17.0.2:/data /data -o proto=tcp -o nolock

mount.nfs: Operation not permitted

解决方法:

docker容器启动的时候需要加上--privileged参数,否则启动nfs服务时候会提示权限不足报错。主要是这个过程中涉及到了mount操作, 使用该参数后使得container内的root拥有真正的root权限。

 

$ showmount -e localhost 

clnt_create: RPC: Remote system error - Address family not supported by protocol

解决办法:

启动rpcbind和nfs

$ service rpcbind restart

$ service nfs restart

 

取消挂载

$ umount -l /data/share

猜你喜欢

转载自tzhennan.iteye.com/blog/2418432