CN105743960B - 会话连接的管理方法和装置 - Google Patents
会话连接的管理方法和装置 Download PDFInfo
- Publication number
- CN105743960B CN105743960B CN201510429014.XA CN201510429014A CN105743960B CN 105743960 B CN105743960 B CN 105743960B CN 201510429014 A CN201510429014 A CN 201510429014A CN 105743960 B CN105743960 B CN 105743960B
- Authority
- CN
- China
- Prior art keywords
- unh
- iscsi
- target end
- iscsi target
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 16
- 230000006854 communication Effects 0.000 claims abstract description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 4
- 239000003999 initiator Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 244000118350 Andrographis paniculata Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Abstract
本发明提供一种会话连接的管理方法和装置。所述方法,包括:在发起端与目标端进行通信过程中,如果检测到目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接。
Description
技术领域
本发明涉及通信领域,尤其涉及一种会话连接的管理方法和装置。
背景技术
Linux是当前应用最广泛的类UNIX操作系统,它具有高效、稳定的优点,并且对硬件支持较好,非常适合服务器领域的应用。而JFS、XFS等大型日志文件系统是服务器系统安装时的首选文件系统。在这个背景下,本文以Linux平台及开源代码资源为基础,研究文件系统备份恢复技术,并利用成熟的网络存储技术构建了这两种模式的操作系统远程备份恢复方案,其中:
实现了一个基于Linux操作系统,对Unh iSCSI Target端驱动程序与LVM联合使用时产生的错误进行处理,并完善了相关功能
实现iSCSI协议的产品有很多,即使在Linux平台下的开源实现就有,unh iSCSI(internet Small Computer System Interface)和Linux iSCSI两个,由于unhiSCSI相对稳定且与其他平台客户端兼容性较好,所以目前选择unh的iSCSI平台来搭建iSCIS target目标端和initiator发起端。
Unh iSCSI target将需要打开的文件连接到逻辑卷设备文件,以实现对外提供逻辑卷的直接访问权。在实现iSCSI协议时,如果initiator已正常连接target端的设备后,如果此时target的设备实体消失,initiator端会多次尝试连接target,从而出现死机现象。
发明内容
本发明提供一种会话连接的管理方法,要解决的技术问题是如何降低发起端发生死机的次数。
为解决上述技术问题,本发明提供了如下技术方案:
一种会话连接的管理方法,包括:
在发起端与目标端进行通信过程中,如果检测到目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接。
其中,所述通知与所述目标端相连的发起端停止与所述目标端进行连接,包括:
获取与所述目标端进行通话的会话标识;
根据所述会话标识,发送拒绝连接指示信息,其中所述拒绝连接指示信息用于停止发起与所述目标端的连接。
其中,根据所述会话标识,发送拒绝连接指示信息,包括:
为每个与所述目标端通信的发起端均发送一个拒绝连接指示信息。
其中,所述方法还包括:
设置所述目标端的读写属性为只读属性。
一种会话连接的管理装置,包括:
检测模块,用于在发起端与目标端进行通信过程中,检测所述目标端是否下线;
管理模块,用于如果检测到目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接。
其中,所述管理模块包括:
获取单元,用于获取与所述目标端进行通话的会话标识;
发送单元,用于根据所述会话标识,发送拒绝连接指示信息,其中所述拒绝连接指示信息用于停止发起与所述目标端的连接。
其中,所述发送单元,具体用于为每个与所述目标端通信的发起端均发送一个拒绝连接指示信息。
其中,所述装置还包括:
设置模块,用于设置所述目标端的读写属性为只读属性。
本发明提供的实施例,在目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接,从而有效减少发起端尝试与目标端的连接的操作,避免了因多次尝试连接造成发起端死机的情况的发生。
附图说明
图1为本发明提供的会话连接的管理方法的流程图;
图2为本发明提供的会话连接的管理装置的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明提供的会话连接的管理方法的流程图。图1所示方法包括:
步骤101、在发起端与目标端进行通信过程中,检测目标端是否下线;
步骤102、如果检测到目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接。
本发明提供的方法,通过对目标端的在线状态进行检测,并在目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接,从而有效减少发起端尝试与目标端的连接的操作,避免了因多次尝试连接造成发起端死机的情况的发生。
下面对本发明提供的方法实施例做进一步说明:
其中,所述通知与所述目标端相连的发起端停止与所述目标端进行连接,包括:
获取与所述目标端进行通话的会话标识;
根据所述会话标识,发送拒绝连接指示信息,其中所述拒绝连接指示信息用于停止发起与所述目标端的连接。
具体的,在检测到目标端下线后,获取当前与所述目标端进行数据传输的会话的标识,根据所述会话标识,发送拒绝连接指示信息,保证与该目标端进行通信的发起端都收到该拒绝连接指示信息。
当然,在实际应用中,可能存在同一发起端通过至少两个会话与该目标端进行通信,为了有效控制消息的数据量,为每个与所述目标端通信的发起端均发送一个拒绝连接指示信息,即发起端只收到一个错误提示对话框,如向此虚拟设备copy几个文件时只需弹出一个错误提示即可,和文件个数无关。
当然,为了减少后续其他发起端再次向目标端发起连接,通过设置所述目标端的读写属性为只读属性。
下面对本发明提供的方法作进一步说明:
为了不让客户端由于命令执行失败而反复连接target端,需要记录设备消失对应的session id,并根据这个session id调用iscsi_tx_login_reject()函数拒绝客户端尝试连接的请求,这样客户端将不在重复连接,而且还会在客户端的操作系统报告设备消失。
unh的target端1.5.04版本提供了一套全新的设备管理机制:它使用全局变量target_map[target_id][lim_id]来存储和target_id,lunjd相对应的设备信息。
FETD调用rx—cmndO填充Target_Scsi_Cmnd结构体时,程序会根据target_id和lun编号在由全局变量target_map[target_id][lun_id]中检查相应的设备文件是否存在,如果该设备文件打开失败,该scsi命令将被忽略掉,并返回NULL。相应的调用ix_cmndO的iscsi_rx_thread接受到NULL返回后,会将命令从命令队列中清除,并结束此线程。而客户端则由于命令执行失败只会反复连接target端,因此不会出现任何报错信息。
使用一个全局的链表储存设备已消失的session id,链表的头指针p_isid存放,在全局变量iscsi jlobal结构体中,链表元素定义如下:
struct iscsifailedisid{
_ul 6 isid;
struct iscsi_failed_isid*next;
}
static struct iscsi一failed一isid*check_failed_isid(__ul6lost target一isid)检查当前的lostjargetjsid是否己在p_isid链表中,如果存在则返回指向lostjarget一isid前驱节点的指针,如果不存在则返回NULL。static int insert—failed一isid(_ul6lost_target_isid)将lostjarget jsid插入到pjsid链表中,成功返回1,失败返回0。static int remove一failed—isid(struct iscsi failed isid*pt_isid)将链表中pt一isid->next指向的节点删除,返回1。static int clean一isid list(void)
initiator无死机现象:initiator端能有错误信息提示;
target与initiator端的连接(实体消失的连接)自动彻底断开;initiator端和target端的其它连接通信正常。
当target端的设备实体为LVM snapshot时,对外提供的设备应当是只读设备,但是itiator端仍能对这一做写操作,客户端没有错误信息提示,当然数据并没有实际写入该设备。
如果target端出现了设备异常(如:设备为只读属性),client端(主要是MSInitiator)没有出现报错,并且仍然可以向target传输数据,和正常情况下的数据传输过程并没有差别,尽管此时数据并没有真正的写入到target端的设备上;同时,target的系统日志会出现写出错的信息,这说明target端并没有把写操作出错的响应信息返回给客户端。
为了解决这个问题,需要让客户端在最初连接target端设备时就可获得所有设备的读写属性,这样,在对只读设备进行写操作时,操作系统会立即产生报错。具体的方法是:在target端对设备进行初始化时把设备的读写属性保存在全局变量里;然后,在客户端向target发送mode_sense命令后将设备的只读属性。
为了解决上述问题,在结构体target_map_item中添加变量readonly_flag存储只读属性。通过利用arget_map_item类型的全局数组来解决上述问题。
通过target_map[MAX_TARGETS][MAX_LUNS]保存有的设备信息。target_map_item结构体内容如下:
struct targetmapitem{
int inuse;
ScsiDevice*the_device;
struct file*the_file;
u32max—blocks;
_u32bytes_per_block;/
charfile_name[MAX_FILE_NAME];
int readonly_flag;
};
在程序调用feuild_mp_table()函数初始化设备的时,根据打开设备的方式初始化readonly_flag的值,如果是用读写方式打开(filp_open{)使用0_RDWR参数),readonly_flag值为0;如果用只读方式打开(filp_open0使用0__RDONLY参数);readonly_flag值为1。
程序如下:
dev_file=filp_open(tmp’0_RDWR|0_N0NBL0CK|O CREAT’0600);target_map[targ]卩un].readonly_flag—0;if(IS—ERR(dev—file)&&PTR_ERR(dev_file)=-13){
dev_file=filp_open(tmp,0_RD0NLY|0_N0NBL0CK|0_CREAT,0600);target一map[targ]卩un].readonly_flag=1;
}
在程序调用get_mode_sense_response()函数返回客户端的mode_sense命令响应时,需要根据read0nly_flag来决定是否发送写保护位(WPbit),代码如下:
if(target_map[target][lun].readonly flag=1){buffer[2]=0x80;
}
initiator端能有错误信息提示,提示设备不能被写入或写入失败每次的写操作只须有一个错误提示对话框,如向此虚拟设备copy几个文件时只需弹出一个错误提示即可,和文件个数无关。操作被取消,没有数据被写入。
图2为本发明提供的会话连接的管理装置的结构图。图2所示装置包括:
检测模块201,用于在发起端与目标端进行通信过程中,检测所述目标端是否下线;
管理模块202,用于如果检测到目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接。
其中,所述管理模块202包括:
获取单元,用于获取与所述目标端进行通话的会话标识;
发送单元,用于根据所述会话标识,发送拒绝连接指示信息,其中所述拒绝连接指示信息用于停止发起与所述目标端的连接。
其中,所述发送单元,具体用于为每个与所述目标端通信的发起端均发送一个拒绝连接指示信息。
可选的,所述装置还包括:
设置模块,用于设置所述目标端的读写属性为只读属性。
本发明提供的方法,通过对目标端的在线状态进行检测,并在目标端下线后,通知与所述目标端相连的发起端停止与所述目标端进行连接,从而有效减少发起端尝试与目标端的连接的操作,避免了因多次尝试连接造成发起端死机的情况的发生。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (8)
1.一种会话连接的管理方法,其特征在于,所述会话连接为Linux操作系统下UnhiSCSI平台上的会话连接,该方法包括:
在Unh iSCSI发起端与Unh iSCSI目标端进行通信过程中,如果检测到所述Unh iSCSI目标端下线后,通知与所述Unh iSCSI目标端相连的Unh iSCSI发起端停止与所述UnhiSCSI目标端进行连接。
2.根据权利要求1所述的方法,其特征在于,所述通知与所述Unh iSCSI目标端相连的Unh iSCSI发起端停止与所述Unh iSCSI目标端进行连接,包括:
获取与所述Unh iSCSI目标端进行通话的会话标识;
根据所述会话标识,发送拒绝连接指示信息,其中所述拒绝连接指示信息用于停止发起与所述Unh iSCSI目标端的连接。
3.根据权利要求1或2所述的方法,其特征在于,根据所述会话标识,发送拒绝连接指示信息,包括:
为每个与所述Unh iSCSI目标端通信的Unh iSCSI发起端均发送一个拒绝连接指示信息。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
设置所述Unh iSCSI目标端的读写属性为只读属性。
5.一种会话连接的管理装置,其特征在于,所述会话连接为Linux操作系统下UnhiSCSI平台上的会话连接,该装置包括:
检测模块,用于在Unh iSCSI发起端与Unh iSCSI目标端进行通信过程中,检测所述UnhiSCSI目标端是否下线;
管理模块,用于如果检测到所述Unh iSCSI目标端下线后,通知与所述Unh iSCSI目标端相连的Unh iSCSI发起端停止与所述Unh iSCSI目标端进行连接。
6.根据权利要求5所述的装置,其特征在于,所述管理模块包括:
获取单元,用于获取与所述Unh iSCSI目标端进行通话的会话标识;
发送单元,用于根据所述会话标识,发送拒绝连接指示信息,其中所述拒绝连接指示信息用于停止发起与所述Unh iSCSI目标端的连接。
7.根据权利要求5或6所述的装置,其特征在于:
所述发送单元,具体用于为每个与所述Unh iSCSI目标端通信的Unh iSCSI发起端均发送一个拒绝连接指示信息。
8.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
设置模块,用于设置所述Unh iSCSI目标端的读写属性为只读属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510429014.XA CN105743960B (zh) | 2015-07-20 | 2015-07-20 | 会话连接的管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510429014.XA CN105743960B (zh) | 2015-07-20 | 2015-07-20 | 会话连接的管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105743960A CN105743960A (zh) | 2016-07-06 |
CN105743960B true CN105743960B (zh) | 2019-09-06 |
Family
ID=56296141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510429014.XA Active CN105743960B (zh) | 2015-07-20 | 2015-07-20 | 会话连接的管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105743960B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3799516A4 (en) | 2018-06-05 | 2022-01-19 | Beijing Xiaomi Mobile Software Co., Ltd. | INFORMATION REPORTING METHOD, DEVICE, TERMINAL AND STORAGE MEDIA |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744546A (zh) * | 2004-06-30 | 2006-03-08 | 英特尔公司 | 高级切换对等协议 |
CN101304406A (zh) * | 2007-05-12 | 2008-11-12 | 华为技术有限公司 | 一种会话连接的管理方法及装置、系统 |
CN101471956A (zh) * | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | 目标端的储存设备状态的识别及动态更新方法 |
CN101808119A (zh) * | 2010-03-04 | 2010-08-18 | 杭州华三通信技术有限公司 | 一种多存储阵列负载均衡的方法和设备 |
CN101951327A (zh) * | 2010-07-02 | 2011-01-19 | 中兴通讯股份有限公司 | 一种iSCSI网络系统以及检测网络故障的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253256B2 (en) * | 2007-11-27 | 2016-02-02 | International Business Machines Corporation | Automatic multipath iSCSI session establishment over an arbitrary network topology |
CN101931650A (zh) * | 2010-08-23 | 2010-12-29 | 浪潮(北京)电子信息产业有限公司 | 存储资源配置信息的管理方法和装置 |
-
2015
- 2015-07-20 CN CN201510429014.XA patent/CN105743960B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744546A (zh) * | 2004-06-30 | 2006-03-08 | 英特尔公司 | 高级切换对等协议 |
CN101304406A (zh) * | 2007-05-12 | 2008-11-12 | 华为技术有限公司 | 一种会话连接的管理方法及装置、系统 |
CN101471956A (zh) * | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | 目标端的储存设备状态的识别及动态更新方法 |
CN101808119A (zh) * | 2010-03-04 | 2010-08-18 | 杭州华三通信技术有限公司 | 一种多存储阵列负载均衡的方法和设备 |
CN101951327A (zh) * | 2010-07-02 | 2011-01-19 | 中兴通讯股份有限公司 | 一种iSCSI网络系统以及检测网络故障的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105743960A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10680921B2 (en) | Virtual intelligent platform management interface for hardware components | |
US9658914B2 (en) | Troubleshooting system using device snapshots | |
US11252067B2 (en) | Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks | |
US7664986B2 (en) | System and method for determining fault isolation in an enterprise computing system | |
CN103513940B (zh) | 虚拟机在线扩展磁盘容量的方法和虚拟系统控制台 | |
US20070174033A1 (en) | Remote control device and method for accessing peripheral device remotely | |
JP2018513442A (ja) | ストレージ・クラスタ要素のモニタリング | |
US9645859B1 (en) | Performing I/O quiesce and drain operations in multi-node distributed systems | |
US20100275219A1 (en) | Scsi persistent reserve management | |
US10353777B2 (en) | Ensuring crash-safe forward progress of a system configuration update | |
US11184435B2 (en) | Message transmission method and apparatus in cluster file system | |
US20170075776A1 (en) | Methods for preserving state across a failure and devices thereof | |
US20190042161A1 (en) | Hard Disk Operation Method and Hard Disk Manager | |
WO2014209824A1 (en) | Hardware management communication protocol | |
US20160197994A1 (en) | Storage array confirmation of use of a path | |
CN105743960B (zh) | 会话连接的管理方法和装置 | |
US20090319699A1 (en) | Preventing Loss of Access to a Storage System During a Concurrent Code Load | |
US8132058B1 (en) | Auto regression tester for network-based storage virtualization system | |
WO2016200675A1 (en) | Dynamically managing control information in a storage device | |
US7496745B1 (en) | Method and system for managing storage area networks | |
US9483331B1 (en) | Notifying a multipathing driver of fabric events and performing multipathing management operations in response to such fabric events | |
EP2616938B1 (en) | Fault handling systems and methods | |
KR20220160055A (ko) | 네트워크 패브릭에서 비-응답 포트 펜싱 | |
US20070005819A1 (en) | Apparatus and method to guarantee unique connection tags across resets in a connection protocol | |
US10552245B2 (en) | Call home message containing bundled diagnostic data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |