linux共享文件丢失,linux基础应用(NFS文件共享)

5f57462c553599d10955b868f167cfeb.png

NFS简介NFS(Network File System)网络文件系统,由NFS服务器端和NFS客户端构成,通过网络(一般是局域网)使不同主机系统,可以彼此共享文件。NFS客户端mount挂载NFS服务器端共享的文件目录到NFS客户端本地系统的某一个挂载点下,NFS客户端本地访问挂载点的共享目录时,像是访问本地的磁盘分区或目录一样,实际上访问的是挂载的NFS服务器目录。

RPC远程过程调用

NFS服务器端和客户端之间的数据传输通过相对应网络端口,由于NFS支持的功能比较多,不同的功能会使用不同的程序启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口不固定,那么造成NFS服务器和NFS客户端数据传输的通信障碍(NFS客户端必须知道NFS服务器端的数据传输端口才能通信进行数据交互)则需要RPC(Remote procedure Call)远程过程调用来统一管理NFS端口,并且统一对外的端口是111,RPC会记录NFS端口的信息,这样就可以通过RPC实现NFS服务器和NFS客户端的端口通信。(RPC指定每个NFS功能所对应的端口,并且通知客户端,使客户端可连接到相应的端口上)

NFS工作流程

先启动NFS服务器端的RPC服务并开启111端口,然后启动NFS服务器端,NFS会随机使用一些端口,然后NFS就向PRC注册这些端口,RPC记录这些端口等待客户端RPC的请求,启动客户端RPC,向服务器端PRC请求服务器端NFS端口,服务器端的RPC将之前记录的NFS端口信息告知客户端,客户端通过获取到的NFS端口来建立和服务器端的NFS连接进行数据传输。

注:在启动服务器端NFS前启动RPC服务,否则服务器端NFS无法向RPC注册;如果PRC服务重启,之前注册好的NFS端口数据会全部丢失。

搭建NFS共享存储服务1、查看系统环境准备相应的安装包

部署NFS服务需要NFS和RPC软件包

linux-szge:~ # uname -a

Linux linux-szge 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux

linux-szge:~ # cat /etc/issue

Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel \r (\l).

注:内核和操作系统不同,使用的安装包的版本也有差异,故需要根据操作系统和内核准备相应的软件包

2、检查是否安装NFS和RPC

linux-szge:~ # rpm -qa | egrep "nfs|rpcbind"

3、安装NFS和RPC

linux-szge:~ # zypper install rpcbind*

linux-szge:~ # zypper install nfs*

linux-szge:~ # rpm -qa | egrep "nfs|rpcbind"

nfsidmap-0.25-0.11.29

nfs-doc-1.2.3-18.29.1

rpcbind-0.1.6+git20080930-6.18.1

nfs-client-1.2.3-18.31.1

nfs-kernel-server-1.2.3-18.29.1

或者到下载相应的源码包或rpm包安装

注:服务器端和客户端本地都需要安装NFS和RPC

4、启动RPC

linux-szge:~ # service rpcbind start 启动RPC

linux-szge:~ # netstat -anpp | grep rpcbind 查看监听的端口是111

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2641/rpcbind

linux-szge:~ # rpcinfo -p localhost 未启动NFS前查看NFS服务向RPC注册的端口信息

program vers proto port service

100000 4 tcp 111 portmapper

100000 3 tcp 111 portmapper

...

详情请看rpcinfo --help详解

linux-szge:~ # chkconfig rpcinfo on rpcinfo设置为开机自启动

linux-szge:~ #chkconfig --list rpcinfo

rpcinfo 0:off 1:off 2:off 3:on 4:off 5:on 6:off

详情请看chkconfig --help详解

5、配置及启动NFS

配置NFS服务器端

linux-szge: ~ # mkdir /data/lml;chmod 666 /data/lml/ 创建共享目录/data/lml并设置权限

linux-szge:~ # vim /etc/exports 编辑NFS主要配置文件exports(默认是空的)

/data/lml 172.30.3.73(rw,sync,no_root_squash,no_all_squash) 172.30.3.73可读写共享目录/data/lml

注:在172.30.3.73和(之间不能有空格,否则nfs写入时会报错read-only file system

NFS配置exports文件格式

ead26eecb74bad2f594aa926fde583bb.png

注:客户端地址可以写IP,网段,主机名

NFS常用配置参数

2f6f00f04e5990e3e0a2425ab60f57e6.png

启动NFS服务器端

linux-szge:~ # service nfsserver start 启动服务器端NFS

注:如果已启动服务器端NFS,后修改了/etc/exports配置,需要重新加载NFS或者重启RPC和NFS

linux-szge:~ # service nfsserver reload 重新加载服务器NFS

linux-szge:~ # exportfs -rv 重新加载服务器NFS(r表示重启,v表示显示export的选项)

linux-szge:~ # service rpcbind restart 先重启RPC

linux-szge:~ # service nfsserver restart 后重启NFS

linux-szge:~ # rpcinfo -p localhost 启动NFS后查看RPC注册的端口信息

program vers proto port service

100000 4 tcp 111 portmapper

...

100003 4 tcp 2049 nfs

100227 2 tcp 2049 nfs_acl

...

linux-szge:~ # chkconfig nfs on NFS设置为开机自启动

linux-szge:~ #chkconfig --list nfs

nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off

服务器端测试是否可联机

linux-szge:~ # showmount -e 测试是否可联机

Export list for linux-szge:

/data/lml 172.30.3.73

详情请看showmount --help详解

配置NFS客户端

linux: ~ # mkdir /getshare 创建共享目录

linux:~ # service rpcbind restart先重启RPC

linux:~ # showmount -e 172.30.1.199 扫描服务器端NFS目录(172.30.1.199是服务器端NFS的IP)

mount挂载NFS服务器端的共享目录/data/lml到客户端本地的/getshare下

linux:~ # mount -t nfs 172.30.1.199:/data/lml /getshare

挂载格式

mount -t nfs 主机名或IP:/共享目录 /挂载点

linux:~ # df 查看挂载情况

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 40G 28G 11G 73% /

...

172.30.1.199:/data/lml 26G 8K 26G 1% /getshare

注:访问本地的/getshare相当于访问172.30.1.199的共享目录/data/lml

6、测试NFS能否正常使用

172.30.3.73客户端

挂载点创建文件test

linux:~ #cd /getshare ;echo "llalala" > test;ls -l

-rw-r--r-- 1 root root 8 May 7 15:28 test

172.30.1.199服务器端

共享目录查看是否有挂载点创建的test文件,有表示NFS可正常使用

linux-szge:~ # cd /data/lml;ls -l

-rw-r--r-- 1 root root 8 May 7 15:28 test

举报/反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值