linux下用x LIO iSCSI target来创建SAN

日期: 2014-12-02 作者:Sander van Vugt翻译:吴炫国 来源:TechTarget中国 英文

Windows的ISCSI大家可能有听说过,但它可不是免费的。现在Linux下也有廉价SAN储存方案了,通过LIO ISCSI target你可以创建一个成本低廉的SAN储存。 LIO iSCSI target 和targetcli (LIO iSCSI target的命令行管理工具)可以通过普通的网络快速方便地建立起一个储存网络,这可以节约许多时间和成本。特别是许多需要测试群集的环境,ISCSI target技术更是必不可少。

RedHat Enterprise 7(RHEL)和SUSE Linux Enterprise Server 12(SLES)都可以直接用LIO iSCSI targ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Windows的ISCSI大家可能有听说过,但它可不是免费的。现在Linux下也有廉价SAN储存方案了,通过LIO ISCSI target你可以创建一个成本低廉的SAN储存。

LIO iSCSI target 和targetcli (LIO iSCSI target的命令行管理工具)可以通过普通的网络快速方便地建立起一个储存网络,这可以节约许多时间和成本。特别是许多需要测试群集的环境,ISCSI target技术更是必不可少。

RedHat Enterprise 7(RHEL)和SUSE Linux Enterprise Server 12(SLES)都可以直接用LIO iSCSI target (LIO)来建立ISCSI储存网络(SAN)。ISCSI是一种通过普通Internet协议的储存网络。

LIO iSCSI target 由LIO iSCSI target软件包和 targetcli组成,其中targetcli是控制LIO iSCSI target的命令行控制程序。Targetcli里许多命令都和Linux命令通用的,如ls、set、cd等等。

我们先用ls来看看配置文件。创建SAN之前我们先要了解底层储存的结构,还有我们可以建立的ISCSI LUN(Logical unit number)大小。ISCSI LUN的概念和传统SAN的LUN大同小异。传统SAN的LUN是指在光纤储存的底层阵列群集上划分出各小块的储存区域,而iSCSI target的LUN其实只是在我们的逻辑储存上划分的储存区域,这种储存可以是一个普通硬盘,一个阵列或者一个底层储存群集,对于iSCSI target来说这都没区别,因为iSCSI target是基于Internet网络协议的储存。用ls命令我们可以可以清楚看到整个LIO iSCSI target的配置情况。

第一部分:了解SLES/RHEL的储存配置和储存相关的命令
/> ls

o- / ....................................................................................[...]
 o- backstores .........................................................................[...]
  | o- block .............................................................[Storage Objects: 0]
  | o- fileio ............................................................[Storage Objects: 0]
  | o- pscsi .............................................................[Storage Objects: 0]
  | o- ramdisk ...........................................................[Storage Objects: 0]
  o- iscsi .......................................................................[Targets: 0]
  o- loopback ....................................................................[Targets: 0]

基于上面的iSCSI的原理, LIO iSCSI target可以支持各种不同的储存介质设备。从ls命令可以看出,block命令可以操作磁盘分区(如LUN,PV等);fileio命令是用来创建一个指定容量的空白磁盘文件;pscsi命令可以操作物理磁盘设备;ramdisk命令是操作内存盘。(内存盘在掉电或者重启时候会丢失,虽然速度最快,但建议只用来测试使用)
首先创建一个block(block设备相当于我们的虚拟磁盘分区),
cd backstores进入backstores的二级命令。

block-create block1 /dev/vgdisk/lviscsi1 来创建一个block,从命令可以看出我们创建的是block1的设备,具体的路径大家要根据自己的系统配置来看,上面的命令只是例子,比如lviscsi1这个卷组必须是你磁盘上已经配置好的。

创建好了block之后就需要创建fileio磁盘了,fileio/ create file1 /root/iscsidisk1 100M,这里我们测试创建一个100M的iSCSI磁盘。

第二部分:配置iSCSI SAN

结合上一节我们学习的命令,整個配置过程如下:

/backstores> block/ create block1 /dev/vgdisk/lviscsi1
Created block storage object block1 using /dev/vgdisk/lviscsi1.
/backstores> block/ create block2 /dev/vgdisk/lviscsi2
Created block storage object block2 using /dev/vgdisk/lviscsi2.
/backstores> fileio/ create file1 /root/iscsidisk1 100M
Created fileio file1 with size 104857600
/backstores> ls
o- backstores ........................................................................... [...]
  o- block ...............................................................[Storage Objects: 2]
  | o- block1 ........................[/dev/vgdisk/lviscsi1 (100.0MiB) write-thru deactivated]
  | o- block2 ........................[/dev/vgdisk/lviscsi2 (100.0MiB) write-thru deactivated]
  o- fileio ..............................................................[Storage Objects: 1]
  | o- file1 .............................[/root/iscsidisk1 (100.0MiB) write-back deactivated]
  o- pscsi ...............................................................[Storage Objects: 0]
  o- ramdisk .............................................................[Storage Objects: 0]

