网络文件系统(samba、nfs、iscsi)

一、samba服务简介

1、smb协议

smb(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

2、ftp 服务 与 samba 服务对比

(1)ftp 的优缺点:
优点:文件传输、应用层协议、可跨平台
缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件

(2)Samba 的特性:
使用 smb/cifs 协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件

作用:
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun

Linux 系统用到的是cifs

CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文本传输协议和超文本传输协议的一个实现   

二、samba基本信息

samba 的基本信息
服务启动脚本 smb.service
主配置目录 /etc/samba
主配置文件 /etc/samba/samba.conf
安全上下文 samba_share_t
端口 139    445  
安装包 samba  samba-common

网络文件系统(samba、nfs、iscsi)_第1张图片
 

由于/etc/samba/ samba.conf 中内容较少,配置文件不是很完整

所以cp smb.conf.example smb.conf 使配置文件完整

网络文件系统(samba、nfs、iscsi)_第2张图片

 网络文件系统(samba、nfs、iscsi)_第3张图片

三、samba的安装与启用

samba的安装:
dnf install samba samba-common samba-client -y

samba服务启动:
systemctl enable --now smb

samba服务启用
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload 

测试:
smbclient  -L //172.25.254.101    ##当要输入root密码时请直接回车

网络文件系统(samba、nfs、iscsi)_第4张图片

三、samba用户的建立

1.samba用户必须是本地存在的用户
2.samba用户的建立

smbpasswd -a westos    ##添加用户
pdbedit -L        ##查看用户列表
pdbedit -x westos        ##删除用户

网络文件系统(samba、nfs、iscsi)_第5张图片

四、samba用户访问加目录

当selinux开启时:
setsebool  -P samba_enable_home_dirs on
(1)windows下:
\\172.25.254.20        ##访问
net use            ##查看访问记录
net use * /del        ##删除访问记录

(2)在linux下:
smbclient  //172.25.254.101/westos -U westos

网络文件系统(samba、nfs、iscsi)_第6张图片

验证:

网络文件系统(samba、nfs、iscsi)_第7张图片

五、samba服务共享目录

mkdir /westosdir
touch /westosdir/westosfile{1..5}
semanage fcontext -a -t samba_share_t '/westosdir(/.*)?'
restorecon -RvvF /westosdir/
vim /etc/samba/smb.conf
systemctl restart smb

[westos_share]            ##共享名称
    comment = westos dir    ##共享说明
    path = /westosdir    ##共享路径

网络文件系统(samba、nfs、iscsi)_第8张图片

没有设置安全上下文的情况:

设置安全上下文之后情况:

网络文件系统(samba、nfs、iscsi)_第9张图片

 如果共享目录为系统目录:例如/mnt

[westos_share]
comment = westos dir
path = /mnt


因为系统文件不能随便给权限或者设置其安全上下文,所以需要开启下面这个服务samba_export_all_ro

getsebool -a | grep samba
setsebool -P samba_export_all_ro on

网络文件系统(samba、nfs、iscsi)_第10张图片

 验证:

网络文件系统(samba、nfs、iscsi)_第11张图片

六、samba的访问控制

hosts allow    172.25.254.1 172.25.254.        ##当写到单独共享时之对此共享生效
hosts deny                    ##当写到【GLOBAL】时对samba整体生效

网络文件系统(samba、nfs、iscsi)_第12张图片

测试:

 网络文件系统(samba、nfs、iscsi)_第13张图片

七、samba的常用配置参数

writable = yes  可写
write list = lee 指定用户可写
write list = +westos 指定组可写
write list = @westos 指定组可写
valid users = lee 指定访问用户
valid users = +lee|@lee 指定访问组
browseable = yes|no 是否隐藏共享

 测试:(此时的测试可以将这个共享目录挂载之后进行写入)

vim /etc/samba/smb.conf
writable = yes		##可写
systemctl restart smb.server
chmod 777 /westosdir   为了方便实验,所以给这个目录777权限
mount -o username=westos,password=westos //172.25.254.101/westos_share /mnt

 网络文件系统(samba、nfs、iscsi)_第14张图片

vim /etc/samba/smb.conf
write list = lee   指定lee 可写
systemctl restart smb.service

 

网络文件系统(samba、nfs、iscsi)_第15张图片

usermod -G westos lee
vim /etc/samba/smb.conf
writ list = +westos  westos组可写
systemctl restart smb.service
mount -o username=lee,password=westos //172.25.254.101/westos_share /mnt
touch file1

网络文件系统(samba、nfs、iscsi)_第16张图片

vim /etc/samba/smb.conf
valid users = lee ##指定访问用户
systemctl restart smb.service
mount -o username=westos,password=westos //172.25.254.101/westos_share /mnt
mount -o username=lee,password=westos //172.25.254.101/westos_share /mn

 网络文件系统(samba、nfs、iscsi)_第17张图片

 网络文件系统(samba、nfs、iscsi)_第18张图片

 指定访问组和上面一个道理,这里不进行测试

vim /etc/samba/smb.conf
browseable = yes|no	##是否隐藏共享
 systemctl restart smb.service
smbclient  -L //172.25.254.101

网络文件系统(samba、nfs、iscsi)_第19张图片

网络文件系统(samba、nfs、iscsi)_第20张图片

map to guest = bad user 写到全局设定中(118行)
guest ok = yes   允许匿名用户访问
admin users = lee 指定此共享的超级用户身份呢
vim /etc/samba/smb.conf
map to guest = bad user	##写到全局设定中(118)
guest ok = yes		##允许匿名用户访问
systemctl restart smb.service 
mount -o username=guest //172.25.254.101/westos_share /mnt

网络文件系统(samba、nfs、iscsi)_第21张图片

 网络文件系统(samba、nfs、iscsi)_第22张图片

网络文件系统(samba、nfs、iscsi)_第23张图片

八、samba的多用户挂载

在客户端如果用普通的挂载方式
没有用过用户验证的人也可以访问samba服务

dnf install cifs-utils -y
vim /root/smbpass
username=westos
password=westos
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.101/westos_share /mnt

#credentials=/root/smbpass    指定认证文件
#sec=ntlmssp            指定认证类型
#multiuser            支持多用户

 

root@client ~]# su - westos
[westos@client ~]$ cd /mnt
[westos@client mnt]$ ls              ##客户端主机的westos用户没有通过认证
ls: cannot open directory '.': Permission denied
[westos@client mnt]$ ls
ls: cannot open directory '.': Permission denied
[westos@client mnt]$ cifscreds add  -u westos    172.25.254.101
Password:

