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