配置完LIO iSCSI target所需的磁盘之后,接下来我们就可以配置iSCSI target了。同样的,我们进入iscsi二级命令菜单,命令/iscsi 。这里需要注意的是,在创建target的时候,我们必须指定每一个target的 Quialified Name (许可名称,简称IQN),这个IQN是非常重要的一部分。

第三部分:创建LIO iSCSI target。

/backstores> cd /iscsi
/iscsi> create  iqn.2014-07.com.rhatcert:iscsidisk
Created target  iqn.2014-07.com.rhatcert:iscsidisk.
Created TPG 1.
/iscsi> ls

o- iscsi ......................................................................... [Targets: 1]
  o- iqn.2014-07.com.rhatcert:iscsidisk ............................................. [TPGs: 1]
    o- tpg1 ............................................................ [no-gen-acls, no-auth]
      o- acls ....................................................................... [ACLs: 0]
      o- luns ....................................................................... [LUNs: 0]
      o- portals ................................................................. [Portals: 0]
/iscsi>

上面的创建过程命令是用来初始化iSCSI target,我们用tgp这个名字来做例子。在这里你可以直接指定一个控制列表(ACL)来控制连接iSCSI targetd 的客户端,“tgp”是这整个target组的实例,它包含了客户端的IP和端口,以便控制哪个客户端连接这个iSCSI target,客户端是通过IQN来连接iSCSI target的,在客户端连接之前,必须先配置好访问列表。

第四部分:创建访问列表

/iscsi> cd iqn.2014-07.com.rhatcert:iscsidisk/
/iscsi/iqn.20...ert:iscsidisk> cd tpg1
/iscsi/iqn.20...scsidisk/tpg1> acls/ create iqn.2014-07.com.rhatcert:server1
Created Node ACL for iqn.2014-07.com.rhatcert:server1
/iscsi/iqn.20...scsidisk/tpg1>

需要注意的是,你需要创建和激活每一个LUN。因为ACL已经指派给tpg这个实例,它会自动应用到每一个新LUN。

第五部分:当创建iSCSI target的新存储LUN时,ACL自动指派给新的LUN

/iscsi/iqn.20...scsidisk/tpg1> luns/ create /backstores/block/block1
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2014-07.com.rhatcert:server1
/iscsi/iqn.20...scsidisk/tpg1> luns/ create /backstores/block/block2
Created LUN 1.
Created LUN 1->1 mapping in node ACL iqn.2014-07.com.rhatcert:server1
/iscsi/iqn.20...scsidisk/tpg1> luns/ create /backstores/fileio/file1
Created LUN 2.
Created LUN 2->2 mapping in node ACL iqn.2014-07.com.rhatcert:server1
To complete the SAN setup, specify a portal to indicate on which IP address the LIO target should be available (Listing 6).
Listing 6. Create the portal for the iSCSI SAN from the targetcli.
/iscsi/iqn.20...scsidisk/tpg1> portals/ create 192.168.4.181
Using default IP port 3260
Created network portal 192.168.4.181:3260.
/iscsi/iqn.20...scsidisk/tpg1> ls
o- tpg1 ................................................................[no-gen-acls, no-auth]
  o- acls ........................................................................... [ACLs: 1]
  | o- iqn.2014-07.com.rhatcert:server1 ......................................[Mapped LUNs: 3]
  |   o- mapped_lun0 .................................................[lun0 block/block1 (rw)]
  |   o- mapped_lun1 .................................................[lun1 block/block2 (rw)]
  |   o- mapped_lun2 .................................................[lun2 fileio/file1 (rw)]
  o- luns ........................................................................... [LUNs: 3]
  | o- lun0 ............................................. [block/block1 (/dev/vgdisk/lviscsi1)]
  | o- lun1 ............................................. [block/block2 (/dev/vgdisk/lviscsi2)]
  | o- lun2 ................................................. [fileio/file1 (/root/iscsidisk1)]
  o- portals ..................................................................... [Portals: 1]
    o- 192.168.4.181:3260 ................................................................ [OK]
/iscsi/iqn.20...scsidisk/tpg1>

当配置完iSCSI target之后,用exit命令来退出targetcli,配置会自动写入/etc/target/saveconfig.json文件,最好不要自己手动去编辑这个配置文件,会导致格式等未知的错误,从而iscsi target不能启动,修改配置应该用targetcli配置工具。

翻译

吴炫国
吴炫国

吴炫国,在网络管理领域有丰富经验,专注硬件、服務器、WiFi等方面。强烈爱好虚拟化,TechTarget中国虚拟化论坛版主。

相关推荐