Linux系统工程师--(4)网络文件系统

Linux系统工程师

实验所用系统为Redhat-rhel8.2。

Linux系统工程师–网络文件系统

实验环境:两台配置好网络软件仓库的虚拟机,ip为109和209

nm-connection-editor 
vim /etc/yum.repos.d/westos.repo

#此处不再赘述

一、samba服务简介

当一个服务,有很多人访问的时候,需要多台主机来同时维持该服务运行,所有主机链接后端存储服务器,在主机上存储的数据,最终会存储到后端存储服务器,避免因客户端主机瘫痪导致用户数据丢失,称之为存储分离。这一技术的本质是共享文件系统的读写权限,而不是将文件系统下载到客户端主机后共享。通过后端存储服务器,可以将不同主机的文件、权限等共享出去。
请添加图片描述

SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。
CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。

二、samba基本信息

服务启动脚本:
smb.service

主配置目录:
/etc/samba

主配置文件:
/etc/samba.conf		##配置文件模板:/etc/samba.conf.example

安全上下文:
samba_share_t

端口:
139
445

安装包:
samba
samba-common

三、samba的安装与启用

  • 安装
dnf install samba samba-common samba-client -y
#samba			服务主体
#samba-common	服务用到的配置文件
#samba-client	samba服务的客户端
  • 启动
systemctl enable --now smb.service
  • 启用
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
  • 查看
smbclient -L //172.25.254.109	##当前没有密码,直接回车

实验准备:
在真机,samba服务器(wetsosa主机),客户端(westosb主机)都安装samba服务。
请添加图片描述

  • windows下的目录共享
    建立一个目录,右键点击属性,选择共享,点击共享,添加用户everyone,点击共享。高级共享,勾选共享此文件,点击权限进行权限控制,点击应用并确定,逐步退出。

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
windows+r,输入cmd进入命令控制行,输入命令ipconfig /all 查看本机ip,在计算机中点击网络输入\\真机ip可以看到共享的目录。
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述

  • 将win资源共享到linux,在linux下访问时
smbclient -L //192.168.112.1					##输入指定用户密码访问windows系统中的共享资源westos目录(当要输入root密码时直接回车)
smbclient -L //192.168.112.1 -U administrator	##-L 列出目标主机共享的资源,-U指定用户身份访问

四、账号管理

1、添加账号

smbpasswd -a westos						##必须是本机存在的用户,密码随意,与westos登录系统密码无关
smbpasswd -a lee						##lee用户在服务器中不存在,添加失败
	useradd -s /sbin/nologin lee  -M	##添加用户后重新添加账号

请添加图片描述

2、删除与查看账号

pdbedit -x lee		##删除smb用户
pdbedit -L 			##查看smb用户

请添加图片描述

3、登录账号

smbclient -L //172.25.254.109 -U westos		##指定用户登录账号
## 报错NT_STATUS_LOGON_FAILURE为密码错误

登录速度慢的话可以做本地解析
vim /etc/hosts
///
172.25.254.109 westosa.westos.org	##Ip+hostname
///

请添加图片描述

#此时samba服务器主机westosa须存在samba账号westos,才能在客户端westosb主机访问到

五、samba用户访问家目录

cd /etc/samba/									##主配置目录
cp -p smb.conf.example smb.conf					##将配置文件模板复制到主配置文件中,重新生成配置文件,-p 复制权限
smbclient  //172.25.254.109/westos -U westos
smb: \> ls
## 报错NT_STATUS_ACCESS_DENIED listing \*		##因为selinux,smb用户不能浏览自己的家目录
setsebool -P samba_enable_home_dirs on			##调整selinux中的smb波尔值使用户可以访问家目录
smbclient  //172.25.254.109/westos -U westos	##访问成功

请添加图片描述

六、samba服务共享目录

1、共享自建目录

在samba服务器即westosa主机建立一个目录,目录对所有人可读可执行,编辑主配置文件,设定共享该目录,重启服务,在服务端即westosb主机查看是否共享成功。

