day35

作者: 藏鋒1013 | 来源:发表于2019-04-18 15:10 被阅读0次

    做事如何超出别人的满意度?
    1、提前准备,给别人感觉,是不经意的。
    2、牛逼(提前准备,提前多年准备)。
    3、给自己设定150%的目标。

    为什么fstab无法实现nfs挂载?

    回顾:开机启动流程:
    1、磁盘先启动/etc/fstab
    2、防火墙在前。
    3、网卡
    NFS网络文件系统,通过网络挂载,网络没起如何挂载?
    又想在fstab里实现挂载、就用一个服务,延迟启动。

    延迟满足:小孩给棉花糖的故事,学会延迟满足是成就自己的优秀思维。

    [root@nfs01 /data1]# systemctl start remote-fs.target 
    [root@nfs01 /data1]# systemctl enable remote-fs.target 
    Created symlink from /etc/systemd/system/multi-user.target.wants/remote-fs.target to /usr/lib/systemd/system/remote-fs.target.
    [root@nfs01 /data1]# systemctl status remote-fs.target 
    ● remote-fs.target - Remote File Systems
       Loadded: loaded (/usr/lib/systemd/system/remote-fs.target; enabled; vendor preset: enabled)
       Active: active since 四 2019-04-18 10:17:57 CST; 18s ago
         Docs: man:systemd.special(7)
    4月 18 10:17:57 nfs01 systemd[1]: Reached target Remote File Systems.
    
    C6:netfs服务
    C7:remote-fs.target
    

    NFS服务器出问题时候,客户端重启依然能够启动,可以用如下列两个方法:(/etc/fstab)

    defaults,soft
    defaults,hard,intr

    一、配置NFS服务器端

    1、NFS服务端配置文件路径

    NFS服务的默认配置文件的路径为:/etc/exports,默认是空的。

    2、exports配置文件的格式

    /etc/exports配置文件格式为:

    NFS共享的目录 NFS客户端地址 (权限)

    [root@nfs01~]# man exports
    EXAMPLE
           # sample /etc/exports file
           /               master(rw) trusty(rw,no_root_squash)
           /projects       proj*.local.domain(rw)
           /usr            *.local.domain(ro) @trusted(rw)
           /home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
           /pub            *(ro,insecure,all_squash)
           /srv/www        -sync,rw server @trusted @external(ro)
           /foo            2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
           /build          buildhost[0-9].local.domain(rw)
    

    上述各列参数含义如下:

    1)NFS共享的文件目录:为NFS服务端要共享的实际目录,要用绝对路径,如(/data)。注意共享目录的本地权限,如果需要读写共享,一定要让本地路径可以被NFS客户端的用户(nfsnobody)读写。
    2)NFS客户端地址:为NFS客户端授权的可访问共享目录的NFS客户端地址,可为单独的IP地址或主机名、域名等,也可以是整个网段地址。还可以用“*”来匹配所有的客户端服务器。
    3)对授权的的NFS客户端的访问权限设置。
    配置权限常用参数 :
    rw 可读写 read write
    ro 只读 read only
    sync 写到磁盘才算完成,安全 慢
    async 异步写到远程缓冲区,快 ,不安全
    all_squash 不管客户端什么用户,到服务端都是nfsnobody
    anonuid=匿名用户的UID
    anongid=匿名用户的GID

    更改默认NFS默认用户

    项目实践2:

    NFS共享的匿名用户用www,使得客户端上传的图片都是www用户,而不是匿名的nfsnobody。
    web01 backup客户端实现挂载到nfs
    NFS下面共享/backup ,允许web01 backup客户端(/backup)可读写.
    web01上传图片,backup上可以删除web01上传的图片。

      NFS下面共享/data1,允许 web01 backup客户端10网段只读(data1)
    

    实现开机自动挂载

    解答:

    1)nfs01服务端NFS、以及所有客户端:
    [root@nfs01 ~]# useradd -u 1111 www
    [root@nfs01 ~]# id www
    uid=1111(www) gid=1111(www) 组=1111(www)
    
    2)服务端NFS特殊配置
    [root@nfs01 ~]# tail -2 /etc/exports
    /data 172.16.1.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)
    /data1 10.0.0.0/24(ro)
    [root@nfs01 ~]# chown -R  www.www /data
    [root@nfs01 ~]# ls -ld /data
    drwxr-xr-x 2 www www 70 4月  18 10:05 /data
    
    3)服务端NFS重启
    [root@nfs01 ~]# systemctl reload nfs
    
    4)每个客户端
    mount -t nfs 172.16.1.31:/data /data
    [root@web01 ~]# df -h
    文件系统                容量  已用  可用 已用% 挂载点
    172.16.1.31:/data   19G  1.8G   18G   10% /data
    
    [root@web01 /data]# touch new_web01.txt
    [root@web01 /data]# ls -l
    总用量 0
    -rw-r--r-- 1 www www 0 4月  16 10:24 ddddf
    -rw-r--r-- 1 www www 0 4月  16 10:23 dddfff
    -rw-r--r-- 1 www www 0 4月  18 11:01 new_web01.txt
    -rw-r--r-- 1 www www 0 4月  17 11:59 oldboy.txt
    -rw-r--r-- 1 www www 0 4月  17 12:30 oldgirl.txt
    

    NFS服务的重点知识梳理

    当多个NFS客户端访问服务器的读写文件时,需要具有以下几个权限:

    1)NFS服务器 /etc/exports设置需要开放可写入的权限,即服务端的共享权限。
    2)NFS服务期实际要共享的NFS目录权限具有可写入W的权限,即服务端本地目录的安全权限。
    3)每台机器都对应存在和NFS默认UID的相同的UID65534的nfsnobody用户(确保所有客户端的访问权限统一,否则每个机器需要同时创建相同UID的用户,并覆盖NFS的默认用配置)。

    只有满足以上三个条件,多个NFS客户端才能具有查看、修改、删除其他任意NFS客户端上传的权限,这在大规模的集群环境中作为集群共享存储时尤为重要。

    NFS常用路径
    /etc/exports : NFS服务主配置文件,配置NFS具体共享服务的地点,默认为空。以行为单位。
    /var/lib/nfs/etab:NFS配置文件的完整参数设定的文件
    /porc/mounts:客户端挂载参数和状态信息的文件。

    NFS客户端挂载命令

    挂载命令格式:

    挂载命令 挂在的格式类型 NFS服务端提供的共享目录 NFS客户端的挂载点
    mount -t nfs 10.0.0.7:/data /mnt(必须存在)
    完整的挂载某命令为:mount -t nfs 10.0.0.7:/data /mnt,此命令要在客户端执行

    安全加优化的挂载方式如下:

    mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 172.16.1.31:/data /mnt

    NFS客户端挂载排错思路()

    NFS客户端开机自启动挂载

    方法一:将挂载命令放到/etc/rc.local中。

    缺点:偶尔开机挂载不上,工作中除了开机自启动配置,还要对是否挂载做监控。

    方法二:将挂载命令放到/etc/fstab中

    这种配置方法有误区。
    fstab会优先于网络被Linux系统挂载。网络没启动时执行fstab会导致连不上NFS服务器端,无法实现开机挂载。
    而且,即使是本地的文件系统,也要注意,fstab最后两列要设置为0 0。否则有可能导致无法启动服务器的问题。
    因此,NFS网络文件系统最好不要放到fstab里实现开机挂载。
    但是,如果在开机自启动服务里设置并启动了netfs服务,放入fstab里也是可以开机挂载的。

    客户端挂载深入

    [root@web01 ~]# cat /proc/mounts 
    debugfs /sys/kernel/debug debugfs rw,relatime 0 0
    hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
    /dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
    sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
    10.0.0.31:/data1 /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.7,local_lock=none,addr=10.0.0.31 0 0
    172.16.1.31:/data /data nfs rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=172.16.1.31,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=172.16.1.31 0 0
    

    rsize=131072,wsize=131072
    hard
    proto=tcp
    tcp安全稳定 udp无连接 FTP服务
    默认挂载参数:

    [root@nfs01~]# grep mnt /proc/mounts
    172.16.1.31:/data /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.31,local_lock=none,addr=172.16.1.31 0 0
    

    NFS客户端挂载优化




    Linux正在工作呢,文件系统只读。

    企业生产案例文件系统只读故障/fstab故障。
    自己找一下:
    1、救援模式修复。
    2、单用户,mount -o remount,rw /

    相关文章

      网友评论

          本文标题:day35

          本文链接:https://www.haomeiwen.com/subject/mogzwqtx.html