Linux网络环境下低成本iSCSI配置攻略Word格式文档下载.docx
《Linux网络环境下低成本iSCSI配置攻略Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Linux网络环境下低成本iSCSI配置攻略Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
这里在此还是尽量做一番归纳整理,以供参考,见表-1。
表-1iSCSI和SAN综合对比
对比选项
SAN存储
iSCSI存储
接口
光纤
IP
性能
高
中
管理及维护成本
低
管理方式
集中
传输介质
双绞线
噪声干扰
无
有
访问方式
块
文件系统
主机文件系统
电磁影响
传输距离
100公里
无限制
数据传输方式:
同为SAN的iSCSI及FIBRECHANNEL都采用块协议方式。
传输速度:
就目前的传输速度而言是FIBRECHANNEL(2Gb)最快、iSCSI(1Gb)次之。
管理方式:
iSCSI采用IP网络的现有成熟架构。
所以可延用既有成熟的网络管理机制,不论是建置、管理或维护上,都非常方便及容易。
而FIBRECHANNEL则完全独立于一般网络系统架构,所以需由FIBRECHANNEL供货商分别提供专属管理工具软件。
管理及维护成本:
一般来说,FIBRECHANNELSAN多半需要特定的工具软件来操作管理,所以需要对人员进行一定时间的教育训练,而且费用不低。
但由于iSCSI乃透过IP网络来传输数据及分配存储资源,所以只要使用网络现有的管理功能即可,相较起来,的确可以省下大笔管理人力及训练成本。
传输距离:
原则上,二者都支持长距离的数据传输。
FIBRECHANNEL的理论值可达100公里。
透过IP网络的iSCSI理论上都没有距离上的限制,iSCSI可以进行长距大量资料的传递。
噪声碰撞问题:
由于iSCSI走的是IP网络,其中当然充斥着来自全球各地的庞大数据及噪声,所以碰撞情形也就在所难免了,如此一来,在数据传输的过程中,就很容易导致延迟的情形发生,大大影响了传输的效能,甚至数据的正确性。
三、主流操作系统对iSCSI支持
对于蓄势待发已久的iSCSI而言,迟迟未能全面普及的主要原因之一,就在于各类平台支持性的不够完备。
是否能得到各式平台充份支持的关键,则在于协议的标准化上。
有了标准化的协议,各类平台解决方案商才能有所依循地推出符合共通标准的支持及产品,如此可观的市场规模才能建立得起来。
SNIA协会在2003年2月正式通过了iSCSI标准,虽然iSCSI已正式标准化,但不一定代表从此就能快速普及,iSCSI是否能在企业存储市场站稳脚步,仍需看厂商本身的参与态度及开发意愿。
表2是主流操作系统对iSCSI支持情况。
表2是主流操作系统对iSCSI支持
操作系统
驱动程序
适配卡
产品名称
windows2000
MicrosoftsoftwareInitiator
IntelPRO/1000TIP适配卡
AlacritechiSCSIHBASES1001
AdapteciSCSIHBA<?
xml:
namespaceprefix=st1ns="
urn:
schemas-microsoft-com:
office:
smarttags"
/>
<st1:
chmetcnvUnitName="
C"
SourceValue="
721"
HasSpace="
False"
Negative="
NumberType="
1"
TCSC="
0"
w:
st="
on"
>
721C</st1:
chmetcnv>
/F
QlogicSANbladeQLA4010
windows2003
RedHatEnterpriseLinux
AS4.0
AdapteciSCSIHBA721C/F
HP-UXV1/V2
HP-UXsoftwareInitiator
NovellNetware5.1-6.5
NovellsoftwareInitiator
SUNSolaris9
iSCSIInitiator可分为三种,即软件Initiator驱动程序、硬件的TOE(TCPOffloadEngine,TCP卸载引擎)HBA卡及iSCSIHBA卡。
就性能而言,软件Initiator驱动程序最差、TOEHBA卡居中、iSCSIHBA卡最佳。
但是iSCSIHBA只能运行iSCSI协议,而无法运行NFS(NetworkFileSystem,SUN制定)或CIFS(CommonInternetFileSystem,微软制定)等档案系统协议与应用服务器沟通。
但Initiator驱动程序及TOEHBA卡则同时支持iSCSI、NFS及CIFS三种协议。
四、Linux下实现iSCSI
Linux网络环境iSCSI技术的实现主要有三种方式:
1.纯软件方式
服务器采用普通以太网卡来进行网络连接,通过运行上层软件来实现iSCSI和TCP/IP协议栈功能层。
这种方式由于采用标准网卡,无需额外配置适配器,因此硬件成本最低。
但是在这种方式中,服务器在完成自身工作的同时,还要兼顾网络连接,造成主机运行时间加长,系统性能下降。
这种方式比较适合于预算较少,并且服务器负担不是很大的用户。
目前不论是MicrosoftWindows、IBMAIX、HP-UX、Linux、NovellNetware等各家操作系统,皆已陆续提供这方面的服务,在价格上,比起前两种方案,远为低廉,甚至完全免费。
但由于Initiator驱动程序工作时会耗费大量的CPU使用率及系统资源,所以性能最差。
在此建议,最好是采用1GHz以上CPU的主机,如此才能获得较佳的效能表现,如果公司主机CPU在1GHz以下,那么最好不要采用。
至于在各类协议的支持上,Initiator驱动程序可以同时支持iSCSI、NFS及CIFS协议。
当然现在大多数服务器CPU都可以满足这个要求。
这里免费的iSCSIInitiator驱动程序,才可以将一般Gigabit网卡仿真成iSCSIInitiator。
然后再透过iSCSI桥接器将一般SCSI接口的存储配备仿真成iSCSITarget,如此就形成一个iSCSI-SAN。
2.iSCSITOE网卡实现方式
在这种方式中,服务器采用特定的TOE网卡来连接网络,TCP/IP协议栈功能由智能网卡完成,而iSCSI层的功能仍旧由主机来完成。
这种方式较前一种方式,部分提高了服务器的性能。
在三种iSCSIInitiator中,价格比iSCSIHBA便宜,但比软件Initiator驱动程序贵,性能也居于两者之间。
目前市面上Intel的TOE(TCPOffloadEngine,TCP卸载引擎)HBA价格在150美金左右。
3.iSCSIHBA卡实现方式
使用iSCSI存储适配器来完成服务器中的iSCSI层和TCP/IP协议栈功能。
这种方式使得服务器CPU无需考虑iSCSI以及网络配置,对服务器而言,iSCSI存储器适配器是一个HBA(存储主机主线适配器)设备,与服务器采用何种操作系统无关。
该方式性能最好,但是价格也最为昂贵。
在三种iSCSIInitiator中,价格最贵,但性能最佳。
目前价格已由一开始的1000美金左右,下降跌至500美元左右。
对于有高效能应用需求的企业,最好采用iSCSIHBA卡,如此才能获得最好的性能。
考虑到笔者使用Linux服务器使用2.4GIntel至强处理器,而且网络负载不大,本文使用第一种方式,拓朴结构见图2.
图2网络拓朴结构
说明:
iSCSI储存设备架构:
型号为PROMISEVtrak15200,使用iSCSI机型;
使用5
颗硬盘,1颗为sparedisk,其余4颗做成RAID-5;
IP:
iSCSI储存设备的IP地址设置为192.168.11.201
连接到储存设备的账号与密码分别为:
myaccount/iscsimy1Spw
Linux服务器:
系统:
RedHat9Linux核心(2.4.20-8mp)
RedHat9Linux服务器IP地址设置为192.168.10.3
硬件:
DellPowerEdge16000SC(2.4GIntel至强处理器,512MBDDRECC内存)基础型服务器。
用于邮件服务器(商业版本的sendmail:
3Rsoft)。
1.准备工作
因为安装iSCSI驱动需要配合核心来编译,所以会使用到内核源代码,此外,也需要编译器(compiler)的帮助,因此,先确定您的Linux系统当中已经下列软件的存在:
kernel-source、kernel、gcc、perl、Apache。
打开一个终端,使用命令检查:
#rpm-qa|grepgcc;
rpm-qa|grepmake
#rpm-qa|grepkernel;
iSCSI驱动程序下载网址是:
这个网站根据Linux内核(2.4/2.6)提供两种驱动程序,请根据内核版本下载相应的驱动,首先使用下面的命令查询目前所使用的Linux的内核版本:
#uname–a
Linuxcao2.4.20-8#1ThuMar1317:
54:
28EST2003i686i686i386GNU/Linux
2.得到版本信息后,到其官方网站下载系统所需的驱动。
下载完成就可以使用下面的命令安装该组件然后编译内核:
#cdcd/usr/local/src
#wegt
#tar-zxvflinux-iscsi-3.4.3.2.tgz
#cdlinux-iscsi-3.4.3.2
#makeclean
#make
#makeinstall
3.修改配置文件开始进行修改的工作:
#vi/etc/iscsi.conf
Username=myaccount
#用户名#
Password=iscsimy1Spw
#口令#
DiscoveryAddress=192.168.11.201
#iSCSI储存设备的IP地址#
Username=myaccount
Password=iscsimy1Spw
4.启动iscs
#/etc/init.d/iscsistart
StartingiSCSI:
iscsiiscsidfsck/mount
5.使用iscsi-ls命令可以看到更为详细的磁盘信息:
:
#iscsi-ls
*****************************************************************
SFNetiSCSIDriverVersion...3.4.3.2(27-Jun-2005)
****************************************************************
TARGETNAME
:
iqn.1994-.promise.target.3b.31.4.55.1.0.0.20
TARGETALIAS
Vtrak15200
HOSTNO
0
BUSNO
TARGETID
TARGETADDRESS
192.168.11.201:
3260
SESSIONSTATUS
ESTABLISHEDATThuNov1020:
13:
432005
NO.OFPORTALS
1
PORTALADDRESS1
3260,2
SESSIONID
ISID00023d000001TSIH04
iSCSI节点名称有两种格式,即iqn-type格式和eui-type格式。
Linux常用的是iqn-type的格式为:
6.使用fdisk命令进行磁盘分区
fdisk命令格式
fdisk[-l][-bSSZ][-u]device
主要选项:
-l:
察看指定的设备的分区表状况。
-bSSZ:
将指定的分区大小输出到标准输出上,单位为区块。
-u:
搭配"
-l"
参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。
device:
要这些操作的设备名称。
fdisk是各种Linux发行版本中最常用的分区工具,是被定义为Expert级别的分区工具。
我们可以通过fdisk来分区使用iscsi设备。
它还包括一个二级选单,首先输入命令,然后出现问答式界面,用户通过在这个界面中输入命令参数来操作fdisk。
见图3。
图3
fdisk分区工具
选项介绍:
a:
设定硬盘启动区。
b:
编辑一个BSD类型分区。
c:
编辑一个DOS兼容分区。
d:
删除一个分区。
l:
m:
显示Fdisk命令各个参数的说明。
o:
创建一个DOS分区。
n:
设定新的硬盘分区。
p:
打印分区信息。
s:
创建一个空Sun分区表。
t:
改变硬盘分区类型。
q:
结束分区,不保存操作内容。
v:
校验硬盘分区表。
w:
结束分区,保存操作内容。
x:
进入高级操作模式。
#fdisk/dev/hdd
运行后出现fdiak的命令提示符:
Command(mforhelp):
使用n命令创建一个分区,会出现选择主分区(pprimarypartition)还是扩展分区(llogical)的提示,通常选用主分区。
然后按照提示输入分区号(Partionnumber(1-4):
)、新分区起始的磁盘块数(FirstCylinder)和分区的大小,可以是以MB为单位的数字(Lastcylindetor+sizaor+sizeMor+sizeK:
)。
例如:
fdisk/dev/sda
Command(mforhelp):
n
Commandaction
e
extended
p
primarypartition(1-4)
p
Partitionnumber(1-4):
Firstcylinder(1-189971,default1):
Usingdefaultvalue1
Lastcylinderor+sizeor+sizeMor+sizeK(1-189971,default189971):
Usingdefaultvalue1899719
w
7.格式化分区:
#mke2fs-text3-c/dev/sda1
8.设定加载点:
#mkdir/cluster/raid
#mount-text3/dev/sda1/cluster/raid
经过以上的操作,我的Linux服务器已经连接到iSCSI储存设备,并且如同Linux本机上面的一个SCSI硬盘一样。
使用的方式几乎一模一样。
9.自动挂载一个iSCSI卷
可以通过向/etc/fstab.iscsi(filesystemtable)中添加指令行来告诉Linux如何自动挂载卷了。
使用vi编辑器修改/etc/fstab,依次使用shift+G命令(将光标定位到最后一行)然后使用o命令(插入新行并且进入编辑状态),输入以下内容:
/dev/sda1
/cluster/raid
ext3
defaults
0
存盘后从新启动计算机Linux即可自动挂载iSCSI卷。
五、保护iSCSI安全
光纤通道环境给人感觉具有比较高的安全性,原因在于它们是受控的专有网络。
iSCSI给人感觉安全性较低,原因在于它是基于以太网的网络。
不过从本质上来说,光纤通道是没有安全功能的,而iSCSI提供了非常丰富的安全功能。
iSCSI规范提供了initiator与目标端两方面的身份验证(使用CHAP、SRP、Kerberos和SPKM),能够阻止XX的访问,只允许那些可信赖的节点进行访问。
另外,IPsecDigests(IPsec摘要)和Anti-Reply(防回复)功能阻止了插入、修改和删除操作,而IPsecEncryption(IPsec加密)功能防止被偷听,确保了私密性。
最简单的iSCSI实现方式,就是没有任何加密和认证机制的连接。
这种方式仅提供“SCSI指令在TCP/IP协议上传输”这样一个最基本的功能,连接到网络上的任何一台主机都可以毫无阻碍地连接到iSCSI存储设备上。
这种方式显然对任何危险都没有防范能力。
但是,这种方式也有一个明显的优势,那就是性能。
没有了认证和加密,自然也就省去了很多额外的开销。
如果您非常需要您的iSCSI磁盘阵列全速工作,这种方式无疑是最好的选择。
当然,选择这种方式的时候,用来连接iSCSI磁盘阵列的网络交换机最好是与外界隔离的。
妥善选择口令
口令应避免与个人资料有关系,不要选用诸如身份证号码、出生日期、电话号码等作为密码。
建议选用字母、数字混合的方式,以提高密码破解难度。
尽量避免在不同的操作系统使用同一密码,否则密码一旦遗失,后果将不堪设想。
黑客们经常用一些常用字来破解密码。
曾经有一位美国黑客表示,只要用“password”这个字,就可以打开全美多数的计算机。
其它常用的单词还有:
account、ald、alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、love、no、ok、superuser、system、test、work、yes等。
另外相信设置空白口令这件事就会让很多网络管理员头疼。
很多用户嫌口令难记,干脆留空,或者随手设成111111之类。
这种口令实在令人着急,稍微耐心一点儿的黑客,手工都可以试出来,更何况眼下各种字典攻击程