mkdir /westos_share
ls -ld /westos_share						##查看权限
vim /etc/samba/smb.conf						##主配置文件
///
最后面
	[westos_share]							##共享的名字
	comment = westos share					##共享说明
	path = /westos_share					##指定共享的本机路径
///
systemctl restart smb.service				##重启服务
smbclient -L //172.25.254.109 -U westos		##查看,共享成功

请添加图片描述
#设定westos_share目录共享

请添加图片描述
#客户端查看共享成功

在samba服务器(westosa)的westos_share目录中建立文件,在客户端(westosb)查看新建的文件,但时会被selinux拒绝,此时设定新建文件的安全上下文,再重新访问。

touch /westos_share/westosfile{1..3}
smbclient  //172.25.254.109/westos_share -U westos			##查看新建的文件	
smb: \> ls
##NT_STATUS_ACCESS_DENIED listing \*						##仍被selinux拒绝
semanage fcontext -a -t samba_share_t '/westos_share(/.*)?'	##修改安全上下文
restorecon -RvvF /westos_share/								##读取设定
smbclient  //172.25.254.109/westos_share -U westos	
smb: \> ls													##访问成功

[注意] 用户自己建立的目录如果需要通过smb共享,那么安全上下文必须指定为samba_share_t

请添加图片描述
#在samba服务器先建立文件,因为客户端访问被selinux拒绝,修改安全上下文

请添加图片描述
#修改安全上下文之后访问成功

2、共享系统目录

在samba服务器(westosa)配置文件中设定共享系统目录/mnt,重启服务,在客户端(westosb)访问samba服务,/mnt被共享,但是不能访问内容。此时设定selinux不再对samba服务访问文件时的安全上下文进行限制,客户端可以访问内容。

vim /mnt/samba/smb.conf
///
	[mnt]
	comment = mnt dir
	path = /mnt
///
systemctl restart smb.service
smbclient -L //172.25.254.109 -U westos		##/mnt被共享成功
smbclient  //172.25.254.109/mnt -U westos	##ls不能访问内容
getsebool -a | grep samba
setsebool samba_export_all_ro off		##selinux将不再对samba服务访问文件时的安全上下文进行限制(关闭只读权限)
setsebool samba_export_all_rw off		##关闭读写权限
打开权限后重新访问
smbclient  //172.25.254.109/mnt -U westos	##ls访问成功

请添加图片描述
#设定/mnt目录共享
请添加图片描述
#selinux将不再对samba服务访问文件时的安全上下文进行限制

请添加图片描述
#访问成功

七、samba的访问控制

1、全局白名单

在samba服务器(westosa)配置文件中设定只允许209号主机(客户端westosb)访问samba服务器,重启服务。

vim /etc/samba/smb.conf
///
91	hosts allow = 172.25.254.209	##只允许209主机访问主机的samba服务器
									##可以有多个,空格隔开
///
systemctl restart smb.service

请添加图片描述
在客户端(westosb)访问samba服务器,访问成功,在真机(9号)访问失败。
请添加图片描述
请添加图片描述

2、全局黑名单

在samba服务器(westosa)编辑主配置文件,“;”注释掉白名单,设定拒绝209主机访问主机的samba服务器,重启服务。

vim /etc/samba/smb.conf
///
91;	hosts allow = 172.25.254.209	##;注释掉白名单
92	hosts deny = 172.25.254.209			##黑名单,拒绝209主机访问主机的samba服务器
///
systemctl restart smb.service

请添加图片描述
在客户端(westosb)访问samba服务器,访问失败,在真机(9号)访问成功。
请添加图片描述

请添加图片描述

[注意] 此位置设定的访问控制为全局访问控制,影响本台smb服务的所有共享

3、目录白名单

在samba服务器(westosa)编辑主配置文件,“;”注释掉全局设定,设定westos_share这个共享只能被209主机访问,重启服务。

