1、我们知道进程是直接读写内存的,其他的数据是放在硬盘上的。存在问题,作为服务器,有时候硬盘不够用,怎么办?
2、在设备上的硬盘插槽里添加硬盘。存在问题,插槽个数有限,硬盘还是不够用。
3、解决办法是:通过网络访问,把其它设备的文件系统当成本地文件进行操作。
这就是NAS(Network Attached Storage 网络附加存储) ,这个时候,读写其他设备的文件,就像读写本地文件一样。
注意:这和ftp有本质的区别,ftp是交互式,读写权限,副本。
比如:对于一个很大的文件,只修改一行。ftp需要通过网络从远程把文件复制到本地,做个副本,在本地修改,然后上传覆盖,因此效率很低。
而NAS,可以直接修改,给人感觉就是修改本地的文件,实际上是只对修改的这一部分,进行网络传输。
因此,ftp只适合做下载用。
4、对于NAS,在linux上的实现是NFS(Network File System),在windows的实现是CIFS(Common Internet File System)
CIFS可以简单理解为windows上的共享文件夹。
在linux上挂载windows的共享文件夹就是 mount -t cifs ...
在windows上挂载其它windows的共享文件夹,操作如下:
Windows资源管理器-->工具-->映射网络驱动器,选择本地驱动器和映射到的目标文件夹
然后本地就会多出一个目录,查看属性,可以看到文件系统是NTFS。
特别注意:这个NTFS是New Technology File System,是一种文件系统,相对于FAT
那么问题来了,如果在windows上访问linux的目录,就像访问其它windows的共享目录,怎么办?
这就要使用Samba
5、把局域网内一个设备上的目录当成本地目录来使用,还是存在问题,存储空间不够用,怎么办?
这就需要SAN (Storage Area Networks 储存局域网络),也就是通过特殊的接口或者信道,对局域网内的所有设备暴露出来的硬盘进行访问。
和NAS对照,NAS是挂载某个特定设备的目录。
SAN会搜索局域网内所有设备暴露出来的硬盘,挂载SAN会多出一个硬盘,可以进行分割和格式化,NAS是不行的。
6、对于SAN,实现是iSCSI(internet SCSI),SCSI是Small Computer System Interface。
可以理解为使用数据线直连存储器的通用标准接口,而iSCSI是基于internet网络的。
iSCSI是客户/服务器模式,服务端作为iSCSI target,也就是存储器。客户端作为iSCSI initiator,也就是使用target的客户端。
注意:在iSCSI中作为客户端的iSCSI initiator,往往是作为服务器,提供硬盘。
也就是,对多个设备的硬盘,进行融合,从新暴露出来,供其它客户端使用。