RHC-GFS-ISCSI-GFS系统搭建
- 格式:doc
- 大小:458.00 KB
- 文档页数:17
1iscsi工作原理与服务器搭建1.1概念iSCSI是因特网小型计算机系统接口(internet Small Computer System Interface)的简称,其是IETF制订的一项标准,用于将SCSI数据块映射为以太网数据包。
从根本上来说,它是一种基于IP Storage 理论的新型存储技术。
简单的说,iSCSI就是在IP网络上运行SCSI 协议的一种网络存储技术。
一个可以用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以称为“iSCSI Target”。
目前大部分iSCSI Target 都是收费的,例如DataCoreSoftware,FalconStor Software的iSCSI Server for Windows等,这些都是支持Windows平台的。
不过在linux平台下也存在iSCSI Target软件,例如iSCSI Enterprise Target,而这也是我们KMJ 所使用的,后面则会重点介绍该软件。
1.2iSCSI的工作原理首先客户端Initiator发出请求建立SCSI CDB(命令描述块),并将其传给iSCSI层。
而iSCSI 层则对SCSI的CDB进行封装,完成SCSI到TCP/IP的协议的映射。
TCP/IP层则对IP报文进行路由转发,并且提供端到端的透明可靠的传输。
1.3搭建iSCSI Target服务器1寻找一台linux服务器,搭建好yum源,我们一般使用kylin 3.1.8或kylin3.2.2操作系统。
2安装iSCSI Target 包yum–y install scsi-target-utils3在该服务器上添加一块空闲分区或者硬盘作为存储盘,比如将/dev/sdb作为映射存储。
4修改配置文件vi /etc/tgt/targets.conf<target zkt> //target名称可自定义backing-store /dev/sdb</target>5启动iSCSI Target服务6service tgtd start7关闭selinux 和防火墙关闭selinux,setenforcesoftmode关闭防火墙,service iptables stop 或者/etc/init.d/iptables start1.4搭建iSCSI Initiator 服务器注:以下操作不需要手动去做,KMJ 已经默认安装或通过web进行配置,只需对其有一定了解即可。
/viewthread.php?tid=777867&extra=page %3D1%26filter%3DdigestGFS = RedHat Global File SystemGFS 的入门必读以下为入门必看- GFS 的介绍 /solutions/gfs/- RedHat杂志关于GFS的最佳实践/magazine/009jul05/features/gfs_practices/- RedHat杂志关于GFS和以太网和SAN光纤存储网的介绍/magazine/008jun05/features/gfs/- RedHat杂志关于企业如何用GFS来存储数据的介绍/magazine/009jul05/features/gfs_overview/- RedHat杂志关于用GFS来做数据共享的介绍/magazine/006apr05/features/gfs/- RedHat杂志关于RHCS集群的介绍/magazine/009jul05/features/cluster/- RedHat 官方的GFS 概述文档/whitepapers/rha/gfs/GFS_INS0032US.pdf- RedHat 关于GFS扩展性的介绍 /solutions/scaleout/- RedHat和HP提供的HP MC/SG + GFS的方案介绍/promo/hp_serviceguard/ (注意右侧的多个连接所指向的文档)- GFS 6.1U3版本的Release notes /docs/manua ... HEL4U3-relnotes.txt- GFS 6.1U2版本的Release notes /docs/manua ... HEL4U2-relnotes.txt- GFS 6.1的Release notes /docs/manua ... FS_6_1-relnotes.txt - GFS 6.1的Admin Guide /docs/manuals/csgfs/browse/rh-gfs-en/- 本版suran007 同学提供的"GFS6.1 ON RHAS4 U2安装文档" /viewthr ... &extra=page%3D1- 本版发起的"关于多台web服务器挂载GFS系统" 的讨论/viewthr ... 4&highlight=GFS- LinuxVirtualServer 站点上网友hosyp 2006-02-15 发表的"集群LVS+GFS+ISCSI+TOMCAT" /node/100- RedHat杂志关于企业如何用GFS来存储数据的介绍06年8月更新版/magazine/021jul06/features/gfs_update/- gb8007同学发起的关于安装GFS过程中kernel版本和GFS版本的冲突问题/viewthr ... &extra=page%3D1- jeepmac同学发起的关于"自己规划了一个GFS+iSCSI集群方案" /viewthr ... &extra=page%3D1- 重点推荐, RedHat GFS 综合介绍Web 录像 /f/swf/gfs/- zhangning_1999同学贡献的"用VMWARE安装配置GFS(使用DLM方法)" 原创/viewthr ... &extra=page%3D1GFS 软件介绍- RedHat GFS 的版权许可介绍A.RedHat GFS 是一个遵守GPL 开放源代码的集群文件系统B.RedHat出售GFS软件及收费的技术服务C.用户可以选择购从RedHat购买包含技术支持服务的GFS软件D.也可以直接从RedHat官方的服务器上下载rpm格式的源代码包,修改并自由使用(见下面连接)E.可以直接从RedHat CVS服务器 checkout GFS源代码(普通source file+directory).F.用户也可以通过centOS组织提供的服务器,下载已经编译成二进制可运行的GFS或源代码(见下面连接)- RedHat 官方提供的GFS软件的下载 ftp:///pub/redhat/linux/enterprise/4/en/RHGFS- CentOS 组织提供的GFS软件的下载v4 6.1 /centos/4/csgfs/- CentOS 组织提供的GFS软件的下载v3 6.0 /centos/3/csgfs/GFS 进阶应用- RedHat杂志关于GFS和NFS性能和扩展性比较的介绍/magazine/008jun05/features/gfs_nfs/- RedHat杂志关于GFS支持Oracle RAC集群的介绍/magazine/009jul05/features/gfs_oracle/- Google 可以使用的搜索关键字举例 "RedHat GFS Global file system filetype:pdf" - RedHat官方GFS 知识库 /faq/topten_78_0.shtm- RedHat 2006年峰会的GFS和集群相关的演讲稿/promo/summit/presentations/cns.htm。
集群⽂件系统之GFS2⼀、⽂件系统分类 1.集群⽂件系统 GFS2 OCFS2 2.分布式⽂件系统(有分布式⽂件锁。
) GFS(Goole) :适⽤海量⼤⽂件 HDFS(Hadoop) :适⽤海量⼤⽂件 MogileFS :适⽤海量⼩⽂件⼆、RHCS(Redhat Hat Cluster Suite)红帽集群套件 注:需要适⽤GFS2则需要先安装RHCS 1.RHCS概念: RHCS是⼀个功能完备的集群应⽤解决⽅案,它从应⽤的前端访问到数据后端的数据数据存储都提供了⼀个⾏之有效的集群架构实现,通过RHCS提供的这种解决⽅案,不但能保证前端应⽤持久,稳定的提供服务,同时也保证了后端数据存储的安全。
RHCS提供了集群系统中三种集群架构,分别是⾼可⽤性集群,负载均衡集群,存储集群 2.RHCS核⼼功能特点: ⾼可⽤集群 LVS GFS⽂件系统三、部署RHCS的⽅法 1.conga部署(luci+ricci) 控制节点:luci 集群节点:ricci 注意:在安装RHCS的时候要禁⽤epel源 2.⼿动部署四、conga部署RHCS 1.需要四台linux机器。
⼀台控制节点。
三台集群节点。
控制节点安装ansible、并且主机名、双机互信配置完毕。
2.集群节点通过ansible安装ricci (注意这⾥要⽤本机镜像内的源安装,不⽤epel源安装,因为epel版本可能更旧) #ansible webserver -m yum -a "name=ricci state=present disablerepo=epel" 3.主节点安装luci #yum -y install luci --disablerepo=epel 4.验证集群节点ricci服务 netstat -tulp (ricci⽤tcp:1111与upd:111端⼝) 5.启动控制节点服务 service luci start 6.使⽤浏览器登录RHCS管理界⾯(地址在启动服务的时候会显⽰) 7.配置集群节点及资源五、配置GFS2(集群⽂件系统)六、配置CLVM(集群逻辑卷)。
GFS2命令行配置手册创建集群:1、首先通过ccs_tool工具创建集群:ccs_tool create NameofCluster2、通过ccs_tool工具创建fence设备:ccs_tool addfence NameofFence AgentTypeofFence -C3、检查已经添加的fence设备:ccs_tool lsfenceName Agentfence-shared fence_manual4、通过ccs_tool工具创建集群中的节点:ccs_tool addnode NameofNode –v 1 –n 1 –f NameofFence -C5、检查已经添加的节点:ccs_tool lsnodeCluster name: 001, config_version: 6Nodename Votes Nodeid Fencetype 1 1 fence-shared 1 2 fence-shared 1 3 fence-shared 1 4 fence-shared6、在各个节点上同时启动集群服务:/etc/init.d/cman startStarting cluster:Loading modules... doneMounting configfs... doneStarting ccsd... doneStarting cman... doneStarting daemons... doneStarting fencing... done[ OK ] 7、检查集群健康状态:clustat –i 3Cluster Status for 001 @ Thu Nov 19 13:26:55 2009Member Status: QuorateMember Name ID Status------ ---- ---- ------ 1 Online, Local 2 Online 3 Online 4 Online8、更新集群配置:ccs_tool update /etc/cluster/cluster.confConfig file updated from version 6 to 7Update complete.9、删除集群节点:ccs_tool delnode NameofNode10、删除集群fence设备:ccs_tool delfence NameofFence建立GFS(首先要连接iscsi设备,本文中由于iscsi 使用的是专业存储,这里不介绍如何配置iscsi服务端了)1、安装iscsi客户端:yum install iscsi-initiator-utils2、发现网络上的iscsi设备:(如果以前挂载过别的iscsi设备,可以先将/var/lib/iscsi/nodes目录清空)/etc/init.d/iscsi restartiscsiadm -m discovery -t sendtargets -p 192.168.2.53192.168.2.53:3260,1 .example:storage.disk2.sys1.xyz10.0.0.53:3260,1 .example:storage.disk2.sys1.xyz192.168.1.53:3260,1 .example:storage.disk2.sys1.xyz /etc/init.d/iscsi restartfdisk –lDisk /dev/cciss/c0d0: 293.5 GB, 293563949056 bytes255 heads, 63 sectors/track, 35690 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/cciss/c0d0p1 * 1 22419 180080586 83 Linux/dev/cciss/c0d0p2 22420 35167 102398310 83 Linux/dev/cciss/c0d0p3 35168 35689 4192965 82 Linux swap / Solaris Disk /dev/sda: 104.8 GB, 104855869440 bytes255 heads, 63 sectors/track, 12748 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/sda doesn't contain a valid partition table3、在各个节点上都发现这个iscsi块设备。
CentOS6.0下使用Conga创建Cluster黎阳实验笔录概述:试验环境:两台DELL R910,安装Centos6.0,通过ISCSI共享盘柜磁盘,使用主板集成网卡:NIC1,iDrac6专用网口任务:使用基于Web管理方式的Conga工具创建、管理两节点Cluster,然后以一个简单的web服务(httpd)作切换测试.基本概念:Conga:分为Luci(管理工具,Server端)及 Ricci(用于接收和传递Luci指令的服务程序,Agent)两部分,其中Luci安装在任一管理工作站上,Ricci安装在被管理的Cluster节点上.脑裂(Head-split):当前激活的Cluster 节点因为处理器忙或者其他原因暂时停止响应时,其他节点可能误认为该节点”已死”,从而夺取共享磁盘的访问权,此时极有可能假死节点重新对共享文件系统产生读写操作,从而导致共享磁盘文件系统损坏.Fence:为了防止”脑裂”现象的产生,使用fence设备对”故障”节点进行”屏蔽”措施,如重启该设备,从而尝试恢复其节点功能. Fence 设备可以是交换机,或者IPMI等. 这里我们采用PE2900的BMC充当Fence设备.Cman:cluster manager,Cluster组件之一,该服务用于cluster的配置,控制,查询,仲裁计算等.Rgmanager:Resource group manager,Cluster组件之一,提供用户定义的资源组的切换服务.Failover domain: cluster 环境中服务failover的区域.原理介绍:cman集群管理器cman是一个基于内核的对称通用集群管理器。
它由两部分组成:连接管理器(cnxman),用于处理成员、消息、投票数、事件通知和过渡;服务管理器(SM),用于处理那些需要通过各种方式进行集群管理的应用及外部系统。
cman是RHCS中最核心的服务,可通过系统中的serivce命令进行启/停操作;DLM、GFS、CLVM 及Fence都依赖于cman群集管理器。
毛毛雨:AM 3885999RHCS 基于 RHEL6.0 x86_64(实验教程) 实验说明:所用的RHEL 版本均为 6.0 x86_64,宿主机支持虚拟化,内存不小于4G。
实验拓扑如下:在本实验中,为了节省资源将 ISCSI-Target 也放到 manager 一个机器上了。
vmware 创建一个虚拟机,内存3G,按下图设置使得虚拟机也支持虚拟化,vmware workstation 版本不低于7:蓝狐Linux系统培训中心毛毛雨:AM 3885999毛毛雨:AM 3885999蓝狐Linux 系统培训中心毛毛雨:AM 3885999在这个虚拟机中装好 rhel6,ip192.168.0.200,作为 RHCS 的管理端,继续在其上安装 kvm,kvm 的安装请查看我之前写的关于 kvm 文档,kvm 安装好后,创建两 个 vm(virtual machine) ,桥接到 192.168.0.200 的物理网卡上,vm 上安装好 rhel6,ip 分别为192.168.0.201和 192.168.0.202,作为 RHCS 的节点,这样的拓扑设计 的原因是我们可以在 RHCS 中使用 fence-virsh 来fence 掉 kvm 管理的 RHCS 故障节点。
使用hostname 指令设置主机名,想重启之后生效别忘了/etc/sysconfig/network,因为本环境中没有使用DNS,所以在manager 上设置/etc/hosts 添加如下三行, 再 scp 到 web1 和web2。
[root@manager ~]# vim /etc/hosts 127.0.0.1 localhost.localdomain localhost ::1localhost6.localdomain6 localhost6192.168.0.200 manager 192.168.0.201 web1 192.168.0.202web2manager、web1、web2 均关闭selinux、iptables。
⾼可⽤,多路冗余GFS2集群⽂件系统搭建详解⾼可⽤,多路冗余GFS2集群⽂件系统搭建详解2014.06标签:实验拓扑图:实验原理:实验⽬的:通过RHCS集群套件搭建GFS2集群⽂件系统,保证不同节点能够同时对GFS2集群⽂件系统进⾏读取和写⼊,其次通过multipath 实现node和FC,FC和Share Storage之间的多路冗余,最后实现存储的mirror复制达到⾼可⽤。
GFS2:全局⽂件系统第⼆版,GFS2是应⽤最⼴泛的集群⽂件系统。
它是由红帽公司开发出来的,允许所有集群节点并⾏访问。
元数据通常会保存在共享存储设备或复制存储设备的⼀个分区⾥或逻辑卷中。
实验环境:1 2 3 4 5 6 7 8[root@storage1 ~]# uname -r2.6.32-279.el6.x86_64[root@storage1 ~]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 6.3 (Santiago) [root@storage1 ~]# /etc/rc.d/init.d/iptables status iptables: Firewall is not running.[root@storage1 ~]# getenforceDisabled实验步骤:1、前期准备⼯作0)、设置⼀台管理端()配置ssh 私钥、公钥,将公钥传递到所有节点上12 3 4 5 6 7 8 9 10 11 12 13 14[root@manager ~]# ssh-keygen \\⽣成公钥和私钥Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):Enter passphrase (empty for no passphrase):……[root@manager ~]# for i in {1..6}; do ssh-copy-id -i 192.168.100.17$i; done \\将公钥传输到各节点/root/.ssh/⽬录下root@192.168.100.171's password:Now try logging into the machine, with "ssh '192.168.100.171'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting..……[root@manager ~]# ssh node1 \\测试登录Last login: Sat Jun 8 17:58:51 2013 from 192.168.100.31[root@node1 ~]#1)、配置双⽹卡IP,所有节点参考拓扑图配置双⽹卡,并配置相应IP即可1 2 3 4 5[root@storage1 ~]# ifconfig eth0 | grep "inet addr" | awk -F[:" "]+ '{ print $4 }' 192.168.100.171[root@storage1 ~]# ifconfig eth1 | grep "inet addr" | awk -F[:" "]+ '{ print $4 }' 192.168.200.171……2)、配置hosts⽂件并同步到所有节点去(也可以配置DNS,不过DNS解析绝对不会有hosts解析快,其次DNS服务器出问题会直接导致节点和节点以及和存储直接不能够解析⽽崩溃)12 3 4 5 6 7 8 9[root@manager ~]# cat /etc/hosts127.0.0.1 localhost 192.168.100.102 manager 192.168.100.171 storage1 192.168.200.171 storage1 192.168.100.172 storage2 192.168.200.172 storage2 192.168.100.173 node1 192.168.200.173 node1 192.168.100.174 node2 9 10 11 12 13 14 15 16 17 18 19 20 21 22192.168.100.174 node2 192.168.200.174 node2 192.168.100.175 node3 192.168.200.175 node3 192.168.100.176 node4 192.168.200.176 node4 [root@manager ~]# for i in {1..6}; do scp /etc/hosts 192.168.100.17$i:/etc/ ; done hosts 100% 591 0.6KB/s00:00 hosts 100% 591 0.6KB/s00:00 hosts 100% 591 0.6KB/s00:00 hosts 100% 591 0.6KB/s00:00 hosts 100% 591 0.6KB/s00:00 hosts 100% 591 0.6KB/s00:003)、配置yum源(将所有节点光盘挂接到/media/cdrom,如果不⽅便,也可以做NFS,将镜像挂载到NFS⾥⾯,然后节点挂载到NFS共享⽬录中即可,注意:不同版本的系统,RHCS集群套件存放位置会有所不同,所以yum源的指向位置也会有所不同)1234 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38[root@manager ~]# cat /etc/yum.repos.d/rhel-gfs2.repo[rhel-cdrom]name=RHEL6U3-cdrombaseurl=file:///media/cdromenabled=1gpgcheck=0[rhel-cdrom-HighAvailability]name=RHEL6U3-HighAvailabilitybaseurl=file:///media/cdrom/HighAvailabilityenabled=1gpgcheck=0[rhel-cdrom-ResilientStorage]name=RHEL6U3-ResilientStoragebaseurl=file:///media/cdrom/ResilientStorageenabled=1gpgcheck=0[rhel-cdrom-LoadBalancer]name=RHEL6U3-LoadBalancerbaseurl=file:///media/cdrom/LoadBalancerenabled=1gpgcheck=0[rhel-cdrom-ScalableFileSystem]name=RHEL6U3-ScalableFileSystembaseurl=file:///media/cdrom/ScalableFileSystemenabled=1gpgcheck=0[root@manager ~]# for i in {1..6}; do scp /etc/yum.repos.d/rhel-gfs2.repo 192.168.100.17$i:/etc/yum.repos.d ; done rhel-gfs2.repo 100% 588 0.6KB/s00:00rhel-gfs2.repo 100% 588 0.6KB/s00:00rhel-gfs2.repo 100% 588 0.6KB/s00:00rhel-gfs2.repo 100% 588 0.6KB/s00:00rhel-gfs2.repo 100% 588 0.6KB/s00:00rhel-gfs2.repo 100% 588 0.6KB/s00:00[root@manager ~]# for i in {1..6}; do ssh 192.168.100.17$i "yum clean all && yum makecache"; doneLoaded plugins: product-id, security, subscription-managerUpdating certificate-based repositories.Unable to read consumer identity……4)、时间要同步,可以考虑配置NTP时间服务器,如果联⽹可以考虑同步互联⽹时间,当然也可以通过date命令设置相同时间。
虚拟机搭建gfs系统系统环境:CentOS release 5.5 - 2.6.18-194.el5gfs节点1:192.168.1.231 gfs1gfs节点2:192.168.1.232 gfs2gfs节点3:192.168.1.233 gfs3iscsi-target存储设备:192.168.1.240 iscsi-storage (IP对应主机名)GFS 简要说明,它有两种:1. Google文件系统:GFS是GOOGLE实现的是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
它运行于廉价的普通硬件上,但可以提供容错功能。
它可以给大量的用户提供总体性能较高的服务。
欲了解更多,可以访问:/doc/google/gfs-paper/introduction.html2. Redhat 的GFS(Global File System)GFS(Global File System)自己以本地文件系统的形式出现。
多个Linux机器通过网络共享存储设备,每一台机器都可以将网络共享磁盘看作是本地磁盘,如果某台机器对某个文件执行了写操作,则后来访问此文件的机器就会读到写以后的结果。
可以根据对性能或是可扩展性,或者以经济性多个原则进行不同方案的部署。
GFS 主要组件,集群卷管理,锁管理,集群管理,围栏和恢复,集群配置管理。
本文主要介绍Redhat的GFS系统。
REDHAT CLUSTER SUITEWITH GFS :RHCS(REDHAT CLUSTER SUITE)是一款能够提供高性能、高可靠性、负载均衡、高可用性的集群工具集,一个集群通常有两个或两个以上的计算机(称为“节点”或”成员“)共同执行一个任务。
RHCS主要组件:·集群架构:提供一个基本功能使节点作为集群工作在一起:配置文件管理,成员关系管理,锁管理和栅设备。
·高可用性服务管理:提供节点失败转移服务,当一个节点失败后将服务转移到另一个节点上。
·集群管理工具:通过配置和管理工具来配置和管理Red Hat集群。
· Linux Virtual Server (LVS)LVS提供一个基于IP的负载均衡功能,通过LVS可以将客户请求均匀的分配到集群节点上。
其它Red Hat集群组件:·Cluster Logical Volume Manager (CLVM)提供逻辑卷管理集群存储。
·集群管理器:CMAN是一个分布式集群管理器(DLM),它运行在每一个集群节点上,CMAN通过监视集群节点提供一个法定节点数(quorum),当集群中有多于一半的节点处于活跃状态时,此时符合法定节点数,集群继续可用,当只有有一半或少于一半的节点处于活跃状态是则已达到不到法定节点数,此时整个集群变得不可用。
CMAN通过监控集群中节点来确定各节点的成员关系,当集群中的成员关系发生改变,CMAN会通架构中其它组件来进行相应的调整。
· DLM锁管理:分布式锁管理器,它运行在所有的集群节点上,锁管理是一个公共的基础结构,为集群提供一种共享集群资源的管理机制,GFS通过锁管理器使用锁机制来同步访问文件系统元数据,CLVM通过锁管理器来同步更新数据到LVM卷和卷组。
·数据的完整保证:RHCS 通过 Fence设备从共享存储切断失效节点的I/O以保证数据的完整性。
当CMAN确定一个节点失败后,它在集群结构中通告这个失败的节点(组播),fenced进程会将失败的节点隔离,以保证失败节点不破坏共享数据。
REDHAT集群配置系统:集群配置文件:(/etc/cluster/cluster.conf) 是一个XML文件,用来描述下面的集群特性:集群名称:列出集群名称、集群配置文件版本和一个隔离时间,隔离相应时间当一个新节点加入或从集群中隔离时。
集群:列出集群中的每一个节点,指定节点名称,节点ID,法定投票数,和栅模式。
fence设备:定义fence设备。
管理资源:定义创建集群服务需要的资源。
管理资源包括失败转移域,资源和服务。
iscsi的initiator与target简要说明:iSCSI(Internet SCSI)是2003年IETF(InternetEngineering Task Force,互联网工程任务组)制订的一项标准,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。
SCSI(Small Computer System Interface)是块数据传输协议,在存储行业广泛应用,是存储设备最基本的标准协议。
iSCSI协议是一种利用IP网络来传输潜伏时间短的SCSI数据块的方法,iSCSI使用以太网协议传送SCSI命令、响应和数据。
iSCSI可以用我们已经熟悉和每天都在使用的以太网来构建IP存储局域网。
通过这种方法,iSCSI克服了直接连接存储的局限性,使我们可以跨不同服务器共享存储资源,并可以在不停机状态下扩充存储容量。
iSCSI的工作过程:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI 命令,该SCSI命令在iSCSI Initiator层被封装成iSCSI消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI Target层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备侧iSCSI Target层时被封装成iSCSI响应PDU,通过TCP/IP网络传送给主机的iSCSI Initiator层,iSCS Initiator会从iSCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。
要实现iSCSI读写,除了使用特定硬设备外,也可透过软件方式,将服务器仿真为iSCSI的发起端(Initiator)或目标端(target),利用既有的处理器与普通的以太网络卡资源实现iSCSI的连接。
本文均已软件方式在Centos5.5虚拟机上实现gfs功能!一、在192.168.1.240上安装iscsi的target端:[root@iscsi-storage ~]#yum install scsi-target-utils (注意:scsi前面没有字母i)(使用centos默认的yum源,将会安装软件scsi-target-utils-0.0-6.20091205snap.el5_5.3)[root@iscsi-storage ~]#yum install libibverbs-devel libibverbs librdmacm librdmacm-devel如果没有安装以上软件,则/var/log/messages里将会有以下报错:iscsi-storage tgtd: libibverbs.so: cannot open shared object file: No such file ordirectory - iser transport not usediscsi-storage tgtd:librdmacm.so: cannot open shared object file: No such file or directory - iser transport not used磁盘sda装着系统,磁盘sdb用来存储,对其进行分区。
[root@iscsi-storage ~]# fdisk /dev/sdb本人分成/dev/sdb1 3G , /dev/sdb2 7G.分区完成后不用格式化分区,执行命令partprobe让系统重新读取分区表,而不用重启系统。
[root@iscsi-storage ~]# partprobescsi-targe-utils装完后的服务名为tgtd,启动它,并设置为开机启动。
[root@iscsi-storage ~]# service tgtd startStarting SCSI target daemon: Starting target framework daemon[root@iscsi-storage ~]# chkconfig tgtd on接下来建立target device. 在centos5中使用tgtadm指令来设置而不是4当中的 vi /etc/ietd.conf.tgtadm命令的参数有点难记,但是scsi-target-utils套件中包含了利用tgtadm指令建立target device的步骤,我们可以参照文件来设置:/usr/share/doc/scsi-target-utils-0.0/README.iscsi 本人欲新增iqn名为.chinaitv:rhcs-storage的target device.=============================================================================== ======iqn (iSCSI Qualified Name)格式通常如下:=============================================================================== ======新增target device命令如下:# tgtadm --lld iscsi --op new --mode target --tid 1 -T .chinaitv:rhcs-storage执行后,利用如下命令来查看target device:#tgtadm --lld iscsi --op show --mode target将起初新建的分区加入target device。
# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1查看加入target device后的输出内容:# tgtadm --lld iscsi --op show --mode target设置可以访问存取此target device的initiator节点。
本机允许gfs1 gfs2 gfs3存取,设置如下:#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.231#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.232#tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.233 (I为大写的i)(如果允许所有的initiators存取的话,可以将ip换成ALL,如下:#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL如果需要移除则需将bind换成unbind即可,例如#tgtadm --lld iscsi --op unbind --mode target --tid 1 -I 192.168.1.233)本次操作只使用sdb1来试验存储,因此只加入sdb1,如果需将多个分区用来存储的话可以如下操作:tgtadm --lld iscsi --op new --mode target --tid 1 -T .chinaitv:rhcs-storagetgtadm --lld iscsi --op new --mode target --tid 2 -T .chinaitv:rhcs-storage2tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1tgtadm --lld iscsi --op new --mode logicalunit --tid 2 --lun 1 -b /dev/sdb2tgtadm --lld iscsi --op bind --mode target --tid 1 -I iptgtadm --lld iscsi --op bind --mode target --tid 2 -I ip注意:如果重启tgtd服务的话,上面配置全部将会消失,因此不要随便重启,否则需要重新按上面步骤配置,为了在下一次开机自动运行,可以把上面的命令添加到/etc/rc.local文件里面。