最近在做iscsi 性能评估,为以后ESXi集群等高级功能做准备,使用过openfiler,不过测试时openfiler 自带的iscsi target软件性能似乎有问题,所以有了本文的主角 TGT ,RHLE/CENTOS 自带,使用 Yum 安装即可,下面是具体步骤。
一 TGT 设置
- 检查系统是否安装 scsi-target
- //用来将Linux 系统模拟成为iSCSI target 的功能,也就是常说的软iscsi target.
- # rpm -qa | grep scsi
- scsi-target-utils-1.0.14-4.el6.x86_64
- iscsi target 配置文档与管理程序
- /etc/tgt/targets.conf 主配置文档,设置要分享的磁盘
- /usr/sbin/tgt-admin 线上查询、删除target 等功能的管理工具;
- /usr/sbin/tgt-setup-lun 建立target 以及设置分享的磁盘与可使用的用户端等工具软体。
- /usr/sbin/tgtadm 手动直接管理的管理员工具(可使用配置文档取代);
- /usr/sbin/tgtd 主要提供iSCSI target 服务的主程式;
- /usr/sbin/tgtimg 建置预计分享的映像档装置的工具(以映像档模拟磁盘)
- 准备iscsi共享的磁盘
- //本次将共享一个LVM 物理卷
- 査看卷组
- //注意 关键字"Free PE / Size"
- [root@localhost ~]# vgdisplay
- --- Volume group ---
- VG Name VolGroup
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 6
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 4
- Open LV 3
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 1.36 TiB
- PE Size 4.00 MiB
- Total PE 356833
- Alloc PE / Size 151074 / 590.13 GiB
- Free PE / Size 205759 / 803.75 GiB
- VG UUID ZjL1o1-I90u-K0iY-MwPJ-TA1h-cez3-q4crAe
- 创建物理卷
- //创建的逻辑卷大小200G,名称为iscsi 属于VolGroup卷组
- lvcreate -L 200G -n iscsi VolGroup
- 査看建立的逻辑卷
- [root@localhost ~]# lvscan
- ACTIVE '/dev/VolGroup/lv_root' [50.00 GiB] inherit
- ACTIVE '/dev/VolGroup/lv_home' [306.65 GiB] inherit
- ACTIVE '/dev/VolGroup/lv_swap' [33.48 GiB] inherit
- ACTIVE '/dev/VolGroup/iscsi' [200.00 GiB] inherit
- 配置target.conf (TGT)
- vim /etc/tgt/targets.conf
- //添加如下
- <target iqn.2012-04.com.test:server.target1>
- backing-store /dev/VolGroup/iscsi
- lun 10
- </target>
- //此配置文档语法如下:
- <target iqn.相关装置的target名称>
- backing-store /你的/虚拟装置/完整名称-1 <==LUN 1
- backing-store /你的/虚拟装置/完整名称-2 <==LUN 2
- lun N <==LUN 10 自定义lun
- </target>
- //iqn 名称规范
- iqn.yyyy-mm.<reversed domain name>:identifier
- iqn.年年-月.单位网域名的反转写法:这个分享的target名称
- 启动并检查tgt
- [root@localhost yum.repos.d]# /etc/init.d/tgtd start
- Starting SCSI target daemon: [ OK ]
- [root@localhost yum.repos.d]# tgt-admin --show
- Target 1: iqn.2012-04.com.test:server.target1
- System information:
- Driver: iscsi
- State: ready
- I_T nexus information:
- LUN information:
- LUN: 0
- Type: controller
- SCSI ID: IET 00010000
- SCSI SN: beaf10
- Size: 0 MB
- Online: Yes
- Removable media: No
- Backing store type: rdwr
- Backing store path: None
- LUN: 10
- Type: disk
- SCSI ID: IET 00010001
- SCSI SN: beaf11
- Size: 214748 MB
- Online: Yes
- Removable media: No
- Backing store type: rdwr
- Backing store path: /dev/VolGroup/iscsi
- Account information:
- ACL information:
- ALL
- //tgtd 进程使用 tcp 3260 端口
- # lsof -i :3260
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- tgtd 2856 root 5u IPv4 19726 0t0 TCP *:iscsi-target (LISTEN)
- tgtd 2856 root 6u IPv6 19727 0t0 TCP *:iscsi-target (LISTEN)
- tgtd 2857 root 5u IPv4 19726 0t0 TCP *:iscsi-target (LISTEN)
- tgtd 2857 root 6u IPv6 19727 0t0 TCP *:iscsi-target (LISTEN)
二 ESXI 配置ISCSI
1 配置 -> iSCSI Software Adapter -> 属性
2 可以在静态发现或者动态发现添加 iscsi target ip 地址
3 配置 -> 存储器 -> 添加存储器 -> 磁盘/lun -> 下一步 -> 下一步 即可
三 linux initiator 设置
- 检查系统是否安装 iscsi-target-utils
- //iscsi-initiator-utils:挂载target 的磁盘到Linux 本机上
- $ rpm -qa | grep scsi
- iscsi-initiator-utils-6.2.0.871-0.10.el5
- iscsi initiator 配置文档与管理程序
- /etc/iscsi/iscsid.conf 主要的配置文档,用于连接到 iSCSI target
- /sbin/iscsid 启动 iSCSI initiator 的服务进程
- /sbin/iscsiadm 用于管理 iSCSI initiator
- /etc/init.d/iscsid 模拟成 iSCSI initiater 的服务
- /etc/init.d/iscsi 在本机成为 iSCSI initiator 后,会调用此脚本,用于登入 iSCSI target
- /etc/iscsi/initiatorname.iscsi initiator 名称
- 启动 iscsi-initiator
- 192.168.57.71 [~]$ /etc/init.d/iscsi start
- iscsid dead but pid file exists
- Turning off network shutdown. Starting iSCSI daemon: [ OK ]
- [ OK ]
- Setting up iSCSI targets: iscsiadm: No records found!
- [ OK ]
- 192.168.57.71 [~]$ /etc/init.d/iscsid status
- iscsid (pid 7740) is running...
- 192.168.57.71 [~]$ /etc/init.d/iscsi status
- iscsid (pid 7740) is running...
- $ chkconfig iscsi on
- 侦测target
- $ iscsiadm -m discovery -t sendtargets -p 10.0.100.99
- 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1
- $ ll -R /var/lib/iscsi/nodes/
- /var/lib/iscsi/nodes/:
- total 4
- drw------- 3 root root 4096 Apr 18 15:59 iqn.2012-04.com.test:server.target1
- /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1:
- total 4
- drw------- 2 root root 4096 Apr 18 15:59 10.0.100.99,3260,1
- /var/lib/iscsi/nodes/iqn.2012-04.com.test:server.target1/10.0.100.99,3260,1:
- total 4
- -rw------- 1 root root 1571 Apr 18 15:59 default
- //注意:iscsiadm 侦测的结果会直接写入 /var/lib/iscsi/nodes/
- 査看可用的target
- $ iscsiadm -m node
- 10.0.100.99:3260,1 iqn.2012-04.com.test:server.target1
- 载入target
- $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --login
- Logging in to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]
- Login to [iface: default, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful
- 验证target
- $ fdisk -l /dev/sdc
- Disk /dev/sdc: 214.7 GB, 214748364800 bytes
- 255 heads, 63 sectors/track, 26108 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Disk /dev/sdc doesn't contain a valid partition table
- //一块磁盘,接下来就可以分区格式化等操作了
- 卸载target
- $ iscsiadm -m node -T iqn.2012-04.com.test:server.target1 --logout
- Logging out of session [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]
- Logout of [sid: 1, target: iqn.2012-04.com.test:server.target1, portal: 10.0.100.99,3260]: successful
- //再次fdisk -l 发现 sdc 磁盘不见了
- 删除target
- //刪除 target 连接信息,再次 ll /var/lib/iscsi/nodes/ 为0
- 192.168.57.71 [~]$ iscsiadm -m node -o delete -T iqn.2012-04.com.test:server.target1
- 192.168.57.71 [~]$ ll -R /var/lib/iscsi/nodes/
- /var/lib/iscsi/nodes/:
- total 0
四 扩展(鸟哥)
- /etc/tgt/targets.conf 配置文件
- 除了backing-store 之外,在这个配置文档当中还有一些比较特别的参数(man tgt-admin):
- backing-store (虚拟的装置), direct-store (实际的装置): 设定装置时,如果你的整颗磁盘是全部被拿来当iSCSI 分享之用,那么才能够使用direct-store 。不过,根据网路上的其他文件, 似乎说明这个设定值有点危险的样子。所以,基本上还是建议单纯使用模拟的backing-store 较佳
- initiator-address (使用者端位址): 如果你想要限制能够使用这个target 的用户端来源,才需要填写这个设定值。基本上,不用设定它(代表所有人都能使用的意思), 因为我们后来会使用iptables 来规范可以连接的客户端
- incominguser (使用者帐号密码设定): 如果除了来源IP 的限制之外,你还想要让使用者输入帐密才能使用你的iSCSI target 的话,那么就加用这个设定项目。此设定后面接两个参数,分别是帐号与密码啰。
- write-cache [off|on] (是否使用快取): 在预设的情况下,tgtd 会使用快取来增快速度。不过,这样可能会有遗失资料的风险。所以,如果你的资料比较重要的话, 或许不要使用快取,直接存取装置会比较妥当一些。
http://linux.vbird.org/linux_server/0460iscsi.php
更多欢迎到此讨论:
71921660 37275208 (已满)\
本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/842658