介绍——为什么不用smb而用iscsi
历史
说到SAN等传统存储设备,我们不得不提到SCSI,SCSI作为外部块设备的连接和传输协议,是最广泛的块设备协议,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机、服务器以及普通PC上。为了能够在TCP/IP上进行数据块传输,Cisco和IBM两家发起iSCSI协议,并且得到了各大存储厂商的大力支持。iSCSI可以实现在IP网络上传输SCSI协议,使其能够在诸如高速以太网上进行快速的数据存取备份操作。iSCSI标准在2003年2月11日由IETF(互联网工程任务组)认证通过。iSCSI继承了两大最传统技术:SCSI和TCP/IP协议。这为iSCSI的发展奠定了坚实的基础。基于iSCSI的存储系统只需要不多的投资便可实现SAN存储功能,甚至直接利用现有的TCP/IP网络。
(Internet Small Computer System Interface,Internet 小型计算机系统接口)是一种由IBM公司研究开发的IP SAN技术。
该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,基于 TCP/IP的协议连接iSCSI服务端(Target)和客户端(Initiator),使得封装后的SCSI数据包可以在通用互联网传输,最终实现iSCSI服务端映射为一个存储空间(磁盘)提供给已连接认证后的客户端。
DAS、NAS、SAN、ISCSI的区别
另一篇文章介绍https://blog.51cto.com/xslwahaha/1617781 这个写的似乎更好
随着计算机网络技术的飞速发展,网络存储方式也随之发展,但由于商业企业规模
不同,对网络存储的需求也应有所不同,选择不当的网络存储技术,往往会使得企业在网络建设中盲目投资不需要的设备,或者造成企业的网络性能低下,影响企业信息化发展,因此了解相关网络存储知识,选择适当网络存储方式是非常重要的。
目前高端服务器所使用的专业存储方案有DAS、NAS、SAN、iSCSI几种,下面介绍其相关网络存储知识。
一、直接附加存储(DAS)
DAS网络存储知识:直接附加存储是指将存储设备通过SCSI接口直接连接到一台服务器上使用。DAS购置成本低,配置简单,使用过程和使用本机硬盘并无太大差别,对于服务器的要求仅仅是一个外接的SCSI口,因此对于小型企业很有吸引力。但是DAS也存在诸多问题:
(1)服务器本身容易成为系统瓶颈;
(2)服务器发生故障,数据不可访问;
(3)对于存在多个服务器的系统来说,设备分散,不便管理。同时多台服务器使用DAS时,存储空间不能在服务器之间动态分配,可能造成相当的资源浪费;
(4)数据备份操作复杂。
二、网络附加存储(NAS)
NAS网络存储知识:NAS实际是一种带有瘦服务器的存储设备。这个瘦服务器实际是一台网络文件服务器。NAS设备直接连接到TCP/IP网络上,网络服务器通过TCP/IP网络存取管理数据。NAS作为一种瘦服务器系统,易于安装和部署,管理使用也很方便。同时由于可以允许客户机不通过服务器直接在NAS中存取数据,因此对服务器来说可以减少系统开销。NAS为异构平台使用统一存储系统提供了解决方案。由于NAS只需要在一个基本的磁盘阵列柜外增加一套瘦服务器系统,对硬件要求很低,软件成本也不高,甚至可以使用免费的LINUX解决方案,成本只比直接附加存储略高。NAS存在的主要问题是:
(1)由于存储数据通过普通数据网络传输,因此易受网络上其它流量的影响。当网络上有其它×××量时会严重影响系统性能;
(2)由于存储数据通过普通数据网络传输,因此容易产生数据泄漏等安全问题;
(3)存储只能以文件方式访问,而不能像普通文件系统一样直接访问物理数据块,因此会在某些情况下严重影响系统效率,比如大型数据库就不能使用NAS。
三、存储区域网(SAN)
SAN网络存储知识:SAN实际是一种专门为存储建立的独立于TCP/IP网络之外的专用网络。目前一般的SAN提供2Gb/S到4Gb/S的传输数率,同时SAN网络独立于数据网络存在,因此存取速度很快,另外SAN一般采用高端的RAID阵列,使SAN的性能在几种专业存储方案中傲视群雄。SAN由于其基础是一个专用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。通过SAN接口的磁带机,SAN系统可以方便高效的实现数据的集中备份。SAN作为一种新兴的存储方式,是未来存储技术的发展方向,但是,它也存在一些缺点: (1)价格昂贵。不论是SAN阵列柜还是SAN必须的光纤通道交换机价格都是十分昂贵的,就连服务器上使用的光通道卡的价格也是不容易被小型商业企业所接受的;
(2)需要单独建立光纤网络,异地扩展比较困难;
四、ISCSI ISCSI网络存储知识:
使用专门的存储区域网成本很高,而利用普通的数据网来传输ISCSI数据实现和SAN相似的功能可以大大的降低成本,同时提高系统的灵活性。SCSI就是这样一种技术,它利用普通的TCP/IP网来传输本来用存储区域网来传输的SCSI数据块。ISCSI的成本相对SAN来说要低不少。随着千兆网的普及,万兆网也逐渐的进入主流,使ISCSI的速度相对SAN来说并没有太大的劣势。ISCSI目前存在的主要问题是:
(1)新兴的技术,提供完整解决方案的厂商较少,对管理者技术要求高;
(2)通过普通网卡存取iSCSI数据时,解码成SCSI需要CPU进行运算,增加了系统性能开销,如果采用专门的iSCSI网卡虽然可以减少系统性能开销,但会大大增加成本
(3)使用数据网络进行存取,存取速度冗余受网络运行状况的影响
优点——与smb的不同
网吧的无盘系统大多数用的就是iscsi
协议上:
-
iscsi是block级的协议,网络中传输的是硬件操作命令
iscsi相当于给你一块硬盘,没分区,没有文件系统,你爱怎么用怎么用 -
windows共享(samba/cifs)的文件共享协议,网络中传输的是文件内容
通过iscsi,windows可以将NAS上的空间当作本地磁盘来用,极大提高应用程序兼容性.
cifs或者nas只是给你一块存文件的空间,和其它的东西
性能、稳定性与用途上
- 理论上iscsi的速度更快一些,因为是底层BLOCK级别的传输,不容易出现兼容性问题,因为它可以映射成本地的硬盘,而smb经常有稳定性的问题(比如游戏打不开、第二次开游戏客户端机器死机、网易云音乐下载路径选不了smb网络硬盘等)。
好像小文件也要快很多
安装游戏/应用程序请选择iscsi - samba/cifs适合传输文件,用来做文件共享。
网络传输和本地传输时两个概念,
典型的比如ftp,你每个文件都要经历,客户端发送pasv指令等服务器回答,然后发送retr指令请求文件并读1XX回答,然后打开socket完成链接,打开本地文件执行传输,网络传输结束等待服务器226,然后关闭socket开始下一个轮回
本地传输,最简单的就是打开源文件-》读到缓冲-》写目标文件,其他全部都不需要,还可以利用mmap来加速。因为网络传输小文件,有大量的来回时间(协议规定)被浪费在了网络连接的建立和握手上了
缺点
1、iSCSI虚拟磁盘里的内容,NAS(或者说服务端)是无法直接访问的(因为变成了一个img文件)。
2、iSCSI的数据通路是网卡-主板-内存-CPU-硬盘,这些中间设备的性能都可能会影响到iSCSI速度。iSCSI会受到CPU和网卡影响,数据通路是网卡-主板-内存-CPU-硬盘,这些中间设备的性能都可能会影响到iSCSI速度,所以有时候iSCSI速度上不去,还真不太好排查问题。如果使用支持RDMA技术的网卡,可以缓解这个问题。因为数据通路会直接跳过CPU和内存,直接网卡-主板-硬盘,读写,延时上会低上很多。RDMA网卡可以去某宝上搜一下,光口万兆的价格倒是不贵。
3、不能共享,不能多设备同时连可能会有写入冲突,不能离开 “内网”。
当然,可以使用 zerotier 等软件组建自己的 “内网” ,实现在外办公也可以使用。
参考:远程办公利器,使用 N1 盒子 和 zerotier 进行异地组网(当然,也可以不用 N1 盒子,直接在 NAS 和 PC 上安装 zerotier 即可)
使用教程
https://help.aliyun.com/document_detail/108529.html 阿里云云存储网关的这部分有更详细的教程与说明
服务端——windows
之前讲过一篇文章 一步步教你Linux7安装Oracle RAC(11GR2版本) 教大家如何安装 Oracle RAC。
安装starwind
首先 我们需要下载starwind,starwind的官网已经更新到9版本了,但是新版各种拆分太专业了 看不懂,所以我们百度搜索starwind6(最好是starwind.6.0.5713),里面有个swk的密钥文件和一个exe安装文件。
我们点击安装,都选默认选项。(记得关闭360)
安装最后一步:
点击安装后,就成功了。
添加server
打开软件,新建StarWind Server,点击add
通过cmd命令行输入ipconfig查看本机 ip 地址
之后,填写本机ip
添加target
新建成功后,选择 Server,双击或者点击 connect 连接,添加target
一路确定,最后看到
即可。
添加Device存储盘
如果步骤有不一样的,重新来过
注意选项顺序可能会不同
选择文件路径和大小,size就是你硬盘的大小,img文件可以自己像个名字,填写上去,比如test.img
然后就完成了
设置密码的在哪呢……那不是很不安全
服务端——linux
shou
客户端——windows
更详细的可以看https://help.aliyun.com/document_detail/108320.html
搜索运行 iSCSI 发起程序,Windows 10 操作系统默认安装了 iSCSI 客户端程序。
访问 iSCSI 远程共享存储资源。查看已挂载的磁盘。
然后格式化 分配下盘符就搞定了
客户端 ——linux
五、Linux通过 ISCSI 连接共享存储
1、Linux 客户端安装 ISCSI 依赖
yum install -y iscsi-initiator-utils*
安装依赖
2、搜索服务端 ISCSI Target
iscsiadm -m discovery -t st -p 10.211.55.33
📢 注意: 10.211.55.33 为服务端 IP 地址,即 Windows 主机的 IP 地址。
3、连接服务端 ISCSI 共享存储
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.33-lucifer -p 10.211.55.33 -l
📢 注意:
iqn.2008-08.com.starwindsoftware:10.211.55.33-lucifer
为上一步搜索出的Target名称,复制即可!
4、Linux 客户端查看共享存储
Linux 客户端通过命令 lsblk 查看共享存储是否成功挂载:
lsblk