2019-04-18

思想:

如何做事超出别人的满意度?
1、提前准备,提前试讲(正式最近的模拟讲课),给别人感觉,不经意的。
2、牛逼(提前准备 提前5年准备的)。
3、给自己设定150%目标?

人能有成就和拿高薪的前提,有三个维度:
实践===》总结==》应用于实践===》总结(形成了你的思维理论)
思维理论===》思考人和事===》指导你的行为。
勤奋努力,善于总结 ————老男孩老师逆袭8个字

人能有成就和拿高薪的前提,有三个维度:

1)学历:社会分层利器
2)商数:3Q多元智慧理论
3)思维:思想思维理论*****
小胜靠智,大胜靠德。哲学里星星

天时、地利、人和,其实就是时空角理论,古人几千年就已经有了
只不过老男孩老师把他转给你们。

学一门技能可以解决10个问题;
持续学习,持续掌握最新的核心技能。
学一个方法可以解决100个问题;
学习一个理论可以解决1000个问题;
一条哲学可以解决所有的问题;

人类思维层次四个维度:
技能
方法
理论:放置四海皆准,
时间:过去、现在、未来都适合。
空间:国内、国外都适合。
角度:你自己、同事、老板、追女朋友、找工作、对待下属都适合。
是不是打破了时空角理论了?
当然没有,因为:人品、态度、能力、价值理论,是对人才更有有意义。
哲学:
万事万物的运行规律,作为人何为正确?
追女朋友、找工作,要有正确的价值观。
做正确的事情。

笔记:

1、为什么fstab无法实现nfs挂载?
       回顾:开机启动流程:
    1、磁盘先启动/etc/fstab
    2、防火墙在前。
    3、网卡
2、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
   Loaded: 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

3、权限

参数 作用
rw 可读写 read write
ro 只读 read only
sync 写到磁盘才算完成,安全 慢
async 异步写到远程缓冲区,快 不安全
all_squash 不管客户端什么用户,到服务端都是nfsnobody
- -anonuid=匿名用户的UID
- -anongid=匿名用户的GID
[root@nfs01 ~]# cat /etc/exports
#oldboy shared dir at time
#/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(ro)
/data 172.16.1.0/24(rw,sync)
/data1 10.0.0.0/24(ro)

[root@nfs01 ~]# cat /var/lib/nfs/etab 
/data1  10.0.0.0/24(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash)
/data   172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
更改默认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
[root@nfs01 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Mon Mar  4 11:15:16 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3a3a295f-88f8-456d-94dc-1a3eeb517c02 /                       xfs     defaults        0 0
UUID=fd2e0ca7-32be-425f-86a2-85c02b9ec5ea /boot                   xfs     defaults        0 0
UUID=79a3924b-739e-48dc-ab0c-0444b9ac6591 swap                    swap    defaults,_netdev   0 0

man mount
_netdev
              The  filesystem  resides on a device that requires network access (used to prevent the  system from attempting to mount these filesystems until the network has  been  enabled  on the system).

自学:fstab被破坏了如何修复?

[root@web01 ~]# cat /etc/fstab 
# /etc/fstab
# Created by anaconda on Mon Mar  4 11:15:16 2019
UUID=3a3a295f-88f8-456d-94dc-1a3eeb517c02 /                       xfs     defaults        0 0
UUID=fd2e0ca7-32be-425f-86a2-85c02b9ec5ea /boot                   xfs     defaults        0 0
UUID=79a3924b-739e-48dc-ab0c-0444b9ac6591 swap                    swap    defaults        0 0
172.16.1.31:/data                         /data                   nfs     defaults,soft        0 0

172.16.1.31:/data                         /data                   nfs     defaults,hard,intr        0 

mount -t nfs -o hard,intr,rsize=131072,wsize=131072 172.16.1.31:/data/ /mnt

NFS服务器出问题时候,客户端重启依然能够启动,可以用如下列两个方法:
defaults,soft
defaults,hard,intr 
#/etc/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服务

Linux正在工作呢,文件系统只读。
企业生产案例文件系统只读故障/fstab故障。
1、救援模式修复。
2、单用户,mount -o remount,rw /
2)安全加优化的挂载方式如下:
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 172.16.1.31:/data /mnt

NFS服务的重点知识梳理

