day35

做事如何超出别人的满意度?
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)