一:网络文件系统基础
1:存储的历史和发展
1:DAS(直连式存储)
通过有线介质直接连接到服务器添加存储空间(移动硬盘,u盘等)
案例:笔记本外接u盘,增加了笔记本的存储空间
2:NAS(网络附加存储),通过网络将目录共享出去
表现的形式就是:目录
windows和window和linux之间共享,cifs
linux和linux之间共享:nfs协议
3:SAN(存储局域网络)
服务器和专业的存储设备之间构建了一套网络
可以是网络设备
普通交换机+普通网线 ip-san
光交+光纤 FC-SAN(支持网状通道协议)
2:nfs基础(典型的NAS存储)
c/s架构,客户端+服务端
服务名为nfs-server
软件包:nfs-utils
主配置文件:/etc/exports
格式:共享目录的路径 访问的主机ip/掩码(选项)
服务端共享权限参数
共享权限 |
功能 |
ro/rw |
只读或者读写共享 |
sync/async |
同步或者异步 |
sec=sys |
基于标准Linux文件权限访问 |
root_squash |
打压root用户,客户端的root用户映射到服务端为nobody用户 |
no_root_squash |
不打压root用户,客户端是root ,服务端也是root |
all_squash |
打压普通用户,客户端的普通用户映射到服务端是nobody用户 |
no_all_squash |
不打压普通用户,客户端的普通用户映射到服务端是UID相同的用户 |
客户端挂载选项参数
suid/nosuid |
文件系统是否支持suid功能 |
ro/rw |
只读或者读写 |
dev/nodev |
是否支持设备文件 |
exec/noexec |
是否支持可执行文件执行 |
user/nouser |
是否支持用户挂载系统 |
auto/noauto |
是否支持自动挂载,即mount -a或者系统启动时自动挂载 |
二:配置NFS服务
1:服务端配置
[root@server ~]# yum -y install nfs-utils vim /etc/exports /opt/share *(rw) #文件夹也要有w的权限,否则无法进行写入的操作 [root@server opt]# ll share/ -d drwxr-xrwx. 2 root root 6 Mar 14 10:24 share/ #selinux没有影响,防火墙放行 [root@server opt]# firewall-cmd --permanent --add-service=nfs success [root@server opt]# firewall-cmd --permanent --add-service=mountd success [root@server opt]# firewall-cmd --permanent --add-service=rpc-bind success [root@server opt]# firewall-cmd --reload success [root@server opt]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client mountd nfs rpc-bind ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@server opt]# #重启nfs服务 [root@server opt]# systemctl restart rpcbind [root@server opt]# systemctl restart nfs-server
检查放行的文件
#重启还可以使用 exportfs -r #查看放行的文件 [root@server opt]# exportfs -r [root@server opt]# exportfs -v /opt/share <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
2:客户端访问
#客户端安装 nfs-utils #查看能访问的文件 [root@cleint ~]# showmount -e 192.168.20.10 Export list for 192.168.20.10: /opt/share * #进行挂载 [root@cleint ~]# mount -t nfs 192.168.20.10:/opt/share /mnt/ [root@cleint ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 16G 2.3G 14G 15% / devtmpfs devtmpfs 980M 0 980M 0% /dev tmpfs tmpfs 992M 0 992M 0% /dev/shm tmpfs tmpfs 992M 9.5M 982M 1% /run tmpfs tmpfs 992M 0 992M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 123M 375M 25% /boot tmpfs tmpfs 199M 0 199M 0% /run/user/0 overlay overlay 16G 2.3G 14G 15% /var/lib/docker/overlay2/e55fe24a15185361e97c606df2af102d3f4d719984ac998c80e8228f78d7e925/merged 192.168.20.10:/opt/share nfs4 36G 4.8G 31G 14% /mnt [root@cleint ~]#
三:autofs自动挂载
1:自动挂载
1:基础
根据需求实现自动挂载,不需要反复的执行mount和umount操作
不仅仅支持nfs,也可以支持不同的文件系统
1)autofs只在客户端操作,不需要在服务端进行任何的操作
2)autofs自动挂载的共享所有人都能使用,就和自己主机上面的目录一样使用
3)autofs是一个服务,使用systemd进行服务管理
手动挂载的缺点:
用的时候挂载,不用的时候,挂载会占用一定的系统资源,手动麻烦
4)配置文件/etc/auto.master,里面没有要求,配置目录/etc/auto.masterd下面的文件已.autofs结尾
如果是在目录里面配置的话,需要2个文件 /etc/auto.master.d/test.autofs 和/etc/auto.test2个文件;如果是在配置文件里面的话,/etc/auto.master和/etc/test.auto2个文件
2:操作
将服务端的opt目录下目文件自动的挂载到客户端的mnt目录
服务端的操作:
与nfs的服务端的操作一致
客户端的操作
vim /etc/auto.master.d/test.autofs /share /etc/test.auto vim /etc/test.auto share1 192.168.20.10:/opt/share #重启autofs服务 [root@client ~]# systemctl restart autofs [root@client ~]# cd /share/ [root@client share]# ls [root@client share]# cd share1 [root@client share1]# ls file1 [root@client share1]# 是一个隐藏目录,可以直接进去
关闭服务,就没有了
2:autofs通配符自动挂载
就是利用home这个父级目录,下面的用户的目录作为子目录,然后变成共享的目录
服务端的配置
与nfs的配置一样
vim /etc/exports /rhome/user1 *(rw) /rhome/user2 *(rw) [root@server rhome]# systemctl restart nfs-server
客户端的配置
[root@client /]# vim /etc/auto.master /home /opt/user.conf [root@client opt]# vim user.conf * -rw 192.168.20.10:/rhome/& 使用su - 用户就能看到
实现了共享目录自动挂载到客户端的/home/user中,实现了客户端的用户家目录使用的是NFS服务端的存储空间
四:一些参数的使用
比如,root用户不映射
服务端的配置 /opt/share *(rw,sync,no_root_squash) [root@server rhome]# systemctl restart nfs-server 客户端访问 [root@client ~]# showmount -e 192.168.20.10 Export list for 192.168.20.10: /opt/share * [root@client ~]# mount -t nfs 192.168.20.10:/opt/share /mnt/ [root@client mnt]# touch file2 [root@client mnt]# ll total 0 -rw-r--r--. 1 root root 0 Mar 14 11:01 file1 -rw-r--r--. 1 root root 0 Mar 14 18:41 file2 #创建文件就不是以nobody的身份创建了
标签:opt,share,文件系统,server,nfs,NFS,网络,root,客户端 From: https://www.cnblogs.com/qm77/p/18068537