- 1 存储类型
- 2 文件传输协议 FTP
- 2.1 FTP工作原理介绍
- 2.2 常见FTP相关软件
- 2.3 vsftpd 软件介绍
- 2.4 vsftpd 服务常见配置
- 2.4.1 命令端口
- 2.4.2 主动模式端口
- 2.4.3 被动模式端口范围
- 2.4.4 使用当地时间
- 2.4.5 匿名用户登录
- 2.4.6 匿名用户上传
- 2.4.7 指定匿名用户的上传文件的默认的所有者和权限
- 2.4.8 Linux系统用户
- 2.4.9 将系统用户映射为指定的 guest 用户
- 2.4.10 禁锢系统用户
- 2.4.11 日志
- 2.4.12 提示信息
- 2.4.13 PAM模块实现用户访问控制
- 2.4.14 是否启用控制用户登录的列表文件
- 2.4.15 xsftpd 服务指定用户身份运行
- 2.4.16 连接数限制
- 2.4.17 传输速率,单位:字节/每秒
- 2.4.18 连接时间:秒为单位
- 2.4.19 优先以文本方式传输
- 2.4.20 SSL模块实现基于SSL的FTPS
- 2.5 vsftpd 虚拟用户
- 3 NFS 服务
- 4 SAMBA 服务
- 5 数据的实时同步
文件共享服务FTP、NFS、Samba数据同步实战 利用sersync实现数据实时同步 Linux集群架构-intofy和sersync实时数据同步
本章内容
- 存储类型
- NFS服务
- FTP服务
- SAMBA服务
-
1 存储类型
JBON:把多个不同容量的硬盘被合并成逻辑上的大硬盘
存储类型分为三种: 直连式存储:Direct-Attached Storage,简称为DAS
- 网络附加存储:Network-Attached Storage,简称为NAS
- 存储区域网络:Storage Area Network,简称为SAN
1.1 DAS存储
DAS 存储是最常见的一种存储方式,尤其是在中小企业应用中。PC 中的硬盘或只有一个外部 SCSI 接口的 JBOD 都属于DAS架构,DAS是指存储设备直连连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备。DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘陈列(RAID:Redundant Arrays of Independence Disks)、磁盘簇(JBOD:Just a Bunch Of Disks)等。(本地硬盘)1.2 NAS存储
NAS 存储就是存储设备通过标准的网络拓扑(比如以太网)添加到一群计算机上,与DAS以及SAN不同,NAS文件级的存储方式。采用NAS较多的功能是用来进行文件共享。
NAS存储也通常被称为附加存储,顾名思义,就是存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上。NAS是文件级的存储方式,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。如今更多的亲们采用了NAS较多的功能是用来文档共享,图片共享,电影共享等等,而且随着云计算的发展,一些NAS厂商也推出了云存储功能,大大方便了企业和亲们等个人用户的使用。
NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台,用户通过网络支持协议可以进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT 局域网内,同时NAS的应用非常灵活。
但是NAS也有一个关键性问题,即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网(SAN)不同,NAS仍然使用网络进行备份和恢复。NAS的一个缺点是它将存储事务由并行的SCSI连接转移到了网络上。这就是说LAN除了必须处理正常的最终用户传输流以外,还必须处理包括备份操作的存储磁盘请求。1.3 SAN存储
(可以理解为磁盘陈列为SAN的Server,应用服务器为SAN的Client同样也是NAS的Server,客户端则为NAS的Client)
存储区域网络,这个是通过光纤通道或者以太网交换机连接存储陈列和服务器主机,最后成为一个专用的存储网络。SAN经过十多年历史的发展,已经相当的成熟,成为业界的事实标准(但是各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)。(SAN只提供磁盘陈列的空间,预先分配给服务器的容量并交由服务器来管理创建分区创建文件系统)
SAN提供了一种与现有LAN连接的简易方法,并且通过同一物理通道支持广泛使用的SCSI和IP协议。SAN不受现今主流的,基于SCSI存储结构的布局限制。特别重要的是,随着存储容量的爆炸性增长,SAN允许企业独立的增加它们的存储容量。SAN的结构允许任何服务器连接到任何存储陈列,这样不管数据置放在那里,服务器都可以直接存取所需的数据。因为采用了光纤接口,SAN还具有更高的带宽。SAN是块的存储方式。
如今的SAN解决方案通常会采取以下两种形式:光纤信道以及iSCSI或者基于IP的SAN,也就是FC SAN和IP SAN。光纤信道是SAN解决方案中大家最熟悉的类型,但是,最近一段时间以来,基于iSCSI的SAN解决方案开始大量出现在市场上,与光纤通道技术相比较而言,这种技术具有良好的性能,而且价格低廉。
SAN的优势:
随着存储容量的增长,SAN允许企业独立的增加他们的存储容量。
SAN允许任何服务器连接到任何存储陈列(好处是:不管数据放在哪里,服务器都可以直接存取所需的数据)
由于使用光纤接口,SAN具有更高的带宽。除了FC连接,SAN连接还有iSCSI(SCSI over IP)以及SAS(Serial Attached SCSI)接口
光纤接口可以提供10公里那么长那么远的连接长度,非常容易实现物理分离的存储。1.4 三种存储比较
SAN与NAS的主要区别体现在文件系统所在位置
DAS(物理层,数据链路层) | NAS(网络层) | SAN(物理层,,数据链路层) | |
---|---|---|---|
传输类型 | SCSI(小型计算机系统接口)、FC(光纤) | IP(网络地址) | IP,FC,SAS |
数据类型 | 数据块 | 文件 | 数据块 |
典型应用 | 任何 | 文件服务器 | 数据库应用 |
优点 | 磁盘与服务器分离 便于统一管理 |
不占用应用服务器资源 广泛支持操作系统 扩展较容易 即插即用,安装简单方便 |
高扩展性 高可用性 数据集中,易管理 |
缺点 | 连接距离短 数据分散,共享困难 存储空间利用率不高 扩展性有限 |
不适合存储量大的块级应用 数据备份以及恢复占用网络带宽 |
相比NAS成本较高 安装和升级比NAS复杂 |
三种存储架构的应用场景:
- DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业。
- NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低。
SAN则适用于大型应用或者数据库系统,缺点是成本高,较为复杂。
2 文件传输协议 FTP
2.1 FTP工作原理介绍
文件传输协议:File Transfer Protocol 早期的三个应用级协议之一,基于 C/S 结构
数据传输格式:二进制(默认)和文本
双通道协议:命令和数据连接
两种模式:从服务器角度主动模式(PORT style):服务器主动连接
- 命令(控制):客户端:随机port ==> 服务器:21 / tcp
- 数据:客户端:随机port <== 服务器:20 / tcp
- 被动模式(PASV style):客户端主动连接
- 命令(控制):客户端:随机port ==> 服务器:21 / tcp
- 数据:客户端:随机port ==> 服务器:随机port / tcp
- 主动模式与被动模式区别:
- 1、端口号不同:主动模式下的数据通道端口号为 20/tcp,被动模式下的数据通道端口号为 随机端口 /tcp
- 2、发起方不同:主动模式下FTP服务器主动发起连接,被动模式下客户端发起连接FTP服务器
- 主动模式与被动模式相同:
- 1、命令通道的服务器的端口号一样
范例:服务器被动模式数据端口
227 Entering Passive Mode(172.16.0.1 224,59)
访问请求数据端口为:224 * 256 + 59
FTP 服务状态码:
- 1XX:信息 125:数据连接打开
- 2XX:成功类状态 200:命令OK 230:登录成功
- 3XX:补充类 331:用户名OK
- 4XX:客户端错误 425:不能打开数据连接
- 5XX:服务器错误 530:不能登录
用户认证:
- 匿名用户:ftp,anonymous,对应 Linux 用户 ftp
- 相同用户:Linux用户,用户 /etc/passwd,密码/etc/shadow
-
2.2 常见FTP相关软件
FTP 服务器端软件:
Wu-ftpd,Proftpd,Pureftpd,FileZilla Server,Serv-U,Wing FTP Server,IIS
vsftpd,Very Secure FTP Daemon,CentOS 默认FTP服务器
高速,稳定,下载速度是WU-FTP的两倍
ftp.redhat.com 数据:单机最多可以支持 15000 个并发
客户端软件:
ftp,lftp,lftpget,wget,curl
ftp -A ftpserver port -A 主动模式 -p 被动模式
lftp -u username ftpserver ftpserver
lftp username@ftpserver
lftpget ftp://ftpserver/pub/file
gftp: GUI CentOS5 最新版 2.0.19(11/30/2008) 官网:https://www.gftp.org/
filezilla,FTP Rush,Cute FTP,Flash FXP,Leap FTP
IE:ftp://username:password@ftpserver2.3 vsftpd 软件介绍
由 vsftpd 包提供,不再由 xinetd 管理
用户认证配置文件:/etc/pam.d/vsftpd
(CentOS 8 的 vsftpd 软件默认不支持匿名登录,CentOS 7 的 vsftpd 软件默认支持匿名登录)
修改参数:~ vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
启动服务相关文件:
/usr/lib/systemd/system/vsftpd.service
/etc/rc.d/init.d/vsftpd
配置文件:
/etc/vsftpd/vsftpd.conf
帮助:man 5 vsftpd.conf
日志文件:/var/log/xferlog
配置文件格式:option=value
注意: = 前后不要有空格
用户和其共享目录 匿名用户(映射为系统用户 ftp)共享文件位置:/var/ftp
- 系统用户共享文件位置:用户家目录
- 虚拟用户共享文件位置:为其映射的系统用户的家目录
2.4 vsftpd 服务常见配置
2.4.1 命令端口
:::info listen_port=21 ::: 范例:
2.4.2 主动模式端口
:::info
connect_from_port_20=YES #主动模式端口为20
ftp_data_port=20(默认) #指定主动模式的端口
:::
2.4.3 被动模式端口范围
:::info
linux # FTP 客户端默认使用被动模式
windows # FTP 客户端默认使用主动模式
pasc_min_port=6000 # 0 为随机分配,端口分为会影响客户端的并发数
pasc_max_port=6010
:::
注意:如果 pasc_min_port 和 pasc_max_port 指定的端口号一致,那么就只能并发允许一个用户使用 FTP 被动模式下载文件,如果 pasc_min_port=6000 和 pasc_max_port=6010 则表示可以并发允许 11 个用户使用 FTP 被动模式下载文件。
2.4.4 使用当地时间
:::info use_localtime=YES # 使用当地时间(默认为NO,使用MGT) ::: 注意:在命令行模式下使用的是英国格林尼治时区,在Windows 资源管理器以及众多浏览器是可以纠正该错误时间,自动匹配到北京时间。
2.4.5 匿名用户登录
:::info
anonymous_enable=YES # 支持匿名用户,CentOS 8 默认不允许匿名登录
no_anon_password=YES # 匿名用户忽略口令检查,默认NO
:::
说明:将来要想将资源上传至网络中,需要注意有两个权限:应用程序权限,文件系统的权限。不能给FTP根目录写权限,只能给子目录写权限,否则会报如下错误:
2.4.6 匿名用户上传
2.4.7 指定匿名用户的上传文件的默认的所有者和权限
2.4.8 Linux系统用户
2.4.9 将系统用户映射为指定的 guest 用户
2.4.10 禁锢系统用户
2.4.11 日志
2.4.12 提示信息
2.4.13 PAM模块实现用户访问控制
2.4.14 是否启用控制用户登录的列表文件
2.4.15 xsftpd 服务指定用户身份运行
2.4.16 连接数限制
2.4.17 传输速率,单位:字节/每秒
2.4.18 连接时间:秒为单位
2.4.19 优先以文本方式传输
2.4.20 SSL模块实现基于SSL的FTPS
2.5 vsftpd 虚拟用户
2.5.1 实现基于文件验证的vsftpd虚拟用户
2.5.1.1 创建用户数据库文件
2.5.1.2 创建用户和访问FTP目录
2.5.1.3 创建PAM配置文件
2.5.1.4 指定PAM配置文件
2.5.1.5 虚拟用户建立独立的配置文件
2.5.2 实现基于MySQL验证的vsftpd虚拟用户
2.5.2.1 在数据库服务器上安装 MySQL 数据库
2.5.2.2 在数据库服务上配置数据库支持的vsftpd服务
2.5.2.3 在FTP服务器上安装数据库支持的vsftpd服务
2.5.2.4 在FTP服务器上安装pam_mysql
2.5.2.5 在FTP服务器上建立pam认证所需文件
2.5.2.6 建立相应用户和修改vsftpd配置文件
2.5.2.7 在FTP服务器上配置虚拟用户具有不同的访问权限
3 NFS 服务
3.1 NFS工作原理
NFS:Network File System 为了文件相同,基于内核的文件系统。Sun公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol 远程过程调用)实现RPC采用 C/S 模式,客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
范例:查看文件系统
#查看分区挂载情况
~ df -Th
#查看文件系统的驱动模块
~ modinfo xfs
filename: /lib/modules/3.10.0-1160.el7.x86_64/kernel/fs/xfs/xfs.ko.xz
license: GPL
description: SGI XFS with ACLs, security attributes, no debug enabled
author: Silicon Graphics, Inc.
alias: fs-xfs
retpoline: Y
rhelversion: 7.9
srcversion: ACB9CF86C248DD09DC2B428
depends: libcrc32c
intree: Y
vermagic: 3.10.0-1160.el7.x86_64 SMP mod_unload modversions
signer: CentOS Linux kernel signing key
sig_key: E1:FD:B0:E2:A7:E8:61:A1:D1:CA:80:A2:3D:CF:0D:BA:3A:A4:AD:F5
sig_hashalgo: sha256
#查看操作系统中的支持所有文件系统类型
~ ls /lib/modules/3.10.0-1160.el7.x86_64/kernel/fs
binfmt_misc.ko.xz ceph dlm fat gfs2 lockd nfs_common overlayfs udf
btrfs cifs exofs fscache isofs mbcache.ko.xz nfsd pstore xfs
cachefiles cramfs ext4 fuse jbd2 nfs nls squashfs
NFS 优势:节省本地存储空间,将常用的数据,如:/home 目录,存储在NFS服务器上并且通过网络访问,本地终端将可以减少自身存储空间的使用。(主要用于局域网内部使用)
3.2 NFS软件介绍
软件包:nfs-utils(包括服务器和客户端相关工具)
相关软件包:rpcbind (必须),tcp_wrappers
Kernel 支持:nfs.ko
端口:2049(nfsd),其他端口由 portmap(111)分配
说明:CentOS 6开始 portmap 进程由 rpcbind 代替
NFS 服务主要进程:
- rpc.nfsd:最主要的NFS进程,管理客户端是否可以登录
- rpc.mountd:挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd:非必要,管理文件锁,避免同时写出错
- rpc.statd:非必要,检查文件一致性,可修复文件
日志文件:/var/lib/nfs
NFS 配置文件:
/etc/exports
/etc/exports.d/*.exports