[westos@client mnt]$ ls    ##通过认证可以显示
file1  file2  file3

网络文件系统(samba、nfs、iscsi)_第24张图片

[westos@test /]$ cifscreds add  -u lee   172.25.254.101
Key search failed: Key has expired    ##当遇到此报错信息

[westos@test /]$ cifscreds add  -u lee   -d 172.25.254.101
Password:
[westos@test ~]$ cifscreds clearall    ##执行以上两条命令解决报错

autofs+samba

autofs:在客户端实现自动挂载卸载的软件
下载:dnf install autofs.x86_64
配置方式:
vim /etc/auto.master
最终挂载点的上层目录    自动以子策略文件
/mnt            /etc/auto.samba

vim 自动以子策略文件(/etc/auto.samba)
最终挂载点    挂载参数    挂载资源
samba        -fstype=cifs,username=westos,password=westos    ://172.25.254.101/westos_share

systemctl restart autofs

测试:
cd /mnt/samba
df
cd /root
等待资源闲置超时    ##默认300秒 vim /etc/autofs.conf ---->Timeout=3
df
挂载资源自动卸载

网络文件系统(samba、nfs、iscsi)_第25张图片

 

NFS

Net File System

NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

工作原理:

NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。文件通常以块为单位进行传输。其大小是8KB(虽然它可能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据。

特点:

(1)提供透明文件访问以及文件传输;

(2)容易扩充新的资源或软件,不需要改变现有的工作环境;

(3) 高性能,可灵活配置。

nfs基本信息
nfs-utils ##安装包
nfs-server ##服务脚本
/etc/exports ##共享配置文件

nfs的启用

systemctl start nfs-server
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload

网络文件系统(samba、nfs、iscsi)_第26张图片

测试:

[root@server ~]# showmount -e 172.25.254.101
Export list for 172.25.254.101:

nfs配置

vim /etc/exports        ##此文件更改后生效exportfs -rv

共享目录        共享给谁(共享参数)

/westosdir        *(ro)

 测试:

网络文件系统(samba、nfs、iscsi)_第27张图片

nfs配置参数

anonuid=1000,anongid=1000 指定用户身份
sync 更改生成后同步数据到服务器
async 时时同步数据到服务器
rw 读写
ro 只读
no_root_squash    root用户挂载不转换身份

 测试:

mount 172.25.254.101:/westosdir  /mnt/

网络文件系统(samba、nfs、iscsi)_第28张图片

 

网络文件系统(samba、nfs、iscsi)_第29张图片

nfs+autofs

参看autofs.samba章节内容

vim /etc/auto.master
/mnt    auto.nfs
vim /etc/auto.nfs
nfs    172.25.254.101:/westosdir
systemctl restart autofs.service 
cd /mnt/nfs
df

测试:

网络文件系统(samba、nfs、iscsi)_第30张图片

iscsi

iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:

  1. 把原来只用于本机的SCSI协议透过TCP/IP网络发送,使连接距离可作无限的地域延伸;

  2. 连接的服务器数量无限(原来的SCSI-3的上限是15);

  3. 由于是服务器架构,因此也可以实现在线扩容以至动态部署.

功能:

iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。

iSCSI使用 TCP/IP 协议(一般使用TCP端口860和3260)。 本质上,iSCSI 让两个主机通过 IP 网络相互协商然后交换SCSI命令。这样一来,iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。不像某些 SAN 协议,iSCSI 不需要专用的电缆;它可以在已有的交换和 IP 基础架构上运行。然而,如果不使用专用的网络或者子网( LAN 或者 VLAN ),iSCSI SAN 的部署性能可能会严重下降。于是,iSCSI 常常被认为是光纤通道(Fiber Channel)的一个低成本替代方法,而光纤通道是需要专用的基础架构的。但是,基于以太网的光纤通道(FCoE)则不需要专用的基础架构。
 

1.fdisk /dev/vdb -------> /dev/vdb1

2.dnf install targetcli  -y
iscsi_server  #服务端配置
targetcli   #进入运行环境
/> /backstores/block create westos_storage1 /dev/vdb1   #将/dev/vdb变成网络磁盘
/> /iscsi create iqn.2020-08.com.westos:storage1   #创建一个人iqn 的表达方式的链
/> /iscsi/iqn.2020-08.com.westos:strage1/tpg1/luns create /backstores/block/westos_storage1    #将网络磁盘和链联系起来
/> /iscsi/iqn.2020-08.com.westos:strage1/tpg1/acls create iqn.2020-08.com.westos:westoskey1    #创建key 密码
/> exit  #退出保存

网络文件系统(samba、nfs、iscsi)_第31张图片

 网络文件系统(samba、nfs、iscsi)_第32张图片

网络文件系统(samba、nfs、iscsi)_第33张图片

iscsi_client   #客户端

dnf install iscsi-initiator-utils.x86_64 -y  

vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-08.com.westos:westoskey1     <----  key check

systemctl restart iscsid

iscsiadm -m discovery -t st -p 172.25.254.101
iscsiadm  -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -l   ---> /dev/sda

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

iscsiadm  -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -u删除/dev/sda
iscsiadm  -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -o delete 删除树文件

网络文件系统(samba、nfs、iscsi)_第34张图片网络文件系统(samba、nfs、iscsi)_第35张图片

网络文件系统(samba、nfs、iscsi)_第36张图片

你可能感兴趣的:(网络,linux,运维)