一、存储类型
1.DAS
DAS是指存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备
2.NAS
NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上
3.SAN
存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。
二、FTP文件传输协议
2.1 ftp简介
1.ftp的定义
FTP是一种用于在计算机网络上传输文件的标准协议,基于C/S结构。 通过FTP,用户可以在客户端和服务器之间进行文件的上传(上传到服务器)和下载(从服务器下载到本地计算机)操作
数据传输格式:二进制(默认)和文本
2.双通道协议
20 数据端口(数据传输)
21 命令端口 (账户验证 权限管理)
3.用户类型
1.匿名用户 :ftp,anonymous,对应Linux用户ftp
2.系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow。
3.虚拟用户:用于特定服务的用户。
2.2 FTP工作模式
2.2.1 主动模式
命令(控制):客户端:随机port ---> 服务器:21/tcp
数据:客户端:随机port <---服务器:20/tcp
2.2.2 被动模式
命令(控制):客户端:随机port ---> 服务器:21/tcp
数据:客户端:随机port ---> 服务器:随机port /tcp
2.3 vsftp详解
vsftpd是一个在Linux和Unix系统上常见的FTP服务器软件。
2.3.1 服务端安装vsftp
#安装 ##在服务端 yum install -y vsftpd #安装软件 systemctl start vsftpd #开启服务 systemctl status vsftpd #查看服务状态 [root@localhost ~]# rpm -qc vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf ##配置文件
2.3.2 客户端连接服务端
[root@localhost ~]# ftp 192.168.20.91 ##客户端连接服务端 Connected to 192.168.20.91 (192.168.20.91). 220 (vsFTPd 3.0.2) Name (192.168.20.91:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> #连接后 默认在服务端的 /var/ftp下 #为什么默认在此目录? #因为会生成一个新用户,此目录为新用户的家目录,可以usermod -s 修改用户家目录 来更改ftp连接后的位置
2.4 FTP应用实例
2.4.1 修改默认命令端口号
#服务端# 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. listen_port=2121 ##修改监听端口为2121,原默认值为21 # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. systemctl restart vsftpd #重启服务
[root@localhost ~]# ftp 192.168.20.90 ftp: connect: 拒绝连接 ##修改后不加端口号会拒绝连接 ftp> [root@localhost ~]# ftp 192.168.20.90 2121 ##加上端口号后允许连接 Connected to 192.168.20.90 (192.168.20.90). 220 (vsFTPd 3.0.2) Name (192.168.20.90:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
2.4.2 每个用户拥有独有配置
用户登录将使用自己的用户名和密码进行身份验证,并且只能访问其分配的用户目录。
vim /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/conf.d/ #希望每个用户的配置文件存储在/etc/vsftpd/conf.d/目录下 systemctl restart vsftpd #重启服务 mkdir -p /etc/vsftpd/conf.d #建立用户配置目录 #建立用户子配置,以用户test1和test2为例# ##test1## vim /etc/vsftpd/conf.d/test1 local_root=/data/test1 #设置用户的FTP起始目录 ##test2## vim /etc/vsftpd/conf.d/test2 local_root=/data/test2 #建立目录 mkdir -p /data/{test1,test2} #建立测试文件 touch /data/test1/t11 touch /data/test2/t22 [root@localhost data]# tree . ├── test1 │ └── t11 └── test2 └── t22 2 directories, 2 files ##建立成功
三、NFS
NFS(Network File System)是一种用于在网络上分享和访问文件的协议。 NFS允许远程计算机通过网络访问另一台计算机上的文件系统,就像访问本地文件一样。
3.1 NFS工作原理
-
客户端请求:NFS 的客户端向 NFS 服务器发送文件访问请求。这可以是读取文件、写入文件或执行其他文件操作。
-
访问协议:客户端使用 RPC(Remote Procedure Call)协议与服务器通信。客户端会发送特定的 RPC 调用来请求文件操作,如打开文件、读取文件或关闭文件。
-
NFS 服务端:NFS 服务器收到来自客户端的请求,并解析这些请求。服务器根据客户端请求的内容,在本地文件系统上执行相应的操作。
-
文件传输:当服务器执行文件操作时,它会读取或写入相应的文件或目录。数据通过网络传输,从服务器发送到客户端或从客户端发送到服务器。
-
返回结果:服务器完成请求后,会将执行结果返回给客户端。这可能包括成功的确认、文件内容、错误信息等。
3.2 NFS的优势
节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上 通过网络访问,将减少本地磁盘的使用率。
3.3 NFS 软件相关
软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)
相关软件包:rpcbind(必须),tcp_wrappers
yum install -y nfs-utils rpcbind #安装服务
端口:2049(nfsd), 其它端口由portmap(111)分配
RPCbind 111
3.3.1NFS服务主要进程
rpc.nfsd 最主要的NFS进程,管理客户端是否可登录 rpc.mountd 挂载和卸载NFS文件系统,包括权限管理 rpc.lockd 非必要,管理文件锁,避免同时写出错 rpc.statd 非必要,检查文件一致性,可修复文件 说明:CentOS 6 开始portmap进程由rpcbind代替
3.3.2NFS相关文件
#日志 /var/lib/nfs/
#配置文件 /etc/exports /etc/exports.d/*.exports
3.4 NFS共享配置文件
#文件路径 /etc/eports #文件内容 /dir 主机1(opt,opt2,) 共享文件夹 域名、ip。。。。 vim /etc/exports ... 共享文件夹 允许访问的主机[权限] #添加的内容 ... :wq #例如 /data * #允许所有访问共享目录/data
3.5 NFS工具
3.5.1 exportfs
exportfs
是一个用于在 Linux 操作系统上管理 NFS(Network File System)导出的命令。
常用选项
-v #查看本机所有NFS共享 -r #重读配置文件,并共享目录 -a #输出本机所有共享 -au #停止本机所有共享
3.5.2 showmount
showmount -a #显示所有共享的目录
showmount -e <服务器主机名或IP地址> #显示特定 NFS 服务器上的共享目录
showmount -l #仅显示挂载点的主机名或IP地址
3.6 模拟实现NFS
1 服务端配置
#关闭防火墙和selinux systemctl stop firewalld setenforce 0 #安装nfs-utils和rpcbind软件包 yum install nfs-utils rpcbind -y #新建共享目录,在目录内创建文件 mkdir /test touch /test/t1 #编辑nfs配置文件 vim /etc/exports /test 192.168.2.0/24 #允许192.168.2.0网段的主机访问共享目录/test #启动服务,查看详细的nfs信息 systemctl start nfs systemctl start rpcbind [root@localhost ~]# showmount -e ##查看本机发布的NFS共享目录 Export list for localhost.localdomain: /test 192.168.20.0/24 [root@localhost ~]# exportfs -v ##查看NFS共享目录的详细信息 /test 192.168.20.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
2 客户端配置
[root@localhost ~]# mount 192.168.20.90:/test /mnt #挂载共享目录到本机挂载点目录下 [root@localhost ~]# cd /mnt [root@localhost mnt]# ls t1 #显示服务端的文件 挂载成功 [root@localhost mnt]#
3 功能测试
#切换回服务端 [root@localhost ~]# cd /test [root@localhost test]# touch cxk #返回客户端 [root@localhost mnt]# ls cxk t1 #文件共享NFS实现