vim /etc/samba/smb.conf
///
319	hosts allow = 172.25.254.209	##westos_share这个共享只能被209主机访问,此访问设定只针对westos_share
///
systemctl restart smb.service

请添加图片描述
请添加图片描述

在客户端(westosb)访问samba服务器westos_share目录,访问成功,在真机(9号)可以列出,但不能访问。
请添加图片描述
请添加图片描述

八、samba的常用配置参数

writable = yes				##可写
write list = westos			##指定用户可写
write list = +/@westos		##指定用户组可写

valid users = lee			##指定用户访问
valid users = +/@lee		##指定用户组访问

browseable = yes|no			##是否隐藏共享

map to guest = bad user		##把没有身份的用户都映射为guest账号
guest ok = yes				##此共享允许guest用户访问
admin users = lee			##指定此共享的超级用户身份呢

1、隐藏共享资源

在samba服务器(westosa)编辑主配置文件,“;”注释掉目录访问控制,设定隐藏westos_share这个共享,无需重启。在客户端(westosb)列出时看不到westos_share。

vim /etc/samba/smb.conf
///
browseable = no								##隐藏共享目录
///		
无需重启

###westosb
smbclient -L //172.25.254.109 -U westos		##列出时没有westos_share

请添加图片描述
请添加图片描述

2、显示共享资源

在samba服务器(westosa)编辑主配置文件,设定显示westos_share这个共享,无需重启。在客户端(westosb)列出时可以看到westos_share。

vim /etc/samba/smb.conf
///
browseable = yes							##显示共享资源
///
无需重启
smbclient -L //172.25.254.109 -U westos		##列出时有westos_share

请添加图片描述
请添加图片描述

3、访问用户控制

在samba服务器(westosa)编辑主配置文件,设定显示westos_share这个共享只能通过samba用户westos登录,无需重启。

vim /etc/samba/smb.conf
///
320        valid users = westos			##此共享只能通过samba用户westos登录
///

请添加图片描述
在客户端(westosb)访问时,westso用户可以访问,lee用户被拒绝。

smbclient  //172.25.254.109/westos_share -U westos	##westso用户可以访问
smbclient  //172.25.254.109/westos_share -U lee		##lee用户被拒绝

请添加图片描述
在samba服务器(westosa)编辑主配置文件,设定显示westos_share这个共享只能通过samba用户westos组成员登录,无需重启,添加lee用户附属组westos,于是lee用户也可以访问。

vim /etc/samba/smb.conf
///
320        valid users =@westos						##+/@都可以,允许westos组成员可以使用此共享
///
usermod -G westos lee								##在samba服务器中添加lee用户附属组
smbclient  //172.25.254.109/westos_share -U lee		##lee用户可以访问

请添加图片描述
请添加图片描述

[注意] 新建用户不能使用,因为此时还不是samba用户

4、写权限管理

1)共享资源可写

在samba服务器中,设定目录权限对所有用户可写,在samba服务配置文件中,注释掉访问控制,设定westos_share以读写方式共享。

chmod 777 /westos_share/			##指定目录权限对所有用户可写
vim /etc/samba/smb.conf
///
320;     valid users =@westos	
321		  writable = yes			##westos_share以读写方式共享
///

请添加图片描述

在客户端中使用lee用户挂载samba共享资源到/mnt目录中,查看挂载状态,在/mnt里建立文件,并在samba服务器中查看建立的文件。

###westosb
mount //172.25.254.109/westos_share /mnt/ -o username=lee,password=lee	##lee用户挂载samba共享资源到westosb主机/mnt目录中
df	
touch /mnt/file			##建立文件成功
###westosa
ls /westos_share		##可以看到建立的文件

[注意] 挂载之后westosb主机/mnt目录中建立文件存储的真实位置为samba服务器共享出来的westos_share目录

请添加图片描述
请添加图片描述

2)指定用户可写

在samba服务器配置文件中,注释读写方式共享,设定westos_share此共享只对lee用户可写。

