linux-运维进阶-22 iSCSI网络存储服务
概念解析
iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。
iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。
iSCSI使用 TCP/IP 协议(一般使用TCP端口860和3260)。 本质上,iSCSI 让两个主机通过 IP 网络相互协商然后交换SCSI命令。这样一来,iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。
SCSI
小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间的系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。
为了进一步提升硬盘存储设备的读写速度和性能,人们一直在努力改进物理硬盘设备的接口协议。当前的硬盘接口类型主要有IDE、SCSI和SATA这3种。
IDE是一种成熟稳定、价格便宜的并行传输接口。
SATA是一种传输速度更快、数据校验更完整的串行传输接口。
SCSI是一种用于计算机和硬盘、光驱等设备之间系统级接口的通用标准,具有系统资源占用率低、转速高、传输速度快等优点。
不论使用什么类型的硬盘接口,硬盘上的数据总是要通过计算机主板上的总线与CPU、内存设备进行数据交换,这种物理环境上的限制给硬盘资源的共享带来了各种不便。后来,IBM公司开始动手研发基于TCP/IP协议和SCSI接口协议的新型存储技术,这也就是我们目前能看到的互联网小型计算机系统接口(iSCSI,Internet Small Computer System Interface)。这是一种将SCSI接口与以太网技术相结合的新型存储技术,可以用来在网络中传输SCSI接口的命令和数据。这样,不仅克服了传统SCSI接口设备的物理局限性,实现了跨区域的存储资源共享,还可以在不停机的状态下扩展存储容量。
为了让各位读者做到知其然,知其所以然,以便在工作中灵活使用这项技术,下面将讲解一下iSCSI技术在生产环境中的优势和劣势。首先,iSCSI存储技术非常便捷,在访问存储资源的形式上发生了很大变化,摆脱了物理环境的限制,同时还可以把存储资源分给多个服务器共同使用,因此是一种非常推荐使用的存储技术。但是,iSCSI存储技术受到了网速的制约。以往,硬盘设备直接通过主板上的总线进行数据传输,现在则需要让互联网作为数据传输的载体和通道,因此传输速率和稳定性是iSCSI技术的瓶颈。随着网络技术的持续发展,相信iSCSI技术也会随之得以改善。
既然要通过以太网来传输硬盘设备上的数据,那么数据是通过网卡传入到计算机中的么?这就有必要向大家介绍iSCSI-HBA卡了(见图17-1)。与一般的网卡不同(连接网络总线和内存,供计算机上网使用),iSCSI-HBA卡连接的则是SCSI接口或FC(光纤通道)总线和内存,专门用于在主机之间交换存储数据,其使用的协议也与一般网卡有本质的不同。运行Linux系统的服务器会基于iSCSI协议把硬盘设备命令与数据打包成标准的TCP/IP数据包,然后通过以太网传输到目标存储设备,而当目标存储设备接收到这些数据包后,还需要基于iSCSI协议把TCP/IP数据包解压成硬盘设备命令与数据。
iSCSI网络存储服务
创建一个raid磁盘阵列
添加4个硬盘
开机,检查硬盘是否添加成功
1 | [root@localhost ~]# ll /dev/sd? |
创建raid阵列
1 | [root@localhost ~]# yum install mdadm.x86_64 -y |
配置ISCSI服务
安装iscsi服务端、iscsi初始化和配置服务所需的工具
1 | [root@localhost ~]# yum -y install targetd targetcli iscsi-initiator-utils |
开启并设置iscsi服务开机启动
1 | [root@localhost ~]# systemctl start targetd |
进入交互式iSCSI子系统配置iSCSI服务
1 | [root@localhost ~]# targetcli |
咱们在XShell那里复制一个会话,在新的窗口复制下来新的iqn作为iqn2,然后回到原来那个窗口即可粘贴使用。
防火墙放行服务端的3260端口
1 | [root@localhost ~]# firewall-cmd --add-port=3260/tcp --permanent |
现在再开一台linux虚拟机作为测试用的客户机,这里以client2为例:
Linux客户机挂载服务端上的ISCSI硬盘
1 | [root@localhost ~]# yum -y install iscsi-initiator-utils |
windows客户机挂载iSCSI
首先,先看看我电脑本来有几个硬盘:
可以看到,本来我的电脑只有俩硬盘,一会咱们挂载成功后,理论上会多出一个硬盘来。
打开windows自带的iSCSI发起程序,在windows10搜索栏即可搜索
目标填上IP地址,选择快速连接点击完成(这里我已经连过一次了,下面那个可以不管,也可以刷新一下即可)
为了能连接上,修改配置中的客户端名,修改成之前我们所谓的iqn2
改完以后选择连接
显示已连接
现在再次看看我电脑上有几个硬盘:
我刚打开,就跳出个消息,说是要让我初始化磁盘2,点击确定即可,如下图:
现在将磁盘管理全屏显示(太小了磁盘2就被遮住了),如下图:
如上图,多出来的磁盘2就是咱们挂载上去的磁盘了。
右键磁盘2,新建简单卷,然后一直点击下一步即可建成。
接下来我们打开文件资源管理器,如下图,可以看到一个新加卷:
本篇到此结束