Linux下NFS服务器部署
来源:互联网 发布:vua软件 编辑:程序博客网 时间:2024/05/21 06:30
- NFS的安装和配置
- NFS介绍
- NFS的安装
- NFS的配置
- 配置示例
- NFS客户端配置
- NFS启动在固定端口
NFS的安装和配置
NFS介绍
NFS:Network File System网络文件系统。用于Unix-Like操作系统之间进行文件的共享。通过NFS,客户端可以将服务器端共享出来的目录挂载到本地,就像操作本地文件一样。而NFS在启动之前需要向RPC注册,告诉RPC,相应的服务所使用的端口。NFS可以说是RPC服务的一种。NFS通常情况下启动的端口为2049端口,RPC启动的端口为111端口,而NFS如果要想提供其他的服务,则还要启动不同的端口,这些端口都是随机的,如果不向RPC注册的话,客户端将不知道服务所使用的端口。
NFS的安装
所需软件包
rpc主程序:rpcbind
nfs主程序:nfs-utils软件安装
[root@control ~]# yum install -y rpcbind nfs-utils
- 设置开机自动启动
[root@control ~]# chkconfig rpcbind on[root@control ~]# chkconfig nfs on[root@control ~]# chkconfig nfslock on[root@control ~]#
NFS的配置
NFS的配置文件为:/etc/exports
该文件的语法结构为:
A.以#开头的表示注释
B.大小写敏感
C.语法格式为:
共享目录 客户端1(参数1) 客户端2(参数2) ……
- 共享目录:指定要共享的目录的实际路径。如/opt/test
客户端:指定哪些客户端可以访问共享目录。如果不指定则所有的客户端均可以访问。客户端的匹配条件如下:
指定单一主机:如192.168.1.1或者是通过FQDN的方式,如nfs.frame.com
指定网段:如192.168.1.0/255.255.255.0或192.168.1.0/24或192.168.1.*
指定域名范围:如*.felix.com,则表示客户端的DNS后缀为felix.com的都放行。
所有主机:*参数:对满足客户端匹配条件的客户端的权限设置。常用的如下:
ro:默认选项,以只读的方式共享。
rw:以读写的方式共享。
root_squash:压缩root用户的权限为NFS的匿名用户(nfsnobody)。
no_root_squash:不压缩root用户的权限。客户端如果使用root用户访问,则映射后的权限依然为root。
all_squash:默认选项,压缩所有用户的权限为nfs匿名用户(nfsnobody)。
anonuid:指定匿名用户的UID
anongid:指定匿名用户的GID
sync:默认选项,保持数据同步,数据写入到硬盘时才提示客户端写入成功。
async:数据没有写入到硬盘时就提示客户端数据写入成功,此时数据还可能存在于内存中。可以提高性能,但是有可能会引起数据丢失。
secure:NFS客户端必须使用NFS保留端口(通常是1024以下的端口),默认选项。
insecure:允许NFS客户端不使用NFS保留端口(通常是1024以上的端口)。
配置示例
- 配置示例
[root@control ~]# cat /etc/exports/data/ftp/vusers/software 172.17.100.0/24(rw,sync,no_root_squash)[root@control ~]#
- 启动服务(先启动rpcbind,然后是nfs,最后是nfslock)
[root@control ~]# /etc/init.d/rpcbind restartStopping rpcbind: [FAILED]Starting rpcbind: [ OK ][root@control ~]# /etc/init.d/nfs restartShutting down NFS daemon: [FAILED]Shutting down NFS mountd: [FAILED]Shutting down RPC idmapd: [FAILED]Starting NFS services: [ OK ]Starting NFS mountd: rpc.mountd: svc_tli_create: could not open connection for udp6rpc.mountd: svc_tli_create: could not open connection for tcp6rpc.mountd: svc_tli_create: could not open connection for udp6rpc.mountd: svc_tli_create: could not open connection for tcp6rpc.mountd: svc_tli_create: could not open connection for udp6rpc.mountd: svc_tli_create: could not open connection for tcp6 [ OK ]Starting NFS daemon: rpc.nfsd: address family inet6 not supported by protocol TCP [ OK ]Starting RPC idmapd: [ OK ][root@control ~]# /etc/init.d/nfslock restartStopping NFS locking: [ OK ]Stopping NFS statd: [FAILED]Starting NFS statd: [ OK ][root@control ~]#
- 客户端查看服务器端共享出来的内容,并挂载
客户端可以使用showmount这个命令来查看服务器端的共享目录和权限。(需要安装nfs-utils软件)
[root@vm1 ~]# yum install -y nfs-utils[root@vm1 ~]# showmount -e 172.17.100.250Export list for 172.17.100.250:/data/ftp/vusers/software 172.17.100.0/24[root@vm1 ~]# 客户端mount,需要使用-t指定文件系统类型为nfs[root@vm1 ~]# mkdir -p /data/software[root@vm1 ~]# mount -t nfs 172.17.100.250:/data/ftp/vusers/software /data/software/[root@vm1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 18G 1.1G 16G 7% /tmpfs 116M 0 116M 0% /dev/shm/dev/sda1 194M 27M 158M 15% /boot172.17.100.250:/data/ftp/vusers/software 18G 13G 4.1G 76% /data/software[root@vm1 ~]#
NFS客户端配置
- 手动挂载
格式:mount -t nfs server_ip|fqdn:shared_directory mount_to_local_directory[root@vm1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 18G 1.1G 16G 7% /tmpfs 116M 0 116M 0% /dev/shm/dev/sda1 194M 27M 158M 15% /boot[root@vm1 ~]# [root@vm1 ~]# mount -t nfs nfs.felix.com:/data/ftp/vusers/software /data/software[root@vm1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 18G 1.1G 16G 7% /tmpfs 116M 0 116M 0% /dev/shm/dev/sda1 194M 27M 158M 15% /bootnfs.felix.com:/data/ftp/vusers/software 18G 13G 4.1G 76% /data/software[root@vm1 ~]#
- 开机自动挂载
/etc/fstab的语法格式:
需要挂载的设备或远程文件系统 本地挂载点 文件系统类型 挂载选项 是否需要被dump备份(0表示不需要备份) 是否需要被fsck检查(根文件系统需要设置为1,表示优先检查,其他的可以设置为2或者是0)
[root@vm1 ~]# cat /etc/fstab | tail -n 1nfs.felix.com:/data/ftp/vusers/software /data/software nfs defaults,_netdev 0 0[root@vm1 ~]# 设置完之后,需要使用mount -a进行测试,防止出现开机时出现挂载不了的情况。[root@vm1 ~]# mount -a[root@vm1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 18G 1.1G 16G 7% /tmpfs 116M 0 116M 0% /dev/shm/dev/sda1 194M 27M 158M 15% /bootnfs.felix.com:/data/ftp/vusers/software 18G 13G 4.1G 76% /data/software[root@vm1 ~]#
- 需要时自动挂载
自动挂载是使用autofs来实现的,当需要使用该目录的时候,系统会自动挂载,在不需要的时候,系统会自动卸载该目录。
步骤1:安装autofs软件包[root@vm1 ~]# yum install -y autofs步骤2:修改/etc/auto.master文件,增加/- /etc/auto.nfs修改后的文件内容如下:[root@vm1 ~]# cat /etc/auto.master | grep -vE '^#|^$'/misc /etc/auto.misc/- /etc/auto.nfs/net -hosts+auto.master[root@vm1 ~]# 步骤3:创建auto.nfs文件格式如下:本地挂载点 -fstype=文件系统类型 远程文件系统信息[root@vm1 ~]# cp -a /etc/auto.misc /etc/auto.nfs[root@vm1 ~]# [root@vm1 ~]# cat /etc/auto.nfs## auto mount/data/software -fstype=nfs nfs.felix.com:/data/ftp/vusers/software[root@vm1 ~]# 步骤4:重启autofs服务,并设置开机自动启动[root@vm1 ~]# /etc/init.d/autofs stopStopping automount: [ OK ][root@vm1 ~]# /etc/init.d/autofs startLoading autofs4: [ OK ]Starting automount: [ OK ][root@vm1 ~]# chkconfig autofs on[root@vm1 ~]# 步骤5:测试,当进入到/data/software目录时,自动挂载[root@vm1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 18G 1.1G 16G 7% /tmpfs 116M 0 116M 0% /dev/shm/dev/sda1 194M 27M 158M 15% /boot[root@vm1 ~]# cd /data/software/[root@vm1 software]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 18G 1.1G 16G 7% /tmpfs 116M 0 116M 0% /dev/shm/dev/sda1 194M 27M 158M 15% /bootnfs.felix.com:/data/ftp/vusers/software 18G 13G 4.1G 76% /data/software[root@vm1 software]#
使用autofs自动挂载的文件系统,默认情况下,如果在5分钟(300s)内没有使用的话,则会被自动的卸载掉,该超时时间是在/etc/sysconfig/autofs中的TIMEOUT参数设置的。
NFS启动在固定端口
NFS主程序使用的端口是2049端口,为了实现不同的功能,需要启用不同的端口,而这些端口需要向RPC注册,但是在配置防火墙时,由于这些端口不是固定的,因此配置起来就比较麻烦,为了方便防火墙的配置,因此需要让NFS启动在固定端口。
修改配置文件:/etc/sysconfig/nfsLOCKD_TCPPORT=3001LOCKD_UDPPORT=3001MOUNTD_PORT=3002STATD_PORT=3003STATD_OUTGOING_PORT=3004将上述几个端口修改为相应的端口。iptables设置(rpcbind所使用的端口是111):[root@control ~]# iptables -A INPUT -i eth0 -p tcp -s 172.17.100.0/24 -d 172.17.100.250 -m multiport --dport 111,2049,3001:3004 -j ACCEPT[root@control ~]# iptables -A INPUT -i eth0 -p udp -s 172.17.100.0/24 -d 172.17.100.250 -m multiport --dport 111,2049,3001:3004 -j ACCEPT[root@control ~]#
- Linux下NFS服务器部署
- LINUX下部署NFS
- Linux下NFS服务器
- 【NFS】linux下nfs服务器的搭建
- Linux下安装nfs服务器
- Linux下安装nfs服务器
- Linux下 NFS 服务器配置
- Linux下NFS服务器搭建
- Linux下安装nfs服务器
- Linux下NFS服务器搭建
- Linux下配置nfs服务器
- Linux环境下简单的NFS部署
- Linux下NFS服务器的配置
- Linux下NFS服务器的配置 (一)
- Linux下NFS服务器的配置 (二)
- Linux系统下NFS服务器的配置
- Linux下NFS服务器的配置
- Linux下NFS服务器的配置
- 搞定支付宝和微信支付的各种填坑
- C#中的数据类型
- iOS开发中的日期处理 -
- 本地代码git到github上
- php-文件下载
- Linux下NFS服务器部署
- C语言(如何优雅地使用字符串)
- [C/C++]_[初级]_[使用remove,remove_if,remove_copy_if过滤元素或字符]
- python 线程与进程
- g++字节对齐
- python抓取南阳理工学院ACM网站排名信息
- Qt 获取硬盘可用字节
- 计算机专业英语-02:Text 1 The Computer System
- ORACLE in与exists语句的区别