实验环境:RHEL6.0
ServerIP:192.168.0.1 **target主机**
port:3260
ClientIP:192.168.0.2
**initiator主机**
#yum install scsi-target-utils -y
1.建立所需要的磁盘设备
1>建立一个名为/srv/iscsi/disk1.img的500M文件
2>使用/dev/sda10提供2GB作为共享
3>使用/dev/server/iscsi01的2GBLV作为共享(再加入5GB/dev/sda11到serverVG中)
#mkdir /srv/iscsi
#dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=500
#chcon -Rv -t tgtd_var_lib_t /srv/iscsi
#ls -lh /srv/iscsi/disk1.img
#fdisk /dev/sda
#建立所需分区(sda10、sda11)
#partprobe
#某些情况下得reboot
#swapon -s
#确认建立的分区不能被swap使用
#pvcreate /dev/sda11
#vgextend server /dev/sda11
#lvcreate -L 500M -n iscsi01 server
#lvscan
#查看lv是否OK
2.规划共享的iscsi target文件名
iscsi共享出来的文件,取名语法如下:
iqn.yyyy-mm.<reversed domain name>:identifier
例:iqn.2011-08.com.example.Server1:file1
3.设置tgt的配置文件/etc/tgt/targets.conf
#vim /etc/tgt/targets.conf
******************************************************************************
添加:
<target iqn.2013-01.com.example.Server1:file1>
backing-store /srv/iscsi/disk1.img
backing-store /dev/sda10
backing-store /dev/server/iscsi01
incomeuser
student westos
#要求帐号和密码才能使用此target
#
initiator-address 192.168.0.0/24
限制能够使用这个target的客户端来源
#
write-cache
off
不使用缓存,缓存可能使数据遗失
#
backing-store代表是虚拟的设备
#
direct-store 代表的实际的设备
</target>
******************************************************************************
4.启动iscsi target以及查看相关端口与磁盘信息
#/etc/init.d/tgtd start
#netstat -tunlp|grep 3260
#tgt-admin --show #查看tatget相关信息,以及提供的逻辑单位编号LUN数据内容
5.设置防火墙
#iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 3260 -j ACCEPT
iSCSI initiator的设置
IP:192.168.0.2
#yum install iscsi-initiator-utils -y
1.修改配置文件
#vim /etc/iscsi/iscsid.conf
*******************************************************************************************
node.session.auth.username = student #53、54行
node.session.auth.password = westos
discovery.sendtargets.auth.username = student #67、68行
discovery.sendtargets.auth.password = westos
*******************************************************************************************
2.检测192.168.0.1这台target的相关数据
#iscsiadm -m discovery -t sendtargets -p 192.168.0.1[:port] #检测指定设备是否有target数据,默认端口是3260
#ll -R /var/lib/iscsi/nodes/
#连接时会用到的密码、帐号都记录在这里
3.开始进行连接iSCSI target
#/etc/init.d/iscsi restart #将系统里全部的target以/var/lib/iscsi/nodes/内的设置登录(启动完成后已经进入登录状态)
#iscsiadm -m node
#显示系统上面所有的target数据
如果不重新启动iscsi,则可以采用一下手动登录iscsi
#iscsiadm -m node -T iqn.2013-01.com.example.Server1:file1 --login
#fdisk -l
#查看目前iscsi提供的存储空间是否已经加载到本机
此时192.168.0.2这台主机已经可以随意使用已经加载好的iSCSI存储空间
4.更新/删除/添加target数据的方法
语法如下:
#iscsiadm -m node -T targetname --logout
#iscsiadm -m node -o [delete|new|update] -T targetname
示例:
#iscsi -m node
#显示出相关的target iqn名称
#iscsi -m node -T iqn.2013-01.com.example.Server1:file1 --logout
#iscsi -m node -o delete -T iqn.2013-01.com.example.Server1:file1
#/etc/init.d/iscsi restart
注:
ISCSI(SAN的连接方式改为利用IP技术处理后的产品)主要是通过TCP/IP的技术,将存储设备端通过ISCSI Target功能,做成可以提供磁盘的服务器端,再通过ISCSI initiator功能做成能够挂载使用ISCSI Target的客户端,如此便能通过ISCSI协议来进行磁盘的应用了。现在已经很少有所谓的内置或外接RAID了,常听到的有NAS(Network Attached Storage)和SAN(Storage Area Network)
1.NAS:网络附加存储服务器,相当于是一台File Server(支持TCP/IP),低端的NAS通常会使用Linux系统搭配软件磁盘阵列来提供大容量文件系统。NAS通常是利用Web接口来控制磁盘阵列的设置状况、提供IP或其它相关网络设置,以及是否提供某些特定的服务。
2.SAN:存储局域网,可以视为一个外接式的存储设备。一般单纯的外接式存储设备仅能通过某些接口(如SCSI或eSATA)提供单独一台主机使用,而SAN却可以通过某些特殊的接口或信道来提供局域网内的所有机器进行磁盘访问。
3.SAN提供“磁盘(block device)”给主机用,可以进行该磁盘的分区和格式化等,而NAS提供的是“网络协议的文件系统(NFS、SMB等)”,不能进行格式化。
4.NAS可以使用SAN提供的磁盘提供存储服务。
5.ISCSI可以共享的磁盘:
使用dd命令建立的大型文件可供仿真为磁盘(无需预先格式化)
使用单一分区共享为磁盘
使用单一完整的磁盘(无需预先分区)
使用磁盘阵列共享(其实与单一磁盘相同方式)
使用软件磁盘阵列(software RAID)共享成单一磁盘
使用LVM的LV设备共享为磁盘
6.开机自动挂载,在/etc/fstab中的参数为_netdev,如:
/dev/iscsi/disk
/data/iscsi ext4 defaults,_netdev 1 2