CN1487436A - 基于多通道存储设备的海量存储系统及其系统控制方法 - Google Patents

基于多通道存储设备的海量存储系统及其系统控制方法 Download PDF

Info

Publication number
CN1487436A
CN1487436A CNA031252494A CN03125249A CN1487436A CN 1487436 A CN1487436 A CN 1487436A CN A031252494 A CNA031252494 A CN A031252494A CN 03125249 A CN03125249 A CN 03125249A CN 1487436 A CN1487436 A CN 1487436A
Authority
CN
China
Prior art keywords
memory device
server
channel
network
user
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.)
Granted
Application number
CNA031252494A
Other languages
English (en)
Other versions
CN1228726C (zh
Inventor
丹 冯
冯丹
张江陵
王芳
周可
邓玉辉
童薇
施展
刘景宁
李洁琼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN 03125249 priority Critical patent/CN1228726C/zh
Publication of CN1487436A publication Critical patent/CN1487436A/zh
Application granted granted Critical
Publication of CN1228726C publication Critical patent/CN1228726C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于多通道存储设备的海量存储系统,包括服务器和若干存储设备,存储设备包括主机通道、存储设备及网络的接口模块和阵列运行控制模块,接口模块通过PCI总线与阵列运行控制模块相连;构成多通道存储设备,服务器通过外设适配器接入主机通道;存储设备通过各自的网络接口连入与服务器相同或不同的网络。该系统采用了命令与数据分流的控制方法。本发明具有:①系统的可扩展性好;②可大幅度减少服务器的负载,避免存储设备性能的发挥受单一外设通道的制约、存储设备运行具有高度并行性;③实现了集中的文件系统管理与分布的数据存取,保证了管理的高效率与存储的高性能;④用户I/O数据直接从存储设备传输到用户,缩短了I/O路径,减少了系统延迟,提高了平均数传率。

Description

基于多通道存储设备的海量存储系统及其系统控制方法
技术领域
本发明属于存储技术领域,具体涉及一种基于多通道存储设备的海量存储系统及其系统控制方法。
背景技术
近几年来,各种共享与交换的数据信息以难以置信的速度急剧增加,导致了用户对存储产品的容量和带宽的持续性地、爆炸性增长。例如,在许多前沿性的课题研究领域(如人类基因、气候分析等)中,要求的存储容量至少在1TB以上,而且容量需求还在不断增长。与此同时,随着网络的普及和多媒体应用推广等,对存储服务带宽的要求也在不断同步提高,在某些重要课题中甚至要求1TB/S的带宽。而现有存储系统,由于受到服务器与存储设备单连接模式的制约,尽管可以通过累加使用高密度、大容量存储设备的方式来满足容量上的要求,但它不能同时提高存储带宽。而且大量存储设备上的I/O数据都需经由服务器转发给客户,这种工作模式不仅容易导致外设通道拥塞,还会因为数据存取和传输过程中经历的多次存储转发,增加系统开销和传输延迟,导致平均数传率降低和服务等待时间加长。特别是当大量客户发出请求时,上述问题会更加突出,形成“服务器瓶颈”。
有鉴于此,十分有必要构造一种具有良好的扩展性能、可提供高速数据传输率且可缓解服务器负载的海量存储系统,以满足人们日益苛刻的存储要求。
发明内容
本发明的目的在于克服现有海量存储系统的系统结构和用户服务模式的不足,从改进其系统结构的角度构造一种可满足人们对容量、带宽需求不断增长的基于多通道存储设备的海量存储系统,并减少服务器负载、提高I/O服务性能;本发明还提供了该海量存储系统的系统控制方法。
本发明的一种基于多通道存储设备的海量存储系统,包括服务器和若干存储设备,其特征在于:所述存储设备包括主机通道接口模块、存储设备接口模块、网络接口模块和阵列运行控制模块,前三个模块通过PCI总线与阵列运行控制模块相连;构成具有主机通道、存储设备通道和网络通道的多通道存储设备,服务器通过其配置的外设适配器接入主机通道;存储设备通过各自的网络接口连入与服务器相同或不同的网络。
上述海量存储系统的系统控制方法,其步骤为:
●由服务器通过主机通道对各个存储设备负责设备与文件系统的集中
  管理。服务器通过其网络通道接收用户的文件服务请求;
●多通道存储设备负责数据访问和网络传输操作,利用其网络通道作
  为用户数据通道,进行网络用户与存储设备间的直接数据传输;
对于所有非读写文件的请求,服务器直接执行并向用户返回结果;对于读/写文件请求,服务器执行文件地址信息提取/地址空间预分配的处理,将地址信息和用户权限信息返回用户,并同时通知存储设备。上述过程中派生的存储I/O命令将通过服务器主机通道交给相应存储设备完成。此后的数据存取和传输任务将在多通道存储设备和用户间进行,待完成所有的存取和传输后,用户通知服务器结束服务。
本发明具有如下特点:
(1)系统的可扩展性好,系统通过增加多通道存储设备增加存储容量的同时,也增加了数据通道数,实现了扩容与增速同步。
(2)系统采用的命令与数据分流处理方式,可以大幅度减少服务器的负载,避免存储设备性能的发挥受单一外设通道的制约。
(3)系统内多个存储设备运行具有高度并行性,除了可以实现并行存取操作外,还可以实现数据的并行网络传输。
(4)实现了集中的文件系统管理与分布的数据存取,保证了管理的高效率与存储的高性能。
(5)用户I/O数据直接从存储设备传输到用户,缩短了I/O路径,减少了系统延迟,提高了平均数传率。
附图说明
图1为本发明中海量存储系统的基本组成结构图;
图2为多通道存储设备的系统结构示意图;
图3为多通道存储设备控制模块的控制流程示意图;
图4为本发明采用FC通道的海量存储系统实施例的结构示意图;
图5为本发明一种实施例的示意图。
图6为本发明中的服务器控制流程图。
具体实施方式
如图1所示,本发明包括服务器S(可以是多个)和若干多通道存储设备D1…、Dn,服务器通过外设通道适配器1形成的主机通道10与存储设备D1…Dn相连,同时服务器S与存储设备通过各自的网络接口4.0、4.1,…,4.n连入网络。存储设备D1…Dn均具有主机通道接口1.1…1.n、设备通道接口2.1…2.n和网络通道接口4.1…4.n,形成具有主机通道10、存储设备通道3.1…3.n和网络通道6.1…6.n的多通道存储设备,作为系统的基本存储节点。服务器通过网络通道6.0接收用户的命令请求和响应请求结果,用户通过多通道存储设备的网络通道6.1…6.n进行文件数据的传输。
多通道存储设备的系统结构见图2,包含控制模块150、主机通道接口模块112、存储设备接口模块122以及网络接口模块132,各模块之间通过PCI总线140物理连接。
控制模块150包括CPU 152、RAM 151和EPROM 153,提供计算能力和运行环境以实现各模块初始化、命令分解/合并、数据分块/重组、协议变换、缓存管理和I/O任务调度的控制功能。
主机通道接口模块112由主机通道接口1.1~1.n构成。
存储设备接口模块122由存储设备接口2.11~2.1n构成,提供与存储设备的连接。存储设备可以是各类磁盘驱动器,其类型由存储设备通道接口类型决定。
主机通道接口和存储设备接口均执行面向块设备级的协议,其中,主机通道接口设置成TARGET态的外设接口,根据性能、成本采用SCSI、FC等。存储设备接口设置成MASTER态的外设接口,如FC、SCSI和IDE等。
网络接口模块132由网络通道接口4.11~4.1n组成,网络接口可以采用相同或不同的形式,各网络接口可以接入同一网络或不同网络中。
上述控制装置可构成主机通道10.1~10.n,存储设备通道3.11~3.1n以及网络通道6.11~6.1n。
如图3所示,多通道存储设备在加电启动后,会建立主机通道中断例程以及网络通道服务端口的监听例程。若从主机通道接收到SCSI命令,则以高优先级进入I/O任务队列;若从网络通道服务端口接收到网络用户请求,则启动用户请求处理进程,根据其处理能力派生出一组I/O命令,逐次提交进入I/O任务队列。所有进入I/O任务队列的I/O命令按一定的优先原则排序后,根据设置的阵列级别进行命令分解,形成对应多个磁盘的命令链。多个命令链上的I/O命令在交付底层执行以前要经过Buffer管理功能处理,剔除命中的命令并返回执行结果,其余命令交由I/O调度过程执行。I/O调度过程启动相应的存储设备接口驱动磁盘执行I/O命令。当所启动的I/O命令都执行完毕后,判断所有操作是否都正常,若无错误,则回送执行结果。服务器发来的命令通过主机通道接口回送给服务器;用户命令执行结果返回到用户请求处理进程,用户请求处理进程检查用户I/O命令组是否全部执行完毕,若全部执行完,则将结果通过网络通道返回给远端用户,若尚未执行完,则继续向低层提交I/O命令直至全部完成。
该海量存储系统采用命令与数据分流的控制方法,由服务器S通过主机通道10对各个存储设备实施集中式的设备与文件系统管理,保持了与以往系统的高度兼容性,保护了先期软件(如操作系统、文件系统、I/O设备驱动等)的投资;由多通道存储设备负责数据访问和网络传输操作,利用其网络通道6.1…6.n作为用户数据通道,进行网络用户与存储设备间的直接数据传输。系统运行时,服务器S通过其网络通道6.0接收用户的文件服务请求,首先进行用户级、文件系统级的管理及预处理操作,期间所派生的I/O命令通过主机通道10交给多通道存储设备执行。对于用户的管理功能请求,服务器直接执行完毕后通过网络通道6.0向用户返回结果,结束服务。对于涉及大量数据I/O的文件存取请求在进行完管理及预处理操作后,服务器通过网络通道向用户返回一系列读写指示信息,结束第一阶段的操作。然后用户依据该信息通过网络向多通道存储设备提出数据访问与传输要求,并由多通道存储设备执行相应的数据访问和传输操作,完成对用户请求的服务。
该海量存储系统充分体现了多通道、并行处理的原则,若在服务器上接入多个多通道存储设备,则每接入一个便扩展了一个网络通道,存储数据访问可利用此网络通道,进行用户与存储设备间的直接数据传送,实现了容量和速度同步扩展的理想。
如图4所示,如果服务器S1…Sm采用FC类型外设通道适配器,并使用具有FC主机通道的多通道存储设备D1…Dn,以及FC交换机(10.0),则可构成与SAN(Storage Area Network)11结构相似但又不同的海量存储系统。相同之处在于它们都是基于FC交换网络形成的存储系统。不同之处在于SAN系统中存储设备与公共网络用户C1、C2…Ci的数据交换需要通过服务器,而本发明的海量存储系统中存储设备可利用各自到公共网络的接口与用户直接交换数据。
附图5是本发明的一个具体实施例,服务器S使用的是普通PC机,CPU为的配置为PentiumMMX200,内存64M,通过DFE530TX网络接口适配器接入由百兆交换机(6)形成的百兆以太网,外设通道接口采用Symbios公司的SYM53C895 SCSI-PCI适配器和多通道存储设备相连。服务器通过SCSI总线(10)连接多通道磁盘阵列D1和多通道磁盘阵列D2。两个阵列的主机通道接口均采用Symbios公司的SYM53C895 SCSI-PCI适配器,并设置为SLAVE状态,网络通道接口均采用DFE530TX网络接口适配器接入百兆交换网。多通道磁盘阵列D1为SCSI阵列,CPU型号为P2-450,内存64M,设备通道接口采用了三块SYM53C875 SCSI-PCI适配器,每个SCSI通道上挂一个SCSI硬盘。多通道磁盘阵列D2为EIDE阵列,CPU型号为P2-450,内存64M,设备通道接口直接利用了PC机主板上的IDE接口芯片,每个IDE通道挂一个可支持ATA 100/66的IDE硬盘。
用户对文件系统的访问请求一般分为目录请求和文件请求。目录请求包括读目录属性、修改目录属性、列目录内容、建立新目录、删除空目录;文件请求包括读文件属性、修改文件属性、读文件、建立并写新文件、删除文件。其中读文件和建立并写新文件这两种请求会涉及到大量I/O数据流动,而其它请求是对文件系统的结构及文件属性的管理,所涉及的数据量相对较少。按照命令与数据分流的控制方法,系统运行时,服务器将对每一个用户请求进行用户身份、权限检查,并对合法有效的请求分类处理:服务器执行所有非读写文件类请求,并直接向用户返回结果;对于读写文件请求,服务器执行文件地址信息提取(对于读文件请求)或地址空间预分配(对于写文件请求)的处理,将整理了的地址信息和用户权限信息返回用户,并同时通知存储设备。上述过程中派生的存储I/O命令将通过服务器主机通道交给相应存储设备完成。此后的数据存取和传输任务将由多通道存储设备进行,待用户与存储设备间完成了相应的存取和传输后,用户通知服务器结束本次服务。上述服务器处理过程见附图6。
服务器通过网络将预处理结果传输给用户,用户接受后再通过网络把请求和读写地址信息直接提交给存储设备。存储设备在收到服务器的用户权限通知后,即启动读/写进程等待用户读/写指令,在用户发送来读/写文件请求和地址组信息后,立即执行,并将执行结果回送用户。
按照该控制方法,用户在向海量存储系统获取文件读写服务请求时,将按如下步骤进行。对读文件数据请求的步骤为:
①客户机向服务器发出读文件请求;
②服务器对请求确认,并对请求进行分析,获取文件所在存储设备位置和文件的存储地址组;
③服务器向存储设备发出用户授权;
④存储设备启动读进程,等待客户机请求的到来;
⑤服务器向客户机发出确认、授权字、存储设备的地址及数据存储地址组;
⑥客户机根据地址建立与存储设备的网络连接,直接发送对应文件数据的读I/O请求;
⑦存储设备执行I/O请求,得到数据后直接传送给客户机;
⑧客户机向服务器和存储设备发出结束信号,读过程结束;
写文件请求的步骤为:
①客户机向服务器发出写文件请求和相关控制信息;
②服务器确认后,为此文件预先分配存储空间,得到请求文件所在存储设备位置和文件的存储地址;
③服务器向存储设备发出用户授权;
④服务器向客户机发出授权字、存储设备的地址及数据存储地址组;
⑤客户机根据地址建立与存储设备的网络连接,将I/O请求和文件数据传输给存储设备;
⑥存储设备按照约定的数据存储地址,执行写文件数据操作,完成后通知客户机;
⑦客户机向存储设备和服务器发送结束信息,写过程结束。
本发明改变了海量存储系统中服务器通过单一外设通道连接存储设备的结构,形成了服务器和存储设备间的多通道连接结构,使服务器与存储设备的关系由原来的主从关系转变为对等关系,并采用命令与数据分流处理模式,分离系统中管理功能及其对应I/O操作与实际文件数据I/O操作及传输任务,一方面极大地减轻服务器负载,另一方面缩短用户数据路径、提高用户数据传输率。

Claims (2)

1、一种基于多通道存储设备的海量存储系统,包括服务器和若干存储设备,其特征在于:所述存储设备(D1…Dn)包括主机通道接口模块(112)、存储设备接口模块(122)、网络接口模块(132)和阵列运行控制模块(150),前三个模块通过PCI总线(140)与阵列运行控制模块(150)相连;构成具有主机通道(10)、存储设备通道(3.i)和网络通道(6.i)的多通道存储设备(D.i),服务器(S)通过其配置的外设适配器(1)接入主机通道(10);存储设备(D.1…D.n)通过各自的网络接口(4.1…4.n)连入与服务器(S)相同或不同的网络。
2、权利要求1所述海量存储系统的系统控制方法,其步骤为:
●由服务器(S)通过主机通道(10)对各个存储设备(D.1…D.n)负责设
  备与文件系统的集中管理。服务器(S)通过其网络通道(6.0)接收用
  户的文件服务请求;
●多通道存储设备(D.1…D.n)负责数据访问和网络传输操作,利用其
  网络通道(6.1…6.n)作为用户数据通道,进行网络用户与存储设备
  间的直接数据传输;
●对于所有非读写文件的请求,服务器直接执行并向用户返回结果;
  对于读/写文件请求,服务器(S)执行文件地址信息提取/地址空间预
  分配的处理,将地址信息和用户权限信息返回用户,并同时通知存
  储设备。上述过程中派生的存储I/O命令将通过服务器主机通道交
  给相应存储设备完成。此后的数据存取和传输任务将在多通道存储
  设备和用户间进行,待完成所有的存取和传输后,用户通知服务器
  结束服务。
CN 03125249 2003-08-08 2003-08-08 基于多通道存储设备的海量存储系统及其系统控制方法 Expired - Fee Related CN1228726C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 03125249 CN1228726C (zh) 2003-08-08 2003-08-08 基于多通道存储设备的海量存储系统及其系统控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 03125249 CN1228726C (zh) 2003-08-08 2003-08-08 基于多通道存储设备的海量存储系统及其系统控制方法

Publications (2)

Publication Number Publication Date
CN1487436A true CN1487436A (zh) 2004-04-07
CN1228726C CN1228726C (zh) 2005-11-23

Family

ID=34152991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 03125249 Expired - Fee Related CN1228726C (zh) 2003-08-08 2003-08-08 基于多通道存储设备的海量存储系统及其系统控制方法

Country Status (1)

Country Link
CN (1) CN1228726C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100347990C (zh) * 2005-08-08 2007-11-07 清华大学 基于存域网的海量存储系统的性能监控方法及系统
CN100375454C (zh) * 2004-06-01 2008-03-12 联想(北京)有限公司 一种网络计算机终端与服务器的通讯方法
CN100397380C (zh) * 2005-12-27 2008-06-25 北京中星微电子有限公司 多通道闪存传输控制器、芯片及存储设备
CN101662414B (zh) * 2008-08-30 2011-09-14 成都市华为赛门铁克科技有限公司 一种数据访问的处理方法、系统和装置
CN102684989A (zh) * 2011-03-04 2012-09-19 刘家焜 应用于网络的信息流量分配方法
CN102929961A (zh) * 2012-10-10 2013-02-13 北京锐安科技有限公司 基于构建快速数据分级通道的数据处理方法及其装置
CN103744613A (zh) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 降低i/o写延时的系统与方法
CN114721593A (zh) * 2022-03-18 2022-07-08 苏州浪潮智能科技有限公司 存储设备信息收集方法、系统及电子设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375454C (zh) * 2004-06-01 2008-03-12 联想(北京)有限公司 一种网络计算机终端与服务器的通讯方法
CN100347990C (zh) * 2005-08-08 2007-11-07 清华大学 基于存域网的海量存储系统的性能监控方法及系统
CN100397380C (zh) * 2005-12-27 2008-06-25 北京中星微电子有限公司 多通道闪存传输控制器、芯片及存储设备
CN101662414B (zh) * 2008-08-30 2011-09-14 成都市华为赛门铁克科技有限公司 一种数据访问的处理方法、系统和装置
CN102684989A (zh) * 2011-03-04 2012-09-19 刘家焜 应用于网络的信息流量分配方法
CN102929961A (zh) * 2012-10-10 2013-02-13 北京锐安科技有限公司 基于构建快速数据分级通道的数据处理方法及其装置
CN102929961B (zh) * 2012-10-10 2016-12-21 北京锐安科技有限公司 基于构建快速数据分级通道的数据处理方法及其装置
CN103744613A (zh) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 降低i/o写延时的系统与方法
CN103744613B (zh) * 2013-12-17 2017-04-19 记忆科技(深圳)有限公司 降低i/o写延时的系统与方法
CN114721593A (zh) * 2022-03-18 2022-07-08 苏州浪潮智能科技有限公司 存储设备信息收集方法、系统及电子设备

Also Published As

Publication number Publication date
CN1228726C (zh) 2005-11-23

Similar Documents

Publication Publication Date Title
CN1205562C (zh) 总线系统的分隔事务协议
CN1179283C (zh) 数据通信的方法和数据通信的集线器
US10783121B2 (en) Techniques for optimizing data flows in hybrid cloud storage systems
US10841390B2 (en) Method and system for synchronizing publication and subscription of message queues
CN101076021A (zh) 网络数据存储系统
CN110262754B (zh) 一种面向NVMe和RDMA的分布式存储系统及轻量级同步通信方法
US20020199000A1 (en) Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network
CN1723434A (zh) 用于可扩展网络附接存储系统的装置和方法
CN1052563A (zh) 调节优先级仲裁的装置
WO2011120791A1 (en) Transmission of map-reduce data based on a storage network or a storage network file system
CN1606301A (zh) 一种共享资源访问的调度控制方法及装置
CN1728665A (zh) 一种可扩展的基于对象的存储系统及其控制方法
CN104102742A (zh) 一种高性能海量存储系统及存储方法
CN1184285A (zh) 多媒体系统中高效传送数据流的系统方法
CN102857510A (zh) 访问控制列表acl表项下发方法和装置
CN1487436A (zh) 基于多通道存储设备的海量存储系统及其系统控制方法
CN102843435A (zh) 一种在集群系统中存储介质的访问、响应方法和系统
WO2024021470A1 (zh) 一种跨区域的数据调度方法、装置、设备及存储介质
JP4208506B2 (ja) 高性能記憶装置アクセス環境
CN1209714C (zh) 基于网络存储和可扩展体系结构的服务器系统及方法
CN112540954B (zh) 以目录单位的多级存储构建与在线迁移方法
CN1848065A (zh) 一种异构双系统总线的对象存储控制器
KR101470857B1 (ko) iSCSI 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
Zhu et al. Performance analysis and testing of the storage area network
Bosch Mixed-media file systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: Wuhan Haiheng Information Storage Co., Ltd.

Assignor: Wuhan Huazhong Science and technology large Industry Group Co Ltd

Contract fulfillment period: 2006.7.25 to 2023.8.8

Contract record no.: 2008420000001

Denomination of invention: Mass storage system based on multi-channel storage device and system control method thereof

Granted publication date: 20051123

License type: Exclusive license

Record date: 20080528

Assignee: Wuhan Haiheng Information Storage Co., Ltd.

Assignor: Wuhan Huazhong Science and technology large Industry Group Co Ltd

Contract fulfillment period: 2006.7.25 to 2023.8.8

Contract record no.: 2008420000003

Denomination of invention: Mass storage system based on multi-channel storage device and system control method thereof

Granted publication date: 20051123

License type: Exclusive license

Record date: 20080512

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENCE; TIME LIMIT OF IMPLEMENTING CONTACT: 2006.7.25 TO 2023.8.8

Name of requester: WUHAN SEA OF INFORMATION STORAGE HENG CO.

Effective date: 20080528

Free format text: EXCLUSIVE LICENCE; TIME LIMIT OF IMPLEMENTING CONTACT: 2006.7.25 TO 2023.8.8

Name of requester: WUHAN SEA OF INFORMATION STORAGE HENG CO.

Effective date: 20080512

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20051123

Termination date: 20200808

CF01 Termination of patent right due to non-payment of annual fee