华为官方网站,今天国际最新消息新闻,手机优化大师官方免费下载,网站规划和建设进度本章主要介绍NFS客户端的使用
创建NFS服务器并通过NFS共享一个目录在客户端上访问NFS共享的目录自动挂载的配置和使用
1.1 访问NFS存储
前面那篇介绍了本地存储#xff0c;本章就来介绍如何使用网络上上的存储设备。NFS即网络文件系统#xff0c;所实现的是Linux和Linux之…本章主要介绍NFS客户端的使用
创建NFS服务器并通过NFS共享一个目录在客户端上访问NFS共享的目录自动挂载的配置和使用
1.1 访问NFS存储
前面那篇介绍了本地存储本章就来介绍如何使用网络上上的存储设备。NFS即网络文件系统所实现的是Linux和Linux之间的共享
下面的练习我们将会在redhat8上创建一个文件夹/share然后通过NFS把它共享再在node1上把这个共享文件夹挂载到/nfs上 首先在redhat8上启动nfs-server服务并设置开启自动启动
[rootredhat8 ~]# systemctl enable nfs-server.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[rootredhat8 ~]#
创建准备共享的目录/share
[rootredhat8 ~]# mkdir /share
[rootredhat8 ~]#
在/etc/exporets中把目录/share共享出去
[rootredhat8 ~]# cat /etc/exports
/share *(rw,no_root_squash)
[rootredhat8 ~]#
这里*的意思是表示任何客户端都可以访问/share目录
让共享生效
[rootredhat8 ~]# exportfs -arv
exporting *:/share
[rootredhat8 ~]#
在redhat8上配置防火墙放行NFS
[rootredhat8 ~]# firewall-cmd --add-servicenfs
success
[rootredhat8 ~]# firewall-cmd --add-servicenfs --permanent
success
[rootredhat8 ~]# firewall-cmd --add-servicerpc-bind
success
[rootredhat8 ~]# firewall-cmd --add-servicerpc-bind --permanent
success
[rootredhat8 ~]# firewall-cmd --add-servicemountd
success
[rootredhat8 ~]# firewall-cmd --add-servicemountd --permanent
success
[rootredhat8 ~]#
在node1上访问这个共享文件夹首先使用showmount命令查看服务器上共享的目录
[rootnode1 ~]# showmount -e 192.168.161.16
Export list for 192.168.161.16:
/share *
[rootnode1 ~]#
把服务器上共享的目录挂载到本地/nfs目录上
[rootnode1 ~]# mkdir /nfs
[rootnode1 ~]# mount 192.168.161.16:/share /nfs/
[rootnode1 ~]#
查看挂载情况
[rootnode1 ~]# df -Th | grep nfs
192.168.161.16:/share nfs4 38G 5.4G 33G 14% /nfs
[rootnode1 ~]#
可以看到已经挂载好了
如果希望开机能够自动挂载则写入/etc/fstab中
[rootnode1 ~]# tail -1 /etc/fstab
192.168.161.16:/share /nfs nfs defaults 0 0
[rootnode1 ~]#
1.2 自动挂载
自动挂载的意思是把一个外部设备/dev/xx和某个目录/dir/yy关联起来。平时/dev/xx 是否挂载到了/dir/yy 上不需要考虑但访问 /dir/yy时系统就知道要访问 /dev/xx中的数 据这个时候系统会自动将/dev/xx挂载到/dir/yy 上
安装软件包的步骤如下
1挂载光盘
[rootredhat8 ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[rootredhat8 ~]#
这里准备把光盘作为yum源
2编写repo文件
[rootredhat8 ~]# cat /etc/yum.repos.d/aa.repo
[aa]
nameaa
baseurlfile:///mnt/AppStream
enabled1
gpgcheck0[bb]
namebb
baseurlfile:///mnt/BaseOS
enabled1
gpgcheck0
[rootredhat8 ~]#
开始安装autofs
[rootredhat8 ~]# yum -y install autofs 启动autofs并设置开机自动启动
[rootredhat8 ~]# systemctl enable autofs.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
[rootredhat8 ~]#
下面练习把光盘自动挂载到/zz/dvd 上。先把/zz创建出来
[rootredhat8 ~]# mkdir /zz
[rootredhat8 ~]#
记住,这里不需要创建目录/zz/dvd这个目录会自动创建
在/etc/auto.master.d目录中创建一个后缀为 autofs的文件后缀必须是autofs这里 创建的是aa.autofs
[rootredhat8 ~]# cat /etc/auto.master.d/aa.autofs
/zz /etc/auto.aa
[rootredhat8 ~]#
这里的意思是把哪个外部设备挂载到/zz的哪个子目录上由/etc/auto.aa决定内容使用 【Tab】键进行分隔。下面创建/etc/auto.aa
[rootredhat8 ~]# cat /etc/auto.aa
dvd -fstypeiso9660,ro :/dev/cdrom
[rootredhat8 ~]#
这个文件的格式如下
子目录 ‐fstype 文件系统,选项1,选项2 :外部设备
这里外部设备如果是本地磁盘或光盘冒号前面保持为空但是冒号不能省略。如果是其 他机器上共享的目录则写远端的IP
结合/etc/auto.master.d/aa.autofs整体的意思是当访问/zz/dvd时系统会自动 把/dev/cdrom挂载到/zz/dvd 上 重启autofs服务让我们刚做的配置生效
[rootredhat8 ~]# systemctl restart autofs.service
[rootredhat8 ~]#
确认现在光盘是没有挂载到/zz/dvd 上的而且/zz目录中也没有dvd目录
[rootredhat8 ~]# mount | grep -v auto | grep zz
[rootredhat8 ~]# ls /zz
[rootredhat8 ~]#
下面访问/zz/dvd
[rootredhat8 ~]# ls /zz/dvd
AppStream EULA images RPM-GPG-KEY-redhat-beta
BaseOS extra_files.json isolinux RPM-GPG-KEY-redhat-release
EFI GPL media.repo TRANS.TBL
[rootredhat8 ~]#
因为访问这个目录时能触发自动挂载系统自动创建/zz/dvd并把 /devcdrom挂载到这 个目录上再次验证挂载情况
[rootredhat8 ~]# mount | grep -v auto | grep zz
/dev/sr0 on /zz/dvd type iso9660 (ro,relatime,nojoliet,checks,mapn,blocksize2048)
[rootredhat8 ~]#
练习下面练习自动挂载NFS共享文件夹整个实验思路如下
在redhat上创建一个用户 mary家目录指定为/rhome/mary。在node1上也创建一个 用户mary家目录也指定为/rhome/mary但是node1上的 mary并不把这个家目录创建出来,如图 通过NFS把redhat8上的/rhome共享出去在node1上配置 autofs把redhat8上 的/rhome/mary关联到node1上的/rhome/mary中
当在node1上使用mary登录时会自动登录到/rhome/mary就会触发autofs自动把redhat:/rhome/mary挂载到node1的/rhome/mary目录上这样node1上的 mary也就有了家目录
在redhat8上创建/rhome目录然后创建用户 mary家目录设置为/rhome/mary用户 的uid设置为3001
[rootredhat8 ~]# mkdir /rhome
[rootredhat8 ~]# useradd -u 3001 -d /rhome/mary mary
[rootredhat8 ~]# passwd mary
更改用户 mary 的密码 。
新的 密码
无效的密码 密码少于 8 个字符
重新输入新的 密码
passwd所有的身份验证令牌已经成功更新。
[rootredhat8 ~]# ls /rhome/
mary
[rootredhat8 ~]#
此时在redhat8上mary用户就创建好了而且mary的家目录也是存在的
在node1上创建/rhome目录然后创建用户mary家目录设置为/rhome/mary。因为 指定了-M选项这个目录并没有被创建用户的uid设置为3001记住必须和 redhat8上的 mary具有相同的uid
[rootnode1 ~]# mkdir /rhome
[rootnode1 ~]# useradd -u 3001 -d /rhome/mary -M mary
[rootnode1 ~]# passwd mary
更改用户 mary 的密码 。
新的 密码
无效的密码 密码未通过字典检查 - 它没有包含足够的不同字符
重新输入新的 密码
passwd所有的身份验证令牌已经成功更新。
[rootnode1 ~]# ls /rhome/
[rootnode1 ~]#
可以看到mary的家目录/rhome/mary并没有被创建出来。在node1上切换到mary用户
[rootnode1 ~]# su - mary
su: 警告无法更改到 /rhome/mary 目录: 没有那个文件或目录
-bash-4.2$ exit
登出
[rootnode1 ~]#
在node1上因为mary没有家目录所以会出现上述警告信息输入“exit”退回到root 用户
在redhat8上通过NFS把/rhome共享出去编辑/etc/exports内容如下
[rootredhat8 ~]# cat /etc/exports
/share *(rw,no_root_squash)
/rhome *(rw,no_root_squash)
[rootredhat8 ~]#
这样就把/rhome共享出去了然后让此共享生效
[rootredhat8 ~]# exportfs -arv
exporting *:/rhome
exporting *:/share
[rootredhat8 ~]#
切换到node1上开始配置autofs创建/etc/auto.master.d/bb.autofs
[rootnode1 ~]# cat /etc/auto.master.d/bb.autofs
/rhome /etc/auto.bb
[rootnode1 ~]#
到底把哪个外部设备挂载到/rhome的哪个子目录上由/etc/auto.bb决定
下面创建/etc/auto.bb
[rootnode1 ~]# cat /etc/auto.bb
mary -fstypenfs,rw 192.168.161.16://rhome/mary
[rootnode1 ~]#
结合/etc/auto.master.d/bb.autofs整体的意思是当访问/rhome/mary时系统会自 动把redhat8:/rhome/mary挂载到node1的/rhome/mary目录上
[rootnode1 ~]# systemctl restart autofs.service
[rootnode1 ~]#
确认现在/rhome/mary是没有挂载任何东西的
[rootnode1 ~]# mount | grep -v auto | grep rhome
[rootnode1 ~]#
下面在node1上切换到mary记住通过su - mary而不是通过su mary
[rootnode1 ~]# su - mary
上一次登录三 12月 6 12:05:40 CST 2023pts/0 上
[marynode1 ~]$ pwd
/rhome/mary
[marynode1 ~]$ exit
登出
[rootnode1 ~]#
我们知道su - mary用户切换到mary的同时也会切换到mary的家目录这样会触发 autofs再次查看挂载情况
[rootnode1 ~]# mount | grep -v auto | grep rhome
192.168.161.16:/rhome/mary on /rhome/mary type nfs4 (rw,relatime,vers4.1,rsize262144,wsize262144,namlen255,hard,prototcp,timeo600,retrans2,secsys,clientaddr192.168.161.12,local_locknone,addr192.168.161.16)
[rootnode1 ~]#
可以看到,已经成功挂载了