CN113568566B - 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 - Google Patents

利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 Download PDF

Info

Publication number
CN113568566B
CN113568566B CN202110339246.1A CN202110339246A CN113568566B CN 113568566 B CN113568566 B CN 113568566B CN 202110339246 A CN202110339246 A CN 202110339246A CN 113568566 B CN113568566 B CN 113568566B
Authority
CN
China
Prior art keywords
storage
index
server
request
access control
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
Application number
CN202110339246.1A
Other languages
English (en)
Other versions
CN113568566A (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.)
Hong Kong Shangxirui Technology Co ltd
Original Assignee
Hong Kong Shangxirui Technology Co ltd
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 Hong Kong Shangxirui Technology Co ltd filed Critical Hong Kong Shangxirui Technology Co ltd
Publication of CN113568566A publication Critical patent/CN113568566A/zh
Application granted granted Critical
Publication of CN113568566B publication Critical patent/CN113568566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种利用索引物件来进行简易存储服务无缝迁移的方法以及相关设备,该方法包含有:因应自远端简易存储服务相容服务器迁移存储服务器的使用者的使用者数据至存储服务器的要求,于索引阶段中,利用在存储服务器中的主装置上运行的多个程序模块中的基于索引物件的简易存储服务迁移管理模块来创建并存储多个索引物件至存储服务器的存储装置层,并且迁移多个常态物件的各自的存取控制列表至该存储服务器;以及于数据阶段中,利用基于索引物件的简易存储服务迁移管理模块来触发一个或多个迁移代理程序以迁移物件数据。

Description

