一、存储类型
- 直连式存储:Direct-Attached Storage,简称DAS
- 网络附加存储:Network-Attached Storage,简称NAS(存储和管理空间都在远程)
- 存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理)
DAS
DAS存储是最常见的一种存储方式,尤其是在中小企业应用中。PC中的硬盘或只有一个外部SCSI接口的JBOD都属于DAS架构。DAS是指存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备。DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘阵列(RAID: Redundant Arrays of Independent Disks)、磁盘簇JBOD:Just a Bunch Of Disks)等。
NAS
NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上。与DAS以及SAN不同,NAS是文件级的存储方法。采用NAS较多的功能是用来进行文件共享。NAS存储也通常被称为附加存储,顾名思义,就是存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上。NAS是文件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。如今更多的亲们采用NAS较多的功能是用来文档共享、图片共享、电影共享等等,而且随着云计算的发展,一些NAS厂商也推出了云存储功能,大大方便了企业和亲们等个人用户的使用。NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内,同时NAS的应用非常灵活。但NAS有一个关键性问题,即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网(SAN)不同,NAS仍使用网络进行备份和恢复。NAS 的一个缺点是它将存储事务由并行SCSI连接转移了网络上。这就是说LAN除了必须处理正常的最终用户传输流外,还必须处理包括备份操作的存储磁盘请求
SAN
存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)
二、VSFTP服务器
1、FTP服务概述
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务
FTP(File Transfer Protocol:文件传输协议)
作用:Internet上用来传送文件的协议
常见FTP服务器:
Windows:Serv-U 、FTP Server 、filezilla_server
Linux:ProFTPD(Professional FTP daemon)一个Unix平台上或类Unix平台上如:Linux、FreeBSD等FTP服务器程序
2、VSFTP
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,全称是Very Secrue FTP。它是一个安全,高速,稳定的FTP服务器。
VSFTP模式: C/S模式
监听端口:20,21
端口20:用于传输数据
端口21:用于传输指令
3、FTP工作原理
主动和被动模式:
FTP会话包含了两个通道,控制通道和数据传输通道,FTP的工作有两种模式,一种是主动模式,一种是被动模式,以FTP Server为参照,主动模式,服务器主动连接客户端传输,被动模式,服务器等待客户的连接
主动模式(PORT)的工作原理:
FTP客户端连接到FTP服务器的21号端口,发送用户名和密码,客户端随机开放一个端口(1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20号端口和客户端开放的端口连接,发送数据。(无论是主动还是被动模式,首先的控制通道都是先建立起来,只是在数据传输模式上的区别)
被动模式的工作原理:
PASV是Passive的缩写,中文为被动模式,工作原理:FTP客户端连接到FTP服务器所监听的21号端口,发送用户名和密码,发送PASV命令到FTP服务器,服务器在本地随机开放一个端口(1024以上),然后把开放的端口告知客户端,而后客户端再连接到服务器开放的端口进行数据传输。
4、安装vsftp服务器端,客户端
使用yum直接安装
安装客户端:
Linux客户端:
lftp是一个功能强大的下载工具,它支持访问文件的协议:ftp,ftps,http,https,hftp(ftps和https需要在编译的时候包含openssl库),lftp的界面非常类似一个shell,有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便,它还有书签,排队,镜像,断点续传,多进程下载等功能
5、配置文件
vsftp相关:
/etc/vsftp/vsftpd.conf ==> vsftp的核心配置文件
/etc/vsftpd/ftpusers ==> 用于指定哪些用户不能访问FTP服务器,即黑名单
/etc/vsftpd/user_list ==> 指定允许使用VSFTP的用户列表,即白名单
/var/ftp/ ==> 默认情况下匿名用户的根目录
服务开启只看到一个监听端口,因为20号端口是用于数据传输,所以没有开启,如果有数据传输时,20号端口会开启
Linux连接FTP服务器:
windows连接FTP:
6、修改配置文件:允许所有人上传和下载文件,并允许创建用户自己的目录
分析:允许所有人上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能开启
修改完成后重启服务,连接到ftp上发现还是不能创建目录
查看权限,还需要开启文件系统访问的权限,不能给FTP根目录写权限,只能级子目录写权限,或者修改共享目录的属主,属组
连接上ftp服务器后可以创建目录了
在windows上可以创建文件但是不能删除也不能改名只能默认文件名
因为配置文件里没有写的配置,在配置文件里加上允许匿名用户写的配置就可以重命名和删除操作了
三、NFS
1、NFS服务端概述
NFS是Network File System的简写,即网络文件系统,网络文件系统时FreeBSD支持的文件和程序可以像访问本地文件一样访问远端系统上的文件
NFS的模式: C/S模式
NFS监听的端口:2049(nfsd),其它端口由portmap(111)分配
Kernel支持:nfs.ko
软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)
相关软件包:rpcbind(必须),tcp_wrappers
日志:/var/lib/nfs/
NFS配置文件:
/etc/exports
/etc/exports.d/*.exports
centos7是以NFSv4作为默认版本,NFSv4使用TCP协议(端口号是2049)和NFS服务器建立连接
NFS是通过网络进行数据传输的,传输数据的端口为2049,但是由于文件系统非常复杂,因此NFS还有其他程序去启动额外的端口。NFS默认使用传输的端口是随机选择的小于1024的端口,将端口告知客户端是需要依赖RPC(remote procedure call,RPC)协议
当NFS服务启动时,会随机选取数个端口,并向RPC注册,因此RPC就可以知道每个端口对应的NFS功能
RPC最主要的功能就是指定每个NFS功能所对应的端口号,并告知客户端,以便客户端连接至正确的端口号
2、安装NFS
1.配置文件位置:
2.启动NFS服务
3.服务的使用查看方式
showmount -e NFS服务器IP
4、客户端挂载
开机自动挂载:
5、验证读写权限
在NFS共享设备上创建文件,显示权限不够
解决方法:
设置访问权限一般包含2部分:
1.服务本身权限
2.目录访问权限
nfs默认使用nfsnobody用户
可以修改共享目录权限或者属主属组
验证:
6、NFS共享的常用参数
ro | 只读访问 |
rw | 读写访问 |
sync | 资料同步写入到内存与硬盘中,性能低,安全性高 |
async | 资料会先暂存于内存中,而非直接写入硬盘,性能高,安全性低 |
secure | NFS通过1024以下的安全TCP/IP端口发送 |
insecure | NFS通过1024以上的端口发送 |
wdelay | 如果多个用户要写入NFS目录,则归组写入(默认) |
no_wdelay | 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置 |
hide | 在NFS共享目录中不共享其子目录 |
no_hide | 共享NFS目录的子目录 |
subtree_check | 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) |
no_subtree_check | 如果共享/usr/bin之类的子目录时,不检查父目录权限 |
all_squash | 共享文件的UID和GID映射匿名用户anonymous,适合公用目录 |
no_all_squash | 保留共享文件的UID和GID(默认) |
root_squash | root用户的所有请求映射成和anonymous用户一样的权限(默认),远程root映射为nfsnobody |
no_root_squash | root用户具有根目录的完全管理访问权限,远程root映射成NFS服务器的root用户 |
可以写在exports配置文件里
/nfs1 *(rw,no_root_squash,all_squash,anonuid=1003,anongid=1003)
#指定压榨成统一用户
7、客户端挂载选项
fg | (默认)前台挂载 |
bg | 后台挂载 |
hard | (默认)持续请求 |
soft | 非持续请求 |
intr | 和hard配合,请求可中断 |
rsize | 和wsize一次读和写数据最大字节数,rsize=32768 |
_netdev | 无网络连接不挂载 |
vers | 指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0 |