前置知识
一个存储设备里面有大量的硬盘,也就有大量的总线,每一个总线上连有一个target,每一个target上有多个逻辑单元(Lun)。连接iSCSI的客户端称为是initiator,这个initiator可以是硬件也可以是软件,作为硬件的initiator光纤通道HBA(Host Bus Adapter)卡有三种:
- 内建SCSI指令及TOE引擎的ASIC芯片的适配卡,价格最贵,性能最高
- 内建TOE引擎的ASIC新品适配卡,但SCSI指令仍以软件方式运作,所以仍会吃部分CPU资源
- 纯软件方式实现,不要钱,对CPU的占用较高。
如题,在CentOS7上模拟一个iSCSI设备,然后在Windows Server 2008上连接这个iSCSI设备
第一步,CentOS7上的操作。CentOS7上安装iSCSI模拟器需要3个包,我是下载下来安装的,因此用的是yum localinstall,你可以直接yum -y install scsi-target-utils来替代完成下面前3个命令的执行
yum localinstall perl-Config-General-2.61-1.el7.noarch.rpm --nogpgcheck
yum localinstall sg3_utils-1.37-17.el7.x86_64.rpm --nogpgcheck
yum localinstall scsi-target-utils-1.0.55-4.el7.x86_64.rpm --nogpgcheck
yum localinstall iscsi-initiator-utils-6.2.0.874-11.el7.x86_64 --nogpgcheck #这个是Linux系统上的客户端,用于Linux客户端连接iSCSI之用的
安装完成,下面开始通过命令行来配置
/usr/sbin/tgt-admin #该命令通过targets.conf创建target和lun
/usr/sbin/tgtadm #在纯命令行下创建target和lun,我们演示这个
指定CentOS7本机的sdb设备为iSCSI设备,注意sdb这个设备我只是挂上去,没有在系统上挂载和格式化,也千万不要格式化和挂载,然后用这个sdb创建iSCSI设备并授权192.168.100.0/24这个网段的可以访问
tgtadm --lld iscsi --mode target --op new --targetname iqn.2019-04.cn.com.itox.iscsi:myscsi.disk1 --tid 1 ####红色部分不能有大写字母,不然客户端连接的时候会报错:找不到目标名称或从登陆处设置为隐藏
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb ####这个红色部分就是本地的哪个磁盘要映射出去给别人用的,我这里是sdb
tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.100.0/24 ####这个红色部分代表哪些IP地址可以搜到这个盘并加载他
参数说明:
--lld,简写-L,指定用什么驱动,有3中,我们只指定为iscsi参数
--mode,简写-m,指定模式,模式有3种,target,logicalunit和account。
--op,简写-o,指定操作,不同模式下的操作是不同的:
target模式下的op有:new,delete,show,update,bind(绑定到指定IP可以访问),unbind
logicalunit模式下的op有:new,delete
account模式下的op有:new,delete,bind,unbind
--targetname,简写-T,指定服务器上target名字
--tid,简写-t,指定分配一个target id,从1开始分
--lun,简写-l,指定分配逻辑单元号
--backing-store,简写-b,指定将哪块盘分出去
--initiator-address,简写-I,通过IP地址来限制谁可以访问这个target
注意,你不是要关闭一下防火墙systemctl stop firewalld 就是要允许一下3206端口通过,不然有可能客户端无法连接的哦。
firewall-cmd --add-port=3206/tcp --permanent
firewall-cmd --reload
配置完成,下面启动启用服务
systemctl start tgtd
systemctl enable tgtd
第二步,现在Windows Server 2008来连接这个iSCSI磁盘。
通过iSCSI的GUI窗口程序来连接
1、开始菜单,管理工具,iSCSI 发起程序
2、【发现】选项卡,单击发现门户,弹出的窗口输入CentOS7的IP地址,端口不要动;继续点击高级按钮,在常规选项卡中的本地适配器选择Microsoft iSCSI Initiator,发起程序选本地通信IP地址。点击确定,然后再确定。不要问我为什么要确定2次,因为你弹出了2个窗口,要点2次确定才能回到主窗口。
3、【目标】选项卡,你已经能够看到刚才创建的iSCSI磁盘了,点击连接按钮,再点高级,又会弹出一个和刚才差不多的窗口,除了目标门户选的IP是CentOS7的IP地址之外,其他的同上,然后,确定,确定,不要问我为什么要2个确定,我不想再解释了。
4、后面我就不说了,上面的确定完了,你本机就已经能够成功加载这个iSCSI了,到磁盘管理去看看吧。
通过命令行来连接
命令行来连接分为3个步骤,加入目标iSCSI服务器,显示对方共享了什么,连接对方共享的东西,以下为依次的命令
iscsicli QAddTargetPortal 192.168.200.13
iscsicli ListTargets
iscsicli qlogintarget iqn.2019-04.cn.com.itox.iscsi:myscsi.disk1
欢迎加入技术交流群70539804