一、文件系统分类
- 磁盘的文件系统 ,它是直接把数据存储在磁盘中,比如 Ext 2/3/4、XFS 等都是这类文件系统;Linux在VFAT基础之上支持ext2/3/4,xfs,btrfs
- 内存的文件系统 ,这类文件系统的数据不是存储在硬盘的,而是占用内存空间,我们经常用到的 /proc 和 /sys 文件系统都属于这一类,读写这类文件,实际上是读写内核中相关的数据数据。
- 网络的文件系统 ,用来访问其他计算机主机数据的文件系统(基于网络将文件系统以应用层的方式去传输文件),如:NFS、CIFS、FTP(文件应用层传输协议)
【注】:
1.NFS、CIFS为文件系统,相当于操作自己的电脑就是操控别人电脑;而FTP是要基于TCP协议做报文封装;NFS只能做linux和linux之间通信,效率高;而CIFS可以做Windows:netbios/网上邻居 和linux:samba之间通信
2.如果要走跨主机之间的通信,NFS,CIFS不支持加密,安全性比较差,此时我们就需要走文件应用层协议FTP,他用于广域网,支持加密
二、网络文件系统
三大文件存储服务----三大文件共享传输协议 NFS、CIFS、FTP
网络文件共享存储类型
1:DAS(JBOD) --->单台存储,支持光线
2:NAS 存储空间包含了文件系统,应用程序直接通过网络协议直接访问存储空间的文件即可。(三大协议:NFS SMB FTP)
3:SAN 网络设备以光纤交换机为主,存储空间不提供操作、文件系统,速度最快
ISCIS
4.ftp一定程度被http取代,OSS (阿里云)、OBS(华为云)对象存储 调用Restful接口
ftp属于工作在应用层的文件共享服务(用于文件共享(互联网下载的很多资料都是从FTP共享来的,作用很大))
【注】:它们内部走的协议都是NFS、CIFS、除非对接公网走FTP协议。
为什么要使用存储服务器?
补充:
1.WEB静态资源:服务器端的WEB资源,不会发生变化,不需要在服务器上进行执行的资源,原路返回发还给客户端
例如:.html .jpg .gif .txt .js .css .mp4 .avi 。。。
静态资源封装:原路封装(资源不会发生变化)
2.WEB动态资源(浏览器无法直接解析):服务端的web资源需要在服务端进行执行一次,才发还给客户端的资源。
例如:.php .jsp .cgi aspx......
原理: 当客户访问网站,通过负载服务器、反向代理,调度器最后访问到多台服务器,这几台服务器的磁盘根路径里的web网页静态内容是一样的,动态资源却是各不相同;而动态资源是服务器程序运行的结果,要做一个cookie、session(放入redis)会话,此时若动态资源放在对应的服务器上,就会产生一些弊端,如:
(1)当代码要修改时,要同时更改多台服务器。此时就是同步性、持续性差;
(2)代码重复性高,多台服务器存的东西重复性高
此时便需要一个共享文件系统,但其是跨网络的在局域网中,如果想要使其访问效果像访问本地服务器一样,就要走网络文件系统Samba、NFS。当搭建好之后,修改共享存储服务器中内容,服务器里的内容也随之变化,同步性得到保证;但是有一个缺点,如果共享存储服务器崩了,里面内容便丢了,此时我们就要做主从备份。要求本地服务器自动挂着到共享存储服务器,此时用到了autofs
三、Samba基础操作:
samba在Linux服务器上作为服务端,首先必须支持类似windows的netbios的网络传输协议,此协议在samba上体现为基于cifs的smb和nmb协议
smb协议:网络文件共享传输
nmb协议:兼容windows的DNS作用域和其他特性
于是需要在Linux服务器安装应用程序支持smb和nmb协议,和samba文件共享
2.Windows服务端、linux客户端
win服务端:
(1)首先Windows关闭防火墙,默认是开启netbios:
控制面板--->网络和Internet--->网络连接--->网络连接详细信息
(2)在C盘新建gongxiang文件夹,然后右击点击属性:共享,开启共享功能 (用户每个人都不同)
(3)在本地访问一下:运行:输入自己的IP
(4)测试成功,可以对其进行操作,增删改查
linux客服端:
(1)先安装软件
[root@node-1 ~]# yum -y install samba-client cifs-utils
[root@node-1 ~]# smbclient -L 192.168.10.140 -U xiaok
[root@node-1 ~]# smbclient //192.168.10.140/gongxiang -U xiaok
(2)上传一个文件
(3)服务端查看说明客户端上传成功
【注】:
将samba服务端挂载到本地当前Linux文件系统
命令:mount -t cifs //192.168.10.140/gongxiang /mnt -o username=xiaokui
注意:虽然当前Linux主机使用的是Linux用户,在挂载点内对对端文件操作的身份为对端主机的用户身份。
【注】CIFS监听端口:137/udp 138/udp 139/tcp 445/tcp。
3.Linux服务端、windows客户端
(1)服务端安装samba
yum -y install samba samba-client cifs-utils//在linux安装samba服务
cat /etc/samba/smb.conf.example > /etc/samba/smb.conf
testparm
systemctl start smb;systemctl start nmb //启动samba服务
ss -tunl //查看其端口
补充:
1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd 2)Port 138 (UDP) - NetBIOS 数据报服务 3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议) 4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode) 5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享) 6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samba
(2)创建普通用户,这个普通用户是共享目录,samba独有的
useradd smbuser1
smbpasswd -a smbuser1 //设置密码 123456
【注】:注意:默认samba的密码体系和Linux用户密码体系不一样,所以必须经由smbpasswd生成密码,并且-a将其用户加入到samba用户,如果想要禁用用户、启用用户或者删除用户,可以使用smbpasswd -d|-e|-x 即可生效