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中国
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配置工具。
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。
-
使用Red Hat或Debian包管理器简化Linux管理
Linux软件包管理使用的软件库,它提供了软件包的安装源。Red Hat和Debian的软件包管理器功能类似,但结构上的差异将影响Linux管理。
-
关于apt-get:非Linux管理员应该知道的那些事
Apt-get是广泛应用在Unix和Linux系统中的应用程序管理器,Windows和Linux管理员也可以受益于其功能。