nfs

来源:互联网 发布:ps有没有mac版 编辑:程序博客网 时间:2024/06/09 17:15

• NFS ( Network File System ) 是由 Linux 、 UNIX 及其他类似操作系统使用的互联网标准协议 , 可作为它们的本地网络文件系统。它是一种活动扩展之下的开放标准 , 可支持本地 Linux 权限和文件系统功能

• Red Hat Enterprise Linux 7 在默认情况下支持 NFSv4 ( 该协议的版本 4 ), 并在该版本不可用的情况下自动回退到NFSv3 和NFSv2 。对于在客户端上运行的所有版本的 NFS , 均应启用两种服务 : rpcbind 和 nfslock 。 NFSv4 使用 TCP 协议与服务器进行通信 , 而较早版本的 NFS 则可能使用 TCP 或 UDP

• 有两种方法用来确定由服务器提供的 NFS 导出 , 或叫做文件共享。如果服务器支持 NFSv3 或 NFSv2 , 您可以使用 showmount -e server 命令来获取导出项列表。如果服务器支持 NFSv4 , 则可以将 / 导出项挂载到一个空目录并浏览所有导出文件系统的内容

访问 NFS 导出的命令 
• 1. 识别 
– # showmount -e server101 
• 2. 确定挂载点 
– # mkdir /mnt 
• 3. 挂载 
– # mount 
server101:/var/ftp/pub /redhat

怎么访问NFS共享的东西: 
1.安装nfs-utils

yum install nfs-utils -y

2.识别

showmount -e 172.25.254.101

showmount命令用于查询NFS服务器的相关信息

showmount –help

Usage: showmount [-adehv] 
[–all] [–directories] [–exports] 
[–no-headers] [–help] [–version] [host] 
-a或–all 
以 host:dir 这样的格式来显示客户主机名和挂载点目录。 
-d或–directories 
仅显示被客户挂载的目录名。 
-e或–exports 
显示NFS服务器的输出清单。 
-h或–help 
显示帮助信息。 
-v或–version 
显示版本信。 
–no-headers 
禁止输出描述头部信息。

显示指定NFS服务器连接NFS客户端的信息 
# showmount 192.168.1.1 #此ip为nfs服务器的

显示输出目录列表 
# showmount -e

显示指定NFS服务器输出目录列表(也称为共享目录列表) 
# showmount -e 172.25.254.101

显示被挂载的共享目录 
# showmount -d

显示客户端信息和共享目录 
# showmount -a

显示指定NFS服务器的客户端信息和共享目录

showmount -a 172.25.254.101

3.挂载

mount 172.25.254.101:/nfsshare/nfs1 /mnt

开机挂载/etc/fstab文件 
172.25.254.101:/nfsshare/nfs1 /mnt nfs defaults 0 0 
mount -a(自动挂载 /etc/fstab 里面的东西) 
不用的时候:卸载:umount /mnt,删除/etc/fstab中增加的东西

NFS服务器的配置:

redhat7.0 
NFS服务器:172.25.254.101 
NFS客户端:172.25.254.102 
关闭火墙:

1.服务器端 
1)安装NFS服务组件

yum install nfs-utils -y

2) 启动NFS服务:

systemctl start nfs-server

systemctl enable nfs-server

3) 创建共享目录并设置权限:

showmount -e localhost 查看当前共享的 NFS 信息

mkdir /nfsshare 创建共享目录

chmod 777 /nfsshare

3) 编辑/etc/exports。例如:

vim /etc/export

/nfsshare/student 172.25.0.0/24(ro,sync) 
/nfsshare/redhat 172.25.0.0/24(rw,sync) 127.0.0.1(rw,sync)

/nfsshare *(rw,root_squash,no_all_squash,sync)

这里的意思是说,需要共享/nfsshare这个目录,对所有客户端(*)都是可读写的(rw),并且是异步方式来访问。 因为不设置其他参数, 客户端创建文件或目录时默认的属主和组就是nfsnobody,即使客户端使用的账号是root。

exportfs -rv 导出共享

showmount -e localhost