vim /etc/samba/smb.conf
///
321;	writable = yes
322	write list = lee	##此共享只对lee用户可写
///

请添加图片描述

在客户端卸载samba服务器,以用户lee身份重新挂载,建立文件。

umount /mnt
mount //172.25.254.109/westos_share /mnt/ -o username=lee,password=lee
touch /mnt/file1		##建立文件成功

请添加图片描述
请添加图片描述

卸载samba服务器,以用户westos身份重新挂载,建立文件失败,因为只有lee用户可写。

umount /mnt
mount //172.25.254.109/westos_share /mnt/ -o username=westos,password=westos
touch /mnt/file2		##westos用户写功能被拒绝

请添加图片描述

3)指定用户组可写

在samba服务器配置文件中,设定westos_share此共享只对lee组成员可写,添加westos用户附属组为lee。

vim /etc/samba/smb.conf
///
322	write list = +lee		##此共享只对lee组成员可写
///
usermod -G lee westos		##添加westos用户附属组为lee

请添加图片描述
请添加图片描述

在客户端,卸载并使用westos用户重新挂载,重新建立文件,建立成功,在服务端可以查看。

###westosb
umount /mnt
mount //172.25.254.109/westos_share /mnt/ -o username=westos,password=westos
touch /mnt/file2				##建立文件成功

###westosa
ls -l /westos_share/file2		##查看file2的所有人所有组为westos

请添加图片描述
请添加图片描述
请添加图片描述

5、匿名用户登录控制

samba服务器默认拒绝匿名用户登录,在配置文件中注释写入动作,把没有身份的用户都映射为guest账号,设定westos_share此共享允许guest用户访问,重启服务。

smbclient  //172.25.254.109/westos_share	##默认拒绝匿名用户登录samba服务
			##此访问方式没有指定用户,则为匿名用户。不需要输入密码,直接回车
vim /etc/samba/smb.conf
///
322;	write list = lee					##注释写入动作
119	map to guest = bad user					##把没有身份的用户都映射为guest账号
323	guest ok = yes							##此共享允许guest用户访问
///
systemctl restart smb.service

请添加图片描述
请添加图片描述
请添加图片描述
在客户端使用匿名用户登录,可以访问,并且可以挂载。

smbclient  //172.25.254.109/westos_share	##可以访问
umount /mnt
mount //172.25.254.109/westos_share /mnt/ -o username=guest

请添加图片描述

九、autofs+samba

如果用手动挂载samba服务到客户端的某个目录,当没有向服务器中写入数据,或浏览数据时,这个挂载依然存在,那么在闲置时依然使用服务器资源,就是资源浪费
现在应该设定客户端使用时自动挂载,不用时自动卸载,这样才能最大化使用服务器资源

在客户端安装autofs实现自动挂载与卸载,编辑默认策略文件,设定最终挂载点的上层目录和子挂载策略文件(名称自定义,系统中默认不存在)。编辑子挂载策略文件,设定挂载策略。开启autofs服务。

###客户端
dnf install autofs -y			##实现自动挂载和卸载
vim /etc/auto.master			##默认策略文件
///
/westos /etc/auto.share			##最终挂载点的上层目录和子挂载策略文件(名称自定义,系统中默认不存在)
///

vim /etc/auto.share				##子挂载策略文件
///
samba	-fstype=cifs,username=westos,password=westos	://172.25.254.109/westos_share
#最终挂载点的相对路径	挂载参数(挂载资源的文件系统类型,使用samba用户的名称,密码)	挂载服务器ip与资源共享
///
systemctl enable --now autofs

请添加图片描述
请添加图片描述
请添加图片描述
在客户端切到/westos/samba(ls是不存在的,但是可以切进去),df查看,自动挂载。默认300s后自动卸载。为了实验效果,编辑autofs的配置文件,设定挂载资源5s以上无任何程序使用则自动卸载,重启服务。再次切入/westos/samba,df自动挂载,切出,等待5s,df查看,自动卸载。