利用索引物件来进行简易存储服务无缝迁移的方法、主装置 以及存储服务器
技术领域
本发明是有关于存储器控制,且尤指利用索引物件来进行简易存储服务(simplestorage service,S3)无缝迁移的方法以及设备(apparatus),其中该设备的范例可包含:整个存储服务器、存储服务器内的主装置、主装置内的处理电路以及运行在处理电路中对应于该方法的一个或多个程序模块的至少一处理器/处理器核心(例如:中央处理器(central processing unit,CPU)/中央处理器核心),但是本发明不限于此。
背景技术
服务器可用于云端运算(cloud computing),例如,存储服务器可用来实作远端存储(例如:能够为使用者存储数据的云端)。当使用旧公有云(public cloud)的使用者发现此公有云几乎已满或存取速度很慢时,该使用者可能需要寻找新云,在现有技术中已经提出了一种数据迁移方法,以尝试将数据从旧的公有云复制到另一个公有云,然而,可能会出现一些问题,例如,该数据迁移方法通常先复制数据,包括旧公有云中开始时间点之前的所有数据,然后再进行端点切换等等,因此可能会错误地复制应删除的数据(例如在开始时间点之后已被使用者删除的数据)到另一个公有云。此外,根据该数据迁移方法的建议,先复制数据可能需要很长时间(例如几个月),尤其,此数据迁移方法不适用于私有云(privatecloud),如果使用者希望使用私有云作为新云,则在相关技术中似乎找不到用来将数据从旧云迁移至私有云的合适解决方案,因此,需要一种新颖的架构来进行针对私有云的简易存储服务无缝迁移(例如,从任一个公有/私有云至一私有云的简易存储服务无缝迁移),以允许使用者在数据迁移过程中正常地且顺畅地存取数据。
发明内容
因此,本发明的目的之一在于公开一种利用索引物件来进行简易存储服务无缝迁移的方法,并且公开相关设备(例如存储服务器、存储服务器中的主装置等等),以解决上述问题。
本发明的另一目的在于公开一种利用索引物件来进行简易存储服务无缝迁移的方法,并且公开相关设备(例如存储服务器、存储服务器中的主装置等等),以在不引入副作用的情况下或借由不太可能引入副作用的方式来达到最佳性能。
本发明的至少一实施例公开了一种利用索引物件来进行简易存储服务无缝迁移的方法,其中该方法是应用于一存储服务器,该方法可包含:因应自一远端简易存储服务相容(S3-compatible)服务器迁移该存储服务器的一使用者的使用者数据至该存储服务器的一要求,于该使用者数据的一迁移的多个阶段中的一索引阶段(index stage)中,利用在该存储服务器中的一主装置上运行的多个程序模块中的一基于索引物件(index-object-based)的简易存储服务迁移管理模块来创建并存储多个索引物件至该存储服务器的一存储装置层,以作为在该存储服务器中的该使用者数据的多个常态物件(normal object)的各自的代表,并且迁移该多个常态物件的各自的存取控制列表(access control lists,ACLs)至该存储服务器以作为该多个索引物件的各自的存取控制列表,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率,其中该存储服务器包含有该主装置以及该存储装置层,该存储装置层包含有耦接于该主装置的至少一存储装置,该主装置是用来控制该存储服务器的操作,且该至少一存储装置是用来为该存储服务器存储信息;以及于该多个阶段中的该索引阶段之后的一数据阶段(data stage)中,利用该基于索引物件的简易存储服务迁移管理模块来触发一个或多个迁移代理程序(agent),以自该远端简易存储服务相容服务器迁移该多个常态物件中的一组常态物件的各自的物件数据至该存储服务器的该存储装置层,以作为在该多个索引物件中的一组索引物件的各自的替换,以完成该使用者数据的该迁移。
除了上述的方法,本发明亦公开了一种主装置,该主装置可包含用来控制该主装置以在一存储服务器中进行基于索引物件的简易存储服务迁移管理的一处理电路,其中该存储服务器包含有该主装置以及一存储装置层,该存储装置层包含有耦接至该主装置的至少一存储装置,该主装置是用来控制该存储服务器的操作,且上述至少一存储装置是用来为该存储服务器存储信息,例如,因应自一远端简易存储服务相容服务器迁移该存储服务器的一使用者的一使用者数据至该存储服务器的一要求,于该使用者数据的一迁移的多个阶段中的一索引阶段中,运行在该处理电路上的多个程序模块中的一基于索引物件的简易存储服务迁移管理模块创建并存储多个索引物件至该存储装置层,以作为在该存储服务器中的该使用者数据的多个常态物件的各自的代表,并且将该多个常态物件的各自的存取控制列表迁移至该存储服务器,以作为该多个索引物件的各自的存取控制列表,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率;以及于该多个阶段中的该索引阶段之后的一数据阶段中,该基于索引物件的简易存储服务迁移管理模块触发一个或多个迁移代理程序,以自该远端简易存储服务相容服务器迁移该多个常态物件中的一组常态物件的各自的物件数据至该存储服务器的该存储装置层,以作为在该多个索引物件中的一组索引物件的各自的替换,以完成该使用者数据的该迁移。
除了上述的方法,本发明亦公开了一种存储服务器,该存储服务器可包含一主装置以及一存储装置层,其中该主装置是用来控制该存储服务器的操作,例如,该主装置可包含用来控制该主装置以进行在该存储服务器中的基于索引物件的简易存储服务迁移管理的一处理电路。此外,该存储装置层可包含用来为该存储服务器存储信息的至少一存储装置,例如,因应自一远端简易存储服务相容服务器迁移该存储服务器的一使用者的一使用者数据至该存储服务器的一要求,于该使用者数据的一迁移的多个阶段中的一索引阶段中,运行在该处理电路上的多个程序模块中的一基于索引物件的简易存储服务迁移管理模块创建并存储多个索引物件至该存储装置层,以作为在该存储服务器中的该使用者数据的多个常态物件的各自的代表,并且将该多个常态物件的各自的存取控制列表迁移至该存储服务器,以作为该多个索引物件的各自的存取控制列表,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率;以及于该多个阶段中的该索引阶段之后的一数据阶段中,该基于索引物件的简易存储服务迁移管理模块触发一个或多个迁移代理程序,以自该远端简易存储服务相容服务器迁移该多个常态物件中的一组常态物件的各自的物件数据至该存储服务器的该存储装置层,以作为在该多个索引物件中的一组索引物件的各自的替换,以完成该使用者数据的该迁移。
本发明的方法以及相关设备可以利用索引物件来进行简易存储服务无缝迁移,在一索引阶段/时期(stage/phase)(例如一短时间期间(period))之后,本发明的方法和相关设备可以在一数据阶段/时期中以较小的开销(overhead)来进行无缝迁移,其中数据阶段/时期的开销通常小于索引阶段/时期的开销。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1为根据本发明一实施例的存储服务器的示意图。
图2为根据本发明一实施例的图1所示的存储服务器中的存储装置的一些实作细节的示意图。
图3为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的基于索引物件的迁移控制方案。
图4为根据本发明一实施例的图3所示的基于索引物件的迁移控制方案的一些相关操作的示意图。
图5为根据本发明一实施例的关于图3所示的基于索引物件的迁移控制方案的一些物件以及一些相关特征的示意图。
图6为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的迁移代理控制方案的示意图。
图7为图1所示的具备基于索引物件的简易存储服务迁移管理模块的Ceph物件存储架构的范例的示意图。
图8为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件列出控制方案的示意图。
图9为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件头控制方案的示意图。
图10为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件获取控制方案的示意图。
图11为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件获取存取控制列表控制方案的示意图。
图12为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件放置控制方案的示意图。
图13为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件放置存取控制列表控制方案的示意图。
图14为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件删除控制方案的示意图。
图中元件标号说明:
50:主装置
52:处理电路
52P:程序模块
53:基于索引物件的简易存储服务迁移管理模块
54:存储接口电路
56:存储装置
58:网络接口电路
90:多个存储装置
100:存储装置
110:存储器控制器
112:微处理器
112C:程序码
112M:只读存储器
114:控制逻辑电路
116:随机存取存储器
118:传输接口电路
120:非挥发性存储器
122-1~122-N:非挥发性存储器元件
T1~T3:时间点
S01~S08,S10~S14,S20~S29,S30~S36,S40~S48,S50~58,S60~S65,S70~S75,S14A,S14B,S14C,S25A,S25B,S25C,S27A,S S27B,S27C,S29E,S36A,S36B,S36C,S45A,S45B,S45C,S56A,S56B,S56C,S64A,S64B,S64C,S74A,S74B,S74C:步骤
具体实施方式
本发明的实施例公开了一种利用索引物件来进行简易存储服务无缝迁移的方法以及设备,例如,该方法以及相关设备可使用一种新颖的简易存储服务无缝迁移架构来进行存取控制,且尤指,可进行针对私有云的简易存储服务无缝迁移,例如自任一个公有/私有云至一私有云的简易存储服务无缝迁移(例如数据迁移的目标云(destinationcloud)),以允许使用者在数据迁移过程中正常地且顺畅地存取数据。为了更好地理解,一第一云,例如简易存储服务相容存储(例如其可能几乎已满并且存取速度可能很慢),以及一第二云,例如根据该方法所实作的Bigtera存储,可以分别作为该任一个公有/私有云以及该私有云(例如目标云)的范例,但是本发明不限于此。此外,当在第一时间点T1开始迁移时,该方法以及相关设备可以先于自第一时间点T1开始的一索引阶段,例如INDEX阶段(例如一索引时期,诸如INDEX时期),在该第二云中创建索引物件(例如虚拟索引物件(dummyindex object)),并且可以于自第二时间点T2(例如当完成创建该索引物件时的时间点)开始的一数据阶段,例如DATA阶段(例如一数据时期,诸如DATA时期),自该第一云迁移(例如转移)物件数据至该第二云。在某些实施例中,简易存储服务无缝迁移架构可以利用一个或多个迁移代理程序(migration agent)来进行物件迁移,此外,该设备可包含存储服务器的至少一部分(例如一部分或全部),例如,该设备可包含存储服务器的一部分,诸如在存储服务器中的主装置或位于主装置内的相关控制电路(例如在对应于该方法的一个或多个程序模块上运行的处理电路与相关电路),在另一个范例中,该设备可包含整个存储服务器,根据针对存储服务器的某些实施例,INDEX时期可代表一短时间期间(例如数小时或几天),而DATA时期可代表一长时间期间(例如几个星期)。
图1为根据本发明一实施例的存储服务器10的示意图,存储服务器10包含有主装置50,且包含有至少一存储装置,例如一个或多个存储装置(例如多个存储装置90),多个存储装置90是耦接至主装置50,根据本实施例,主装置50可用来控制存储服务器10的操作,并且多个存储装置90可以用来为存储服务器10存储信息。如图1所示,主装置50可包含用来控制主装置50的操作的处理电路52(例如至少一处理器/处理器核心以及相关电路诸如随机存取存储器(random access memory,RAM)、总线等等)、用来耦接多个存储装置90并耦接位在主装置50上的存储或存储器装置(例如一个或多个传统硬盘(hard disk drive,HDD)及/或一个或多个固态硬盘(solid state drive,SSD))的至少一存储接口电路54,以及用来将主装置50耦接至至少一网络的网络接口电路58。存储或存储器装置可包含至少一存储装置(例如一个或多个存储装置),其可统称为存储装置56,例如,存储装置56可包含一组存储装置,其中该组存储装置的其中一个存储装置可被使用以作为主装置50的系统磁盘,并且该组存储装置的其他存储装置可以用来为主装置50存储使用者数据,但是本发明不限于此,在另一个范例中,存储装置56可包含一个存储装置,并且此存储装置可被使用以作为主装置50的系统磁盘。
根据本实施例,运行程序模块52P的处理电路52(尤指对应于该方法的基于索引物件的简易存储服务迁移管理模块53)可根据该方法来控制主装置50的操作,例如,控制主装置50以在存储服务器10中进行基于索引物件的简易存储服务迁移管理,并且存储接口电路54可符合一个或多个标准(例如一个或多个串行先进技术附件(Serial AdvancedTechnology Attachment,Serial ATA或SATA)标准、外部组件互连(Peripheral ComponentInterconnect,PCI)标准、快速外部组件互连(Peripheral Component InterconnectExpress,PCIe)标准、非挥发性存储器存储装置(Non-Volatile Memory Express,NVMe)标准、非挥发性存储器存储装置外接存取(NVMe-over-Fabrics,NVMeoF)标准、小型电脑系统接口(Small Computer System Interface,SCSI)标准、通用快闪存储器存储(UniversalFlash Storage,UFS)标准等等),且可根据一个或多个标准来进行通讯,以允许运行程序模块52P的处理电路52借由存储接口电路54存取存储装置56以及多个存储装置90,此外,网络接口电路58可用来提供有线或无线网络连接,且相对应于一个或多个使用者的一个或多个客户端装置可借由该有线或无线网络连接在存储服务器10(例如其中的存储装置56以及多个存储装置90)中存取(例如读取或写入)使用者数据。为了更好地理解,图1左半部所示的主装置50以及在该架构中的相关电路/模块/装置(例如运行程序模块52P的处理电路52以及存储接口电路54)可分别作为上述的主装置以及其中的相关电路/模块/装置(例如对应于该方法且运行一个或多个程序模块的处理电路以及相关电路)的范例。
在图1所示的架构中,存储服务器10可被绘示为包含有主装置50以及耦接于主装置50的多个存储装置90,但是本发明不限于此,例如,主装置50可另包含有用来安装主装置50的元件(例如图1所示的处理电路52、存储接口电路54、网络接口电路58等等)的外壳/机壳(例如电脑机壳,其可以由金属及/或一种或多种其他材料所制成)以及多个存储装置90的至少一部分(例如一部分或全部),又例如,存储服务器10可另包含有耦接于主装置50以及多个存储装置90的至少一部分(例如一部分或全部)之间的至少一个切换电路(switchcircuit)(例如一个或多个切换电路),用来进行主装置50以及上述的多个存储装置90的至少一部分之间的信号切换(signal switching)。
根据某些实施例,运行程序模块52P的处理电路52或存储接口电路54可以设定(configure)多个存储装置90的至少一部分(例如一部分或全部),以形成存储池(storagepool)架构,但是本发明不限于此,根据某些实施例,运行程序模块52P的处理电路52或存储接口电路54可以设定多个存储装置90的至少一部分(例如一部分或全部),以形成存储服务器10的容错式磁盘阵列(Redundant Array of Independent Disks,RAID)(例如全快闪阵列(All Flash Array,AFA))。
图2为根据本发明一实施例的图1所示的存储服务器10中的存储装置的一些实作细节的示意图,其中存储装置100可作为多个存储装置90中任一个存储装置的范例,尤其,多个存储装置90的每一个存储装置可根据存储装置100的架构来实作,但是本发明不限于此。存储装置100可用来提供存储空间给主装置50,在主装置50的控制下,一个或多个客户端装置可以在存储空间中存取(例如读取或写入)使用者数据,主装置50的范例可包含但不限于:个人电脑(例如台式机或笔记本电脑),存储装置100的范例可包含但不限于:固态硬盘以及各种类型的嵌入式存储器装置(例如符合通用快闪存储器存储或嵌入式多媒体存储卡(embedded multi media card,EMMC)标准等等)。根据本实施例,存储装置100可包含有一控制器(例如存储器控制器110),并且另包含有非挥发性存储器120,其中该控制器是用来控制存储装置100的操作以及存取非挥发性存储器120,以及非挥发性存储器120是用来存储信息,非挥发性存储器120可包含有至少一非挥发性存储器元件(例如一个或多个非挥发性存储器元件),诸如多个非挥发性存储器元件120-1、120-2、…、以及122-N,其中“N”可代表大于一的正整数,例如,非挥发性存储器120可以为一快闪存储器,以及多个非挥发性存储器元件120-1、120-2、…、以及122-N可以为多个快闪存储器芯片(chip)或多个快闪存储器裸晶(die),但是本发明不限于此。
根据本实施例,存储器控制器110可用来控制非挥发性存储器120的存取,以允许主装置50通过存储器控制器110来存取非挥发性存储器120,以在存储服务器10中进行存取管理,如图2所示,存储器控制器110可包含有一处理电路(例如微处理器112)、一存储单元(例如只读存储器(read-only memory,ROM)112M)、控制逻辑电路114、随机存取存储器116以及传输接口电路118,其中上述元件可借由一总线互相耦接。随机存取存储器116是借由一静态随机存取存储器(static RAM,SRAM)来实作,但是本发明不限于此,随机存取存储器116可用来提供内部存储空间给存储器控制器110,例如,随机存取存储器116可被使用为一缓冲存储器以缓冲数据,此外,本实施例的只读存储器112M是用来存储程序码112C,以及微处理器112是用来执行程序码112C以控制存储器控制器110的操作,以控制非挥发性存储器120的存取,以允许主装置50通过存储器控制器110来存取非挥发性存储器120。要注意的是,在某些范例中,程序码112C可存储在随机存取存储器116或任一类型的存储器,此外,控制逻辑电路114可用来控制非挥发性存储器120,并且可包含用来保护数据及/或进行错误校正的数据保护电路(未显示),但是本发明不限于此,传输接口电路118可符合一特定通讯标准(例如串行先进技术附件标准、外部组件互连标准、快速外部组件互连标准、非挥发性存储器存储装置标准、非挥发性存储器存储装置外接存取标准、小型电脑系统接口标准、通用快闪存储器存储标准等等),并且可根据该特定通讯标准来进行通讯,例如,为存储装置100来与主装置50进行通讯,其中存储接口电路54可符合该特定通讯标准,以为主装置50来与存储装置100进行通讯。
根据某些实施例,主装置50可传输多个主机命令以及相对应的多个逻辑地址给存储器控制器110,以存取存储装置100,存储器控制器110接收该多个主机命令以及该多个逻辑地址,并且将该多个主机命令转换为多个存储器操作命令(为简洁起见,可以称为多个操作命令),并且进一步地借由该多个操作命令来控制非挥发性存储器120以在非挥发性存储器120内有着多个实体地址的存储单元(例如数据页面)上进行读取、写入/编程等等,其中该多个实体地址可与该多个逻辑地址相关联,当存储器控制器110在多个非挥发性存储器元件120-1、120-2、…、以及122-N的任一个非挥发性存储器元件122-n(“n”可代表[1,N]区间中的任一个整数)上进行一抹除(erase)操作时,非挥发性存储器元件122-n的多个区块的至少一区块可被抹除,其中这些区块的每一个区块可包含有多个页面(例如数据页面),以及一存取操作(例如读取或写入)可在一个或多个页面上被进行。
根据某些实施例,存储服务器10(例如主装置50)可根据Ceph解决方案来操作,以使存储服务器10通过软件定义成为分散式存储系统的一部分,最佳地,多个存储系统(例如多个存储服务器{10},诸如存储服务器10)可用来形成分散式存储系统的资源池(resourcepool),以支持像是具有某些特征(feature)(例如容错、自动故障转移控制等等)的各种类型的存取,诸如区块装置型(例如在分散式存储系统中用来存取一模拟区块装置(emulatedblock device))、档案系统型(例如在分散式存储系统中用来存取一档案系统)以及物件型(例如在分散式存储系统中用来在物件命名空间(object namespace)内存取一物件),但是本发明不限于此。举例来说,一档案可在分散式存储系统内被存储为物件命名空间中的一物件,又例如,对应于某地址的一数据区块可在分散式存储系统内被存储为物件命名空间中的一物件,为了执行分散式存储系统的特征,除了数据(例如使用者数据)外,存储服务器10可用来存储额外信息(例如元数据(metadata)以及日志(journal))。
图3为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的基于索引物件的迁移控制方案,其中该方法可应用于存储服务器10。存储服务器10可充当第二云的角色,以及可视为数据迁移的目的地(destination),而远端简易存储服务相容服务器可充当第一云的角色,以及可视为数据迁移的来源端(source),例如,在第一时间点T1之前,使用者可在远端简易存储服务相容服务器中存取(例如读取或写入)数据,并且发现他/她在远端简易存储服务相容服务器中的个人存储容量几乎用完,且可能会受到远端简易存储服务相容服务器的性能低下的困扰。
因应自远端简易存储服务相容服务器迁移存储服务器10的使用者的使用者数据至存储服务器10的一要求,于使用者数据的迁移的多个阶段中的索引阶段(例如INDEX阶段)的期间(例如根据使用者的要求,自远端简易存储服务相容服务器迁移使用者数据至存储服务器10),运行在处理电路52上的程序模块52P中的基于索引物件的简易存储服务迁移管理模块53可创建以及存储多个索引物件(例如没有物件数据的虚拟物件)至存储服务器10的存储装置层(storage device layer),以作为存储服务器10中的使用者数据的多个常态物件(normal object)的各自的代表,并且迁移多个常态物件的各自的存取控制列表(Access Control List,ACL)至存储服务器10,以作为多个索引物件的各自的存取控制列表,宛如多个索引物件为多个常态物件,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率,其中存储装置层包含有耦接至主装置50的至少一存储装置(例如一个或多个存储装置),诸如多个存储装置90。借由将多个常态物件的各自的存取控制列表迁移至存储服务器10,以作为多个索引物件的各自的存取控制列表,基于索引物件的简易存储服务迁移管理模块53可利用多个索引物件来模拟(emulate)多个常态物件,例如,目的地(例如存储服务器10)可以在第一时间点T1开始迁移,在第一时间点T1之后,当使用者将任一个其它要求传送至目的地(例如存储服务器10)以尝试对任一个常态物件进行任何更改时,基于是否满足一个或多个预定条件(例如任一个其它要求是否符合一个或多个预定规则),存储服务器10可选择性地代理(proxy)(例如转发(forward))任一个其它要求至来源端(例如远端简易存储服务相容服务器)并将相对应于任一个其它要求的一回应(response)自该来源端代理至该使用者。
于多个阶段中索引阶段之后的数据阶段(例如DATA阶段)的期间,基于索引物件的简易存储服务迁移管理模块53可触发一个或多个其它程序模块(例如一个或多个迁移代理程序),以自远端简易存储服务相容服务器将多个常态物件中一组常态物件的各自的物件数据迁移至存储服务器10的存储装置层,以作为多个索引物件中一组索引物件的各自的替换,以完成使用者数据的迁移,举例来说,目的地(例如存储服务器10)可在第二时间点T2开始数据阶段,并且在时间点T3完成迁移,假设于数据阶段的期间,使用者将任一个其它要求传送至目的地(例如存储服务器10),以尝试对任一个常态物件进行任何更改,相似地,基于是否满足一个或多个预定条件(例如任一个其它要求是否符合一个或多个预定规则),存储服务器10可选择性地将任一个其它要求代理(例如转发)至来源端(例如远端简易存储服务相容服务器)且将相对应于任一个其它要求的该回应自该来源端代理(例如转发)至该使用者,举例来说,当任一个其它要求是一物件获取(Get-object)要求(例如“GetObject”)时,存储服务器10可为该要求在该使用者以及该来源端之间代理(例如转发),且尤指为某些其各自的物件数据还未被迁移至该目的地(例如于迁移的期间,当存储服务器10接收到物件获取要求时,这些索引物件的各自的物件数据还未被复制至该目的地,并且需要被复制至该目的地)的索引代理(例如转发)该要求。为了更好地理解,当任一个其它要求不存在时(例如使用者没有在时间点T1以及T3的期间传送任一个其它要求),该组常态物件可包含所有的多个常态物件,并且该组索引物件可包含所有的多个索引物件。
只要不妨碍本发明的实作,借由以下程序模块中的一个或多个程序模块可以实作一个或多个迁移代理程序:
(1)运行在处理电路52上的程序模块52P中的一个或多个程序模块;
(2)对于在主装置50中具有多个处理电路{52}的多节点(multi-node)架构的情况下,在多个处理电路{52}中运行在一个或多个其它处理电路上的一个或多个程序模块,其中多个处理电路{52}包含有处理电路52;以及
(3)对于在存储服务器10中具有多个主装置{50}的多主机(multi-host)架构的情况下,在多个主装置{50}中一个或多个其它主装置的运行在一个或多个相对应的处理电路上的一个或多个程序模块,其中多个主装置{50}包含有主装置50;但是本发明不限于此。
根据某些实施例,该方法以及相关设备可以用以利用Ceph的软件库(例如“librados”软件库)来进行针对Ceph架构的某些基本操作,其中Ceph的软件库可以用来向客户端应用程序提供对基于物件的可靠自动化分散式物件存储(reliable autonomicdistributed object store,RADOS)存储系统的直接存取,并且为某些Ceph的特征(例如可靠自动化分散式物件存储区块装置(RADOS block device,RBD)、可靠自动化分散式物件存储网关(RADOS gateway,RGW)、Ceph档案系统等等)提供一基础,以及可靠自动化分散式物件存储可以为Ceph分散式存储系统的一部分,且可以视为与Ceph物件存储集群(cluster)互动的工具程序(utility),但是本发明不限于此。
图4为根据本发明一实施例的图3所示的基于索引物件的迁移控制方案的一些相关操作的示意图,第一云以及第二云(为了更好地理解,分别标示为“简易存储服务相容存储”以及“Bigtera存储”)可分别作为远端简易存储服务相容服务器以及存储服务器10的范例,使用者可以通过一客户端装置(例如简易存储服务客户端,为简洁起见,标示为“S3客户端”)分别存取远端简易存储服务相容服务器以及存储服务器10,举例来说,每一个远端简易存储服务相容服务器以及存储服务器10可以提供简易存储服务且可以为简易存储服务相容,且尤指可以提供物件存储,以处理大量的非结构化数据,并且可以通过基于表现层状态转换(representational state transfer,REST)的应用程序接口(applicationprogram interface,API)(例如遵守表现层状态转换架构限制的网络服务(web service)应用程序接口,诸如表现层状态转换的应用程序接口(RESTful API))以及借由利用超文本传输协定(hypertext transfer protocol,HTTP)/超文本传输安全协定(hypertexttransfer protocol secure,HTTPS)来被存取。针对某些简易存储服务特征,每一个远端简易存储服务相容服务器以及存储服务器10可以用来在一贮体(bucket)(例如物件的容器(container))中存储一个或多个物件,并且一个或多个物件的任一个物件可包含一档案以及可选择性地包含任一个描述该档案的元数据,其中任一个物件的物件前置码(prefix)可包含一个或多个符号“/”,以支持数据夹概念(folder concept),以模拟一数据夹,此外,每一个远端简易存储服务相容服务器以及存储服务器10可具备至少一Ceph物件网关(为简洁起见,标示为“网关”),诸如构建在librados之上以提供有着一表现层状态转换的网关的应用程序给Ceph存储集群的至少一物件存储接口,其中该至少一Ceph物件网关支持远端简易存储服务相容服务器以及存储服务器10为简易存储服务相容以及Swift相容。如图4下半部所示,于使用者数据迁移的期间(为简洁起见,标示为空心箭头中的“数据”),使用者可将任一个其它要求(例如GET要求)传送(借由利用简易存储服务客户端)至存储服务器10,以要求使用者数据的部分数据,存储服务器10可以将任一个其它要求(例如GET要求)代理(例如转发)至远端简易存储服务相容服务器,并且代理(例如转发)对应于该任一个其它要求(例如自远端简易存储服务相容服务器至使用者(例如使用者的简易存储服务客户端)的部分数据,为简洁起见,在一些用虚线表示的箭头上标示为“数据”)的该回应。为简洁起见,本实施例的类似内容在此不再重复详细描述。
根据某些实施例,在INDEX阶段(例如INDEX时期)中,于预设情况下,该多个索引物件的每个索引物件可以被创建以具有一来源(source,src)物件(例如在第一云中的一相对应的物件,诸如一常态物件,其中该索引物件是充当该常态物件的代表的角色)的某些属性(attribute),并且这些属性可包含来源物件的最后修改时间(last-modified-time,mtime)(例如来源修改时间(src-mtime),诸如bigtera-scr-mtime)、来源物件的大小(例如来源大小(src-size),诸如bigtera-src-size)以及来源物件的实体标签(entity tag,Etag)(例如用于完整性检查的一档案杂凑(file hash),诸如MD5 sum),例如来源实体标签(src-etagt),诸如bigtera-src-etag)。
图5为根据本发明一实施例的关于图3所示的基于索引物件的迁移控制方案的一些物件以及一些相关特征的示意图,于使用者数据迁移的期间,来源端(例如远端简易存储服务相容服务器)可包含一个或多个贮体(例如物件的一个或多个容器),诸如远端贮体(remote bucket),并且该目的地(例如存储服务器10)可包含一个或多个贮体(例如物件的一个或多个容器),诸如远端贮体上方显示的该贮体,其中该要求以及该回应分别代表借由存储服务器10自使用者(例如使用者的简易存储服务客户端)接收的该要求以及借由存储服务器10回传至使用者(例如使用者的简易存储服务客户端)的该回应,举例来说,远端贮体可包含多个常态物件,为了更好地理解,显示在远端贮体中的小圆圈。此外,该目的地的该贮体可包含多个索引物件的至少一部分(例如一部分或全部),且尤指一个或多个常态物件,其取决于该迁移的过程(例如该迁移完成的百分比,诸如1%、2%等等。)及/或任一个其它要求的存在。
在迁移上述多个索引物件的至少一部分的任一个索引物件的物件数据之前,存储服务器10可将目的地的贮体设置为具有与远端贮体名称(例如远端贮体的贮体名称)相同的贮体名称,并且具有与远端使用者凭证(credential)(例如远端贮体的使用者凭证)相同的使用者凭证,且尤指具有虚假使用(fake usage)信息,诸如虚假使用(例如大小、物件数量等等)的信息,以作为迁移阶段(例如索引阶段以及数据阶段)的暂时使用者信息。一开始时,在迁移任一个索引物件的物件数据之前,存储服务器10可先在目的地的贮体中创建具有暂时属性的多个索引物件诸如虚拟(dummy)索引物件(例如没有物件数据的虚拟物件),当多个常态物件中的一常态物件已经被迁移至该目的地或针对该常态物件的某个操作在该目的地上已经被进行时(例如该常态物件的物件数据已经被迁移,或者使用者已经覆写该常态物件),该常态物件可存在于该贮体中(如图5所示),此外,对于多个索引物件的每个索引物件,暂时属性可包含:
(1)来源物件最后修改时间(例如来源物件的最后修改时间),诸如bigtera-src-mtime;
(2)来源物件大小(例如来源物件的大小),诸如bigtera-src-size;
(3)来源物件实体标签(例如来源物件的实体标签),诸如bigtera-src-etag;
其中这些暂时属性的任一个属性(例如每一个属性)可被实作为一扩展属性(x-attribute/XATTR/xattr),但是本发明不限于此,一旦来源物件的物件数据被迁移至目的地或使用者在该目的地覆写该物件数据,该目的地(例如存储服务器10)可将上述所列出的暂时属性移除,为简洁起见,本实施例的类似内容在此不再重复详细描述。
根据某些实施例,以图5右上方所示的常态物件作为来源物件的范例,当来源物件的物件数据被迁移至目的地或使用者在该目的地覆写该物件数据时,存储服务器10可以使充当常态物件的代表的索引物件无效化(例如借由移除其暂时属性)及/或将索引物件替换为在该目的地的该贮体中的常态物件,但是本发明不限于此。
通常来说,更改一物件的存取控制列表不会改变该物件的修改时间,相关技术的数据迁移方法似乎在提出时没有考虑这一点,因此不能适当地处理已删除物件、只读物件等等。本发明的方法和相关设备可以在各种状况中的任一状况下适当地操作,其中更进一步的实作细节会在以下实施例中描述。
图6为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的迁移代理控制方案的示意图,因应将使用者数据自远端简易存储服务相容服务器迁移至存储服务器10的要求,于多个阶段中的索引阶段之前的一设置(set-up)阶段(例如设置时期)的期间,存储服务器10可利用基于索引物件的简易存储服务迁移管理模块53来进行使用者数据的迁移的预处理,举例来说,该预处理可包含步骤S01~S05的操作,但是本发明不限于此。
在步骤S01中,基于索引物件的简易存储服务迁移管理模块53,例如,可以在要求触发后立即为一组简易存储服务使用者(例如一单一使用者,诸如上述的使用者,或者包含有上述的使用者的多个使用者)开始进行简易存储服务迁移。
在步骤S02中,基于索引物件的简易存储服务迁移管理模块53可以迁移各自的使用者凭证以及该组简易存储服务使用者的各自的设定(例如配额(quota))。
在步骤S03中,基于索引物件的简易存储服务迁移管理模块53可以在目的地中针对该组使用者的每一使用者创建一个或多个贮体,并且设置相关迁移信息,例如,该迁移信息可包含代理参数(例如用来代理(例如转发)的远端使用者凭证)以及其他代理参数,以引导该目的地(例如存储服务器10)来将任一个其它要求代理(例如转发)至来源端(例如远端简易存储服务相容服务器),并且将对应于该任一个其它要求的回应自该来源端代理(例如转发)至使用者。
在步骤S04中,针对该一个或多个贮体的每一贮体,基于索引物件的简易存储服务迁移管理模块53可以迁移来源端的一相对应远端贮体的贮体存取控制列表(bucket ACL)、贮体元数据(bucket metadata)以及贮体配额(bucket quota),以作为该一个或多个贮体的此一贮体的贮体存取控制列表、贮体元数据以及贮体配额。
在步骤S05中,基于索引物件的简易存储服务迁移管理模块53可以切换至少一端点,以自远端简易存储服务相容服务器的至少一集群中存取使用者数据至存储服务器10中的至少一集群。
在步骤S06中,在设置阶段之后,基于索引物件的简易存储服务迁移管理模块53可以为该一个或多个贮体的该每一贮体来创建一索引贮体工作(例如INDEX工作),以进行来源端的相对应的远端贮体至该一个或多个贮体的该贮体的迁移,例如,基于索引物件的简易存储服务迁移管理模块53可以将该贮体设至索引阶段(例如INDEX阶段)。
为了更好地理解,一个或多个迁移代理程序的任一个迁移代理程序(例如每一个代理程序)可以视为实际进行物件迁移的程序模块,例如,基于索引物件的简易存储服务迁移管理模块53可以创建多个工作类型(例如相对应于索引阶段的多个索引工作(例如多个INDEX工作)以及相对应于数据阶段的多个数据工作(例如多个的DATA工作)),且尤指传送及/或分配多个工作类型至一个或多个迁移代理程序,以分别进行数据阶段以及索引阶段的操作。假设该一个或多个代理程序包含多个代理程序,该多个代理程序可以分别被实作以在多个集群节点上运行,其中一代理程序运行在多个集群节点的每一个集群节点上,因此,基于索引物件的简易存储服务迁移管理模块53可以同时借助于一个或多个迁移代理程序(例如多个迁移代理程序)来并行地将使用者数据(例如该物件的各自的物件数据)自来源端迁移至目的地。
在步骤S07中,基于索引物件的简易存储服务迁移管理模块53可以借由一个或多个迁移代理程序中的某个代理程序来执行INDEX工作,以为来源端的每一个物件(例如多个常态物件的每一个常态物件)进行以下操作:
(1)创建具有暂时属性(例如来源物件最后修改时间,诸如bigtera-src-mtime;来源物件大小,诸如bigtera-src-size;以及来源物件实体标签,诸如bigtera-src-etag)的一虚拟物件(例如不具有物件数据的一物件),以作为多个索引物件中的其中一个索引物件,其中暂时属性可以为来源端的该每一个物件的虚假属性(例如虚假最后修改时间、虚假实体标签诸如虚假档案杂凑以及虚假大小),而不是来源端的该每一个物件的真实属性,因此可以视为特殊属性;
(2)自来源端将该物件的物件存取控制列表迁移至目的地;
其中多个索引物件的所有索引物件是在步骤S07的所有操作完成之后被创建。
当索引工作(例如INDEX工作)完成时,基于索引物件的简易存储服务迁移管理模块53可以为该一个或多个贮体的该每一个贮体创建一数据工作(例如DATA工作),以进行来源端的相对应的远端贮体至该一个或多个贮体的此一贮体的迁移。
在步骤S08中,针对该一个或多个贮体的该每一个贮体,基于索引物件的简易存储服务迁移管理模块53可以借由一个或多个迁移代理程序的某个代理程序来执行DATA工作,以为来源端的每一个物件(例如于不存在任一个其它要求的情况下,多个常态物件的每一个常态物件;或者于存在任一个其它要求的情况下,该组常态物件的每一个常态物件,其中该任一个其它要求可能导致在该目的地中覆写某个物件,以作为该贮体中的一常态物件)进行以下操作:
(1)自该来源端迁移该物件的物件数据至该目的地;
其中该迁移代理程序可迁移该贮体配额的最新版本(例如于不存在任一个其它要求的情况下,相对应的远端贮体的原始贮体配额;或者于存在任一个其它要求的情况下,因应使用者做出的任何更改而更新的贮体配额)以作为在该工作结束时该贮体的贮体配额,例如,基于索引物件的简易存储服务迁移管理模块53可将该贮体设至数据阶段(例如DATA阶段)。
在相对应于该组简易存储服务使用者的所有贮体中,当这些贮体的一贮体于索引阶段(例如INDEX阶段)中正在处理时,这些贮体的另一贮体可于数据阶段(例如DATA阶段)中正在处理。假设该一个或多个贮体包含多个贮体,当该多个贮体的一贮体于索引阶段(例如INDEX阶段)中正在处理时,该多个贮体的另一贮体可于数据阶段(例如DATA阶段)中正在处理,为简洁起见,本实施例的类似内容在此不再重复详细描述。
根据某些实施例,索引阶段(例如INDEX阶段)可能比数据阶段(例如DATA阶段)短很多,在该索引阶段中,基于索引物件的简易存储服务迁移管理模块53可借由步骤S07中的迁移代理程序来执行INDEX工作,以先列出远端物件(例如来源端的多个常态物件),以进行创建虚拟物件以及迁移物件存取控制列表的操作。因为在索引阶段(例如INDEX阶段)中任一个其它要求可能存在,需要考虑不同情况,诸如索引物件还未被创建的一第一情况,以及存储服务器10正在创建索引物件的一第二情况等等,举例来说,针对PUT/POST要求的处理应在本地位置(local site)(例如目的地,诸如存储服务器10)进行,以及存储服务器10可进行针对PUT/POST要求的该处理并且同时将该PUT/POST要求代理至远端位置(remotesite)(例如来源端,诸如远端简易存储服务相容服务器),以使贮体使用情况以及物件列出(List-Objects)要求(例如ListObjects request)的结果正确。在任一个其它要求存在于索引阶段(例如INDEX阶段)中的情况下,使用者可以在该阶段中覆写一个或多个物件,如果一索引物件被使用者覆写,则该物件不再是一索引物件,因此迁移代理程序不会为该物件在数据阶段(例如DATA阶段)中迁移物件数据,此外,在数据阶段(例如DATA阶段)之前,所有索引物件可能已经被创建(包含其物件存取控制列表)。在数据阶段(例如DATA阶段)中,基于索引物件的简易存储服务迁移管理模块53可借由步骤S08中的迁移代理程序来执行DATA工作,以列出本地物件(例如本地位置的物件,诸如索引物件),并且为每一个本地物件迁移物件数据。通常来说,大部分操作可以正常地被进行,除了GET/HEAD物件要求,为了解决竞争危害(racing hazard),存储服务器10可利用原子(atomic)操作来创建索引物件以及借由该索引物件来迁移数据(例如来源端的多个常态物件的物件数据),举例来说,当迁移代理程序正在创建索引物件或迁移关于索引物件的数据时,如果PUT操作的一目标物件已经存在或没有上述暂时属性,则该PUT操作是被取消,其代表使用者已经覆写该物件。针对代理(例如转发)位在可靠自动化分散式物件存储网关中的索引物件,在任一个其它要求存在的情况下,当客户端装置(例如简易存储服务客户端)操作在一索引物件上或者该目的地的该贮体正处于INDEX阶段中时,可能需要该目的地(例如存储服务器10)可以将该任一个其它要求代理至远端位置(例如来源端,诸如远端简易存储服务相容服务器),并且将代理回应(例如对应于该任一个其它要求的回应)回传至客户端装置,为简洁起见,这些实施例的类似内容在此不再重复详细描述。
图7为图1所示的具备基于索引物件的简易存储服务迁移管理模块53的Ceph物件存储架构的范例的示意图,图1所示的运行在处理电路52上的程序模块52P可包含一Ceph物件网关模块(为简洁起见,在图7中标示为“Ceph物件网关”),其中该Ceph物件网关模块包含一些子模块,诸如一可靠自动化分散式物件存储网关模块(为简洁起见以及更好地理解,标示为“RADOS网关”)以及librados软件库(为简洁起见,标示为“librados”),并且基于索引物件的简易存储服务迁移管理模块53是在可靠自动化分散式物件存储网关模块中被实作,根据本实施例,客户端装置(标示为“客户端”)可以通过超文本传输协定(例如简易存储服务或Swift应用程序接口)(为简洁起见,标示为“HTTP(S3或Swift API)”)来存取存储服务器10,存储服务器10可以借由多节点架构、多主机架构等等来实作,但是本发明不限于此。
如图7所示,存储服务器10的一可靠自动化分散式物件存储(例如可靠自动化分散式物件存储的基于物件的存储系统)可包含通过至少一公共网络(public network)(例如一个或多个公共网络)来耦接至图1所示的主装置50的多个物件存储装置(object storagedevice,OSD)节点(为简洁起见,标示为“OSD节点”),并且另包含Ceph物件存储架构的其它部分架构,诸如耦接至该多个物件存储装置节点的至少一集群网络(cluster network)(例如一个或多个集群网络)、构成仲裁(Quorum)的奇数个监视器(monitor)等等。该至少一公共网络可用来达成一第一预定速度诸如每秒十亿比特(为简洁起见,标示为“1G”),以及该至少一集群网络可用来达到一第二预定速度诸如每秒一百亿比特(为简洁起见,标示为“10G”),其中该第二预定速度的每秒的比特越多越好,该多个物件存储装置节点可包含供日志(journal)(例如多种类型的日志,诸如物件存储装置日志等等)使用的一些固态硬盘,以及更多的传统硬盘,且尤指包含非容错式磁盘阵列驱动架构,诸如集束磁盘/驱动器(just a bunch of disks/drives,JBOD)),为简洁起见,这些实施例的类似内容在此不再重复详细描述。
针对简易存储服务表现层状态转换的应用程序接口/操作,简易存储服务动作的物件相关操作的范例可包含但不限于:
(1)物件列出要求(例如ListObjects request);
(2)物件头(Head-Object)要求(例如用来获取物件属性的HeadObject request);
(3)物件获取要求(例如GetObject request);
(4)物件获取存取控制列表(Get-Object-ACL)要求(例如GetObjectaACLrequest);
(5)物件放置(Put-Object)要求(例如PutObject request);
(6)创建多成分上传(Create-Multipart-Upload)要求(例如CreateMultipartUpload request);
(7)完成多成分上传(Complete-Multipart-Upload)要求(例如CompleteMultipartUpload request);
(8)物件放置存取控制列表(Put-Object-ACL)要求(例如PutObjectACLrequest);
(9)物件删除(Delete-Object)要求(例如DeleteObject request);
其中某些后续实施例可能专注在上述列出的物件相关操作上。
图8为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件列出控制方案的示意图,如图8所示,于使用者数据迁移的期间用来处理一个或多个物件列出要求的一工作流程可包含步骤S10~S14,其中S14可包含一些子步骤诸如步骤S14A~S14C。
在步骤S10中,存储服务器10(例如基于索引物件的简易存储服务迁移管理模块53)可自使用者接收在一个或多个物件列出要求中的一物件列出要求。
在步骤S11中,因应该物件列出要求,基于索引物件的简易存储服务迁移管理模块53可检查在存储服务器10的存储装置层中的至少一贮体中对应于该物件列出要求的一贮体(例如目的地的贮体)是否在索引阶段(例如INDEX阶段)中正在被处理,其中该至少一贮体可代表为物件的至少一容器(例如一个或多个容器),如果是,进入步骤S12;如果否,则进入步骤S14(例如步骤S14A),举例来说,该物件列出要求要求列出该贮体的物件。
在步骤S12中,因应该贮体在索引阶段(例如INDEX阶段)中正在被处理,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10来将该物件列出要求代理(例如转发)至来源端(例如远端简易存储服务相容服务器)。
在步骤S13中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10来自该来源端(例如远端简易存储服务相容服务器)将对应于该物件列出要求的回应代理(例如转发)至使用者。
在步骤S14中,因应该贮体在索引阶段(例如INDEX阶段)中没有正在被处理,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件列出要求来进行至少一常态动作,无需将该物件列出要求代理(例如转发)至来源端(例如远端简易存储服务相容服务器),例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据一相关存取控制列表检查是否通过来选择性地将一本地物件列出结果(例如本地位置的一本地物件列出结果,诸如在本地位置执行该物件列出要求的结果)回传至使用者。
在步骤S14A中,基于索引物件的简易存储服务迁移管理模块53可检查该存取控制列表检查是否通过,如果是,进入步骤S14B;如果否,则进入步骤S14C,例如,当存取控制列表指示使用者拥有将物件列出要求应用至该贮体的权限(例如执行物件列出要求的获取结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查通过,又例如,当存取控制列表指示使用者不拥有将物件列出要求应用至该贮体的权限(例如执行物件列出要求的获取结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查不通过。
在步骤S14B中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10来将本地物件列出结果回传至使用者。
在步骤S14C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10来阻止将本地物件列出结果回传至使用者。
为了更好地理解,该方法可利用图8所示的工作流程来说明,但是本发明不限于此,根据某些实施例,图8所示的工作流程中的一个或多个步骤可被添加、删除、或更改,例如,该工作流程的至少一部分(例如一部分或全部)可被执行多次,且尤指包含有检查操作的任一个步骤可被执行多次,以分别产生多个检查结果,以分别触发一些后续步骤的执行。
图9为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件头控制方案的示意图,如图9所示,于使用者数据迁移的期间用来处理一个或多个物件头要求的一工作流程可包含步骤S20~S28、S29A以及S29B,其中步骤S25可包含一些子步骤(例如S25A~S25C),以及步骤S27可包含一些子步骤(例如S27A~S27C)。
在步骤S20中,存储服务器(例如基于索引物件的简易存储服务迁移管理模块53)可自使用者接收一个或多个物件头要求的一个物件头要求,例如,该物件头要求要求获取目的地的贮体中一物件的物件属性,并且该物件可视为该物件头要求的一目标物件,物件属性可包含:
(1)物件最后修改时间,诸如该物件的最后修改时间;
(2)物件实体标签,诸如该物件的实体标签(例如档案杂凑);
(3)物件大小,诸如该物件的大小;
其中这些属性可以借由一HTTP HEAD要求而被撷取。
在步骤S21中,因应该物件头要求,基于索引物件的简易存储服务迁移管理模块53可检查在存储服务器10的存储装置层中上述至少一贮体之中的对应于该物件头要求的一贮体(例如目的地的贮体)是否在索引阶段(例如INDEX阶段)中正在被处理,如果是,进去步骤S22;如果否;则进入步骤S26。
在步骤S22中,因应该贮体在索引阶段(例如INDEX阶段)中正在被处理,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件头要求的该目标物件)是否存在,如果是,进入步骤S23;如果否,则进去步骤S28。
在步骤S23中,因应该物件的存在,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件头要求的该目标物件)是否仍为一索引物件,如果是,进入步骤S24;如果否,则进去步骤S27(例如步骤S27A)。
在步骤S24中,因应该物件仍为一索引物件,基于索引物件的简易存储服务迁移管理模块53可检查该物件的物件存取控制列表是否被迁移;如果是,进入步骤S25(例如步骤S25A);如果否,则进入步骤S29A,举例来说,在创建一虚拟物件(例如上述的虚拟物件)以及迁移该物件存取控制列表之间通常会有一短时间延迟,因此基于索引物件的简易存储服务迁移管理模块53可在该工作流程中进行步骤S24的检查操作,以遵守存取控制方针。
在步骤S25中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件头要求来进行至少一特殊动作,例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以选择性地根据一相关存取控制列表检查是否通过来将记录在该索引物件(例如在步骤S23中提到的该索引物件)的特殊属性(例如来源修改时间,诸如bigtera-src-mtime、来源实体标签,诸如bigtera-src-etag、以及来源大小,诸如bigtera-src-size)中的属性回传至使用者。
在步骤S25A中,基于索引物件的简易存储服务迁移管理模块53可检查该存取控制列表检查是否通过,如果是,进入步骤S25B;如果否,则进入步骤S25C,例如,当该存取控制列表指示使用者拥有将物件头要求应用于该物件的权限(例如获取执行该物件头要求的结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查通过,又例如,当该存取控制列表指示使用者不拥有将物件头要求应用于该物件的权限(例如获取执行该物件头要求的结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表不通过。
在步骤S25B中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将记录在该索引物件(例如在步骤S23中提到的该索引物件)的特殊属性中的属性回传至使用者。
在步骤S25C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以阻止将记录在该索引物件(例如在步骤S23中提到的该索引物件)的特殊属性中的属性回传至使用者。
在步骤S26中,因应该贮体在索引阶段(例如INDEX阶段)中没有正在被处理,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件头要求的该目标物件)是否仍为一索引物件,如果是,进入步骤S25(例如步骤S25A);如果否,则进入步骤S27(例如步骤S27A),针对步骤S26以及S27之间的部分工作流程,在数据阶段(例如DATA阶段)中,所有物件存取控制列表已经被迁移,因此无需再次获取远端物件存取控制列表。
在步骤S27中,因应该物件(例如该物件头要求的该目标物件)已不再是一索引物件(例如该物件成为一常态物件),基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件头要求来进行至少一常态动作,例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据一相关存取控制列表检查是否通过来选择性地将该物件的本地元数据(例如本地位置的该物件的元数据)回传至使用者。
在步骤S27A中,基于索引物件的简易存储服务迁移管理模块53可检查存取控制列表检查是否通过,如果是,进入步骤S27B;如果否,则进入步骤S27C,例如,步骤S27A的操作可相似于步骤S25A的操作。
在步骤S27 B中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该物件的该本地元数据回传至使用者。
在步骤S27C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以阻止将该物件的该本地元数据回传至使用者。
在步骤S28中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该要求(例如物件头要求)代理(例如转发)至来源端/远端位置(例如远端简易存储服务相容服务器),以使该远端位置检查该物件存取控制列表。
在步骤S29中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将对应于该物件头要求的回应代理(例如转发)至使用者。
在步骤S29E中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以回传一错误通知(例如’503Service Unavailable’),例如,由于迁移代理程序在极短时间内会迁移存取控制列表,此操作可通知客户端稍后再尝试。
为了更好地理解,该方法可利用图9所示的工作流程来说明,但是本发明不限于此,根据某些实施例,图9所示的工作流程中的一个或多个步骤可被添加、删除、或更改,例如,该工作流程的至少一部分(例如一部分或全部)可被执行多次,且尤指包含有检查操作的任一个步骤可被执行多次,以分别产生多个检查结果,以分别触发一些后续步骤的执行。
图10为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件获取控制方案的示意图,如图10所示,于使用者数据迁移的期间用来处理一个或多个物件获取要求的一工作流程可包含步骤S30~S36,其中步骤S36可包含一些子步骤(例如S36A~S36C)。
在步骤S30中,存储服务器10(例如基于索引物件的简易存储服务迁移管理模块53)可自使用者接收一个或多个物件获取要求中的一物件获取要求,例如,该物件获取要求要求获取有着属性的物件数据,诸如目的地的贮体中的一物件的物件数据以及该物件的物件属性,并且此物件可视为该物件获取要求的一目标物件。
在步骤S31中,因应该物件获取要求,基于索引物件的简易存储服务迁移管理模块53可检查存储服务器的存储装置层中的上述至少一贮体中对应于该物件获取要求的一贮体(例如目的地的贮体)是否在索引阶段(例如INDEX阶段)中正在被处理,如果是,进入步骤S32;如果否,则进入步骤S33。
在步骤S32中,因应该贮体在索引阶段(例如INDEX阶段)中正在被处理,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件获取要求的该目标物件)是否存在,如果是,进入步骤S33;如果否,则进入步骤S34。针对步骤S32以及S34之间的部分工作流程,该物件不存在的原因的范例可包含:该索引物件还未被创建;以及该索引物件已经被使用者删除。
在步骤S33中,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件获取要求的该目标物件)是否仍为一索引物件,如果是,进入步骤S34;如果否,则进入步骤S36(例如步骤S36A)。
在步骤S34中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该要求(例如该物件获取要求)代理(例如转发)至来源端/远端位置(例如远端简易存储服务相容服务器)。
在步骤S35中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将对应于该物件获取要求的回应代理(例如转发)至使用者。
在步骤S36中,因应该物件(例如该物件获取要求的该目标物件)不再是一索引物件(例如该物件成为一常态物件),基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件获取要求来进行至少一常态动作,例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据一相关存取控制列表检查是否通过来选择性地将该物件的本地数据(例如本地位置的该物件的该数据)回传至使用者。
在步骤S36A中,基于索引物件的简易存储服务迁移管理模块53可检查该存取控制列表检查是否通过,如果是,进入步骤S36B;如果否,则进入步骤S36C,例如,当该存取控制列表指示使用者拥有将该物件获取要求应用于该物件的权限(例如获取执行该物件获取要求的结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查通过,又例如,当该存取控制列表指示使用者不拥有将该物件获取要求应用于该物件的权限(例如获取执行该物件获取要求的结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表不通过。
在步骤S36B中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该物件的该本地数据回传至使用者。
在步骤S36C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10阻止将该物件的该本地数据回传至使用者。
为了更好地理解,该方法可利用图10所示的工作流程来说明,但是本发明不限于此,根据某些实施例,图10所示的工作流程中的一个或多个步骤可被添加、删除、或更改,例如,该工作流程的至少一部分(例如一部分或全部)可被执行多次,且尤指包含有检查操作的任一个步骤可被执行多次,以分别产生多个检查结果,以分别触发一些后续步骤的执行。
图11为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件获取存取控制列表控制方案的示意图,如图11所示,于使用者数据迁移的期间用来处理一个或多个物件获取存取控制列表要求的一工作流程可包含步骤S40~S48,其中步骤S45可包含一些子步骤(例如S45A~S45C)。
在步骤S40中,存储服务器10(例如基于索引物件的简易存储服务迁移管理模块53)可自使用者接收在一个或多个物件获取存取控制列表要求中的一物件获取存取控制列表要求,例如,该物件获取存取控制列表要求要求获取物件存取控制列表(例如目的地的贮体中一贮体的存取控制列表),并且此物件可视为该物件获取存取控制列表要求的一目标物件。
在步骤S41中,因应该物件获取存取控制列表要求,基于索引物件的简易存储服务迁移管理模块53可检查存储服务器10的存储装置层中的上述至少一贮体中对应于该物件获取存取控制列表要求的一贮体(例如目的地的贮体)是否在索引阶段(例如INDEX阶段)中正在被处理,如果是,进入步骤S42;如果否,则进入步骤S45(例如步骤S45A)。
在步骤S42中,因应该贮体在索引阶段(例如INDEX阶段)中正在被处理,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件获取存取控制列表要求的该目标物件)是否存在,如果是,进入步骤S43;如果否,则进入步骤S46。
在步骤S43中,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件获取存取控制列表要求的该目标物件)是否仍为一索引物件,如果是,进入步骤S44;如果否,则进入步骤S45(例如步骤S45A)。
在步骤S44中,因应该物件仍为一索引物件,基于索引物件的简易存储服务迁移管理模块53可检查该物件的物件存取控制列表是否被迁移,如果是,进入步骤S45(例如步骤S45A);如果否,则进入步骤S48。
在步骤S45中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件获取存取控制列表要求来进行至少一常态动作,例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据一相关存取控制列表检查是否通过来选择性地将该物件的本地存取控制列表(例如本地位置的该物件的存取控制列表)回传至使用者。
在步骤S45A中,基于索引物件的简易存储服务迁移管理模块53可检查该存取控制列表检查是否通过,如果是,进入步骤S45B;如果否,则进入步骤S45C,例如,当存取控制列表指示使用者拥有将该物件获取存取控制列表要求应用于该物件的权限(例如获取执行该物件获取存取控制列表要求的结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查通过,又例如,当存取控制列表指示使用者不拥有将该物件获取存取控制列表要求应用于该物件的权限(例如获取执行该物件获取存取控制列表要求的结果的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查不通过。
在步骤S45B中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该物件的本地存取控制列表回传至使用者。
在步骤S45C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以阻止将该物件的本地存取控制列表回传至使用者。
在步骤S46中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该要求(例如该物件获取存取控制列表要求)代理(例如转发)至来源端/远端位置(例如远端简易存储服务相容服务器)。
在步骤S47中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将对应于该物件获取存取控制列表要求的回应代理(例如转发)至使用者。
在步骤S48中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以回传一错误通知(例如’503Service Unavailable’)。
为了更好地理解,该方法可利用图11所示的工作流程来说明,但是本发明不限于此,根据某些实施例,图11所示的工作流程中的一个或多个步骤可被添加、删除、或更改,例如,该工作流程的至少一部分(例如一部分或全部)可被执行多次,且尤指包含有检查操作的任一个步骤可被执行多次,以分别产生多个检查结果,以分别触发一些后续步骤的执行。
图12为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件放置控制方案的示意图,如图12所示,于使用者数据迁移的期间用来处理一个或多个物件数据写入相关要求(例如一个或多个物件放置要求、一个或多个创建多成分上传要求、以及一个或多个完成多成分上传要求)的一工作流程可包含步骤S50~S58,其中步骤S56可包含一些子步骤(例如S56A~S56C)。
在步骤S50中,存储服务器10(例如基于索引物件的简易存储服务迁移管理模块53)可自使用者接收在一个或多个物件数据写入相关要求(例如一个或多个放置要求、一个或多个创建多成分上传要求、以及一个或多个完成多成分上传要求)中的一物件数据写入相关要求(例如一物件放置/创建多成分上传/完成多成分上传要求,诸如一物件放置要求、一创建多部分上传要求简或者一完成多部分上传要求),举例来说,该物件数据写入相关要求要求将一物件写入至目的地的贮体,并且此物件可视为该物件数据写入相关要求的一目标物件。
在步骤S51中,因应该物件数据写入相关要求,基于索引物件的简易存储服务迁移管理模块53可检查存储服务器10的存储装置层中的上述至少一贮体中对应于该物件数据写入相关要求的一贮体(例如目的地的贮体)是否在索引阶段(例如INDEX阶段)中正在被处理,如果是,进入步骤S52;如果否,则进入步骤S56(例如步骤S56A)。
在步骤S52中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该要求(例如该物件数据写入相关要求)代理(例如转发)至来源端(例如远端简易存储服务相容服务器),以使远端简易存储服务相容服务器检查该物件存取控制列表。
在步骤S53中,基于索引物件的简易存储服务迁移管理模块53可控制该要求(例如该物件数据写入相关要求)是否成功而没有任何错误,如果是(例如接收自该来源端的回应,诸如对应于该物件数据写入相关要求的回应,指示没有错误发生),进入步骤S54;如果否(例如接收自该来源端的回应,诸如对应于该物件数据写入相关要求的回应,是指示一个或多个错误的一错误回应),则进入步骤S57。
在步骤S54中,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件数据写入相关要求的该目标物件)是否存在,如果是,进入步骤S55;如果否,则进入步骤S56(例如步骤S56A)。
在步骤S55中,基于索引物件的简易存储服务迁移管理模块53可检查该物件的物件存取控制列表是否被迁移,如果是,进入步骤S56(例如步骤S56A);如果否,则进入步骤S58。
在步骤S56中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件数据写入相关要求来进行至少一常态动作,例如,基于索引物件的简易存储服务迁移管理模块53可根据一相关存取控制列表检查是否通过来选择性地将数据(例如该物件数据写入相关要求所携带的该物件数据)写入为该物件的该物件数据。
在步骤S56A中,基于索引物件的简易存储服务迁移管理模块53可检查该存取控制列表检查是否通过,如果是,进入步骤S56B;如果否,则进入步骤S56C,例如,当存取控制列表指示使用者拥有将该物件数据写入相关要求应用于该物件的权限(将该物件数据写入相关要求所携带的该物件数据写入的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查通过,又例如,当存取控制列表指示使用者不拥有将该物件数据写入相关要求应用于该物件的权限(将该物件数据写入相关要求所携带的该物件数据写入的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查不通过。
在步骤S56B中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该数据(例如该物件数据写入相关要求所携带的该物件数据)写入为该物件的该物件数据。
在步骤S56C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以阻止将该数据(例如该物件数据写入相关要求所携带的该物件数据)写入为该物件的该物件数据。
在步骤S57中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将对应于该物件数据写入相关要求的该错误回应代理(例如转发)至使用者。
在步骤S58中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以自来源端将该物件的物件存取控制列表迁移至目的地。
为了更好地理解,该方法可利用图12所示的工作流程来说明,但是本发明不限于此,根据某些实施例,图12所示的工作流程中的一个或多个步骤可被添加、删除、或更改,例如,该工作流程的至少一部分(例如一部分或全部)可被执行多次,且尤指包含有检查操作的任一个步骤可被执行多次,以分别产生多个检查结果,以分别触发一些后续步骤的执行。
图13为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件放置存取控制列表控制方案的示意图,如图13所示,于使用者数据迁移的期间用来处理一个或多个物件放置存取控制列表要求的一工作流程可包含步骤S60~S65,其中步骤S64可包含一些子步骤(例如S64A~S64C)。
在步骤S60中,存储服务器10(例如基于索引物件的简易存储服务迁移管理模块53)可自使用者接收一个或多个物件放置存取控制列表要求的一物件放置存取控制列表要求,例如,该物件放置存取控制列表要求要求写入或者更新物件存取控制列表(例如在目的地的贮体中一物件的存取控制列表),并且此物件可视为该物件放置存取控制列表要求的一目标物件。
在步骤S61中,因应该物件放置存取控制列表要求,基于索引物件的简易存储服务迁移管理模块53可检查在存储服务器10的存储装置层中的上述至少一贮体中对应于该物件放置存取控制列表要求的一贮体(例如目的地的贮体)是否在索引阶段(例如INDEX阶段)中正在被处理,如果是,进入步骤S62,如果否,则进入步骤S64(例如步骤S64A)。
在步骤S62中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该要求(例如物件放置存取控制列表要求)代理(例如转发)至来源端(例如远端简易存储服务相容服务器)。
在步骤S63中,基于索引物件的简易存储服务迁移管理模块53可检查该要求(例如物件放置存取控制列表要求)是否成功而没有任何错误,如果是(例如自来源端接收的回应,诸如对应于该物件放置存取控制列表要求的回应,指示没有错误发生),进入步骤S64(例如步骤S64A);如果否(例如自来源端接收的回应,诸如对应于该物件放置存取控制列表要求的回应,为指示一个或多个错误的一错误回应(error response)),则进入步骤S65。
在步骤S64中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件放置存取控制列表要求来进行至少一常态动作,例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据一相关存取控制列表检查是否通过来选择性地更新有着该物件放置存取控制列表要求所携带的新/最新的存取控制列表的该物件存取控制列表(例如该目标物件的该存取控制列表)。
在步骤S64A中,基于索引物件的简易存储服务迁移管理模块53可检查该存取控制列表检查是否通过,如果是,进入步骤S64B;如果否,则进入步骤S64C,例如,当存取控制列表指示使用者拥有将该物件放置存取控制列表要求应用于该物件的权限(例如写入或者更新该物件存取控制列表的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查通过,又例如,当存取控制列表指示使用者不拥有将该物件放置存取控制列表要求应用于该物件的权限(例如写入或者更新该物件存取控制列表的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查不通过。
在步骤S64B中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以更新有着该物件放置存取控制列表要求所携带的该新的存取控制列表的该物件存取控制列表(例如该目标物件的该存取控制列表)。
在步骤S64C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将对应于该物件放置存取控制列表要求的该错误回应代理(例如转发)至使用者。
为了更好地理解,该方法可利用图13所示的工作流程来说明,但是本发明不限于此,根据某些实施例,图13所示的工作流程中的一个或多个步骤可被添加、删除、或更改,例如,该工作流程的至少一部分(例如一部分或全部)可被执行多次,且尤指包含有检查操作的任一个步骤可被执行多次,以分别产生多个检查结果,以分别触发一些后续步骤的执行。
图14为根据本发明一实施例的利用索引物件来进行简易存储服务无缝迁移的方法的物件删除控制方案的示意图,如图14所示,于使用者数据迁移的期间用来处理一个或多个物件删除要求的一工作流程可包含步骤S70~S75,其中步骤S74可包含一些子步骤(例如S74A~S74D)。
在步骤S70中,存储服务器10(例如基于索引物件的简易存储服务迁移管理模块53)可自使用者接收在一个或多个物件删除要求的一物件删除要求,例如,该物件删除要求要求删除在目的地的贮体中的一物件,并且此物件可视为该物件删除要求的一目标物件。
在步骤S71中,因应该物件删除要求,基于索引物件的简易存储服务迁移管理模块53可检查在存储服务器10的存储装置层中的上述至少一贮体中对应于该物件删除要求的一贮体(例如目的地的贮体)是否在索引阶段(例如INDEX阶段)中正在被处理,如果是,进入步骤S72,如果否,则进入步骤S74(例如步骤S74A)。
在步骤S72中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将该要求(例如物件删除要求)代理(例如转发)至来源端(例如远端简易存储服务相容服务器)。
在步骤S73中,基于索引物件的简易存储服务迁移管理模块53可检查该要求(例如物件删除要求)是否成功而没有任何错误,如果是(例如自来源端接收的回应,诸如对应于该物件删除要求的回应,指示没有错误发生),进入步骤S74(例如步骤S74A);如果否(例如自来源端接收的回应,诸如对应于该物件删除要求的回应,为指示一个或多个错误的一错误回应),则进入步骤S75。
在步骤S74中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据该物件删除要求来进行至少一常态动作,例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以至少根据一相关存取控制列表检查是否通过来选择性地删除该物件(例如该目标物件),又例如,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以至少根据该物件是否存在来选择性地删除该物件(例如该目标物件),较佳地,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以根据一第一条件以及一第二条件是否被满足来选择性地删除该物件(例如该目标物件),其中该第一条件代表该存取控制列表检查通过,以及该第二条件代表该物件存在。
在步骤S74A中,基于索引物件的简易存储服务迁移管理模块53可检查该存取控制列表检查是否通过,如果是,进入步骤S74B;如果否,则进入步骤S74D,例如,当存取控制列表指示使用者拥有将该物件删除要求应用于该物件的权限(例如删除该物件的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查通过,又例如,当存取控制列表指示使用者不拥有将该物件删除要求应用于该物件的权限(例如删除该物件的权限)时,基于索引物件的简易存储服务迁移管理模块53可判断该存取控制列表检查不通过。
在步骤S74B中,基于索引物件的简易存储服务迁移管理模块53可检查该物件(例如该物件删除要求的该目标物件)是否存在,如果是,进入步骤S74C;如果否,则进入步骤S74D。
在步骤S74C中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以删除该物件(例如该目标物件)。
在步骤S74D中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以阻止删除该物件(例如该目标物件)。
在步骤S75中,基于索引物件的简易存储服务迁移管理模块53可控制存储服务器10以将对应于该物件删除要求的该错误回应代理(例如转发)至使用者。
为了更好地理解,该方法可利用图14所示的工作流程来说明,但是本发明不限于此,根据某些实施例,图14所示的工作流程中的一个或多个步骤可被添加、删除、或更改,例如,该工作流程的至少一部分(例如一部分或全部)可被执行多次,且尤指包含有检查操作的任一个步骤可被执行多次,以分别产生多个检查结果,以分别触发一些后续步骤的执行。此外,步骤S74A以及S74B的组合可用来检查该第一条件以及该第二条件是否都被满足,分别被步骤S74A以及S74B检查的条件可被交换,例如,基于索引物件的简易存储服务迁移管理模块53可检查在步骤S74A中的该第二条件是否被满足,且检查在步骤S74B中的该第一条件是否被满足,如果该第一条件以及该第二条件都被满足(例如该存取控制列表检查通过以及该物件存在),进入步骤S74C;否则,进入步骤S74D。
表一
表一绘示了在索引阶段(例如INDEX阶段)以及数据阶段(例如DATA阶段)中存储服务器10的可靠自动化分散式物件存储网关动作的简单行为的一些范例,其中这些要求,诸如GET物件、GET物件存取控制列表、HEAD物件、PUT物件存取控制列表、DELETE物件、列出物件、以及上传物件(在表一的左半部中列出),分别代表一个或多个物件获取要求、一个或多个物件获取存取控制列表要求、一个或多个物件头要求、一个或多个物件放置存取控制列表要求、一个或多个物件删除要求、一个或多个物件列出要求、以及一个或多个物件数据写入相关要求(例如一个或多个物件放置要求、一个或多个创建多成分上传要求、以及一个或多个完成多成分上传要求)。在基于索引物件的简易存储服务迁移管理模块53的控制下,存储服务器10可正确地并且有效地操作,为了更好地理解,在上述实施例中描述的一些操作可被简单总结于表一的“索引阶段”以及“数据阶段”的栏位中。
举例来说,在索引阶段中,当任一个其它要求代表物件获取要求时,如果该目标物件不存在或者有着最后修改时间(例如来源修改时间),则存储服务器10可将此要求代理至来源端;当任一个其它要求代表物件获取存取控制列表要求以及物件头要求的任一个时,如果该目标物件不存在,则存储服务器10可将此要求代理至来源端;当任一个其它要求代表物件放置存取控制列表要求时,存储服务器10可将此要求代理至来源端,以其将此要求所携带的物件存取控制列表写入至本地位置(例如目的地,诸如存储服务器10);当任一个其它要求代表物件删除要求时,存储服务器10可将此要求代理至来源端,并且如果目标物件存在,则删除本地物件(例如该目标物件);当任一个其它要求代表物件列出要求时,存储服务器10可将此要求代理至来源端;以及当任一个其它要求代表物件数据写入相关要求(例如物件放置要求、创建多部分上传要求、或者完成多部分上传要求)时,存储服务器10可将此要求代理至来源端,并且将此要求所携带的物件数据写入至本地位置(例如目的地,诸如存储服务器10)。在数据阶段中,当任一个其它要求代表物件获取要求时,如果该目标物件有着最后修改时间(例如来源修改时间),则存储服务器10可代理此要求;以及当任一个其它要求代表在所有的这些要求中其余要求的任一个时,存储服务器10可允许此要求的相关处理,无需将该要求代理至来源端。
因为索引阶段仅需花费很短的时间,并且因为基于索引物件的简易存储服务迁移管理模块53可以于使用者迁移的期间借助该方法的各种的控制方案来适当地控制存储服务器10,存储服务器10可以简单地针对私有云来进行简易存储服务无缝迁移(例如,从任一个公有/私有云至一私有云的简易存储服务无缝迁移),以允许使用者于数据迁移期间正常地且顺畅地存取数据,在基于索引物件的简易存储服务迁移管理模块53的控制下,存储服务器10可以正确地迁移使用者数据,同时适当地处理任一个其它要求(如果存在),因此不会产生任何错误数据(例如由于相关技术的不正确迁移管理而导致的错误数据,通常是在使用者于迁移期间更改(例如写入、覆写、删除等等)某些东西的情况下被发现),借此使使用者的迁移变得无缝,为简洁起见,本实施例的类似内容在此不再重复详细描述。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (20)

1.一种利用索引物件来进行简易存储服务无缝迁移的方法,该方法是应用于一存储服务器,该方法包含有:
因应自一远端简易存储服务相容服务器迁移该存储服务器的一使用者的一使用者数据至该存储服务器的一要求,于该使用者数据的一迁移的多个阶段中的一索引阶段中,利用在该存储服务器中的一主装置上运行的多个程序模块中的一基于索引物件的简易存储服务迁移管理模块来创建并存储多个索引物件至该存储服务器的一存储装置层,以作为在该存储服务器中的该使用者数据的多个常态物件的各自的代表,并且迁移该多个常态物件的各自的存取控制列表至该存储服务器以作为该多个索引物件的各自的存取控制列表,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率,其中该存储服务器包含有该主装置以及该存储装置层,该存储装置层包含有耦接于该主装置的至少一存储装置,该主装置是用来控制该存储服务器的操作,且该至少一存储装置是用来为该存储服务器存储信息;以及
于该多个阶段中的该索引阶段之后的一数据阶段中,利用该基于索引物件的简易存储服务迁移管理模块来触发一个或多个迁移代理程序,以自该远端简易存储服务相容服务器迁移该多个常态物件中的一组常态物件的各自的物件数据至该存储服务器的该存储装置层,以作为在该多个索引物件中的一组索引物件的各自的替换,以完成该使用者数据的该迁移;
其中在该基于索引物件的简易存储服务迁移管理模块的控制下,该存储服务器是用来根据至少一工作流程来操作以处理任一其它要求。
2.如权利要求1所述的方法,另包含有:
因应自该远端简易存储服务相容服务器迁移该使用者数据至该存储服务器的该要求,于该多个阶段中的该索引阶段之前的一设置阶段中,利用该基于索引物件的简易存储服务迁移管理模块来进行该使用者数据的该迁移的预处理。
3.如权利要求2所述的方法,其特征在于,该预处理包含将用以存取该使用者数据的至少一端点由该远端简易存储服务相容服务器的至少一集群切换至该存储服务器的至少一集群。
4.如权利要求1所述的方法,其特征在于,该多个常态物件的该各自的存取控制列表被迁移至该存储服务器以作为该多个索引物件的该各自的存取控制列表,该多个索引物件为该多个常态物件,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率。
5.如权利要求1所述的方法,其特征在于,在用来处理任一其它要求的该至少一工作流程中,于该使用者数据的该迁移的期间用来处理一个或多个物件数据写入相关要求的一工作流程包含有:
自该使用者接收在该一个或多个物件数据写入相关要求的一物件数据写入相关要求;
因应该物件数据写入相关要求,检查在该存储装置层中的至少一贮体中对应于该物件数据写入相关要求的一贮体在该索引阶段中是否正在被处理,其中该至少一贮体代表为物件的至少一容器;
因应该贮体在该索引阶段中正在被处理,控制该存储服务器以将该物件数据写入相关要求代理至该远端简易存储服务相容服务器;
检查该物件数据写入相关要求是否成功而没有任一错误,以产生一检查结果,其中对应于该物件数据写入相关要求的一回应是自该远端简易存储服务相容服务器被接收,并且是被利用来决定该检查结果;
因应该检查结果表示该物件数据写入相关要求成功而没有任一错误,检查该物件数据写入相关要求的一目标物件是否存在;以及
因应该目标物件的存在,检查该目标物件的一存取控制列表是否被迁移,以根据该物件数据写入相关要求来选择性地进行至少一常态动作,而不需要将该物件数据写入相关要求代理至该远端简易存储服务相容服务器。
6.如权利要求5所述的方法,其特征在于,该至少一常态动作包含有:
控制该存储服务器以根据一相关联的存取控制列表检查是否通过来选择性地将该物件数据写入相关要求所携带的物件数据写入以作为该目标物件的一物件数据,其中如果该相关联的存取控制列表检查通过,该存储服务器将该物件数据写入相关要求所携带的该物件数据写入以作为该目标物件的该物件数据,否则,该存储服务器阻止将该物件数据写入相关要求所携带的该物件数据写入以作为该目标物件的该物件数据。
7.如权利要求5所述的方法,其特征在于,控制该存储服务器以将该物件数据写入相关要求代理至该远端简易存储服务相容服务器另包含有:
控制该存储服务器以将该物件数据写入相关要求代理至该远端简易存储服务相容服务器,以使该远端简易存储服务相容服务器检查该目标物件的一存取控制列表,以产生对应于该物件数据写入相关要求的该回应。
8.如权利要求5所述的方法,其特征在于,该物件数据写入相关要求代表一放置物件要求、一创建多成分上传要求以及一完成多成分上传要求的任一。
9.如权利要求5所述的方法,其特征在于,于该使用者数据的该迁移的期间用来处理该一个或多个物件数据写入相关要求的该工作流程的至少一部分被执行多次;包含有至少一检查操作的至少一步骤被执行多次以分别产生多个检查结果,以分别触发后续步骤的执行;以及于该使用者数据的该迁移的期间用来处理该一个或多个物件数据写入相关要求的该工作流程另包含有:
因应另一检查结果表示该物件数据写入相关要求并未成功而没有任一错误,控制该存储服务器以将对应于该物件数据写入相关要求的一错误回应代理至该使用者。
10.如权利要求1所述的方法,其特征在于,于该使用者数据的该迁移的期间用来处理该一个或多个物件数据写入相关要求的该工作流程的至少一部分被执行多次;以及包含有至少一检查操作的至少一步骤被执行多次以分别产生多个检查结果,以分别触发后续步骤的执行。
11.如权利要求1所述的方法,其特征在于,于该使用者数据的该迁移的期间用来处理一个或多个放置物件存取控制列表要求的一工作流程包含有:
自该使用者接收在该一个或多个放置物件存取控制列表要求中的一放置物件存取控制列表要求;
因应该放置物件存取控制列表要求,检查在存储装置层中的至少一贮体中对应于该放置物件存取控制列表要求的一贮体在该索引阶段中是否正在被处理,其中该至少一贮体代表为物件的至少一容器;
因应该贮体在该索引阶段中正在被处理,控制该存储服务器以将该放置物件存取控制列表要求代理至该远端简易存储服务相容服务器;
检查该放置物件存取控制列表要求是否成功而没有任一错误,以产生一检查结果,其中对应于该放置物件存取控制列表要求的一回应是自该远端简易存储服务相容服务器被接收,且是被利用来决定该检查结果;以及
因应该检查结果表示该放置物件存取控制列表要求成功而没有任一错误,控制该存储服务器以根据该放置物件存取控制列表要求来进行至少一常态动作,而不需要将该放置物件存取控制列表要求代理至该远端简易存储服务相容服务器。
12.如权利要求11所述的方法,其特征在于,该至少一常态动作包含有:
控制该存储服务器以根据一相关联的存取控制列表检查是否通过来选择性地将该放置物件存取控制列表要求的一目标物件的一旧的存取控制列表更新为该放置物件存取控制列表要求所携带的一新的存取控制列表,其中如果该相关联的存取控制列表检查通过,该存储服务器将该目标物件的该旧的存取控制列表更新为该放置物件存取控制列表要求所携带的该新的存取控制列表,否则,该存储服务器阻止将该目标物件的该旧的存取控制列表更新为该放置物件存取控制列表要求所携带的该新的存取控制列表。
13.如权利要求1所述的方法,其特征在于,于该使用者数据的该迁移的期间用来处理一个或多个删除物件要求的一工作流程包含有:
自该使用者接收在该一个或多个删除物件要求中的一删除物件要求;
因应该删除物件要求,检查在存储装置层中的至少一贮体中对应于该删除物件要求的一贮体在该索引阶段中是否正在被处理,其中该至少一贮体代表为物件的至少一容器;
因应该贮体在该索引阶段中正在被处理,控制该存储服务器以将该删除物件要求代理至该远端简易存储服务相容服务器;
检查该删除物件要求是否成功而没有任一错误,以产生一检查结果,其中对应于该删除物件要求的一回应是自该远端简易存储服务相容服务器被接收,且是被利用来决定该检查结果;以及
因应该检查结果表示该删除物件要求成功而没有任一错误,控制该存储服务器以根据该删除物件要求来进行至少一常态动作,而不需要将该删除物件要求代理至该远端简易存储服务相容服务器。
14.如权利要求13所述的方法,其特征在于,该至少一常态动作包含有:
控制该存储服务器以至少根据一相关联的存取控制列表检查是否通过来选择性地删除该删除物件要求的一目标物件。
15.如权利要求14所述的方法,其特征在于,控制该存储服务器以至少根据该相关联的存取控制列表检查是否通过来选择性地删除该目标物件另包含有:
控制该存储服务器以根据一第一条件以及一第二条件是否两者皆被满足来选择性地删除该目标物件,其中该第一条件代表该相关联的存取控制列表检查通过,以及该第二条件代表该目标物件存在,其中如果该第一条件以及该第二条件两者皆被满足,该存储服务器删除该目标物件,否则,该存储服务器阻止删除该目标物件。
16.如权利要求1所述的方法,其特征在于,该存储服务器被实作为一私有云,以及该远端简易存储服务相容服务器被实作为一公有云或另一私有云。
17.如权利要求1所述的方法,其特征在于,该任一其它要求是要求对该使用者数据进行至少一更改。
18.一种主装置,包含有:
一处理电路,用来控制该主装置以在一存储服务器中进行基于索引物件的简易存储服务迁移管理,其中该存储服务器包含有该主装置以及一存储装置层,该存储装置层包含有耦接至该主装置的至少一存储装置,该主装置是用来控制该存储服务器的操作,且该至少一存储装置是用来为该存储服务器存储信息,其中:
因应自一远端简易存储服务相容服务器迁移该存储服务器的一使用者的一使用者数据至该存储服务器的一要求,于该使用者数据的一迁移的多个阶段中的一索引阶段中,运行在该处理电路上的多个程序模块中的一基于索引物件的简易存储服务迁移管理模块创建并存储多个索引物件至该存储装置层,以作为在该存储服务器中的该使用者数据的多个常态物件的各自的代表,并且将该多个常态物件的各自的存取控制列表迁移至该存储服务器,以作为该多个索引物件的各自的存取控制列表,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率;以及
于该多个阶段中的该索引阶段之后的一数据阶段中,该基于索引物件的简易存储服务迁移管理模块触发一个或多个迁移代理程序,以自该远端简易存储服务相容服务器迁移该多个常态物件中的一组常态物件的各自的物件数据至该存储服务器的该存储装置层,以作为在该多个索引物件中的一组索引物件的各自的替换,以完成该使用者数据的该迁移;
其中在该基于索引物件的简易存储服务迁移管理模块的控制下,该存储服务器是用来根据至少一工作流程来操作以处理任一其它要求。
19.如权利要求18所述的主装置,其另包含有:
一机壳,用来安装该主装置的多个组件以及该至少一存储装置,其中该主装置的该多个组件包含有该处理电路。
20.一种存储服务器,包含有:
一主装置,用来控制该存储服务器的操作,该主装置包含有:
一处理电路,用来控制该主装置以进行在该存储服务器中的基于索引物件的简易存储服务迁移管理;以及
一存储装置层,包含有:
至少一存储装置,耦接至该主装置,用来为该存储服务器存储信息;
其中:
因应自一远端简易存储服务相容服务器迁移该存储服务器的一使用者的一使用者数据至该存储服务器的一要求,于该使用者数据的一迁移的多个阶段中的一索引阶段中,运行在该处理电路上的多个程序模块中的一基于索引物件的简易存储服务迁移管理模块创建并存储多个索引物件至该存储装置层,以作为在该存储服务器中的该使用者数据的多个常态物件的各自的代表,并且将该多个常态物件的各自的存取控制列表迁移至该存储服务器,以作为该多个索引物件的各自的存取控制列表,以最小化该多个常态物件中任一常态物件的任一改变影响该使用者数据的该迁移的正确性的几率;以及
于该多个阶段中的该索引阶段之后的一数据阶段中,该基于索引物件的简易存储服务迁移管理模块触发一个或多个迁移代理程序,以自该远端简易存储服务相容服务器迁移该多个常态物件中的一组常态物件的各自的物件数据至该存储服务器的该存储装置层,以作为在该多个索引物件中的一组索引物件的各自的替换,以完成该使用者数据的该迁移;
其中在该基于索引物件的简易存储服务迁移管理模块的控制下,该存储服务器是用来根据至少一工作流程来操作以处理任一其它要求。
CN202110339246.1A 2020-04-29 2021-03-30 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 Active CN113568566B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063017001P 2020-04-29 2020-04-29
US63/017,001 2020-04-29
US17/167,096 US11297137B2 (en) 2020-04-29 2021-02-04 Method and apparatus for performing simple storage service seamless migration using index objects
US17/167,096 2021-02-04

Publications (2)

Publication Number Publication Date
CN113568566A CN113568566A (zh) 2021-10-29
CN113568566B true CN113568566B (zh) 2023-08-29

Family

ID=78161210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110339246.1A Active CN113568566B (zh) 2020-04-29 2021-03-30 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器

Country Status (3)

Country Link
US (2) US11297137B2 (zh)
CN (1) CN113568566B (zh)
TW (1) TWI782487B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405409B2 (en) * 2019-04-29 2022-08-02 Hewlett Packard Enterprise Development Lp Threat-aware copy data management
US11297137B2 (en) 2020-04-29 2022-04-05 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects
US11516287B2 (en) * 2020-04-29 2022-11-29 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects
US11928228B2 (en) * 2020-09-25 2024-03-12 EMC IP Holding Company LLC Facilitating an object protocol based access of data within a multiprotocol environment
US20230022226A1 (en) * 2021-07-22 2023-01-26 Vmware, Inc. Automated storage access control for clusters
CN115145497B (zh) * 2022-09-06 2022-11-29 深圳市杉岩数据技术有限公司 一种基于分布式存储的卷数据在线迁移方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200728992A (en) * 2006-01-20 2007-08-01 Hon Hai Prec Ind Co Ltd System and method for synchronizing file indexes in remote terminals
CN110377580A (zh) * 2019-07-25 2019-10-25 中国工商银行股份有限公司 一种数据迁移方法、装置及设备
CN110806839A (zh) * 2018-08-06 2020-02-18 慧荣科技股份有限公司 存储控制的方法、记忆装置、存储器控制器及存储服务器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514249B (zh) * 2009-01-23 2015-12-21 Infortrend Technology Inc 遠端非同步資料卷複製的方法及執行該方法的儲存系統
WO2013123097A1 (en) * 2012-02-13 2013-08-22 SkyKick, Inc. Migration project automation, e.g., automated selling, planning, migration and configuration of email systems
US9893964B2 (en) * 2014-04-28 2018-02-13 Nicira, Inc. System for aggregating statistics relating to a logical forwarding element
US20170315875A1 (en) * 2016-04-29 2017-11-02 Netapp, Inc. Namespace policy based deduplication indexes
US20190129802A1 (en) * 2017-11-02 2019-05-02 EMC IP Holding Company LLC Backup within a file system using a persistent cache layer to tier data to cloud storage
CN110659255A (zh) * 2018-06-28 2020-01-07 武汉斗鱼网络科技有限公司 一种数据迁移方法、装置、系统以及存储介质
CN110765156A (zh) 2018-07-09 2020-02-07 慧荣科技股份有限公司 链表搜索装置及方法
CN111522499B (zh) 2019-02-01 2023-08-08 香港商希瑞科技股份有限公司 运维数据读取装置及其读取方法
US11297137B2 (en) 2020-04-29 2022-04-05 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects
US11516287B2 (en) 2020-04-29 2022-11-29 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200728992A (en) * 2006-01-20 2007-08-01 Hon Hai Prec Ind Co Ltd System and method for synchronizing file indexes in remote terminals
CN110806839A (zh) * 2018-08-06 2020-02-18 慧荣科技股份有限公司 存储控制的方法、记忆装置、存储器控制器及存储服务器
CN110377580A (zh) * 2019-07-25 2019-10-25 中国工商银行股份有限公司 一种数据迁移方法、装置及设备

Also Published As

Publication number Publication date
US11297137B2 (en) 2022-04-05
CN113568566A (zh) 2021-10-29
US20210344752A1 (en) 2021-11-04
TWI782487B (zh) 2022-11-01
TW202141295A (zh) 2021-11-01
US11509716B2 (en) 2022-11-22
US20220182445A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
CN113568566B (zh) 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
KR101827239B1 (ko) 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피
KR101833114B1 (ko) 분산 데이터베이스 시스템들을 위한 고속 장애 복구
JP5007350B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
EP2879040B1 (en) Data storage method, data storage apparatus, and storage device
JP4825433B2 (ja) 比較的限られた記憶スペースを備えたコンピューティング装置およびそのオペレーティングシステム/ファイルシステム
US20070061540A1 (en) Data storage system using segmentable virtual volumes
KR20100096075A (ko) 로컬 플래시 메모리 및 원격 서버 하이브리드 연속 데이터 보호
US11516287B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
CN113568567B (zh) 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
US11645333B1 (en) Garbage collection integrated with physical file verification
US11928497B2 (en) Implementing erasure coding with persistent memory
US11556503B2 (en) Distributed management of file modification-time field
US20170308542A1 (en) File system configuration data storage

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant