首页 > 代码库 > 网络存储服务器

网络存储服务器

源自《Linux 运维之道》丁一明编著 一书的总结

目前计算机领域的存储解决方案主要有直连存储(DAS)、存储区域网络(SAN)以及网络附加存储(NAS)三种。SAN(storage Area Network指是一整套存储网络的解决方案,采用光纤通道技术,SAN通过光纤交换机将服务器与存储设备连接在一起的网络整体环境)。NAS(network-Attached Storage)可以使用普通的网络环境,通过以太网交换机等设备连接服务器与存储设备。

iSCSI(Internet Small Computer System Interface)是典型的IP-SAN技术,基于因特网的SAN存储技术,该技术使得我们可以在基于IP协议的网络上传输SCSI命令,在iSCSI环境中,客户端发送SCSI命令给远程的SCSI存储设备,实现数据的存储与备份功能。iSCSI使用TCP860和3260端口通信。

LUN(Logical Unit Number)是设备的逻辑单元号,一般为数字,我们使用LUN来标志存储设备。IQN(iSCSI Qualified Name)为iSCSI合格名称,一般格式为iqn.yyyy-mm.<reversed domain name>:identifier,其中yyyy表示年,mm表示月,reversed domain name是域名的反写,identifier为标志名称。如:iSCSI服务器域名为www.example.com,则IQN全称可以写成iqn.2012-10.com.example.www:disk1。这种IQN的书写格式不是创建iSCSI服务必须遵守的,但是推荐使用这样的标准格式。

[root@localhost tcpcliserv]# yum -y install scsi-target-utils

[root@localhost tcpcliserv]# fdisk -cul |grep /dev/sd

Disk /dev/sda: 21.5 GB, 21474836480 bytes

/dev/sda1 * 2048 616447 307200 83 Linux

/dev/sda2 616448 37814271 18598912 83 Linux

/dev/sda3 37814272 41943039 2064384 82 Linux swap / Solaris

[root@localhost tcpcliserv]# gedit /etc/tgt/targets.conf

在default-driver iscsi一行添加内容:

<target iqn.2014-06.com.example:disk1>

backing-store /dev/sda2

lun 20

initiator-address 192.168.118.254

incominguser tom 123 #注意要一个空格就行了,空格多了不行!!!

</target>

第三个target定义了一个LUN,编号为20,共享设备为/dev/sda2,仅允许tom账户通过192.168.118.254访问该target。

开启服务器,并查看iSCSI的详细信息。

[root@localhost tcpcliserv]# fdisk -cul |grep /dev/sd

Disk /dev/sda: 21.5 GB, 21474836480 bytes

/dev/sda1 * 2048 616447 307200 83 Linux

/dev/sda2 616448 37814271 18598912 83 Linux

/dev/sda3 37814272 41943039 2064384 82 Linux swap / Solaris

[root@localhost tcpcliserv]# gedit /etc/tgt/targets.conf

[root@localhost tcpcliserv]# gedit /etc/tgt/targets.conf

[root@localhost tcpcliserv]# /etc/init.d/tgtd start

Starting SCSI target daemon: [ OK ]

Option incominguser has a missing value!

Check your config file for errors (target: iqn.2014-06.com.example:disk1)

[root@localhost tcpcliserv]# chkconfig tgtd on

[root@localhost tcpcliserv]# iptables -I INPUT -p tcp --dport 3260 -j ACCEPT

[root@localhost tcpcliserv]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

[root@localhost iscsi]# tgtadm --lld iscsi --op show --mode target

Target 1: iqn.2014-06.com.example:disk1

System information:

Driver: iscsi

State: ready

I_T nexus information:

I_T nexus: 2

Initiator: iqn.1993-08.org.debian:01:1a9432a6020

Connection: 0

IP Address: 192.168.118.254

LUN information:

LUN: 0

Type: controller

SCSI ID: IET 00010000

SCSI SN: beaf10

Size: 0 MB, Block size: 1

Online: Yes

Removable media: No

Prevent removal: No

Readonly: No

Backing store type: null

Backing store path: None

Backing store flags:

Account information:

ACL information:

ALL

在unutu客户端登录

root@ubuntu:/home/tempal# sudo apt-get install open-iscsi open-iscsi-utils

root@ubuntu:/home/tempal# sudo iscsiadm -m discovery -t sendtargets -p 192.168.118.253

192.168.118.253:3260,1 iqn.2014-06.com.example:disk1

root@ubuntu:/home/tempal# iscsiadm -m node --targetname iqn.2014-06.com.example:disk1 -p 192.168.118.253 --login

Logging in to [iface: default, target: iqn.2014-06.com.example:disk1, portal: 192.168.118.253,3260]

Login to [iface: default, target: iqn.2014-06.com.example:disk1, portal: 192.168.118.253,3260]: successful