服务器Iscsi 存储建设方案
2015.09
简介
服务器存储,既是把服务器硬件资源,通过软件、技术为网络中其它设备提供存储服务; 考虑到客户网络环境与业务情况,本次我们为用户提供了服务器+Iscsi技术,通过
IP-SAN 给业务系统提供可靠、稳定、低成高,高利用率的存储解决方案;
iSCSI (internet SCSI)技术由IBM 公司研究开发,是一个供硬件设备使用的、可以在IP 协议的上层运行的SCSI 指令集,这种指令集合可以实现在IP 网络上运行SCSI 协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI 技术是一种新储存技术,该技术是将现有SCSI 接口与以太网络(Ethernet)技术结合,使服务器可与使用IP 网络的储存装置互相交换资料。 iSCSI 是一种基于TCP/IP 的协议,用来建立和管理IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN )。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level )在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator )和存储设备(目标器 target )之间进行大量数据的封装和可靠传输过程。 本次系统的拓扑结构如下:
方案介绍 工作过程:
当iSCSI 主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI 命令,该SCSI 命令在iSCSI initiator 层被封装成ISCSI 消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI target层会解开iSCSI 消息包,得到SCSI 命令的内容,然后传送给SCSI 设备执行;设备执行SCSI 命令后的响应,在经过设备侧iSCSI target 层时被封装成ISCSI 响应PDU ,通过TCP/IP网络传送给主机的ISCSI initiator 层,iSCSI initiator 会从ISCSI 响应PDU 里解析出SCSI 响应并传送给操作系统,操作系统再响应给应用程序。
主要优势:
这几年来,iSCSI 存储技术得到了快速发展。iSCSI 的最大好处是能提供快速的网络环境,虽然其性能和带宽跟光纤网络还有一些差距,但能节省企业约30-40%的成本。iSCSI 技术优点和成本优势的主要体现包括以下几个方面:
硬件成本低:
构建iSCSI 存储网络,除了存储设备外,交换机、线缆、接口卡都是标准的以太网配件,价格相对来说比较低廉。同时,iSCSI 还可以在现有的网络上直接安装,并不需要更改企业的网络体系,这样可以最大程度地节约投入。
操作简单,维护方便:
对iSCSI 存储网络的管理,实际上就是对以太网设备的管理,只需花费少量的资金去培训iSCSI 存储网络管理员。当iSCSI 存储网络出现故障时,问题定位及解决也会因为以太网的普及而变得容易。
扩充性强:
对于已经构建的iSCSI 存储网络来说,增加iSCSI 存储设备和服务器都将变得简单且无需改变网络的体系结构。
带宽和性能:iSCSI 存储网络的访问带宽依赖以太网带宽。随着千兆以太网的普
及和万兆以太网的应用,iSCSI 存储网络会达到甚至超过FC (FiberChannel ,光纤通道)存储网络的带宽和性能。突破距离限制:iSCSI 存储网络使用的是以太网,因而在服务器和存储设备的空间布局上的限制就会少了很多,甚至可以跨越地区和国家。
安全性:
iSCSI 和FC 采用不同的方法保证存储访问的安全,这可能是多协议存储架构师必须解决的最大问题。FC 利用
FC 交换机实行分区,通过全局名称排列LUN 编号和主机标识,而iSCSI 采用上述隔离iSCSI 的物理和虚拟方法,通过IP 地址、主机系统和存储设备的名称、内部/外部CHAP 身份验证等方式限制访问,从而保证存储安全。
建设过程
1 准备工作
iSCSI
可分享的设备类型有很多,包括镜像文件(*.img)、分区(partition )、物理硬盘、raid 设备、逻辑卷等,下面我们将准备其中的几种来测试,其他类型大家可以自行测试。
1.1 模拟镜像
在iSCSI Target的/srv目录下创建一个200M 大小的镜像文件。 # mkdir /srv/iscsi
# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=200 # ll -lh /srv/iscsi/disk1.img
1.2 建立分区
创建一个500M 大小的分区/dev/sdb1. # fdisk /dev/sdb
1.3 创建逻辑卷
创建一个
800M 大小的
LV.
# pvcreate /dev/sdc # vgcreate vg0 /dev/sdc # lvcreate -L 800M -n lv1 vg0
2配置iSCSI Target
2.1 安装tgt
CentOS 自带了scsi-target-utils 软件,我们使用该软件进行target 设置。 # yum -y install scsi-target-utils 2.2 配置tgt
tgt 的主配置文件为/etc/tgt/targets.conf,下面我们来设置改文件。 在该文件最后新增以下设置:
backing-store /srv/iscsi/disk1.img backing-store /dev/sdb1 backing-store /dev/vg0/lv1 backing-store /dev/sdd
说明:
iqn = iSCSI Qualified Name iSCSI target的名称规则如下:
iqn.2014-07.dev.iscsi-target:iscsidisk iqn. 年份-月份. 域名反写. 设备识别
每个在同一个target 上的backing-store 称为逻辑单元号(Logical Unit Number,LUN ); 2.3 启动iSCSI target
# /etc/init.d/tgtd start # chkconfigtgtd on
# netstat -tulnp|greptgt
2.4 查看iSCSI target # tgt-admin –show
LUN0 是控制器,可以看到各个LUN 的大小和磁盘路径。 至此,iSCSI Target 设定完毕。
3、配置iSCSI Initiator
3.1 安装initiator
# yum -y install iscsi-initiator-utils 3.2 设置开机启动 # chkconfigiscsid on # chkconfigiscsi on 3.3 配置文档
initiator 的配置文档位于/etc/iscsi/,该目录下有两个文件,initiatorname.iscsi 和iscsid.conf ,
其中iscsid.conf 是其配置文件,initiatorname.iscsi 是标记了initiator 的名称,它的默认名称是InitiatorName=iqn.1994-05.com.redhat:b45be5af6021,我们可以根据实际情况进行更改,比较好区分,这里我们修改为
InitiatorName=iqn.2014-07.dev.iscsi-initiator:initiator。
因为在target 里面,我们并没有设置访问限制,所以iscsid.conf 文件并不需要修改。 3.4 侦测target
如果我们事先不知道目标主机的target 名称,我们就需要进行侦测,下面来讲解。
# iscsiadm -m discovery -t sendtargets -p 192.168.1.21
说明:
-m discovery //侦测target -t sendtargets //通过iscsi 协议
-p IP:port //指定target 的IP 和port ,不写port 的话,默认为3260
3.5 查看nodes
iscsiadm 侦测到的结果会写入/var/lib/iscsi/nodes/ 中,因此只需启动/etc/init.d/iscsi就能够在下次开机时,自动连接到正确的target 了。 # ll -R /var/lib/iscsi/nodes/
侦测信息都写入了
/var/lib/iscsi/nodes/iqn.2014-07.dev.iscsi-target:iscsidisk/192.168.1.21,3260,1/default 文件中了。 3.6 连接target
查看目前系统上面所有的target # iscsiadm -m node 登录target
# iscsiadm -m node -T iqn.2014-07.dev.iscsi-target:iscsidisk –login
3.7 查看磁盘情况 # fdisk –l
可以看到,
initiator 上面多了四块硬盘,大小和target 上的LUN 一致。这时你就可以像使用本地磁盘一样使用这些iSCSI 设备了,下面我们来测试。 3.8 将/dev/sdb和/dev/sdc创建成LV 挂载使用 创建LV
# pvcreate /dev/sdb /dev/sdc # vgcreateiscsi /dev/sdb /dev/sdc # lvcreate -L 1G -n iscsilviscsi
格式化并挂载
# mkfs.ext4 /dev/iscsi/iscsilv # mkdir /mnt/iscsi # vi /etc/fstab
创建测试文件
挂载成功,创建测试文件成功。
3.9 重启测试
11 / 12
测试成功。
3.10 查看target 信息
# tgt-admin –show
可以看到,此时使用该target 的initiator 为iqn.2014-07.dev.iscsi-initiator:initiator,也就是我们上面更改的initiatorname ,IP 地址为192.168.1.22。
至此,iSCSI 置完毕
12 / 12
服务器Iscsi 存储建设方案
2015.09
简介
服务器存储,既是把服务器硬件资源,通过软件、技术为网络中其它设备提供存储服务; 考虑到客户网络环境与业务情况,本次我们为用户提供了服务器+Iscsi技术,通过
IP-SAN 给业务系统提供可靠、稳定、低成高,高利用率的存储解决方案;
iSCSI (internet SCSI)技术由IBM 公司研究开发,是一个供硬件设备使用的、可以在IP 协议的上层运行的SCSI 指令集,这种指令集合可以实现在IP 网络上运行SCSI 协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI 技术是一种新储存技术,该技术是将现有SCSI 接口与以太网络(Ethernet)技术结合,使服务器可与使用IP 网络的储存装置互相交换资料。 iSCSI 是一种基于TCP/IP 的协议,用来建立和管理IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN )。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level )在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator )和存储设备(目标器 target )之间进行大量数据的封装和可靠传输过程。 本次系统的拓扑结构如下:
方案介绍 工作过程:
当iSCSI 主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI 命令,该SCSI 命令在iSCSI initiator 层被封装成ISCSI 消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI target层会解开iSCSI 消息包,得到SCSI 命令的内容,然后传送给SCSI 设备执行;设备执行SCSI 命令后的响应,在经过设备侧iSCSI target 层时被封装成ISCSI 响应PDU ,通过TCP/IP网络传送给主机的ISCSI initiator 层,iSCSI initiator 会从ISCSI 响应PDU 里解析出SCSI 响应并传送给操作系统,操作系统再响应给应用程序。
主要优势:
这几年来,iSCSI 存储技术得到了快速发展。iSCSI 的最大好处是能提供快速的网络环境,虽然其性能和带宽跟光纤网络还有一些差距,但能节省企业约30-40%的成本。iSCSI 技术优点和成本优势的主要体现包括以下几个方面:
硬件成本低:
构建iSCSI 存储网络,除了存储设备外,交换机、线缆、接口卡都是标准的以太网配件,价格相对来说比较低廉。同时,iSCSI 还可以在现有的网络上直接安装,并不需要更改企业的网络体系,这样可以最大程度地节约投入。
操作简单,维护方便:
对iSCSI 存储网络的管理,实际上就是对以太网设备的管理,只需花费少量的资金去培训iSCSI 存储网络管理员。当iSCSI 存储网络出现故障时,问题定位及解决也会因为以太网的普及而变得容易。
扩充性强:
对于已经构建的iSCSI 存储网络来说,增加iSCSI 存储设备和服务器都将变得简单且无需改变网络的体系结构。
带宽和性能:iSCSI 存储网络的访问带宽依赖以太网带宽。随着千兆以太网的普
及和万兆以太网的应用,iSCSI 存储网络会达到甚至超过FC (FiberChannel ,光纤通道)存储网络的带宽和性能。突破距离限制:iSCSI 存储网络使用的是以太网,因而在服务器和存储设备的空间布局上的限制就会少了很多,甚至可以跨越地区和国家。
安全性:
iSCSI 和FC 采用不同的方法保证存储访问的安全,这可能是多协议存储架构师必须解决的最大问题。FC 利用
FC 交换机实行分区,通过全局名称排列LUN 编号和主机标识,而iSCSI 采用上述隔离iSCSI 的物理和虚拟方法,通过IP 地址、主机系统和存储设备的名称、内部/外部CHAP 身份验证等方式限制访问,从而保证存储安全。
建设过程
1 准备工作
iSCSI
可分享的设备类型有很多,包括镜像文件(*.img)、分区(partition )、物理硬盘、raid 设备、逻辑卷等,下面我们将准备其中的几种来测试,其他类型大家可以自行测试。
1.1 模拟镜像
在iSCSI Target的/srv目录下创建一个200M 大小的镜像文件。 # mkdir /srv/iscsi
# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=200 # ll -lh /srv/iscsi/disk1.img
1.2 建立分区
创建一个500M 大小的分区/dev/sdb1. # fdisk /dev/sdb
1.3 创建逻辑卷
创建一个
800M 大小的
LV.
# pvcreate /dev/sdc # vgcreate vg0 /dev/sdc # lvcreate -L 800M -n lv1 vg0
2配置iSCSI Target
2.1 安装tgt
CentOS 自带了scsi-target-utils 软件,我们使用该软件进行target 设置。 # yum -y install scsi-target-utils 2.2 配置tgt
tgt 的主配置文件为/etc/tgt/targets.conf,下面我们来设置改文件。 在该文件最后新增以下设置:
backing-store /srv/iscsi/disk1.img backing-store /dev/sdb1 backing-store /dev/vg0/lv1 backing-store /dev/sdd
说明:
iqn = iSCSI Qualified Name iSCSI target的名称规则如下:
iqn.2014-07.dev.iscsi-target:iscsidisk iqn. 年份-月份. 域名反写. 设备识别
每个在同一个target 上的backing-store 称为逻辑单元号(Logical Unit Number,LUN ); 2.3 启动iSCSI target
# /etc/init.d/tgtd start # chkconfigtgtd on
# netstat -tulnp|greptgt
2.4 查看iSCSI target # tgt-admin –show
LUN0 是控制器,可以看到各个LUN 的大小和磁盘路径。 至此,iSCSI Target 设定完毕。
3、配置iSCSI Initiator
3.1 安装initiator
# yum -y install iscsi-initiator-utils 3.2 设置开机启动 # chkconfigiscsid on # chkconfigiscsi on 3.3 配置文档
initiator 的配置文档位于/etc/iscsi/,该目录下有两个文件,initiatorname.iscsi 和iscsid.conf ,
其中iscsid.conf 是其配置文件,initiatorname.iscsi 是标记了initiator 的名称,它的默认名称是InitiatorName=iqn.1994-05.com.redhat:b45be5af6021,我们可以根据实际情况进行更改,比较好区分,这里我们修改为
InitiatorName=iqn.2014-07.dev.iscsi-initiator:initiator。
因为在target 里面,我们并没有设置访问限制,所以iscsid.conf 文件并不需要修改。 3.4 侦测target
如果我们事先不知道目标主机的target 名称,我们就需要进行侦测,下面来讲解。
# iscsiadm -m discovery -t sendtargets -p 192.168.1.21
说明:
-m discovery //侦测target -t sendtargets //通过iscsi 协议
-p IP:port //指定target 的IP 和port ,不写port 的话,默认为3260
3.5 查看nodes
iscsiadm 侦测到的结果会写入/var/lib/iscsi/nodes/ 中,因此只需启动/etc/init.d/iscsi就能够在下次开机时,自动连接到正确的target 了。 # ll -R /var/lib/iscsi/nodes/
侦测信息都写入了
/var/lib/iscsi/nodes/iqn.2014-07.dev.iscsi-target:iscsidisk/192.168.1.21,3260,1/default 文件中了。 3.6 连接target
查看目前系统上面所有的target # iscsiadm -m node 登录target
# iscsiadm -m node -T iqn.2014-07.dev.iscsi-target:iscsidisk –login
3.7 查看磁盘情况 # fdisk –l
可以看到,
initiator 上面多了四块硬盘,大小和target 上的LUN 一致。这时你就可以像使用本地磁盘一样使用这些iSCSI 设备了,下面我们来测试。 3.8 将/dev/sdb和/dev/sdc创建成LV 挂载使用 创建LV
# pvcreate /dev/sdb /dev/sdc # vgcreateiscsi /dev/sdb /dev/sdc # lvcreate -L 1G -n iscsilviscsi
格式化并挂载
# mkfs.ext4 /dev/iscsi/iscsilv # mkdir /mnt/iscsi # vi /etc/fstab
创建测试文件
挂载成功,创建测试文件成功。
3.9 重启测试
11 / 12
测试成功。
3.10 查看target 信息
# tgt-admin –show
可以看到,此时使用该target 的initiator 为iqn.2014-07.dev.iscsi-initiator:initiator,也就是我们上面更改的initiatorname ,IP 地址为192.168.1.22。
至此,iSCSI 置完毕
12 / 12