测试:
cd /westos/samba
df							##自动挂载
cd(300s后)
df							##自动卸载

如果需要时间更短,则可以更改配置文件
vim /etc/autofs.conf		##配置文件
///
timeout = 5					##挂载资源5s以上无任何程序使用则自动卸载,默认300s自动卸载
///
systemctl restart autofs
cd /westos/samba
df							##自动挂载
cd(5s后)
df							##自动卸载

请添加图片描述
请添加图片描述请添加图片描述

十、samba的多用户挂载

在客户端中,超级用户用自己的samba账号挂载了服务器资源,自己是可以浏览并使用的,但是,客户端的普通用户没有通过任何samba认证,也可以浏览root用户挂载的samba服务器上的资源,这样客户端就出现了很严重的越级漏洞。

在samba服务器配置文件里注释匿名用户访问权限,重启服务。

vim /etc/samba/smb.conf
///
119;	map to guest = bad user		
323;	guest ok = yes
///
systemctl restart smb.service

在客户端安装多用户认证安全插件,并手动挂载samba服务。

dnf install cifs-utils -y	##安装多用户认证安全插件
man mount.cifs				##查看安全插件的用法
mount //172.25.254.109/westos_share /mnt/ -o username=westos,password=westos	##手动挂载

请添加图片描述

当用户挂载smb资源时需要输入帐号和密码,如果直接书写账号密码,-o参数指定帐号和密码,会被其他人看到,所以写到文件中并设定安全权限。

vim /root/smbpass			##设定samba账号和密码,文件名称自定
///
username=westos
password=westos
///
chmod 600 /root/smbpass		##只有自己可读

请添加图片描述
请添加图片描述
卸载资源,使用credentials=/root/smbpass,multiuser,sec=ntlmssp参数挂载。参数credentials指定密码文件后密码就会被隐藏,不会泄漏;multiuser多用户认证参数,挂载时添加此参数,没有通过认证的用户不可以使用smb上的资源;sec=ntlmssp,用户使用的认证方式。

umount /mnt
mount -o credentials=/root/smbpass,multiuser,sec=ntlmssp //172.25.254.109/westos_share /mnt/

请添加图片描述

[注意] 当卸载时出现报错target is busy.使用命令fuser-kvm

切换到westos用户下,访问samba服务,如果密码输入错误,需要清空添加的密码,重新输入。

su - westos
cifscreds add -u westos 172.25.254.109
cifscreds clearall
ls /mnt

请添加图片描述

[注意] 出现报错key search failed:key has expired则删除该用户重新建立,userdel -r westos,useradd westos

十一、NFS

Net File System
网络文件系统,Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。
NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。

1、nfs基本信息

nfs-utils			##安装包(客户端与服务端都是)
nfs-server			##服务脚本

/etc/exports		##共享配置文件
netstat -antlupe | grep 2049

2049	 			##默认端口

2、nfs的启用

在服务器(westosa)和客户端(westosb)都安装nfs服务器并开启服务,在我的系统里nfs是默认安装好的。nfs的访问机制很特殊,先访问rpc-bind,由rpc-bind分配端口,找到mountd,再查找nfs,传递访问请求。因此,在服务器端(westosa)的火墙策略里要允许它们的访问请求,重启火墙。

dnf install nfs-utils -y							##安装nfs
systemctl start nfs-server							##启用
firewall-cmd --permanent --add-service=nfs			
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

请添加图片描述
在客户端测试时,列出nfs服务器中的共享资源,如果报错Unable to receive;是因为没有开启rpc-bindmountd,全部开启后,可以访问nfs服务。

showmount  -e 172.25.254.109				##列出nfs服务器中的共享资源
#报错clnt_create: RPC: Unable to receive		##没有开启rpc-bind和mountd
全部开启后
#Export list for 172.25.254.20:				##此时没有资源

请添加图片描述
请添加图片描述

3、nfs配置

