IP SAN技术白皮书
前言 iSCSI 技术发展及未来展望
企业存储技术发展日新月异,早期大型服务器的DAS 技术(Direct Attached Storage,
直接附加存储,又称直连存储),后来为了提高存储空间的利用及管理安装上的效率,因而
有了SAN(Storage Area Network,存储局域网络)技术的诞生,SAN 可说是DAS 网络化发
展趋势下的产物。早先的SAN 采用的是光纤通道(FC,Fiber Channel)技术,所以在iSCSI
出现以前,SAN 多半单指FC 而言。一直到iSCSI 问世,为了方便区别,业界才分别以FC-SAN
及iSCSI-SAN 的称呼加以分辨。
紧接着,为了能在多用户网络环境中,做好档案集中化分享管理的工作,采用全然不同
于以往的文件协议(File Protocol)数据存取方式的NAS(Network Attached Storage;网络附
加存储)方案也应运而生。它的出现,为以太网络的成熟及重要,做了最佳脚注。
日益发展及成熟的因特网,更进一步成为了IP 存储方案成长壮大的最佳腹地及平台,
现成的架构、协议、标准、基础设施及管理工具,莫不吸引着寻求最佳存储方案者的目光。
此背景,加上FC-SAN 高不可攀的成本及管理门坎的障碍,另一存储成员iSCSI(Internet
SCSI)也来报到了。iSCSI 的出现,标志着低价化SAN 方案的问世。
从IP SAN 到iSCSI SAN
所谓iSCSI 亦即通过IP 网络,将SCSI 区块数据转换成网络封包的一种传输标准,它和
NAS 一样通过IP 网络来传输数据,但在数据存取方式上,则采用与NAS 不同的,而与
FC-SAN 相同的Block Protocol 协议。iSCSI 最早是由IBM 和Cisco 于2001 年制定的。
事实上,为了解决FC-SAN 在价格及管理上的诸多门坎,各家早有不同协议的IP SAN
的研究开发。这些IP SAN 的架构,其实与iSCSI 大同小异,只不过并非走标准化的协议(事
实上,在iSCSI 标准化之前,也没有什么标准不标准的问题),而是各家自行研发的协议,
所以基本上各家IP SAN 是不兼容的。
先安装iSCSI initiator以及iscsiadm
iscsiadm是基于命令行的iscsi管理工具,提供了对iscsi节点、会话、连接以及发现记录的 *** 作。
iscsiadm的使用说明可以查看/usr/share/doc/iscsi-initiator-utils-620742/README,也可以运行man iscsiadm或iscsiadm --help
#yum install iscsi-initiator-utils
使用
下面来讲一下连接iscsi设备的步骤:
1 启动iscsi守护进程
#service iscsi start
默认情况下,系统启动后此进程会自动运行
2 发现目标
默认情况下,iscsi发起方和目标方之间通过端口3260连接。假设已知iscsi的目标方IP是19216811,运行下列命令:
#chkconfig iscsi on;chkconfig iscsi --list (查看ISCSI启动状态)
#iscsiadm -m discovery -t sendtargets -p 19216811:3260
此时找到拥有一个目标(target)
#19216811:3260,2 iqn1995-03comdothill:01array00c0ff137675
3登入节点
以上面被发现的目标为例
# iscsiadm -m node –T iqn1995-03comdothill:01array00c0ff137675 -p 19216811:3260 -l
其中iqn1997-05comtest:raid是目标名
如果要在系统启动时自动登入
# iscsiadm -m node –T iqn1995-03comdothill:01array00c0ff137675 -p 19216811:3260 --op update -n nodestartup -v automatic
登入节点后,运行
#fdisk –l
应该可以看到目标方的存储设备信息,如
Disk /dev/sdb: 34898 GB, 3489862254592 bytes
255 heads, 63 sectors/track, 424284 cylinders
Units = cylinders of 16065 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
/dev/sdb即为连接的iscsi存储设备
登入需验证码的节点:
(1)开启认证
iscsiadm -m node -T [装置] -o update --name nodesessionauthauthmethod --value=CHAP
使用-o同--op
(2)添加用户
iscsiadm -m node -T [装置] --op update --name nodesessionauthusername --value=[用户名]
(3)添加密码
iscsiadm –m node –T [装置] –op update –name nodesessionauthpassword –value=[密码]
4 格式化设备
如欲将设备格式化为ext3文件系统,运行
# mkfsext4 /dev/sdb
5挂接设备
在/mnt下创建iscsi目录
#mkdir /mnt/iscsi
运行mount命令:
# mount /dev/sdb /mnt/iscsi
针对iscsi设备的特殊mount选项
运行df –h可以看到:
/dev/sdb 34T186M 34T 1% /mnt/iscsi
iscsi设备被成功挂接,可以当作常规存储设备使用了。
如果要在系统启动时自动挂接
编辑/etc/fstab
加入一行:
/dev/sdb /mnt/iscsi ext4 default 0 0
6 登出节点
首先解除挂接
#umount /mnt/iscsi
登出
# iscsiadm -m node –T iqn1995-03comdothill:01array00c0ff137675 -p 19216811:3260 –u
在 iSCSI Target 服务器中使用LVM创建和设置LUN
为什么使用LUN?
LUN用于存储,SAN存储大多数由LUN的集群来组成存储池,LUN由目标器的几块物理驱动器组成。我们可以使用LUN作为系统物理驱动器来安装 *** 作系统,LUN可以用在集群、虚拟服务器、SAN中。在虚拟服务器中使用LUN的主要用途是作为 *** 作系统的存储。LUN的性能和可靠性根据在创建目标存储服务器时所使用的驱动器决定。
前置阅读
要了解创建iSCSI 目标器,点击下面的链接。
使用iSCSI Target创建集中式安全存储(一)
主服务器设置
系统信息和网络设置部分与前文的iSCSI 目标器相同 - 我们在相同的服务器上定义LUN。
*** 作系统 – CentOS 65 (Final)
iSCSI 目标器 IP – 1921680200
使用的端口 : TCP 860, 3260
配置文件 : /etc/tgt/targetsconf
在iSCSI 目标器使用LVM创建LUN
首先,用fdisk -l命令找出驱动器的列表,这会列出系统中所有分区的列表。
# fdisk -l
上面的命令只会给出基本系统的驱动器信息。为了得到存储设备的信息,使用下面的命令来得到存储设备的列表。
# fdisk -l /dev/vda && fdisk -l /dev/sda
列出存储设备
注意:这里vda是虚拟机硬盘,因为我使用的是虚拟机来用于演示,/dev/sda 是额外加入的存储。
第一步: 创建用于LUN的LVM驱动器
我们使用/dev/sda驱动器来创建LVM。
# fdisk -l /dev/sda
列出LVM驱动器
现在让我们使用如下fdisk命令列出驱动器分区。
# fdisk -cu /dev/sda
选项 ‘-c’ 关闭DOS兼容模式。
选项 ‘-u’ 用于列出分区表时给出扇区而不是柱面的大小。
使用n创建新的分区。
Command(m for help): n
使用p创建主分区。
Command action
e extended
p primary partition (1-4)
给我们创建的分区一个分区号。
Partition number (1-4):1
到这里,我们就要设置LVM驱动器了。因此,我们需要使用默认的设置来使用整个驱动器。
First sector (2048-37748735,default2048):
Usingdefault value 2048
Last sector,+sectors or+size{K,M,G}(2048-37748735,default37748735):
Usingdefault value 37748735
选择分区的类型,这里我们要设置LVM,因此使用8e。使用l列出所有的类型。
Command(m for help): t
选择想要改变类型的分区。
Selected partition 1
Hex code (type L to list codes):8e
Changed system type of partition 1 to 8e(Linux LVM)
在改变完类型之后,通过打印(p)选项来列出分区表。
Command(m for help): p
Disk/dev/sda:193 GB,19327352832 bytes
255 heads,63 sectors/track,2349 cylinders, total 37748736 sectors
Units= sectors of 1512=512 bytes
Sector size (logical/physical):512 bytes /512 bytes
I/O size (minimum/optimal):512 bytes /512 bytes
Disk identifier:0x9fae99c8
DeviceBootStartEndBlocksIdSystem
/dev/sda1 204837748735188733448eLinux LVM
使用w写入设置并退出fdisk工具,重启系统使设置生效。
作为参考,我下面附上了截图来给你在创建LVM驱动器时一个明确的指导。
创建LVM分区
系统重启后,使用fdisk命令列出分区表。
# fdisk -l /dev/sda
验证LVM分区
第二步: 为LUN创建逻辑卷
现在我们使用‘pvcreate’命令创建物理卷。
# pvcreate /dev/sda1
用iSCSI的名字创建卷组来区分这个卷组。
# vgcreate vg_iscsi /dev/sda1
这里我定义了4个逻辑卷,因此在我的iSCSI target上就会有4个LUN。
# lvcreate -L 4G -n lv_iscsi vg_iscsi
# lvcreate -L 4G -n lv_iscsi-1 vg_iscsi
# lvcreate -L 4G -n lv_iscsi-2 vg_iscsi
# lvcreate -L 4G -n lv_iscsi-3 vg_iscsi
列出物理卷、卷组和逻辑卷确定。
# pvs && vgs && lvs
# lvs
为了更好地理解上面的命令,我在下面包含了截图作为参考。
创建LVM逻辑卷
验证LVM逻辑卷
第三步: 在目标器中定义LUN
我们已经创建了逻辑卷并准备使用LUN,现在我们在目标器配置中定义LUN,只有这样做它才能用在客户机中(发起程序)。
用你选择的编辑器打开位于‘/etc/tgt/targetsconf’的目标器配置文件。
# vim /etc/tgt/targetsconf
追加下面的target配置文件中的定义。保存并关闭文件。
<targetiqn2014-07comtecmint:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi
</target>
<targetiqn2014-07comtecmint:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi-1
</target>
<targetiqn2014-07comtecmint:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi-2
</target>
<targetiqn2014-07comtecmint:tgt1>
backing-store /dev/vg_iscsi/lv_iscsi-3
</target
在target中配置LUN
上图的解释:
iSCSI 采取限定名 (iqn2014-07comtecmint:tgt1)
名称随便你
用于确定目标名, 这是这台服务器中的第一个目标
LVM共享特定的LUN。
接下来使用下面的命令重载tgd服务配置。
# /etc/initd/tgtd reload
重载配置
接下来使用下面的命令验证可用的LUN。
# tgtadm --mode target --op show
列出可用LUN
LUN信息
上面的命令会列出可用LUN的下面这些信息
iSCSI 限定名
iSCSI 已经准备好
默认LUN 0被控制器所保留
LUN 1是我们定义的目标器
这里我为每个LUN都定义了4GB
在线: 是的,这就是可以使用的LUN
现在我们已经使用LVM为目标器定义了LUN,这可扩展并且支持很多特性,如快照。我们将会在第三部分了解如何用目标器授权,并且本地挂载远程存储。
磁盘阵列如何与服务器连方式有2种,一种是独立网络磁盘阵列,通过以太网与服务器连接,另一种是采用1394总线,直接与服务器的1394口连接。若服务器没有1394口,就需要扩展一块1394接口板。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)