centos NFS管理与autofs自动挂载

36 篇文章 1 订阅

NFS管理与autofs自动挂载

一、NFS工作原理

   NFS:Network File System 网络文件系统,基于内核的文件系统。Sun公司开发,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RP(Remote Procedure Call Protocol远程过程调用)实现。
   PC采用C/S模式,客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
   NFS优势:节省本地存储空间,将常用的数据,如:/home目录,存放在NFS服务器上且可以通过网络访问,本地终端将可减少自身存储空间的使用

二、NFS配置
  1. 配置简单的一个共享目录

    [root@localhost ~]#yum install nfs-utils
    [root@localhost ~]#cat /etc/exports
    /data/share1 *(rw)
    [root@localhost ~]#mkdir /data/share1 -p
    [root@localhost ~]#exportfs -r
    [root@localhost ~]#exportfs -v
    /data/share1  	<world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)
    [root@localhost ~]#
    
  2. nfs配置文件目录

    /etc/exports
    /etc/exports.d/*.exports
    
  3. nfs共享目录的文件格式

    /dir 主机1(opt1,opt2) 主机2(opt1,opt2)...
    

    主机格式:
    单个主机:ipv4,ipv6,FQDN
    IP networks:两种掩码格式均支持
    172.18.0.0/255.255.0.0
    172.18.0.0/16
    wildcards:主机名通配,例如*.xiapi.com,IP不可以
    netgroups:NIS域的主机组,@group_name
    anonymous:表示使用*通配所有客户端

    每个条目指定目录导出到的哪些主机,及相关的权限和选项
    默认选项:(ro,sync,root_squash,no_all_squash)
    ro,rw 只读和读写
    async 异步,数据变化后不立即写磁盘,性能高
    sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘
    root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,早期版本
    是4294967294 (nfsnobody)
    no_root_squash 远程root映射成root用户
    all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
    no_all_squash (默认)保留共享文件的UID和GID
    anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nfsnobody,可配合all_squash使用

三、服务端工具
  1. exportfs
    可用于管理NFS导出的文件系统
    –v 查看本机所有NFS共享
    –r 重读配置文件,并共享目录
    –a 输出本机所有共享
    –au 停止本机所有共享
    [root@localhost ~]#exportfs -v
    # 查看当前共享
    /data/share1  	<world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)
    /data/share2  	<world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)
    [root@localhost ~]#exportfs -au
    # 停止所有共享
    [root@localhost ~]#exportfs -v
    # 然后查看共享 ,发现已经没有共享的目录了
    [root@localhost ~]#exportfs -r
    # 重读配置文件
    [root@localhost ~]#exportfs -v
    # 共享目录便回来了
    /data/share1  	<world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)
    /data/share2  	<world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)
    [root@localhost ~]#
    
  2. showmount 查看目标主机的共享目录
    [root@localhost ~]#showmount -e  192.168.19.10
    clnt_create: RPC: Program not registered
    [root@localhost ~]#systemctl restart nfs
    [root@localhost ~]#
    [root@localhost ~]#showmount -e  192.168.19.10
    Export list for 192.168.19.10:
    /data/share2 *
    /data/share1 *
    [root@localhost ~]#
    
四、客户端工具
  1. mount.nfs
    虽然共享目录允许了写,但是文件系统不允许,默认root是被压缩权限,变成了id为65534的用户,压缩权限是默认的选项,可以使用exportfs -v,查看有一个root_squash选项
    [root@localhost ~]#yum install nfs-utils
    [root@localhost ~]#rpm -qf `which mount.nfs`
    nfs-utils-1.3.0-0.65.el7.x86_64
    [root@localhost ~]# mount  192.168.19.10:/data/share1 /mnt
    [root@localhost ~]#df -h
    Filesystem                  Size  Used Avail Use% Mounted on
    devtmpfs                    736M     0  736M   0% /dev
    tmpfs                       748M     0  748M   0% /dev/shm
    tmpfs                       748M  9.6M  738M   2% /run
    tmpfs                       748M     0  748M   0% /sys/fs/cgroup
    /dev/mapper/centos-root      17G  1.6G   16G  10% /
    /dev/sda1                  1014M  136M  879M  14% /boot
    tmpfs                       150M     0  150M   0% /run/user/0
    192.168.19.10:/data/share1   17G  1.4G   16G   9% /mnt
    [root@localhost ~]#cd /mnt
    [root@localhost mnt]#touch 1.txt
    touch: cannot touch ‘1.txt’: Permission denied
    [root@localhost mnt]#touch 1.txt
    [root@localhost mnt]#
    
    服务端给予文件系统权限
    [root@localhost ~]#id nfsnobody
    uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
    [root@localhost ~]#setfacl -m u:nfsnobody:rwx /data/share1
    [root@localhost ~]#
    
  2. 开机自动挂载
    [root@localhost ~]#vi /etc/fstab
    192.168.19.10:/data/share1              /mnt    nfs     defaults,_netdev        0 0
    
五、autofs自动挂载

可使用 autofs 服务按需要挂载外围设备(iso,u盘等),NFS共享等,并在空闲5分钟后后自动卸载

  1. 相关文件
    软件包:autofs
    服务文件:/usr/lib/systemd/system/autofs.service
    配置文件:/etc/auto.master
  2. 安装后,已经可以使用的功能(自动挂载光盘)
    初始是没有这个挂载点的,当你访问的时候,就会自动帮你挂载上光盘
    [root@localhost ~]#yum install autofs
    [root@localhost cd]#systemctl restart autofs
    [root@localhost ~]#cd /misc/
    [root@localhost misc]#ls
    [root@localhost misc]#cd cd
    [root@localhost cd]#ls
    CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
    EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
    [root@localhost cd]#df -h
    Filesystem               Size  Used Avail Use% Mounted on
    devtmpfs                 736M     0  736M   0% /dev
    tmpfs                    748M     0  748M   0% /dev/shm
    tmpfs                    748M  9.6M  738M   2% /run
    tmpfs                    748M     0  748M   0% /sys/fs/cgroup
    /dev/mapper/centos-root   17G  1.6G   16G  10% /
    /dev/sda1               1014M  136M  879M  14% /boot
    tmpfs                    150M     0  150M   0% /run/user/0
    /dev/sr0                  11G   11G     0 100% /misc/cd
    [root@localhost cd]#
    
    其实autofs已经做了配置,在文件里,当访问misc的cd文件夹时候,自动挂载/dev/cdrom
    [root@localhost cd]#grep -v "^$\|^#" /etc/auto.master
    /misc	/etc/auto.misc
    /net	-hosts
    +dir:/etc/auto.master.d
    +auto.master
    [root@localhost cd]#
    [root@localhost cd]#grep -v "^$\|^#" /etc/auto.misc
    cd		-fstype=iso9660,ro,nosuid,nodev	:/dev/cdrom
    [root@localhost cd]#
    
  3. 配置文件格式
    /etc/auto.master 格式
    挂载点的dirname 指定目录的配置文件路径
    eg:
    [root@localhost cd]#grep -v "^$\|^#" /etc/auto.master
    /misc	/etc/auto.misc
    
    指定目录的配置文件格式
    挂载点的basename 挂载选项 选项设备
    eg:
    [root@localhost cd]#grep -v "^$\|^#" /etc/auto.misc
    cd		-fstype=iso9660,ro,nosuid,nodev	:/dev/cdrom
    [root@localhost cd]#
    
  4. 自动挂载资源有两种格式
    绝对路径法:直接匹配全部绝对路径名称,不会影响本地目录结构。
    相对路径法:将mount point 路径分成 dirname 和 basename 分别配置,可能会影响现有的目录
    结构。
    该方法支持通配符写法(也就是进入目录,进任何目录,都会挂载,也可使用&后向引用):
    [root@localhost cd]#grep -v "^$\|^#" /etc/auto.misc
    *		-fstype=iso9660,ro,nosuid,nodev	:/dev/cdrom
    [root@localhost cd]#systemctl restart autofs
    [root@localhost cd]#cd
    [root@localhost ~]#cd /misc/lksdfj
    [root@localhost lksdfj]#cd
    [root@localhost ~]#df -h
    Filesystem               Size  Used Avail Use% Mounted on
    devtmpfs                 736M     0  736M   0% /dev
    tmpfs                    748M     0  748M   0% /dev/shm
    tmpfs                    748M  9.6M  738M   2% /run
    tmpfs                    748M     0  748M   0% /sys/fs/cgroup
    /dev/mapper/centos-root   17G  1.6G   16G  10% /
    /dev/sda1               1014M  136M  879M  14% /boot
    tmpfs                    150M     0  150M   0% /run/user/0
    /dev/sr0                  11G   11G     0 100% /misc/cd
    [root@localhost ~]#umount /misc/cd
    [root@localhost ~]#df -h
    Filesystem               Size  Used Avail Use% Mounted on
    devtmpfs                 736M     0  736M   0% /dev
    tmpfs                    748M     0  748M   0% /dev/shm
    tmpfs                    748M  9.6M  738M   2% /run
    tmpfs                    748M     0  748M   0% /sys/fs/cgroup
    /dev/mapper/centos-root   17G  1.6G   16G  10% /
    /dev/sda1               1014M  136M  879M  14% /boot
    tmpfs                    150M     0  150M   0% /run/user/0
    /dev/sr0                  11G   11G     0 100% /misc/lksdfj
    [root@localhost ~]#
    
  5. 使用两种格式来实现自动挂载
    share1,使用相对路径来写,share2 使用绝对路径来写
    [root@localhost ~]#grep -v "^$\|^#" /etc/auto.master
    /misc	/etc/auto.misc
    /mnt	/etc/autoshare1
    /-	/etc/autoshare2
    [root@localhost ~]#cat /etc/autoshare1
    f1	-fstype=nfs	192.168.19.10:/data/share1
    [root@localhost ~]#cat /etc/autoshare2
    /mnt/f2		-fstype=nfs	192.168.19.10:/data/share2
    [root@localhost ~]#systemctl restart autofs.service
    [root@localhost ~]#cd /mnt
    [root@localhost mnt]#ls
    f2
    [root@localhost mnt]#cd f2
    [root@localhost f2]#cd ../
    [root@localhost mnt]#cd f1
    [root@localhost f1]#ls
    1.txt
    [root@localhost f1]#cd ../
    [root@localhost mnt]#ls
    f1  f2
    [root@localhost mnt]#df -h
    Filesystem                  Size  Used Avail Use% Mounted on
    devtmpfs                    736M     0  736M   0% /dev
    tmpfs                       748M     0  748M   0% /dev/shm
    tmpfs                       748M  9.6M  738M   2% /run
    tmpfs                       748M     0  748M   0% /sys/fs/cgroup
    /dev/mapper/centos-root      17G  1.6G   16G  10% /
    /dev/sda1                  1014M  136M  879M  14% /boot
    tmpfs                       150M     0  150M   0% /run/user/0
    192.168.19.10:/data/share2   17G  1.4G   16G   9% /mnt/f2
    192.168.19.10:/data/share1   17G  1.4G   16G   9% /mnt/f1
    [root@localhost mnt]#
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值