WO2010040255A1 - 对象存储***的管理方法 - Google Patents

对象存储***的管理方法 Download PDF

Info

Publication number
WO2010040255A1
WO2010040255A1 PCT/CN2008/072606 CN2008072606W WO2010040255A1 WO 2010040255 A1 WO2010040255 A1 WO 2010040255A1 CN 2008072606 W CN2008072606 W CN 2008072606W WO 2010040255 A1 WO2010040255 A1 WO 2010040255A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
user
command
function object
partition
Prior art date
Application number
PCT/CN2008/072606
Other languages
English (en)
French (fr)
Inventor
冯丹
庞丽萍
谢雨来
王芳
牛中盈
周可
王娟
岳银亮
涂旭东
何水兵
陆承涛
Original Assignee
华中科技大学
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 华中科技大学 filed Critical 华中科技大学
Priority to PCT/CN2008/072606 priority Critical patent/WO2010040255A1/zh
Priority to CN200880014000XA priority patent/CN101796514B/zh
Priority to US13/063,934 priority patent/US8645460B2/en
Publication of WO2010040255A1 publication Critical patent/WO2010040255A1/zh

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/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/062Securing storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Definitions

  • the present invention relates to the field of computer information storage, and in particular to access and management based on object storage devices.
  • the technical problem to be solved by the present invention is to provide a method for managing an object storage system, which can support intelligent processing in a storage device, and provide an effective object storage access interface to support function decentralization and flexibility. Scheduling execution.
  • the present invention provides a method for managing an object storage system, where the object storage system includes a client and a storage node, and an object-based storage device.
  • An OBSD Object-Based Storage Device
  • the OBSD stores a root object, a partition object, a collection object, and a user object
  • the OBSD further stores a functional object
  • the function object includes a user function object and a system function object; when the OBSD responds to the client's request for the user object, the OBSD calls the user function object to execute a client request command; the system function object reads the root object property page of the OBSD in real time; And system real-time status information of the object storage device, and determining whether the system is in a specific state according to the read status information, and if yes, executing a specific system management function set in the system function object.
  • one of the functional objects is contained in only one of the partitioned objects, and one of the partitioned objects contains zero or more of the functional objects.
  • the user function object may be associated with zero or more user objects, and the association method is: setting a function object in a user object information property page
  • the functional object ID (identifier) field in which the functional object ID is stored in the functional object ID field, and the functional object ID points to a specific functional object.
  • scheduling execution of the read/write command of the object storage system includes the following steps:
  • the command description block CDB of the read/write user object command sets the function object flag bit, and the value of the function object flag bit is "0" or "1" ; 5-2.
  • the client sends a read/write user object command to the OBSD.
  • OBSD reads the function object flag bit value in the CDB of the command description block, and judges the function object flag bit value; if the function object flag bit value is "0", no function object is called; if the function object flag bit When the value is "1", the function object ID in the user object information attribute page of the user object indicated by the user object ID is read according to the user object ID in the command description block CDB, and then the function object pointed to by the function object ID is called. Perform a read/write operation.
  • the method further includes creating a user/system function object command, and the scheduling of the user/system function object command includes the following steps:
  • the command description block in the create user/system function object command CDB sets the function object length field, the requested function object ID field, and the function object length field specifies the number of bytes of the function object content to be uploaded;
  • the client issues a create user/system function object command to the OBSD, and simultaneously uploads the user/system function object content; the command data or the parameter data segment in which the user/system function object content to be created is encapsulated in the data output buffer. ;
  • the OBSD reads the command description block CDB sent by the client. If the command describes that the requested function object ID field value in the block CDB is "0", the OBSD will arbitrarily assign a function object ID to the uploaded function object; If the function object ID field value of the request in the command description block CDB is not "0", the OBSD attempts to assign the function object ID to the user/system to be created on the basis that at least the following functional object ID assignment conditions are satisfied.
  • the functional object, functional object ID assignment condition is: Within the same partition, the following conditions are not allowed: a) At a certain moment, the same functional object ID points to multiple functional objects; or b) functional object ID and an existing collection object The ID or user object ID is the same; if the requested function object ID field value is not "0" and the OBSD cannot assign the requested function object ID to the function object to be created, the function object will not be created and an error will be returned.
  • the client issues a list command to the OBSD.
  • OBSD read list command description block CDB if the value of the function object ID field in the command description block CDB is "0", then return all functions under the partition object pointed to by the partition object ID in the CDB of the command description block.
  • Object ID if the value of the function object ID field in the command description block CDB is not "0", return the user object associated with the function object ID under the partition object pointed to by the partition object ID in the command description block CDB.
  • ID If the functional object indicated by the functional object ID field does not exist, the command should be terminated in an abnormal state.
  • the method further includes deleting a user/system function object command, and the scheduling of the delete user/system function object command includes the following steps:
  • the command description block CDB of the delete user/system function object command sets the forced delete function object flag bit, the function object ID field, the partition object ID field, and the content of the function object ID field specifies the function object to be deleted, the partition object.
  • the content of the ID field specifies the partition object to which the function object to be deleted belongs;
  • the client sends a delete user/system function object command to the OBSD;
  • the OBSD read command describes the block CDB. If the value of the partition object ID field is “0”, the function object indicated by the function object ID is deleted in the partition object specified by the partition object ID;
  • the function object has a user object association and the value of the forced delete function object flag is "1", then all users associated with the function object are set.
  • the user object information property page of the object is related to the user object
  • the associated function object ID attribute value is "0" to indicate that the user objects are no longer associated with the function object; and then the function object indicated by the function object ID is deleted in the partition object indicated by the partition object ID;
  • the method for managing an object storage system further comprising: a first system function object, a second system function object, ..., an nth system function object, wherein the first The system function object reads the root object property page of the object storage device and the system real-time state information of the object storage device in real time, and determines whether the system state is in a specific state according to the read state information, and if so, schedules the second, ..., nth System function objects in the system perform specific system management functions.
  • the object storage system management method provided by the invention expands the storage object (OSD object) in the OBSD on the T10 OSD standard, newly defines the system function object and the user function object, and expands the access of the object storage device.
  • the command set which supports intelligent processing in storage devices, provides an effective object storage access interface to support functional decentralization and flexible scheduling execution.
  • the user function object in the present invention responds to the client request, performs the operation requested by the client, and moves the data processing task undertaken by the existing client to the object storage device to save network storage bandwidth and improve the security of the stored data. purpose.
  • the system function object performs system management functions, and the underlying disk management of the file system and the database system is completed by the object storage device, and the functions of automatic data backup, hotspot migration, load balancing, and the like can be easily implemented in the storage system.
  • User functional objects and system functional objects can be customized by the user.
  • the invention changes the data management and processing mode of the traditional storage system and improves the performance of the storage system.
  • Figure 1 Schematic diagram of the object storage system architecture.
  • Figure 2 Schematic diagram of object distribution on the object storage device.
  • Figure 3 Schematic diagram of the client's read command in the object storage system.
  • Figure 4 Flow diagram of the client issuing a write command in the object storage system.
  • FIG. Schematic diagram of the scheduling of the system function object to implement the self-management function. detailed description
  • the present invention is based on, but not limited to, the T10 OSD standard.
  • the root object, the partition object, the collection object, and the user object are defined in the T10 OSD standard, and there is no reference to how to operate the object.
  • the functional object is a piece of executable code, and the code language can be c, c++, JAVA, etc., which is identified by the functional object ID.
  • Functional objects include user functional objects and system functional objects.
  • the client sends a read/write command to the device
  • the command contains the function object flag parameter
  • the corresponding user function object can be called to execute.
  • the user function object is called during the read operation, and the data can be processed before being returned to the application client.
  • the file directory query operation is decentralized to the device side, so that the data is processed nearby, avoiding large network delays and making full use of the processing power of the device.
  • the user function object execution is called during the write operation, and the data can be better saved. For example, compressing storage, or encrypting data, ensures that the data on the disk is not known to others even if the disk that holds the data is lost.
  • the system function object is used for management purposes. After running, the OSD can be managed autonomously, such as automatic data backup, automatic load balancing, and mining rules from attributes.
  • FIG. 1 is a schematic structural view of a storage system of the present invention.
  • the figure includes a series of application clients Client l ... Clientn, a series of storage node devices 0BSD1, OBSD2, ..., OBSDn, a metadata server MDS (Metadata Server) cluster and a high-speed interconnection network, application customers There is a metadata channel connection between the end and the MDS cluster, wherein the metadata server cluster can be virtualized on the client or the storage device by using the software module.
  • the client first sends an operation request command to the object to the metadata server, and the metadata server is negative. Responsibilities: 1. Mapping of file ID to object ID; 2. Device ID of the requested file; 3. Assigning a capability certificate to the requested operation command.
  • the client After the metadata server feeds back the information to the client, the client directly uses the obtained object ID to directly initiate read and write access to the storage device OBSD. If the access needs to execute the corresponding functional object, the functional object flag will be included in the access parameter
  • Each OSD (Object-Based Storage Device Commands) logical unit on the object storage device has a root object.
  • the root object is the starting point for the positioning of an OSD logical unit structure, and the zero partition object represents the root object.
  • the attributes of the root object contain the global characteristics of the system logic unit, such as the total capacity of the OSD logical unit and the number of partitions the system contains.
  • the root object includes a list of all partition object identifiers and a list of all system function object identifiers.
  • the system function object includes a first system function object, a second system function object, ..., an nth system function object, wherein the first system function object reads the root object attribute page in the object storage device and the system real-time status of the object storage device in real time.
  • the information determines the system status based on the read status information, and schedules the system function objects in the second, ..., nth to perform system management functions.
  • User function objects located under non-zero partition objects can be associated with zero or more user objects.
  • the user function object under the non-zero partition object can be associated with a user object or with a user object. Disassociate.
  • the attribute number of the function object ID attribute associated with the user object indicated by the user object ID is 3h, occupying 8
  • a functional object belongs to only one partition object. Within a single partitioned object, the value of the functional object ID assigned to the functional object will be different from the value of any one of the collection object ID and the user object ID.
  • FIG. 3 is a schematic flowchart of a client issuing a command in an object storage system.
  • Figure 4 is a schematic flow chart of the client issuing a write command in the object storage system.
  • Table 2 shows the CDB command format for the READ/WRITE command.
  • the fifth bit in the 10th byte in Table 2, FUN indicates whether the corresponding functional object execution is to be called when the user object is read/written.
  • the storage device checks the value of the FUN bit (ie, the functional object flag) in the command description block CDB defined in the T10 OSD standard. If the bit value is "1", it means that the user function object associated with the user object to be read/written is called.
  • the ID of these user function objects can be queried by the user object information property page indicated by the user object ID, and the ID of the user object will be used as a parameter for the function object. If the value of the function object flag in the CDB is "0", it means that the corresponding function object execution is not called.
  • step 101 is performed downward, and the client sends a user object command to the OBSD storage node.
  • the OBSD determination command describes whether the FUN bit of the function object flag in the block CDB is "". 1"? If yes, step 103 is executed to read out the user function object ID associated with the user object in the user object information attribute page, and step 104, reading the user function object into the memory according to the ID of the user function object, step 105. Execute the user function object with the user object ID as a parameter, and step 106, return the result of execution or reading to the client, and then end. If the result of the OBSD judgment command description block CDB is "1", the process proceeds to step 107, and no function object is executed, and the user object is read. Data.
  • the present invention also defines some functional pairs.
  • the CREATE AND WRITE FUNCTION command is used to upload the executable code to the device side and create a functional object on the device.
  • the LIST FUNCTION command lists the IDs of all functional objects in a partition object or the IDs of all user objects associated with the specified functional object.
  • Create user/system function object command CREATE AND WRITE FUNCTION Scheduling includes the following specific steps:
  • the FUNCTION command description block CDB sets the function object length field, the requested function object ID field, the function object length field specifies the number of bytes of the function object content to be uploaded, and the content of the requested function object ID field specifies that the content is to be created.
  • the functional object ID of the functional object is as shown in Table 4 below: Table 4 CDB Command Format Bytes of the CREATE AND WRITE FUNCTION Command
  • the client sends a command to create a user/system function object to the OBSD, and simultaneously uploads the content of the user/system function object; the command data or the parameter data segment in which the content of the user/system function object to be created is encapsulated in the data output buffer ;
  • the OBSD reads the command description block CDB sent by the client. If the command describes that the requested function object ID field value in the block CDB is "0", the OBSD will arbitrarily assign a function object ID to the uploaded function object; If the function description ID field value of the request in the block description CDB is not "0", the OBSD attempts to assign the requested function object ID to the user to be created on the basis that at least the following functional object ID assignment conditions are satisfied.
  • function object ID assignment condition is: Within the same partition, the following conditions are not allowed: a) At a certain moment, the same function object ID points to multiple function objects; or b) The function object ID and an existing one The collection object ID or the user object ID is the same; if the requested function object ID field value is not "0" and the OBSD cannot assign the requested function object ID to the function object to be created, the function object will not be created, The command terminates with the CHECK CONDITION state and sets the detection code to ILLEGAL
  • the additional detection code is set to INVALID FIELD IN CDB.
  • the scheduling of the list command LIST FUNCTION includes the following steps:
  • the client issues a list command to the OBSD
  • OBSD read list command description block CDB if the value of the function object ID field in the command description block CDB is "0", then return all functions under the partition object pointed to by the partition object ID in the CDB of the command description block Object ID; if the value of the function object ID field in the command description block CDB is not "0", return the user object associated with the function object ID under the partition object pointed to by the partition object ID in the command description block CDB. ID; If the function object indicated by the function object ID field does not exist, the command should be terminated in the CHECK CONDITION state, and the detection code is set to ILLEGAL REQUEST, and the additional detection code is set to INVALID FIELD IN CDB.
  • the scheduling of deleting the user/system function object command includes the following steps: Cl, in the command description block CDB of the delete user/system function object command, the Force Function Removal (FFR) flag, the function object ID field, the partition object ID field, and the function object ID field specify the function to be deleted.
  • FFR Force Function Removal
  • Object the content of the partition object ID field specifies the partition object to which the function object to be deleted belongs, as shown in Table 6 below.
  • the client sends a delete user/system function object command to the OBSD.
  • C-3 The OBSD read command describes the block CDB. If the value of the partition object ID field is “0”, the function object indicated by the function object ID is deleted in the partition object specified by the partition object ID;
  • a method of determining whether the function object ID is associated with the user object ID in addition to querying whether the user object information attribute page of the user object indicated by the user object ID exists
  • an association mapping table of the functional object ID and the user object ID may also be established, and the user object ID associated with the functional object ID is found by querying the association mapping table.
  • FIG. 5 is a schematic diagram of scheduling of a system function object implementing a self-management function.
  • the first system function object under the zero partition object runs in real time in the OBSD, and reads the root object attribute page in the object storage device OBSD and the system real-time status information of the object storage device, and judges according to the read status information.
  • System status when the system status meets the pre-set conditions of the system, the system function objects in the second, ..., nth are scheduled to perform system management functions.
  • Table 7 The specific functions of each system function object are shown in Table 7 below: System function object list function
  • the first system function object stores the system real-time status information of the device, and schedules the second system function object.
  • the n system function object runs.
  • the request for point data is transferred to the corresponding OBSD with lower access frequency.
  • the nth system function object retains the object storage device OBSD in the root object property page to record the use of the entire system, including the root directory property page, the root information property page, the root quota property page, the root error recovery property page, etc., the root information property page content As shown in Table 8 below, the system information such as the total capacity and used capacity of the object storage system is recorded in Table 8.
  • the real-time status information of the system records the real-time running status of the system, such as the usage of the CPU, the usage of the memory, etc. These real-time status information can be obtained directly from the system. For example, if you are running a Linux system on a storage device, you can get system information from /proc and /sysfs.
  • the first system function object learns from the root object property page that the OBSD used capacity reaches 90% of the total OBSD capacity, and satisfies the system preset condition number 1, thereby scheduling the execution of the second system function object. Migrate the data on the OBSD to another OBSD.
  • the first system function object Reading the real-time status information of the system, the length of the command request queue of the OBSD is greater than 10, and the condition number 2 preset by the system is satisfied, thereby scheduling the execution of the third system function object, and copying the hotspot data on the OBSD to another access.
  • the request from the client for the hot data on the OBSD is transferred to the corresponding OBSD with lower access frequency.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