1)nfs配置参数
anonuid=1000,anongid=1000	##指定用户身份
sync						##更改生成后同步数据到服务器(占用资源少,存储效率高)
async						##时时同步数据到服务器(数据完整性更高,占用资源更多,存储效率低)
rw							##读写
ro							##只读
no_root_squash				##root用户挂载不转换身份
2)实验–只读共享

在服务器(westosa)建立目录/westosdir,设定满权限,为了实验效果,不符合安全要求,编辑共享策略文件,设定只读共享,并在数据真实改变后才同步数据到nfs共享目录,不重启服务,执行exportfs -rv使设定的策略生效。

mkdir /westosdir
ls -ld /westosdir			##查看原有权限
chmod 777 /westosdir		##设定满权限,是为了实验效果,不符合安全要求
vim /etc/exports
///
/westosdir		*(ro,sync)	##只读共享,并在数据真实改变后才同步数据到nfs共享目录
///
不能重启服务
exportfs -rv				##使设定的策略生效

请添加图片描述
请添加图片描述

在客户端查看共享,通过挂载在/mnt下使用共享,df查看挂载状态。在服务器上/westosdir下建立文件,在客户端/mnt里可以浏览到该文件。

###westosb
showmount  -e 172.25.254.109			##查看共享
mount 172.25.254.109:/westosdir /mnt	##使用共享,挂载在/mnt下
df
在westosa建立文件westosdir/file{1..3}
ls /mnt									##在客户端可以看到文件

请添加图片描述

3)实验–指定共享权限

在服务器(westosa)编辑共享策略文件,设定对除209以外的主机只读共享,对209(westosb)读写共享,并在数据真实改变后才同步数据到nfs共享目录,不重启服务,执行exportfs -rv使设定的策略生效。

vim /etc/exports
///
/westosdir		*(ro,sync) 172.25.254.209(rw,sync)	
##对除209以外的主机只读共享,对209读写共享		
///
exportfs -rv

请添加图片描述

在客户端先卸载共享服务,重新挂载在/mnt下使用共享,df查看挂载状态。在/mnt里建立文件,可以在服务器里查看到该文件的用户身份。

###westosb
umount /mnt
mount 172.25.254.109:/westosdir /mnt
df
touch /mnt/file4	

###westosa
ls -l /westosdir	##查看file4用户身份

[注意] 不使用用户挂载到本地目录的情况下,使用到的用户身份是服务器上的nobody

请添加图片描述

4)实验–指定挂载身份

在服务器(westosa)编辑共享策略文件,设定客户端在挂载时使用用户为1000,不是默认的nobody

vim /etc/exports
///
/westosdir		*(ro,sync) 172.25.254.209(rw,sync,anonuid=1000,anongid=1000)	
##指定客户端在挂载时使用用户为1000,不是默认的nobody	
///
exportfs -rv

请添加图片描述

[注意] 指定的ip必须在服务器真实存在,如果只指定uid,那么只影响用户身份,用户组还是nobody。

在客户端先卸载共享服务,重新挂载在/mnt下使用共享。在/mnt里建立文件,可以在服务器里查看到该文件的用户身份为策略文件中指定的用户。

###westosb
umount /mnt
mount 172.25.254.109:/westosdir /mnt
touch /mnt/file5

###westosa
ls -l /westosfir		##查看file5用户身份

请添加图片描述

请添加图片描述

5)实验–设定延用客户端挂载身份

在服务器(westosa)编辑共享策略文件,设定当客户端使用root身份进行nfs资源挂载后沿用自己的root身份到服务器中。

vim /etc/exports
///
/westosdir		*(ro,sync) 172.25.254.209(rw,sync,no_root_squash)	
##当客户端使用root身份进行nfs资源挂载后沿用自己的root身份到服务器中
///
exportfs -rv

请添加图片描述

在客户端先卸载共享服务,重新挂载在/mnt下使用共享。在/mnt里建立文件,可以在服务器里查看到该文件的用户身份为客户端挂载时的身份。

###westosb
umount /mnt
mount 172.25.254.109:/westosdir /mnt
touch /mnt/file6

