存储类型
DAS——直连式存储 Direct-Attached Storage
DAS存储是最常见的一种存储方式,尤其是在中小企业应用中。PC中的硬盘或只有一个外部SCSI接口的JBOD都属于DAS架构。DAS是指存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备。DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘阵列(RAID: Redundant Arrays of Independent Disks)、磁盘簇JBOD:Just a Bunch Of Disks)等。
NAS——网络附加存储 Network-Attached Storage
NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上。与DAS以及SAN不同,NAS是文件级的存储方法。采用NAS较多的功能是用来进行文件共享。NAS存储也通常被称为附加存储,顾名思义,就是存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上。NAS是文件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。如今更多的亲们采用NAS较多的功能是用来文档共享、图片共享、电影共享等等,而且随着云计算的发展,一些NAS厂商也推出了云存储功能,大大方便了企业和亲们等个人用户的使用。NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内,同时NAS的应用非常灵活。但NAS有一个关键性问题,即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网(SAN)不同,NAS仍使用网络进行备份和恢复。NAS 的一个缺点是它将存储事务由并行SCSI连接转移了网络上。这就是说LAN除了必须处理正常的最终用户传输流外,还必须处理包括备份操作的存储磁盘请求。存储和管理空间都在远程。
SAN——存储区域网络 Storage Area Network
存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)。可以使用空间,管理也是你来管理。
DAS | NAS | SAN | |
---|---|---|---|
传输类型 | SCSI FC | IP | IP FC SAS |
数据类型 | 数据块 | 文件 | 数据块 |
典型应用 | 任何 | 文件服务器 | 数据库应用 |
优点 | 磁盘与服务器分离, 便于统一管理 | 不占用应用服务器资源 广泛支持操作系统 扩展较容易 即插即用,安装简单方便 | 高扩展性 高可用性 |
缺点 | 连接距离短 数据分散,共享困难 存储空间利用率不高 扩展性有限 | 不适合存储大的块级应用数 据备份及恢复占用网络带宽 | 相比NAS成本较高 安装和升级比NAS复杂 |
应用场景
- DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业。
- NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低。
- SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂。
FTP 文件传输协议
- 文件传输协议:File Transfer Protocol 早期的三个应用级协议之一,基于C/S结构。
- 数据传输格式:二进制(默认)和文本。
- 双通道协议:命令和数据连接 21 命令端口(权限,认证) 20 数据端口(真实传数据)。
连接的模式:从服务器角度
- 主动(PORT style):服务器主动连接客户端
- 命令(控制):客户端:随机port ---> 服务器:21/tcp
- 数据:客户端:随机port <---服务器:20/tcp
- 被动(PASV style):服务器被动等待客户端连接
- 命令(控制):客户端:随机port ---> 服务器:21/tcp
- 数据:客户端:随机port ---> 服务器:随机port /tcp
FTP服务状态码
1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK 230:登录成功
3XX:补充类 331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录
服务器数据端口为:224*256+59
FTP用户和其共享目录
- 匿名用户:ftp,anonymous,对应Linux用户ftp ;(映射为系统用户ftp )共享文件位置:/var/ftp
- 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow ;共享文件位置:用户家目录
- 虚拟用户:特定服务的专用用户,独立的用户/密码文件;共享文件位置:为其映射的系统用户的家目录
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个并发
vsftpd官网: https://security.appspot.com/vsftpd.html
vsftpd 软件介绍
用户认证配置文件:/etc/pam.d/vsftpd
FTP 安装及基本操作
服务端的安装及开启
yum install vsftpd -y #安装 ftp服务器
systemctl start vsftpd #开启ftp服务
客户端连接服务端
[root@localhost ~]# yum install ftp -y #安装 ftp 客户端
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
(1/4): extras/7/x86_64/primary_db | 250 kB 00:00
(2/4): base/7/x86_64/primary_db | 6.1 MB 00:01
(3/4): base/7/x86_64/group_gz | 153 kB 00:01
(4/4): updates/7/x86_64/primary_db | 24 MB 00:03
Determining fastest mirrors
* base: mirrors.ustc.edu.cn
* extras: mirrors.ustc.edu.cn
* updates: mirrors.ustc.edu.cn[root@localhost ~]# ftp 172.16.26.30 #服务端地址
Connected to 172.16.26.30 (172.16.26.30).
220 (vsFTPd 3.0.2)
Name (172.16.26.30:root): #此处填写用户名 默认使用 ftp 或者匿名用户
#默认没有密码530 Permission denied.
Login failed.
ftp>
ftp>
vsftpd 服务端常见配置
配置文件位置:/etc/vsftpd/vsftpd.conf
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# capabilities.
anonymous_enable=YES
#
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
#
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# below.
#xferlog_file=/var/log/xferlog
#
xferlog_std_format=YES
#
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# the behaviour when these options are disabled.
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
#ascii_upload_enable=YES
#
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
# users to NOT chroot().
# chroot)
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=NO
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
修改默认命令端口
服务端:修改 默认命令 端口号 重启服务:
客户端:连接时需要指明 端口号
主动模式端口
connect_from_port_20=YES #主动模式端口为20
ftp_data_port=20 #(默认) 指定主动模式的端口::
被动模式端口
pasv_min_port=6000 # 0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010
使用当地时间
use_localtime=YES # 使用当地时间(默认为NO,使用GMT)
匿名用户登录
anonymous_enable=YES # 支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES # 匿名用户略过口令检查 , 默认NO
匿名用户上传
anon_upload_enable=YES # 匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES # 匿名建目录chmod 777 /var/ftp/pub #给予权限
匿名用户 下载 删除文件
在 vsftpd 软件中 只可以 下载有 读权限的文件, 没有读权限的文件时不可以直接下载的需要修改下面的选项。
anon_world_readable_only=NO # 只能下载全部读的文件, 默认YES
anon_umask=0333 # 指定匿名上传文件的umask,默认077,注意:0333中的0不能省略
anon_other_write_enable=YES # 可删除和修改上传的文件,默认NO
指定匿名用户的上传文件的默认的所有者和权限
匿名用户上传文件默认的所有者是ftp 用户 是可以修改的。
chown_uploads=YES #默认NO
chown_username=lili
chown_upload_mode=0644
Linux系统用户
local_enable=YES # 是否允许linux用户登录
write_enable=YES # 允许linux用户上传文件
local_umask=022 # 指定系统用户上传文件的默认权限对应umask
将所有系统用户映射为指定的guest用户 (开启来宾模式)
guest_enable=YES # 所有系统用户都映射成guest用户
guest_username=ftp # 配合上面选项才生效,指定guest用户
local_root=/ftproot # 指定guest用户登录所在目录,但不影响匿名用户的登录目录
user_config_dir=/etc/vsftpd/conf.d/ # 每个用户独立的配置文件目录guest_enable=YES
guest_username=ftp
local_root=/ftproot
user_config_dir=/etc/vsftpd/conf.d/
禁锢系统用户
禁锢所有系统用户在家目录中
chroot_local_user=YES #禁锢系统用户,默认NO,即不禁锢
禁锢用户开启白名单和黑名单
chroot_list_enable=YES #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list #默认值
当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单
日志
ftp 默认启动日志
#wu-ftp #日志:默认启用
xferlog_enable=YES #启用记录上传下载日志,此为默认值
xferlog_std_format=YES #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog #可自动生成, 此为默认值
#vsftpd #日志:默认不启用
dual_log_enable=YES #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log # 可自动生成, 此为默认值
提示信息
ftpd_banner="welcome to kgc ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt
pam 模式实现用户访问
pam_service_name=vsftpd
#pam配置文件:/etc/pam.d/vsftpd/etc/vsftpd/ftpusers 默认文件中用户拒绝登录,默认是黑名单,但也可以是白名单
传输速率,单位:字节/秒
anon_max_rate=0 匿名用户的最大传输速率,以字节为单位,比如:1024000表示1MB/s
local_max_rate=0 本地用户的最大传输速率
NFS
NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol 远程过程调用)实现。RPC采用C/S模式,客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。服务端:端口号不固定 客户端访问。
NFS优势
节省本地存储空间,将常用的数据,如:/home目录,存放在NFS服务器上且可以通过网络访问,本地终端将可减少自身存储空间的使用。
NFS 软件
软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)
相关软件包:rpcbind(必须),tcp_wrappers
Kernel支持:nfs.ko
端口:2049(nfsd), 其它端口由portmap(111)分配
NFS服务主要进程:
- rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
- rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd 非必要,管理文件锁,避免同时写出错
- rpc.statd 非必要,检查文件一致性,可修复文件
说明:CentOS 6 开始portmap进程由rpcbind代替
日志:/var/lib/nfs/
NFS 配置文件 :/etc/exports
/etc/exports.d/*.exports
NFS 工具
exportfs
管理NFS导出的文件系统
选项:
-v 查看本机所有NFS共享
-r 重读配置文件,并共享目录
-a 输出本机所有共享
-au 停止本机所有共享
showmount
showmount -e 10.0.0.8 显示 10.0.0.8 机器上提供的网络文件nfs服务
mount.nfs
客户端NFS挂载
fg :(默认)前台挂载
bg :后台挂载
hard :(默认)持续请求
soft :非持续请求
intr :和hard配合,请求可中断
rsize:和wsize 一次读和写数据最大字节数,rsize=32768
_netdev :无网络连接不挂载
vers :指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0
挂载
mount 172.16.26.30/data 临时挂载
df 查看
vim /etc/fstab 永久
格式:172.16.26.30:/data /mnt nfs default,_netdev 0 0 # ping 不通,不挂载