对象存储***的管理方法
技术领域
本发明涉及计算机信息存储领域, 具体涉及到基于对象存储设备的 访问和管理。
说 背景技术
随着电子技术的发展, 存储设备上已嵌入了越来越多的处理能力, 上层应用的部分功能可以迁往设备。 目前广泛流行的存储设备是 "哑设 备", 只能被动地响应用户的请求, 随着设备书功能越来越复杂, 传统的 存储设备管理方式已很难胜任。 人们迫切需要一种设备参与在内、 更简 单灵活的方式来管理。 另外, 由于硬磁盘本身机械运动的本质特征没有 明显改变, 在网络存储条件下网络延迟不能忽略, 特别是网络共享跨越 了广域网, 如何提高处理节点和存储节点间的数据传输速率成为当前提 高***整体性能的关键因素。
目前基于对象存储的接口, 仅支持简单的对象读写操作。 在很多情 况下, 如数据库查询等, 用户需要将数据从网络上的存储设备读取到本 地进行处理,而最终仅用到处理后的少量数据,这严重浪费了网络带宽。 按照数据就近处理的原则, 应该在存储设备中加入智能处理能力, 将数 据用操作过滤后再传输。
在 T10 OSD ( Object-Based Storage Device Commands ) 对象存储标 准中, 定义了根对象、 分区对象、 集合对象和用户对象。 但是, 现有定 义的这些对象不能支持存储设备中的智能处理。现行的存储***智能性 的研究已经提出了将现有技术架构中需要由客户端完成的计算功能下 放到存储设备的理论构想, 却缺乏可操作性的对象存储的访问接口来支 持功能的下放到存储设备以及该下放功能的调度执行。 发明内容
本发明所要解决的技术问题是针对现有技术的不足, 提供一种对象 存储***的管理方法, 它能支持存储设备中的智能处理, 同时提供有效 的对象存储访问接口来支持功能的下放与灵活的调度执行。
为解决上述技术问题, 本发明提供一种对象存储***的管理方法, 所述对象存储***包含客户端、 存储节点一一基于对象的存储设备
OBSD (Object-Based Storage device)、元数据服务器以及它们之间的互连 网络, OBSD内存储根对象、 分区对象、 集合对象、 用户对象, 其特征 在于, 所述 OBSD还存储功能对象, 所述功能对象包括用户功能对象和 ***功能对象; 当 OBSD响应客户端对用户对象的请求时, OBSD调用 所述用户功能对象执行客户端请求命令; 所述***功能对象实时读取 OBSD的根对象属性页以及对象存储设备的***实时状态信息, 并根据读 取获得的状态信息判断***是否处于特定状态, 如果是, 则执行***功能 对象中设置的特定***管理功能。
作为优化, 如权利要求 1所述的对象存储***的管理方法, 所述系 统功能对象位于且仅位于零分区对象中, 所述用户功能对象位于且仅位 于除零分区对象以外的其它分区对象中。
同样优化的, 一个所述功能对象都仅包含于一个所述分区对象中, 一个所述分区对象包含零个或者多个所述功能对象。
作为优选的技术方案, 所述用户功能对象可与零个或多个用户对象 相关联, 该关联方法为: 在用户对象信息属性页中设置功能对象
ID ( identifier , 标识符)字段, 该功能对象 ID字段中存储功能对象 ID, 该功能对象 ID指向某个特定的功能对象。
进一步地, 该对象存储***的读 /写命令的调度执行包括如下步骤:
5-1、 在读 /写用户对象命令的命令描述块 CDB设置功能对象标志 位, 该功能对象标志位的值为 "0" 或 " 1 " ; 5-2、 客户端向 OBSD发读 /写用户对象命令;
5- 3、 OBSD读取该命令描述块 CDB中的功能对象标志位值, 判断 功能对象标志位值; 如果功能对象标志位值为 "0" , 则不调用任何功 能对象; 如果功能对象标志位值为 " 1 " , 则根据命令描述块 CDB中的 用户对象 ID , 读出该用户对象 ID指示的用户对象的用户对象信息属性 页中的功能对象 ID , 然后调用功能对象 ID所指向的功能对象执行读 / 写操作。
又进一步地, 还包括创建用户 /***功能对象命令, 所述创建用户 / ***功能对象命令的调度包括如下步骤:
6- 1、在创建用户 /***功能对象命令的命令描述块 CDB设置功能对 象长度字段、 请求的功能对象 ID字段, 所述功能对象长度字段指定了 需上载的功能对象内容的字节数;
6-2、 客户端向 OBSD发出创建用户 /***功能对象命令, 并同时上 载用户 /***功能对象内容; 将要创建的用户 /***功能对象内容封装在 数据输出缓冲区中的命令数据或参数数据段;
6-3、 OBSD读取客户端发出的命令描述块 CDB , 如果该命令描述 块 CDB中的请求的功能对象 ID字段值为 "0" , OBSD将任意分配一 个功能对象 ID给上载的功能对象; 如果该命令描述块 CDB中的请求的 功能对象 ID字段值不为 "0" , 则在至少满足下列功能对象 ID分配条 件的基础上, OBSD试图将该功能对象 ID分配给要创建的用户 /***功 能对象, 功能对象 ID分配条件为: 同一个分区内, 不允许下列情况出 现: a)某一时刻, 同一个功能对象 ID指向多个功能对象; 或者 b)功能 对象 ID与一个存在的集合对象 ID或者用户对象 ID相同; 如果请求的 功能对象 ID字段值不为 "0" 并且 OBSD不能把被请求的功能对象 ID 分配给要创建的功能对象, 这个功能对象将不会被创建, 并返回报错信 以下步骤:
7-1、 在列表命令的命令描述块 CDB中设置分区对象 ID字段、 功 能对象 ID字段;
7-2、 客户端向 OBSD发出列表命令;
7- 3、 OBSD读列表命令描述块 CDB , 如果命令描述块 CDB中的功 能对象 ID字段的值为 "0" , 则返回该命令描述块 CDB中分区对象 ID 所指向的分区对象下所有的功能对象 ID; 如果该命令描述块 CDB中的 功能对象 ID字段的值不为 " 0" , 则返回该命令描述块 CDB中分区对 象 ID所指向的分区对象下的与功能对象 ID相关联的用户对象 ID ; 如 果该功能对象 ID字段指明的功能对象并不存在, 则该命令应以非正常 状态终止。
作为另一改进的技术方案, 还包括删除用户 /***功能对象命令, 所 述删除用户 /***功能对象命令的调度包括如下步骤:
8- 1、在删除用户 /***功能对象命令的命令描述块 CDB设置强制删 除功能对象标志位、 功能对象 ID字段、分区对象 ID字段, 功能对象 ID 字段的内容指定要删除的功能对象, 分区对象 ID字段的内容指定要删 除的功能对象所属的分区对象;
8-2、 客户端向 OBSD发删除用户 /***功能对象命令;
8-3、 OBSD读命令描述块 CDB ,如果分区对象 ID字段的值为" 0", 则在分区对象 ID指定的分区对象中删除该功能对象 ID所指示的功能对 象;
8-4、 如果分区对象 ID字段的值不为 "0" 、 该功能对象存在用户 对象关联且强制删除功能对象标志位的值为 "0" , 则该命令应以非正 常状态终止;
8-5、 如果分区对象 ID字段的值不为 "0" 、 该功能对象存在用户 对象关联且强制删除功能对象标志位的值为 " 1 " , 则设置与该功能对 象相关联的所有的用户对象的用户对象信息属性页中的与用户对象关 联的功能对象 ID属性值为 "0" , 以指示这些用户对象不再与该功能对 象相关联; 然后在该分区对象 ID指示的分区对象中删除该功能对象 ID 指示的功能对象;
8-6、 如果分区对象 ID字段的值不为 "0" 且该功能对象不与任何 用户对象关联, 则在分区对象 ID指示的分区对象中直接删除功能对象 ID所指示的功能对象。
9、更进一步优化的,如权利要求 1所述的对象存储***的管理方法, 所述***功能对象包括第一***功能对象、 第二***功能对象、 … 、 第 n ***功能对象, 其中第一***功能对象实时读取对象存储设备中根对象属 性页以及对象存储设备的***实时状态信息, 根据读取出的状态信息判断 ***状态是否处于特定状态, 如果是, 则调度第二、 …、 第 n中的***功 能对象执行特定的***管理功能。
本发明提供的对象存储***的管理方法, 它在 T10 OSD标准上对 OBSD中的存储对象 (OSD object) 进行了扩展, 新增定义了***功能 对象和用户功能对象, 扩充了对象存储设备的访问命令集, 它能支持存 储设备中的智能处理, 同时提供了有效的对象存储的访问接口来支持功 能的下放与灵活的调度执行。 本发明中的用户功能对象响应客户端请 求, 执行客户端请求的操作, 使现有客户端承担的数据处理任务移至对 象存储设备完成, 以达到节约网络存储带宽、 提高存储数据的安全性等 目的。 ***功能对象执行***管理功能, 使文件***和数据库***等的 底层磁盘管理由对象存储设备完成, 可容易地在存储***内实现自动的 数据备份、 热点迁移、 负载均衡等功能。 用户功能对象和***功能对象 均可由用户定制。 本发明改变传统存储***的数据管理和处理方式, 提 高了存储***性能。 附图说明
下面结合附图和具体实施方式对本发明的技术方案作进一步具体说 明。
图 1.对象存储***体系结构示意图。
图 2.对象存储设备上对象分布示意图。
图 3.对象存储***中客户端发读命令的流程示意图。
图 4.对象存储***中客户端发写命令的流程示意图。
图 5.***功能对象实现自管理功能的调度示意图。 具体实施方式
本发明基于但不限于 T10 OSD标准, 在 T10 OSD标准中定义了根 对象、 分区对象、 集合对象及用户对象, 没有涉及到如何对对象进行操 作。本发明中,功能对象是一段可执行代码,代码语言可为 c、 c++、 JAVA 等, 由功能对象 ID标识。 功能对象包括用户功能对象和***功能对象。
在客户向设备发读写命令的时候, 如果命令中含有功能对象标志参 数, 则可以调用相应的用户功能对象执行。 在读操作的时候调用用户功 能对象执行, 可以把数据进行处理后再返回给应用客户端。 例如文件目 录查询操作下放至设备端, 使数据就近处理, 避免大的网络延迟, 充分 利用设备的处理能力。 而在写操作的时候调用用户功能对象执行, 可以 对数据实施更好的保存。 例如压縮存储, 或者对数据进行加密, 即使保 存数据的磁盘丢失, 也能保证磁盘上数据不被他人所知。
而***功能对象用于管理目的, 运行后可以对 OSD进行自主管理, 如自动数据备份、 自动负载均衡、 从属性中挖掘规律等。
图 1为本发明的存储***结构示意图。 图中包括了一系列应用客户 端 Client l ...Clientn、一系列存储节点设备 0BSD1、 OBSD2、 ...、 OBSDn、 一个元数据服务器 MDS(Metadata Server)集群和一个高速互连网络, 应 用客户端与 MDS集群之间有元数据通道连接, 其中, 元数据服务器集 群可以用软件模块在客户端或存储设备上虚拟实现。 通常情况下, 客户 端首先发一个对对象的操作请求命令给元数据服务器, 元数据服务器负 责: 1.文件 ID到对象 ID的映射; 2.所请求文件所在的设备 ID; 3.对所 请求的操作命令赋予权能证书。 元数据服务器将这些信息反馈给客户端 后, 客户端利用所得到的对象 ID , 直接对存储设备 OBSD发起读写访 问。 如果访问需要执行相应的功能对象, 将会在访问参数中包含功能对 象标志位。
如图 2所示的对象存储设备上对象分布示意图, 其中 n、 k、 m、 p均 为非负整数。 对象存储设备上的每个 OSD ( Object-Based Storage Device Commands ) 逻辑单元都有一个根对象。 根对象是一个 OSD逻辑单元结 构的定位的出发点, 零分区对象代表根对象。 根对象的属性包含***逻 辑单元的全局特征, 例如 OSD逻辑单元的总容量以及***所包含的分区 个数等。 根对象包括所有分区对象标识符的列表以及所有***功能对象标 识符的列表。 所述***功能对象包括第一***功能对象、 第二***功能对 象、 … 、 第 n***功能对象, 其中第一***功能对象实时读取对象存储设 备中根对象属性页以及对象存储设备的***实时状态信息, 根据读取出的 状态信息判断***状态, 调度第二、 …、 第 n中的***功能对象执行***管 理功能。
位于非零分区对象下的用户功能对象可与零个或多个用户对象相 关联。通过设置用户对象的用户对象信息属性页中与该用户对象相关联 的功能对象 ID属性值 (见表 1 ) , 非零分区对象下的用户功能对象可以 与一个用户对象建立关联或与一个用户对象解除关联。与用户对象 ID指 示的用户对象相关联的功能对象 ID属性的页面内属性号为 3h, 占用 8个
表 1 用户对象的用户对象信息属性页 长度 应用客户端是 是否由 OSD逻 属性号 属性
(字节) a 否可以设置 辑单元提供
Oh 40 页标识 否 是
lh 8 分区对象 ID 否 是
2h 8 用户对象 ID 否 是
3h 8 功能对象 ID 是 是 4h到 8h 保留
9h 可变 用户名 是 否
Ah到 80h 保留 否
81h 8 已使用容量 否 是
用户对象逻辑长
82h 8 是 是
83h 4 对象可访问性 是 否
84h到 DOh 保留 否
Dlh 0或 8 实际数据空间 否 是
D2h 0或 8 保留数据空间 是 否
D3h到 FFFF
保留 否
FFFEh
a 这一列中的长度值为 0表示这个属性未被定义。
一个功能对象仅属于一个分区对象。 在单个分区对象内, 分配给功 能对象的功能对象 ID的值将不同于任何一个集合对象 ID和用户对象 ID 的值。
图 3为对象存储***中客户端发读命令的流程示意图。 图 4为对象存 储***中客户端发写命令的流程示意图。 表 2为 READ/WRITE命令的 CDB命令格式。
表 2 READ/WRITE命令的 CDB命令格式
Figure imgf000010_0001
24 (MSB)
用户对象 ID
31 ( LSB)
32 (MSB)
长度
39 ( LSB)
40 (MSB)
起始字节地址
47 ( LSB)
48 (MSB)
CDB附加部分长度
51 ( LSB)
52
获取和设置属性参数 一- 79
80 权能
183
184
--- 安全参数
235
表 2中的第 10个字节中第 5个 bit位 FUN指示了在读 /写用户对象 时, 是否要调用相应的功能对象执行。在客户端发送读 /写命令访问存储 设备时,存储设备将检查 T10 OSD标准中定义的命令描述块 CDB中 FUN 位 (即, 功能对象标志位) 的值。 如果该位值为 " 1 " , 则表示要调用 与所要读 /写的用户对象相关联的用户功能对象执行。这些用户功能对象 的 ID可通过用户对象 ID指示的用户对象信息属性页查询到,而用户对 象的 ID将作为功能对象执行的参数。如果 CDB中功能对象标志位的值 为 " 0" , 则表示不调用相应的功能对象执行。
如图 3所示的流程开始后, 向下执行步骤 101, 客户端向 OBSD存储节 点发读用户对象命令; 继续执行步骤 102, OBSD判断命令描述块 CDB中功 能对象标志位即 FUN位是否为 "1"? 如果是, 则执行步骤 103, 读取出用户 对象信息属性页中与用户对象相关联的用户功能对象 ID, 步骤 104, 根据用 户功能对象的 ID读取用户功能对象到内存中, 步骤 105, 将此用户对象 ID 作为参数, 执行此用户功能对象, 步骤 106, 将执行或读取的结果返回给客 户端, 然后结束。 如果 OBSD判断命令描述块 CDB中功能对象标志位是否 为 "1"的结果为否, 则执行步骤 107, 不执行任何功能对象, 读取用户对象 数据。
在图 4中, 在客户端发送写命令, 接收到元数据服务器的元数据信 息后,将访问设备端。存储设备将检查命令描述块 CDB中 FU 位的值。 如果该位值为 " 1 " , 则表示要调用与所要写的用户对象相关联的用户 功能对象执行。这些用户功能对象的 ID可通过用户对象 ID指示的用户 对象信息属性页查询到, 而用户对象的 ID将作为功能对象执行的参数。 如果命令中功能对象标志位的值为 " 0" , 则表示不调用相应的功能对 象执行。上述操作过程与图 3所示的对象存储***中客户端发读命令的 流程类似, 本领域技术人员参照图 4可以理解, 为文字简洁起见, 不再 赘述。
除了 T10 OSD标准中定义的 CREAT、 WRITE READ, SET— ATTR、 GET ATTR等可对用户对象操作的命令,本发明还定义了一些与功能对
Figure imgf000012_0001
Figure imgf000012_0002
上表 3中, CREATE AND WRITE FUNCTION命令, 用于上载可执 行代码到设备端, 在设备上创建功能对象。 当不需要使用功能对象时, 使用 REMOVE FUNCTION命令删除。 LIST FUNCTION命令可列出一 个分区对象中的所有功能对象的 ID或与指定的功能对象相关联的所有 用户对象的 ID。
创建用户 /***功能对象命令 CREATE AND WRITE FUNCTION的 调度包括如下具体步骤:
a-1、 在创建用户 /***功能对象命令 CREATE AND WRITE
FUNCTION的命令描述块 CDB设置功能对象长度字段、 请求的功能对 象 ID字段, 所述功能对象长度字段指定了需上载的功能对象内容的字 节数, 请求的功能对象 ID字段的内容指定了要创建的功能对象的功能 对象 ID, 如下表 4所示: 表 4 CREATE AND WRITE FUNCTION命令的 CDB命令格式 字节 位
7 6 5 4 3 2 1 0
8 (MSB)
服务行为
9 (LSB)
10 保留 DPO FUA 隔离
11 获取 /设置
保留 保留
CDBFMT
12 时戳控制
13
""―――— 保留 »™™™™™™™™™™ 15
16 (MSB)
分区对象 ID
23 (LSB)
24 (MSB)
请求的功能对象 ID
31 (LSB)
32 (MSB)
功能对象的长度
39 (LSB)
40
保留
47
48 (MSB)
CDB附加部分长度
51 (LSB)
52
--- 获取和设置属性参数
79
80 权能
183
Figure imgf000014_0001
a-2、 客户端向 OBSD发出创建用户 /***功能对象命令, 并同时上 载用户 /***功能对象内容; 将要创建的用户 /***功能对象内容封装在 数据输出缓冲区中的命令数据或参数数据段;
a-3、 OBSD读取客户端发出的命令描述块 CDB , 如果该命令描述 块 CDB中的请求的功能对象 ID字段值为 "0" , OBSD将任意分配一 个功能对象 ID给上载的功能对象; 如果该命令描述块 CDB中的请求的 功能对象 ID字段值不为 "0" , 则在至少满足下列功能对象 ID分配条 件的基础上, OBSD试图将该请求的功能对象 ID分配给要创建的用户 / ***功能对象, 功能对象 ID分配条件为: 同一个分区内, 不允许下列 情况出现: a)某一时刻, 同一个功能对象 ID指向多个功能对象; 或者 b) 功能对象 ID与一个存在的集合对象 ID或者用户对象 ID相同; 如果请 求的功能对象 ID字段值不为 "0"并且 OBSD不能把被请求的功能对象 ID分配给要创建的功能对象, 这个功能对象将不会被创建, 该命令以 CHECK CONDITION状态终止, 并将检测码设置为 ILLEGAL
REQUEST, 附加检测码设置为 INVALID FIELD IN CDB。
所述列表命令 LIST FUNCTION的调度包括以下步骤:
b-1在列表命令的命令描述块 CDB中设置分区对象 ID字段、 功能 对象 ID字段; 功能对象 ID字段的内容指定要操作的功能对象的功能对 象 ID , 分区对象 ID字段的内容指定要操作的功能对象所属分区对象的 分区对象 ID , 如下表 5所示:
表 5 查看命令 LIST FUNCTION的 CDB命令格式 字节 位
7 6 5 4 3 2 1 0
8 (MSB)
服务行为
9 ( LSB )
10 保留 隔离
Figure imgf000015_0001
b-2、 客户端向 OBSD发出列表命令;
b-3、 OBSD读列表命令描述块 CDB, 如果命令描述块 CDB中的功 能对象 ID字段的值为 "0" , 则返回该命令描述块 CDB中分区对象 ID 所指向的分区对象下所有的功能对象 ID; 如果该命令描述块 CDB中的 功能对象 ID字段的值不为 "0" , 则返回该命令描述块 CDB中分区对 象 ID所指向的分区对象下的与功能对象 ID相关联的用户对象 ID; 如 果该功能对象 ID字段指明的功能对象并不存在,则该命令应以 CHECK CONDITION状态终止, 并将检测码设置为 ILLEGAL REQUEST, 附加 检测码设置为 INVALID FIELD IN CDB。
所述删除用户 /***功能对象命令的调度包括如下步骤: c-l、在删除用户 /***功能对象命令的命令描述块 CDB设置强制删 除功能对象 FFR(Force Function Removal)标志位、功能对象 ID字段、分 区对象 ID字段, 功能对象 ID字段的内容指定要删除的功能对象, 分区 对象 ID字段的内容指定要删除的功能对象所属的分区对象, 如下表 6 表 6 REMOVE FUNCTION 命令的 CDB命令格式
Figure imgf000016_0001
c-2、 客户端向 OBSD发删除用户 /***功能对象命令; c-3、 OBSD读命令描述块 CDB,如果分区对象 ID字段的值为" 0", 则在分区对象 ID指定的分区对象中删除该功能对象 ID所指示的功能对 象;
c-4、 如果分区对象 ID字段的值不为 "0" 、 该功能对象存在用户 对象关联且强制删除功能对象标志位的值为 "0" , 则该命令应以非正 常状态终止;
c-5、 如果分区对象 ID字段的值不为 "0" 、 该功能对象存在用户 对象关联且强制删除功能对象标志位的值为 " 1 " , 则设置与该功能对 象相关联的所有的用户对象的用户对象信息属性页中的与用户对象关 联的功能对象 ID属性值为 "0" , 以指示这些用户对象不再与该功能对 象相关联; 然后在该分区对象 ID指示的分区对象中删除该功能对象 ID 指示的功能对象;
c-6、 如果分区对象 ID字段的值不为 "0" 且该功能对象不与任何 用户对象关联, 则在分区对象 ID指示的分区对象中直接删除功能对象 ID所指示的功能对象。
在以上列表命令和删除用户 /***功能对象命令的调度中,判断功能 对象 ID与用户对象 ID是否存在关联的方法, 除可以查询用户对象 ID 所指示的用户对象的用户对象信息属性页中是否存在与用户对象 ID相 关联的功能对象 ID外, 还可以建立功能对象 ID与用户对象 ID的关联 映射表, 通过查询关联映射表来找到与功能对象 ID相关联的用户对象 ID。
图 5为***功能对象实现自管理功能的调度示意图。 在图 5中, 零 分区对象下的第一***功能对象在 OBSD中实时运行,它读取对象存储设 备 OBSD中根对象属性页以及对象存储设备的***实时状态信息, 根据读 取出的状态信息判断***状态, 当***状态满足***预先设定的条件时, 将调度第二、 …、 第 n中的***功能对象执行***管理功能。 各***功能 对象的具体功能如下表 7所示: ***功能对象列表 功能
实时读取对象存储设备中根对象属性页以及对象 第一***功能对象 存储设备的***实时状态信息, 调度第二***功 能对象 第 n***功能对象运行。
将存储设备上密集的数据迁移到另一个存储 第二***功能对象
设备上
将该 OBSD上的热点数据复制到另一访问频率较 低的 OBSD上, 将来自客户端的对该 OBSD上热 第三***功能对象
点数据的请求转移到相应的访问频率较低的 OBSD上
第 n***功能对象 保留 对象存储设备 OBSD中根对象属性页记录了整个***的使用情况, 包含根目录属性页、 根信息属性页、 根配额属性页、 根错误恢复属性页 等, 根信息属性页内容如下表 8所示, 表 8中记录了对象存储***的总 容量、 已使用容量等***信息。
表 8 根信息属性页内容
Figure imgf000018_0001
84h 到 BFh 保留 否
COh 8 分区对象个 否 是
0701 OOOOh 保留 否
到 FFFF FFFEh
a 这一列中的长度值为 0表示这个属性未被定义。
***实时状态信息记录了***的实时运行情况,如 cpu的使用情况, 内存的使用情况等, 这些实时状态信息可直接从***获得。 例如, 若在 存储设备上运行的是 linux***, 则可从 /proc以及 /sysfs中获得***信 息。
Figure imgf000019_0001
表 9 ***预先设定的条件表
Figure imgf000019_0002
图 5中举了两个例子。 在第一个例子下, 第一***功能对象从根对 象属性页得知 OBSD已使用容量达到 OBSD总容量的 90% , 满足*** 预先设定的条件编号 1, 从而调度第二***功能对象执行, 将该 OBSD 上的数据迁移到另一个 OBSD上。 在第二个例子中, 第一***功能对象 读取***实时状态信息得知, OBSD的命令请求队列的长度大于 10, 满 足***预先设定的条件编号 2, 从而调度第三***功能对象执行, 将该 OBSD上的热点数据复制到另一访问频率较低的 OBSD上, 将来自客户 端的对该 OBSD上热点数据的请求转移到相应的访问频率较低的 OBSD 上。
最后所应说明的是, 以上实施例仅用以说明本发明的技术方案而非 限制, 尽管参照较佳实施例对本发明进行了详细说明, 本领域的普通技 术人员应当理解, 可以对本发明的技术方案进行修改或者等同替换, 而 不脱离本发明技术方案的精神和范围, 其均应涵盖在本发明的权利要求 范围当中。

Claims

1、一种对象存储***的管理方法,所述对象存储***包含客户端、 基于对象的存储设备 OBSD (Object-Based Storage Device)、 元数据服 务器以及它们之间的互连网络, 0BSD内存储根对象、 分区对象、 集 合对象、 用户对象, 其特征在于, 所述 0BSD还存储功能对象, 所述 功能对象包括用户功能对象和***功能对象;
当 0BSD响应客户端对用户对象的请求时, OBSD调用所述用户 功能对象执行客户端请求命令;
所述***功能对象实时读取 OBSD的根对象属性页以及对象存储设 备的***实时状态信息,并根据读取获得的状态信息判断***是否处于特 定状态, 如果是, 则执行***功能对象中设置的特定***管理功能。
2、 如权利要求 1所述的对象存储***的管理方法, 其特征在于, 所述***功能对象位于且仅位于零分区对象中, 所述用户功能对象位 于且仅位于除零分区对象以外的其它分区对象中。
3、 如权利要求 1所述的对象存储***的管理方法, 其特征在于, 一个所述功能对象都仅包含于一个所述分区对象中, 一个所述分区对 象包含零个或者多个所述功能对象。
4、 如权利要求 1所述的对象存储***的管理方法, 其特征在于, 所述用户功能对象与零个或多个用户对象相关联, 该关联方法为: 在 用户对象信息属性页中设置功能对象 ID ( identifier , 标识符) 字段, 该功能对象 ID字段中存储功能对象 ID , 该功能对象 ID指向某个特定 的功能对象。
5、根据权利要求 4所述的对象存储***的管理方法,其特征在于, 所述对象存储***的读 /写命令的调度执行包括如下步骤:
5-1、 在读 /写用户对象命令的命令描述块 CDB(Command
Descriptor Block)设置功能对象标志位, 该功能对象标志位的值为 "0" 或 " 1 " ; 5-2、 客户端向 OBSD发读 /写用户对象命令;
5- 3、 OBSD读取该命令描述块 CDB中的功能对象标志位值, 判 断功能对象标志位值; 如果功能对象标志位值为 "0" , 则不调用任何 功能对象; 如果功能对象标志位值为 " 1 " , 则根据命令描述块 CDB 中的用户对象 ID , 读出该用户对象 ID指示的用户对象的用户对象信 息属性页中的功能对象 ID , 然后调用功能对象 ID所指向的功能对象 执行读 /写操作。
6、根据权利要求 4所述的对象存储***的管理方法,其特征在于, 还包括创建用户 /***功能对象命令,所述创建用户 /***功能对象命令 的调度包括如下步骤:
6- 1、 在创建用户 /***功能对象命令的命令描述块 CDB设置功能 对象长度字段、 请求的功能对象 ID字段, 所述功能对象长度字段指定 了需上载的功能对象内容的字节数;
6-2、 客户端向 OBSD发出创建用户 /***功能对象命令, 并同时 上载用户 /***功能对象内容;将要创建的用户 /***功能对象内容封装 在数据输出缓冲区中的命令数据或参数数据段;
6-3、 OBSD读取客户端发出的命令描述块 CDB , 如果该命令描述 块 CDB中的请求的功能对象 ID字段值为 "0", OBSD将任意分配一 个功能对象 ID给上载的功能对象; 如果该命令描述块 CDB中的请求 的功能对象 ID字段值不为 "0" , 则在至少满足下列功能对象 ID分配 条件的基础上, OBSD试图将该功能对象 ID分配给要创建的用户 /系 统功能对象, 功能对象 ID分配条件为: 同一个分区内, 不允许下列情 况出现: a)某一时刻, 同一个功能对象 ID指向多个功能对象; 或者 b) 功能对象 ID与一个存在的集合对象 ID或者用户对象 ID相同;如果请 求的功能对象 ID字段值不为 "0" 并且 OBSD不能把被请求的功能对 象 ID分配给要创建的功能对象, 这个功能对象将不会被创建, 并返回 报错信息。 7、 根据权利要求 4所述对象存储***的管理方法, 其特征在于, 还包括列表命令, 所述列表命令的调度包括以下步骤:
7-1、 在列表命令的命令描述块 CDB中设置分区对象 ID字段、 功 能对象 ID字段;
7-2、 客户端向 OBSD发出列表命令;
7- 3、 OBSD读列表命令描述块 CDB , 如果命令描述块 CDB中的 功能对象 ID字段的值为 "0" , 则返回该命令描述块 CDB中分区对象 ID所指向的分区对象下所有的功能对象 ID; 如果该命令描述块 CDB 中的功能对象 ID字段的值不为 "0", 则返回该命令描述块 CDB中分 区对象 ID所指向的分区对象下的与功能对象 ID相关联的用户对象 ID; 如果该功能对象 ID字段指明的功能对象并不存在, 则该命令应以 非正常状态终止。
8、 根据权利要求 4所述对象存储***的管理方法, 其特征在于, 还包括删除用户 /***功能对象命令,所述删除用户 /***功能对象命令 的调度包括如下步骤:
8- 1、 在删除用户 /***功能对象命令的命令描述块 CDB设置强制 删除功能对象标志位、 功能对象 ID字段、 分区对象 ID字段, 功能对 象 ID字段的内容指定要删除的功能对象, 分区对象 ID字段的内容指 定要删除的功能对象所属的分区对象;
8-2、 客户端向 OBSD发删除用户 /***功能对象命令;
8-3、 OBSD读命令描述块 CDB , 如果分区对象 ID字段的值为
"0" , 则在分区对象 ID指定的分区对象中删除该功能对象 ID所指示 的功能对象;
8-4、 如果分区对象 ID字段的值不为 "0" 、 该功能对象存在用户 对象关联且强制删除功能对象标志位的值为 "0" , 则该命令应以非正 常状态终止;
8-5、 如果分区对象 ID字段的值不为 "0" 、 该功能对象存在用户 对象关联且强制删除功能对象标志位的值为 " 1 " , 则设置与该功能对 象相关联的所有的用户对象的用户对象信息属性页中的与用户对象关 联的功能对象 ID属性值为 "0" , 以指示这些用户对象不再与该功能 对象相关联;然后在该分区对象 ID指示的分区对象中删除该功能对象 ID指示的功能对象;
8-6、 如果分区对象 ID字段的值不为 "0"且该功能对象不与任何 用户对象关联,则在分区对象 ID指示的分区对象中直接删除功能对象 ID所指示的功能对象。
9、 根据权利要求 1所述对象存储***的管理方法, 其特征在于, 所述***功能对象包括第一***功能对象、 第二***功能对象、 … 、 第 n***功能对象,其中第一***功能对象实时读取对象存储设备中根对象 属性页以及对象存储设备的***实时状态信息,根据读取出的状态信息判 断***状态是否处于特定状态, 如果是, 则调度第二、 …、 第 n中的*** 功能对象执行特定的***管理功能。
PCT/CN2008/072606 2008-10-07 2008-10-07 对象存储***的管理方法 WO2010040255A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2008/072606 WO2010040255A1 (zh) 2008-10-07 2008-10-07 对象存储***的管理方法
CN200880014000XA CN101796514B (zh) 2008-10-07 2008-10-07 对象存储***的管理方法
US13/063,934 US8645460B2 (en) 2008-10-07 2008-10-07 Method for managing object-based storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2008/072606 WO2010040255A1 (zh) 2008-10-07 2008-10-07 对象存储***的管理方法

Publications (1)

Publication Number Publication Date
WO2010040255A1 true WO2010040255A1 (zh) 2010-04-15

Family

ID=42100184

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2008/072606 WO2010040255A1 (zh) 2008-10-07 2008-10-07 对象存储***的管理方法

Country Status (3)

Country Link
US (1) US8645460B2 (zh)
CN (1) CN101796514B (zh)
WO (1) WO2010040255A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372854B2 (en) 2010-11-08 2016-06-21 Hewlett Packard Enterprise Development Lp Load balancing backup jobs in a virtualized storage system having a plurality of physical nodes
CN112241243A (zh) * 2020-10-19 2021-01-19 北京计算机技术及应用研究所 一种主动对象存储***的实现方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101453425B1 (ko) * 2008-12-18 2014-10-23 한국전자통신연구원 메타데이터 서버 및 메타데이터 관리 방법
CN102202087B (zh) 2011-04-25 2015-04-01 中兴通讯股份有限公司 一种标识存储设备的方法及***
US9424443B2 (en) * 2013-08-20 2016-08-23 Janus Technologies, Inc. Method and apparatus for securing computer mass storage data
CN103714022A (zh) * 2014-01-13 2014-04-09 浪潮(北京)电子信息产业有限公司 一种基于数据块的混合存储***
US9639546B1 (en) 2014-05-23 2017-05-02 Amazon Technologies, Inc. Object-backed block-based distributed storage
CN106062717B (zh) * 2014-11-06 2019-05-03 华为技术有限公司 一种分布式存储复制***和方法
CN105243112A (zh) * 2015-09-25 2016-01-13 天脉聚源(北京)科技有限公司 对象索引化的控制方法和装置
US9870322B2 (en) 2015-11-12 2018-01-16 International Business Machines Corporation Memory mapping for object-based storage devices
US9740415B2 (en) 2015-11-17 2017-08-22 International Business Machines Corporation Object-based storage management
CN105573865A (zh) * 2015-12-24 2016-05-11 创新科存储技术(深圳)有限公司 一种数据备份方法以及一种数据备份***
CN109491983B (zh) * 2018-11-01 2021-08-31 郑州云海信息技术有限公司 一种数据信息的管理方法、装置和计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146904A (ja) * 2004-11-17 2006-06-08 Hitachi Ltd ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法
US20060156059A1 (en) * 2005-01-13 2006-07-13 Manabu Kitamura Method and apparatus for reconstructing data in object-based storage arrays
CN1845093A (zh) * 2006-04-30 2006-10-11 华中科技大学 一种属性可扩展的对象文件***
US20070118676A1 (en) * 2005-11-23 2007-05-24 Yoshiki Kano System, method and apparatus for multiple-protocol-accessible OSD storage subsystem
CN1331038C (zh) * 2005-07-21 2007-08-08 华中科技大学 基于对象的存储控制器及其使用的调度方法
CN101040282A (zh) * 2004-08-13 2007-09-19 潘纳萨斯公司 将虚拟映射存入对象属性中的分布式基于对象的存储***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730213B2 (en) * 2000-12-18 2010-06-01 Oracle America, Inc. Object-based storage device with improved reliability and fast crash recovery
US20070288247A1 (en) * 2006-06-11 2007-12-13 Michael Mackay Digital life server

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101040282A (zh) * 2004-08-13 2007-09-19 潘纳萨斯公司 将虚拟映射存入对象属性中的分布式基于对象的存储***
JP2006146904A (ja) * 2004-11-17 2006-06-08 Hitachi Ltd ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法
US20060156059A1 (en) * 2005-01-13 2006-07-13 Manabu Kitamura Method and apparatus for reconstructing data in object-based storage arrays
CN1331038C (zh) * 2005-07-21 2007-08-08 华中科技大学 基于对象的存储控制器及其使用的调度方法
US20070118676A1 (en) * 2005-11-23 2007-05-24 Yoshiki Kano System, method and apparatus for multiple-protocol-accessible OSD storage subsystem
CN1845093A (zh) * 2006-04-30 2006-10-11 华中科技大学 一种属性可扩展的对象文件***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WANG, YAN.: "Research and Implementation of Software System for Object Storage Disk Controller.", THESIS FOR THE DEGREE OF MASTER OFHUAZHONG UNIVERSITY, February 2008 (2008-02-01) *
ZHAO, SHUI QING ET AL.: "The Study of Quality of service in Object-based Storage Device", COMPUTER SCIENCE, vol. 33, no. 9, September 2006 (2006-09-01), pages 89 - 92 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372854B2 (en) 2010-11-08 2016-06-21 Hewlett Packard Enterprise Development Lp Load balancing backup jobs in a virtualized storage system having a plurality of physical nodes
CN112241243A (zh) * 2020-10-19 2021-01-19 北京计算机技术及应用研究所 一种主动对象存储***的实现方法
CN112241243B (zh) * 2020-10-19 2024-01-26 北京计算机技术及应用研究所 一种主动对象存储***的实现方法

Also Published As

Publication number Publication date
US20110167113A1 (en) 2011-07-07
US8645460B2 (en) 2014-02-04
CN101796514B (zh) 2012-04-18
CN101796514A (zh) 2010-08-04

Similar Documents

Publication Publication Date Title
WO2010040255A1 (zh) 对象存储***的管理方法
US7765189B2 (en) Data migration apparatus, method, and program for data stored in a distributed manner
EP2284725B1 (en) Client, brokerage server and method for providing cloud storage
US9348842B2 (en) Virtualized data storage system optimizations
JP4943081B2 (ja) ファイル格納制御装置及び方法
TWI232396B (en) Partial migration of an object to another storage location in a computer system
KR100951107B1 (ko) 최적의 성능을 위한 파일 관리 방법
US8645645B2 (en) File management method and hierarchy management file system
TWI465936B (zh) 依據應用程式管理檔案之檔案系統及方法
US20090063556A1 (en) Root node for carrying out file level virtualization and migration
US8271559B2 (en) Storage system and method of controlling same
US20090019223A1 (en) Method and systems for providing remote strage via a removable memory device
WO2010078760A1 (zh) 一种文件存储方法、装置及文件删除方法和装置
JP2013506889A (ja) ファイルレベル階層ストレージ管理システム、方法、及び装置
WO2019149261A1 (zh) 分布式文件***的文件存储方法及分布式文件***
WO2018000300A1 (zh) 一种电子设备的数据操作方法及电子设备
US6594674B1 (en) System and method for creating multiple files from a single source file
KR100936919B1 (ko) 메타데이터의 일관성을 보장하기 위한 분산 파일 시스템 및방법
CN101246534B (zh) 一种使U盘具有autorun病毒免疫功能的方法
US8725675B2 (en) File server, file management system and file relocation method
US8489559B2 (en) Methods and apparatus for conversion of content
WO2017172377A1 (en) File system support for file-level ghosting
CN109478181A (zh) 用于使得能够修改文件***卷内的多个数据对象的***和方法
CN110209343B (zh) 数据存储方法、装置、服务器及存储介质
CN114356224B (zh) 文件地址优化方法、终端、服务器及计算机可读存储介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880014000.X

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08877224

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13063934

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08877224

Country of ref document: EP

Kind code of ref document: A1