###westosa
ls -l /westosfir		##查看file6用户身份

请添加图片描述
请添加图片描述

4、nfs+autofs

手动挂载nfs服务到客户端的某个目录,当没有向服务器中写入数据,或浏览数据时,这个挂载依然存在,那么在闲置时依然使用服务器资源,就是资源浪费。
设定客户端使用时自动挂载,不用时自动卸载,这样才能最大化使用服务器资源

在客户端安装autofs实现自动挂载与卸载,编辑主策略文件,注释samba服务的挂载策略,不然会挂载冲突,写入最终挂载点的上层目录与子策略文件。编辑子策略文件(默认不存在,自行建立),设定挂载策略,重启autofs服务。

###客户端
dnf install autofs -y	##实现自动挂载和卸载

vim /etc/auto.master	##主挂载策略文件
///
注释掉samba的策略文件,不然会挂载冲突
#/westos	/etc/auto.share
/westos		/etc/auto.nfs
#最终挂载点的上层目录	子策略文件
///

vim /etc/auto.nfs		##编辑子策略文件,默认不存在,自行建立
///
nfs	-rw	172.25.254.109:/westosdir
#最终挂载点的相对路径	挂载参数		nfs服务器上共享出来的资源
///
systemctl restart autofs.service

请添加图片描述
请添加图片描述

在客户端查看/westos目录为空,但是可以切入,切入后nfs服务自动挂载,如果没有服务占用目录,切出则自动卸载。

ls /westos/			##目录为空
cd /westos/nfs		##可以切入
df					##自动挂载

请添加图片描述

十二、iscsi

samba服务和nfs服务共享目录文件
iscsi服务共享设备

1、对服务器进行设备管理

在真机执行virt-manager,选择服务器westosa,选择add hardware,选择storage,添加5g的设备,点击finish
请添加图片描述

在服务器查看设备,进行分区管理。安装共享策略管理软件,并开启服务。

fdisk -l						##查看设备		
fdisk /dev/vdb 					##对设备进行分区管理,n--p--回车--回车--+2g--p查看--wq
dnf install targetcli  -y		##共享策略管理软件
systemctl enable --now target	##开启服务

请添加图片描述请添加图片描述

在服务器编写共享策略。

targetcli 			
##使用此命令编写共享策略
/> ls				
##ls查看。蓝色的为目录,紫色的为目录中的命令
/> /backstores/block create westos:storage1 /dev/vdb1 	
##设定系统中真实设备在此软件中设备的别名
/> /iscsi create iqn.2021-08.org.westos:stroage1		
##IQN Iscsi Qualified Name(Iscsi限定名称,格式为iqn.XXX-MM.域名反写.别名)
##建立对外的共享名称,ipn的命名方式
/> /iscsi/iqn.2021-08.org.westos:stroage1/tpg1/luns create /backstores/block/westos:storage1
##把共享名称和内部指定设备关联
/> /iscsi/iqn.2021-08.org.westos:stroage1/tpg1/acls create iqn.2021-08.org.westos:westoskey
##为共享设定访问密码,此处的westoskey应该是一段加密字符
/> exit
##保存在/etc/target/saveconfig.json

请添加图片描述

2、在客户端进行设备管理

1)挂载从服务器共享的设备

在客户端安装软件,发现资源主机要识别的设备,此时连接109失败,需要设定109主机火墙。

dnf install iscsi-initiator-utils.x86_64 -y		##客户端软件
systemctl status iscsid							##对客户端配置控制服务生效
systemctl status iscsi							##客户端对于资源利用的服务
 
iscsiadm -m discovery -t st -p 172.25.254.109	
##-m:类型 discovery:发现 -t:指定要识别的设备类型 st:send target -p:指定资源主机ip
##此时连接109失败,需要设定109主机火墙

###westosa
firewall-cmd --permanent --add-port=3260/tcp	##在westosa主机中,开放服务的端口让客户端可以访问
firewall-cmd --reload

