目录
1.NFS(Network File System)网络文件系统
1.NFS(Network File System)网络文件系统
NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目
录一样访问远程服务器中的共享资源。
对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存
储设备必然支持的一种协议。但是NFS没有用户认证机制,而且数据在网络上明文传输,所以安全
性很差,一般只能在局域网中使用。
NFS服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映
射过程。
所以需要安装nfs-utils、rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者
用于RPC支持。
NFS的配置文件为/etc/exports
格式为:
共享的目录位置 客户机地址 (权限选项)
注:Windows 共享存储服务 cifs
Linux 共享存储服务 nfs
2.NFS架构
把一个磁盘共享出去,让主机1、主机2、主机3像使用自己的目录一样使用,通过NFS共享
3.NFS工作原理
NFS服务是依赖于RPC服务的,它把端口位置放在了RPC服务上,先启动RPC,在启动NFS,通过/etc/exporets目录,把服务端的目录挂载到本地目录,然后通过TCP/IP协议把服务端和客户端连接到一起,客户端通过mount -t nfs 把对方目录挂载到自己的目录当中,客户端通过RPC服务,远程调用服务端NFS服务,获取服务端的所共享的文件数据。
4.NFS配置
1.先安装服务端rpcbind、nfs软件包
2.修改/etc/exports文件
vim /etc/exports
/opt/ wwwroot 192.168.80.0/24(rw, sync,no_root_squash)
/var/ftp/pub 192.168.4.11 (ro) 192.168.4.110 (rw)
/share * (rw, sync)
客户机地址可以是主机名、IP地址、网段地址,允许使用"*”、"?"通配符。
"rw”表示允许读写,"ro”表示为只读。
sync :表示同步写入到内存与硬盘中。
no_root_squash :表示当客户机以root身份访问时赋予本地root权限(默认是root_squash ) 。
root_squash :表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。
其它常用选项
all_squash :所有访问用户都映射为匿名用户或用户组。
async :将数据先保存在内存缓冲区中,必要时才写入磁盘。
subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提
高效率。
anonuid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx :指定NFS服务器/etc/group文件中匿名用户的GID
3.启动 NFS 服务程序
#手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
netstat -anptu | grep 111 查看rpcbind端口是否开启,rpcbind默认使用端口111
netstat -anptu | grep 2049 nfs默认使用的端口是2049
4.查看共享目录
exportfs -avr 在线发布
showmount -e
示例
1.安装软件包
2.修改/etc/exports文件
把pgk目录作为共享目录
vim /etc/exports
3.启动 NFS 服务程序
服务端启动rpcbind服务和nfs服务
注:启动服务有先后顺序,一定要先启动rpcbind服务
4.查看共享目录
进入客户端
在客户端创建一个目录,把服务端的共享目录挂载到该目录下
客户端就会出现服务端的共享目录
但是在客户端写入一个文件,发现就没有权限创建
这是因为服务端的目录权限没有给其他用户写入权限
我们把服务端目录的权限提升到最大
客户端可以写入文件,但是我们发现属主与属组变成了匿名用户,我们被降权了,服务端也是一样
———————————————————————————————————————————
5.修改共享配置文件的权限
vim /etc/exports
把服务端的/etc/exports文件的(rw)改为(ro),并重启
客户端这次同样创建不了文件因为这次是只读系统,只能读不能写
———————————————————————————————————————————
修改服务端的/etc/exports文件,把(rw)修改为(rw,no_root_squash),只针对root用户
客户端在服务端修改前解挂,在服务端重启服务后挂载,客户端再创建一个新文件,这时客户端的属主和属组都成了root
即使客户端切换到lisi账号上,创建文件后,文件属主和属组依然是zxr,无论是什么用户都会被降为指定用户
———————————————————————————————————————————
6.服务卡死的解决方法和在线发布共享目录
服务端共享完目录后,客户端解挂再挂载会有一段时间卡死,所以我们用exportfs -在线共享目录
在客户端查看共享目录
注:如果出现挂载卡死现象,可以用umount 挂载目录 -lf命令,强制解挂
7.永久挂载
vim /etc/fstab
mount -a 挂载/etc/fstab中的设置
5.总结
windows 共享存储服务 cifs
linux 共享存储服务 nfs
NAS
存储类型:
块存储: 硬盘 LVM RAID
文件存储:NFS
对象存储:OSS
nfs 网络文件共享服务
1.安装软件,启动服务
yum insatll -y nfs-utils rpcbind
端口号nfs (2049) rpcbind (111)
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
2.住备共享目录
先准备硬盘/LVM/RAID,格式化后挂载到需要共享的目录(比如/share),并设置相应的权限chmod
777 /share 如果无需客户端写入文件则省略
3.修改共享配置文件
vim /etc/exports
共享目录 客户端地址/网段(共享参数选项,...)
4.发布共享目录
sysemctl restart nfs
exportfs -avr
showmount -e 测试目录
服务端别忘记关防火墙
5.客户端挂载使用
showmount -e 服务端IP
mount [-t nfs] 服务端IP:共享目录 本地挂载点
永久挂载
vim /etc/fstab
服务端IP:共享目录 本地挂载点 nfs defaults,_netdev 0 0
如果客户端挂载目录出现卡死现象 umount -lf 强制解挂