程序由逻辑和数据组成
ctrl+shift+t 在shell中再加一个shell
实验前的步骤:
配置两个虚拟机的ip,一个名字改为client.westos.com,一个改为server.westos.com(看yum是否能用)
然后在各自的虚拟机里作解析vim /etc/hosts
客户端是
172.25.254.214 client.westos.com
服务端是
172.25.254.114 server.westos.com
文件系统是内核空间的:文件系统在内核上的一个映射
NFS:网络文件系统
sync代表内存数据与硬盘里的数据的是同步的(可靠性高)
Async不实时同步,会使写的效率提高(响应速度快)可靠性低
nfs不需要重启,用参数exportfs -rv更新(重启之后客户端挂载就出问题了,因为重启就有一个空档期,客户端如果在写,就会一直访问,这个时候会出问题,如果客户端不用,可以重启但是不建议。)
####################搭建NFS(实现共享)
在服务端安装(为了实验效果明显,我们采用的是async,)
yum install nfs-utils -y
systemctl stop firewalld
vim /etc/exports
在里面写入
/mnt 172.25.254.0/24(ro,async) 172.25.254.0/24这个网段都可以映射到,172.25.254.206:/mnt只读挂载,不实时同步
systemctl start nfs-server
systemctl status nfs-server
exportfs -rv
yum install nfs-utils -y
showmount -e 172.25.254.206
clnt_create: RPC: Program not registered (没映射过来,可能是ip不对)
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) (客户端没关防火墙)
showmount -e 172.25.254.206
Export list for 172.25.254.206:
/mnt 172.25.254.0/24 (映射成功)
mount 172.25.254.206:/mnt/ /mnt
df (会看到挂载上了)
cd /mnt
ls
touch file (不能建立文件,因为是只读挂载)
touch: cannot touch ‘file’: Read-only file system
cd -
umount /mnt
##################NFS(管理)
no_root_squash 谁管理用谁的身份并且anonuid不生效(沿用客户端自己的用户身份)
all_squashi 身份全部转换(这个在的时候no_root_squash不生效,anonuid生效,去使用服务端的客户身份,如果不指定anonuid,就沿用服务端的匿名身份)
在服务器:
no_root_squash
vim /etc/exports
在里面写入
/mnt 172.25.254.0/24(rw,async)
chmod 777 /mnt
exportfs -rv
useradd lee
id lee(此时的uid和gid是1001)
vim /etc/exports
在里面写入
/mnt 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001)
exportfs -rv
在客户端
如果刚才挂载了就不用管,直接进入/mnt
cd /mnt
touch file1(此时在客户端看见的用户和用户组是1001,因为客户端没有这个用户,在服务端看见的是lee)
这时我们想让沿用客户端自己的用户身份
vim /etc/exports
在里面写入
/mnt 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001,no_root_squash)
在客户端
如果刚才挂载了就不用管,直接进入/mnt
cd /mnt
touch file2(此时在客户端建立文件的是root用户,看见的用户和用户组是root
也可以chmod 777 /mnt
su - student
cd /mnt
touch file3(此时在客户端建立文件的是student用户,看见的用户和用户组是student)
exit
让客户端自行连接或者断开()
做这个实验前先/umount /mnt
在客户端:
yum install autofs -y (安装完会看到autofs软件包的具体信息)
rpm -qc autofs.x86_64 1:5.0.7-40.el7去查看它的配置文件
7.0以及7.0之前redhat版本/etc/sysconfig/autofs
7.1renhat版本或者autofs软件包5/6以上,以后的文件就是/etc/autofs.conf
vim/etc/sysconfig/autofs
将时间修改为10秒(方便实验) autofs(默认三百秒)
ll -d /net/此时没有这个目录
systemctl start autofs.service
systemctl enable autofs.service
ll -d /net/ 有了这个目录
cd /net/172.25.254.206/mnt/
ls 查看到了东西
df 发现自动挂载上了
cd - (退出这个目录,相当于不用了)
十秒过后,在去查看
df (发现自动卸载了)
#######################更改共享目录挂载点,以及什么人进什么挂载目录#####
更改共享目录挂载点,想要将172.25.254.114:/mnt挂载点修改为/mnt/westos
修改主策略文件:vim /etc/auto.master
在这个加入以下内容
/mnt /etc/auto.nfs (/mnt是挂载目录的上一层目录,子策略文件名称可以自定义,比如/etc/westos.lee,但是为了规范,我们写成/etc/auto.nfs )
vim /etc/auto.nfs 子策略文件(挂载参数在子策略文件指定)
在里面可以写入
westos 172.25.254.206:/mnt
systemctl restart autofs.server
此时进入cd /mnt/westos
df
发现挂载点变成了/mnt/westos
再退出,十秒之后自动卸载
mount
发现是只读挂载,vers=3
再退出,十秒之后自动卸载
################什么人进什么挂载目录#####
在服务器的/mnt建立westos{1…3}
systemctl restart autofs.server
cd /mnt/westos1
df
发现172.25.254.206:/mnt/westos1 挂载在/mnt/westos1上
cd /mnt/westos2
df
发现172.25.254.206:/mnt/westos2 挂载在/mnt/westos2上
westos3同理
退出这个目录,十秒之后自动卸载