当多个NFS服务器/etc/exports设置需要开放写入权限,即服务端的共享权限
NFS服务器实际要共享的NFS目录权限具有可写入w的权限,即服务端本地目录的安全权限;
每台机器都对应存在和NFS默认配置UID的相同UID65534的nfsnobody用户(确保 所有客户端的访问权限同意,否则每个机器需要同时建立相同UID的用户,并覆盖NFS的默认用户配置)
只有满足上述三个条件,多个NFS客户端才能具有查看,修改,删除其他任意NFS 客户端上传文件的权限,在这大规模的集群环境中作为集群共享存储时尤为重要。

下表列出了常用的重点NFS服务文件或命令

NFS常用路径 说明
/etc/exports NFS服务主配置文件,配置NFS具体共享服务的地点,默认内容为空
/var/lib/nfs/etab NFS配置文件的完整参数设定的文件
/proc/mounts 客户端的挂载参数

mount -o 参数选项及系统默认设置

参数 参数意义 系统默认值
suid/nosuid 当挂载的文件系统上有任何SUID的程序时,只要使用nosuid就能够取消设置SUID的功能 suid
rw/ro 可以指定文件系统是只读(ro)或可读写(rw) rw
dev/nodev 是否可以保留装置文件的特殊功能 dev
exec/noexec 是否具有执行文件的权限 exec
user/nouser 是否允许用户拥有文件的挂载与卸载功能 nouser
auto/noauto auto指的是“mount -a”时会不会被挂载的项目,如果不需要这个分区随时被挂载,可以设置为noauto auto

mount -o 参数详细说明

参数选项 说明
async 涉及文件系统I/O的操作都是异步处理,即不会同步写到磁盘,能提高性能,但会降低数据安全。
sync 有I/O操作时,都会同步处理I/O,会降低性能,但数据比较安全。
atime 在每一次数据访问时,会更新访问文件的时间戳,是默认选项,在高并发的情况下,可以通过添加noatime来取消默认项。
ro 以只读的方式挂载一个文件系统
rw 以可读写的方式挂载一个文件系统
auto 能够被自动挂载通过-a选项
noauto 不会自动挂载文件系统
defaults 这是fstab里的默认值,包括rw、suid、dev、exec、auto、nouser、async
exec 允许文件系统执行二进制文件,取消这个参数,可以提升系统安全性。
noexec 在挂载的文件系统中不允许执行任何二进制程序,进仅对二进制程序有效。
noatime 访问文件时不更新文件的时间戳,高并发情况下,一般使用该参数
nodiratime 不更新文件系统上的directory inode时间戳,高并发环境,推荐显式应用该选项,可以提高系统I/O性能。
nosuid 不允许set-user-identifier or set-group-identifier位生效。
suid 允许set-user-identifier or set-group-identifier位生效。
nouser 禁止一个普通用户挂载该文件系统,这是默认挂载时的默认选项。
remount 尝试重新挂载一个已经挂载了的文件系统,这通常被用来改变一个文件系统的挂载标志,从而使得一个只读文件系统变的可写,这个动作不会改变设备或者挂载点。当系统故障时进人single或rescue模式修复系统时,会发现根文件系统经常会变成只读文件系统,不允许修改,此时该命令就派上用场了。具体命令为:mount -o remount,rw /,表示将根文件系统重新挂载使得可写。single或rescue模式修复系统时这个命令十分重要。
dirsync 目录更新时同步写人磁盘。

NFS的优点和缺点

优点 缺点(局限)
简单,容易上手,容易掌握。 存在单点故障,如果NFS服务端宕机了,所有客户端都不能访问共享目录。
NFS文件系统内数据是在文件系统之上的,即数据是能看得见的。 在大数据高并发的场合,NFS效率、性能有限。
部署快速维护简单方便,且可控,满足需求就是最好的。 客户端认证是基于IP和主机名的,权限要根据ID识别,安全性一般。
可靠,从软件层面上看,数据可靠性高,经久耐用。 NFS数据是明文的,NFS本身不对数据完整性进行验证。
服务非常稳定。 多台客户机挂载一个NFS服务器时,连接管理维护麻烦。

解决性能问题的方法

使用CDN加速以及自己搭建文件缓存服务(squid、nginx、varnish)。
把多个目录分配到不同的NFS服务器上。
弃用NFS(即读写分离)。
使用分布式文件系统。
image.png

你可能感兴趣的:(2019-04-18)