iscsiadm -m discovery -t st -p 172.25.254.109	##在客户端重新访问,共享信息可以查询

请添加图片描述请添加图片描述
请添加图片描述

请添加图片描述

设定完成后,登录共享设备,此时无法登录,因为在客户端未指定服务端的共享key。要在文件中指定服务器中的共享key。重启服务。重新登录。

iscsiadm  -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.109 -l   
##-T:指定要访问的共享设备名称 -l:登录共享设备
##此时无法登录,因为在客户端未指定服务端的共享key

vim /etc/iscsi/initiatorname.iscsi					##在此文件中指定共享key
///
InitiatorName=iqn.2021-08.org.westos:westoskey		##服务器中的共享key
///
systemctl restart iscsid
iscsiadm  -m node -T iqn.2021-08.org.westos:strage1 -p 172.25.254.109 -l  
##重新登录,登录成功

请添加图片描述
请添加图片描述

设定完成后,在系统中会出现一个新的硬盘,大小为服务器中共享的设备大小,对设备进行分区管理,初始化与挂载。

fdisk -l		##在系统中会出现一个新的硬盘,大小为服务器中共享的设备大小

fdisk   /dev/sda  
mkfs.xfs /dev/sda1
mount /dev/sda1	/mnt

[注意] 在客户端使用设备存储的数据实际上在服务端的设备中。

请添加图片描述
请添加图片描述
但是因为网络通信可能会导致设备名发生改变,所以建议使用设备id挂载,blkid查看设备id,将挂载策略写进挂载策略文件里,重启。

blkid				##使用设备id挂载,因为网络通信可能会导致设备名发生改变
vim /etc/fstab		##挂载策略文件
///
UUID=62f69d75-abe0-4c6b-a59c-dd69b6f80965		/mnt		xfs	defaults	0 0
///
reboot

请添加图片描述

请添加图片描述

因为该文件的挂载策略优先于网络和iscsi服务启动,刚开机时,网络和服务还没有启动,这样挂载会导致识别不到设备从而挂载失败,最终导致超时,系统不能启动。因此要设定此设备在挂载时,先启动网络和iscsi服务后生效

解决:输入超级用户密码,进入shell,编辑挂载策略文件,修改有问题的行。

vim /etc/fstab				##挂载策略文件
///
UUID=62f69d75-abe0-4c6b-a59c-dd69b6f80965		/mnt		xfs	defaults,_netdev	0 0
##指定此设备在挂载时,先启动网络和iscsi服务后生效
///
reboot

请添加图片描述请添加图片描述

在真机shell里ssh连接客户端,df查看是否自动挂载。

ssh -l root 172.25.254.209	##当前在真机shell
df							##查看

请添加图片描述

2)删除设备

在客户端编辑自动挂载策略文件,删除网络设备的自动挂载信息,卸载设备,并退出登录。但此时重启iscsi服务,设备被还原,因为数据未被删除。

vim /etc/fstab		##删除网络设备的自动挂载信息
umount /mnt			##卸载设备
tree /var/lib/iscsi	##在客户端读取到的服务器的所有数据存放目录
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.109 -u	##退出登录
fdisk -l			##退出登录后设备消失,但是数据还在,重启iscsi服务后设备会自动出现
systemctl restart iscsi
fdisk -l			##设备还原

请添加图片描述
请添加图片描述

永久删除时,先登出,删除客户主机中此网络设备的数据,查看数据是否被删除,然后重启服务,查看设备,已经被删除。

iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.109 -u		
##先登出
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.109 -o delete	
##删除客户主机中此网络设备的数据
tree /var/lib/iscsi			##查看,数据被删除
systemctl restart iscsi		##重启服务
fdisk -l					##重启服务后,设备未还原

请添加图片描述

3、在服务端删除设备

在服务端编辑共享策略,删除共享数据。

targetcli
/> clearconfig confirm=True		##清空服务器中iscsi的共享数据
/> exit

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值