4) 从客户端查看并挂载NFS pseudo-root共享: 
[root@server102 ~]# showmount -e server101 
[root@server102 ~]# mkdir /mnt/nfsshare 
[root@server102 ~]# mount -t nfs server101:/ /mnt/nfsshare

自动挂载网络存储 
如果一个NFS服务器上有许多的客户端一直连接的话,NFS服务器会承受很大的带宽压力,这对NFS服务器的正常使用会造成很大的影响,因此,为了解决这一弊端,我可以这样做:让NFS客户端在获取数据时与NFS服务器进行连接,而在没有获取数据的时间内,自动的断开与NFS服务器之间的连接,这就是NFS的自动挂载技术。需要注意的是,配置方法是在NFS客户端方面进行配置的。

•使用 mount 命令 , 需要具有 root 用户权限以连接到网络共享。或者 , 我们可以向 /etc/fstab 添加条目 , 但是随后与网络服务器的连接将始终处于活动状态。当某一程序试图访问网络共享中的文件时 , 可以将 automounter ( 或 autofs )服务配置为 “ 按需 ” 挂载网络共享。当共享不再使用并处于不活动状态一定时间以后 ,automounter 会对共享解除挂载 
• 不活动状态的时间间隔默认为五分钟 , 但该时间间隔可在/etc/sysconfig/autofs 中进行全局更改 
• [root@instructor ~]# grep TIMEOUT /etc/sysconfig/autofs

TIMEOUT - set the default mount timeout (default 600).

TIMEOUT=300 
…output omitted…. 
通常 , 我们需要使用网络共享在不活动状态下保持挂载一小段时间 , 从而防止在段时间内对其进行再次使用。这能够避免不必要的挂载 / 解除挂载的周期

第一种方法:

使用特殊的 /net 自动挂载挂载点 , 然后手动配置间接自动挂载映射。

特殊映射 /net 
• 默认情况下 , autofs 服务运行时 , 存在一个名为 /net 的特殊目录 , 但是该目录将显示为空 
• 访问不存在的目录 /net/instructor.example.com 会使自动挂载器创建该子目录 , 并显示该 NFS 服务器上的所有NFS 导出项。这有时称为 “ 浏览 ” 共享 
– # cd /net/instructor.example.com 
– # ls 
– home kickstart var 
• 在 /net/instructor.example.com 之下的所有文件和目录停止使用且超时期满子后 ,autofs 将共享解除挂载并删除空的 /net/instructor.example.com 子目录

具体操作: 
客户端操作:

1.#yum install autofs -y

2.#systemctl start autofs ##服务开启后就会生成/net/

3.#cd /net/172.25.254.101 ##进入NFS服务器共享目录

修改退出等待时间:

vim /etc/autofs.conf

怎么让nfs自动挂载,不用的时候自动卸载,来解决服务器的负载过重: 
1.安装autofs,开启autofs服务 
2.进到nfs1才会自动挂载到nfs1,退到nfsshare就会自动退出

怎么修改默认的退出等待时间 
1.#vim /etc/autofs.conf 
timeout = 3

2.#systemctl restart autofs

第二种方法:间接映射 
• 除了使用 /net 映射 , 系统管理员也可以手动配置任意目录, 以便访问时在其子目录上 “ 按需 ” 挂载特定共享。示例: 
• 间接映射使用两层配置文件语法。在顶级文件/etc/auto.master 中 , 每个管理的 “ 父 ” 目录和包含子目录挂载点与网络共享的单独的第二个配置文件的名称占一行

具体操作:

在客户端: 
1.#yum install autofs

vim /etc/auto.master 编辑autofs的主配置文件

/mnt /etc/auto.mnt 
挂载点的上层父目录 子策略文件,最好用规范性命名,让别人好懂

vim /etc/auto.mnt

westos 172.25.254.101:/nfsshare/nfs1 ##挂载到/mnt/westos

  • 172.25.254.101:/nfsshare/& ##直接以共享目录子目录挂载,访问所有服务器的所有共享信息

                                                       例如:cd /mnt/nfs1  cd /mnt/nfs2
    • 1
    • 2

    测试:

cd /mnt/westos

df

当/mnt/westos是挂载点,已经挂上,则不能对/mnt进行操作,因为/mnt被autofs占用

原创粉丝点击