Movatterモバイル変換


[0]ホーム

URL:


KR100602393B1 - Object-oriented data storage - Google Patents

Object-oriented data storage
Download PDF

Info

Publication number
KR100602393B1
KR100602393B1KR1020007001402AKR20007001402AKR100602393B1KR 100602393 B1KR100602393 B1KR 100602393B1KR 1020007001402 AKR1020007001402 AKR 1020007001402AKR 20007001402 AKR20007001402 AKR 20007001402AKR 100602393 B1KR100602393 B1KR 100602393B1
Authority
KR
South Korea
Prior art keywords
objects
data storage
requester
storage device
partition
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.)
Expired - Fee Related
Application number
KR1020007001402A
Other languages
Korean (ko)
Other versions
KR20010022801A (en
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 시게이트 테크놀로지 엘엘씨filedCritical시게이트 테크놀로지 엘엘씨
Publication of KR20010022801ApublicationCriticalpatent/KR20010022801A/en
Application grantedgrantedCritical
Publication of KR100602393B1publicationCriticalpatent/KR100602393B1/en
Anticipated expirationlegal-statusCritical
Expired - Fee Relatedlegal-statusCriticalCurrent

Links

Images

Classifications

Landscapes

Abstract

Translated fromKorean

데이터 저장 장치(110, 112)는 다수의 객체(124, 126)로서 구성된 위에 저장된 데이터를 가지는 저장 매체(132)를 포함하고, 각각의 객체는 객체의 특성을 나타내는 속성을 가진다. 제어 컴포넌트(150)는 저장 매체(132)에 동작 가능하게 결합되고 인터페이스(128)를 객체(124, 126)에 제공하기 위하여 구성된다. 인터페이스는 객체(124, 126)에 액세스하기 위하여 호출되는 방법(Φ-N)을 나타낸다.The data storage devices 110 and 112 include a storage medium 132 having data stored above configured as a plurality of objects 124 and 126, each object having an attribute representing the characteristics of the object. The control component 150 is operatively coupled to the storage medium 132 and configured to provide an interface 128 to the objects 124, 126. The interface represents the method Φ-N that is called to access the objects 124, 126.

Description

Translated fromKorean
객체 지향 데이터 저장 장치 {OBJECT ORIENTED DATA STORAGE DEVICE}Object Oriented Data Storage {OBJECT ORIENTED DATA STORAGE DEVICE}

본 발명은 데이터 저장 장치에 관한 것이다. 특히, 본 발명은 디스크 드라이브, 테이프 드라이브, 또는 광학 드라이브 같은 데이터 저장 장치에 관한 것으로, 상기 데이터는 객체로서 구성되고 액세스된다.The present invention relates to a data storage device. In particular, the present invention relates to data storage devices, such as disk drives, tape drives, or optical drives, wherein the data is organized and accessed as objects.

두개의 일반적인 컴퓨터 모델은 컴퓨터 산업 분야에서 잘 공지되었다. 첫번째는 메인프레임 컴퓨터 모델이고 두번째는 클러스터 컴퓨터 모델이다.Two general computer models are well known in the computer industry. The first is the mainframe computer model and the second is the cluster computer model.

메인프레임 컴퓨터 모델에서의 최종 사용자를 위해서는 초기 시스템을 구입하고, 부가적인 처리 능력이 요청될때 보다 큰 시스템으로 초기 시스템을 대체하는 것이 일반적인 진행 방법이다. 이런 사이클에서는 여러 시점에서 외부적인 단절이 발생한다. 예를들어, 만약 사용자가 초기 시스템의 아키텍쳐보다 보다 빨리 성장하면, 제 2 업그레이드된 메인프레임 시스템을 구입하였을때 사용자가 하나의 운영 시스템으로부터 다른 운영 시스템으로, 또는 심지어 하나의 공급자 전용 아키텍쳐로부터 다른 공급자 전용 아케텍쳐로 전환할 것을 요청할 수 있다. 이들 변화는 업그레이드할수 있는 구성, 달러 및 고용 시간에 대해 많은 비용을 수반한다. 그러므로, 상기 전환은 바람직하지 않다.For end users in mainframe computer models, it is common practice to purchase an initial system and replace it with a larger system when additional processing power is required. In these cycles external breaks occur at various points in time. For example, if a user grows faster than the architecture of the initial system, when the user purchases a second upgraded mainframe system, the user moves from one operating system to another, or even from one vendor-specific architecture to another supplier. You can request to switch to a dedicated architecture. These changes involve significant costs for upgradeable configurations, dollars and employment time. Therefore, this conversion is not desirable.

게다가, 메인프레임 모델은 컴퓨터 장치의 잔존 가격이 하락되는 것을 수반 한다. 따라서, 상기 시스템 대체는 초기 시스템이 업그레이된 시스템에 의해 대체될때 실질적으로 완전히 손실되는 투자 자본이다. 게다가, 보다 큰 업그레이드 시스템은 보다 작은 볼륨(volume)이므로 보다 작은 시스템으로 팔리는 경향이 있다. 따라서, 각각의 새로운 시스템 업그레이드는 통상적으로 이전 시스템보다 컴퓨팅 비용이 높다.In addition, the mainframe model entails a drop in the remaining price of a computer device. Thus, the system replacement is an investment capital that is substantially lost when the initial system is replaced by the upgraded system. In addition, larger upgrade systems tend to be sold as smaller systems because they are smaller volumes. Thus, each new system upgrade typically costs more computing than the previous system.

클러스터 컴퓨터 모델에서, 메인프레임 컴퓨터는 보다 작은 표준 서버 클러스터로 대체된다. 이것은 메인프레임 모델보다 많은 장점을 제공한다. 클러스터가 단지 단일 시스템으로서만 시작될수있기 때문에, 클러스터 모델로 진행할때 처음엔 보다 작다. 게다가, 상기 보다 작은 시스템은 높은 볼륨으로 판매되므로, 컴퓨팅 비용이 보다 작다. 또한, 상기 시스템은 그것들이 전용 아키텍쳐상에 의존하지 않는 것을 바탕으로 한다. 이것은 사용자가 각각의 추후 구입시 가장 좋은 선택 사항을 선택하게 하는 다중 소스로부터 장치의 입수 가능성을 제공한다.In the cluster computer model, mainframe computers are replaced with smaller standard server clusters. This offers many advantages over the mainframe model. Since the cluster can only be started as a single system, it is initially smaller when proceeding with the cluster model. In addition, the smaller system is sold at a higher volume, so the computing cost is smaller. In addition, the system is based on that they do not depend on a dedicated architecture. This offers the possibility of obtaining the device from multiple sources allowing the user to select the best option for each future purchase.

다른 장점은 클러스터 컴퓨터 모델 그 자체이다. 업그레이드 비용은 종래 및 가까운 미래 요청에 부합하기 위하여 요청된 부가적인 리소스 양만을 부가함으로써 보다 정밀하게 제어될수있다. 게다가, 사용자는 새로운 아키텍쳐로 이동 또는 전환에 대한 염려없이 여러 종류의 공급자로부터 선택할 수 있다. 유사하게, 올바른 아키텍쳐를 사용하여, 다른 운영 시스템으로 전환에 대한 필요성이 결코 요청되지 않는다.Another advantage is the cluster computer model itself. The upgrade cost can be more precisely controlled by adding only the additional amount of resources requested to meet conventional and near future requests. In addition, the user can select from different types of suppliers without worrying about moving or switching to the new architecture. Similarly, using the right architecture, the need for switching to another operating system is never requested.

그러나 클러스터 컴퓨터 모델은 여전히 단점 및 문제점을 가진다. 예를들어, 클러스터 컴퓨터 모델은 하나의 메인프레임이 수행할수있는 표준 작업량상에 클러스터가 취해야 하는 방식에 있어서 데이터를 공유하기 위한 능력을 클러스터된 시스템에게 제공해야하는 어려움을 가진다. 예를들어, 클러스터의 각각의 서버가 동일 데이터상에서 트랜잭션을 처리하기 위하여 요청되는 클러스터 모델을 실행하는 것은 매우 어렵다. 상기 응용의 몇몇 예는 항공 예약 시스템 또는 트랜잭션의 재경부 전체 목록을 포함한다.However, the cluster computer model still has disadvantages and problems. For example, the cluster computer model has the difficulty of providing clustered systems with the ability to share data in the way clusters should take on the standard workload a single mainframe can perform. For example, it is very difficult for each server in a cluster to implement a cluster model that is required to process transactions on the same data. Some examples of such applications include a full list of recurring funds in an airline reservation system or transaction.

클러스터링된 컴퓨터 모델의 제 2 단점은 메인프레인 환경에 존재하는 데이터 및 저장 데이터를 관리하는데 있어서 광대한 경험의 부족이다. 상기 경험은 표준 클러스터 환경에서 아직 간단히 이용할 수 없는 관리 소프트웨어를 유발한다.A second disadvantage of the clustered computer model is the lack of extensive experience in managing data and stored data present in the mainframe environment. This experience results in management software that is not yet readily available in standard cluster environments.

본 발명은 이들 및 다른 문제점을 처리하고, 종래 기술 이상의 다른 장점을 제공한다.The present invention addresses these and other problems and provides other advantages over the prior art.

데이터 저장 장치는 다수의 객체로서 구성된 저장된 데이터를 가지는 저장 매체를 포함하고, 상기 각각의 객체는 객체의 특성들을 나타내는 속성(attribute)들을 가진다. 제어 컴포넌트(control component)는 저장 매체에 동작가능하게 결합되고 객체에 대한 인터페이스를 제공하도록 구성된다. 인터페이스는 상기 객체에 액세스하도록 호출되는 메소드(method)를 나타낸다.The data storage device includes a storage medium having stored data configured as a plurality of objects, each object having attributes representing the characteristics of the object. The control component is operatively coupled to the storage medium and configured to provide an interface to the object. An interface represents a method that is called to access the object.

도 1은 본 발명의 일측면에 따른 네트워크 부가 저장 시스템의 블록도.1 is a block diagram of a network additional storage system in accordance with an aspect of the present invention.

도 2는 본 발명의 일측면에 따른 객체 모델을 도시한 도.2 illustrates an object model in accordance with an aspect of the present invention.

도 3a은 저장 장치상 객체가 리퀘스터에 의해 액세스되는 제 1 구성의 블록도.3A is a block diagram of a first configuration in which an object on a storage device is accessed by a requester.

도 3b는 저장 장치상 객체가 리퀘스터에 의해 액세스되는 제 2 구성의 블록도.3B is a block diagram of a second configuration in which an object on a storage device is accessed by a requester.

도 4는 본 발명의 일측면에 따른 디스크 드라이브의 투시도.4 is a perspective view of a disk drive according to one aspect of the present invention.

도 5는 리퀘스터에 의해 객체의 액세스를 도시하는 기능 블록도.5 is a functional block diagram illustrating access of an object by a requester.

도 6은 본 발명의 일측면에 따라 파티션된 저장 매체 일부의 도면.6 illustrates a portion of a storage medium partitioned in accordance with an aspect of the present invention.

도 7a 및 7b는 본 발명의 일측면에 따라 리퀘스터에 의해 객체의 액세스를 도시하는 흐름도.7A and 7B are flow diagrams illustrating access of an object by a requester in accordance with an aspect of the present invention.

도 8은 본 발명의 일측면에 따른 객체의 형성을 도시한 흐름도.8 is a flow diagram illustrating the formation of an object in accordance with an aspect of the present invention.

도 9는 본 발명의 일측면에 따른 객체의 개방 및 업데이트를 도시하는 흐름도.9 is a flow diagram illustrating opening and updating of an object in accordance with an aspect of the present invention.

도 10은 본 발명의 일측면에 따른 객체에 대한 기입을 도시한 흐름도.10 is a flow diagram illustrating writing for an object in accordance with an aspect of the present invention.

도 11은 본 발명의 일측면에 따라 판독만을 위한 객체의 개방을 도시한 흐름도.11 is a flow diagram illustrating the opening of an object for reading only in accordance with an aspect of the present invention.

도 12는 본 발명의 일측면에 따라 객체의 판독을 도시한 흐름도.12 is a flow diagram illustrating reading of an object in accordance with an aspect of the present invention.

도 13은 본 발명의 일측면에 따라 객체의 폐쇄를 도시한 흐름도.13 is a flow diagram illustrating closure of an object in accordance with an aspect of the present invention.

도 14는 본 발명의 일측면에 따라 객체의 제거를 도시한 흐름도.14 is a flow chart illustrating removal of an object in accordance with an aspect of the present invention.

도 15는 본 발명의 일측면에 따라 파티션 형성을 도시한 흐름도.15 is a flow chart illustrating partition formation in accordance with an aspect of the present invention.

도 16은 본 발명의 일측면에 따라 파티션 제거를 도시한 흐름도.16 is a flow chart illustrating partition removal in accordance with an aspect of the present invention.

도 17은 본 발명의 일측면에 따라 객체 엑스포트를 도시한 흐름도.17 is a flow chart illustrating object export in accordance with an aspect of the present invention.

도 18은 본 발명의 일측면에 따라 객체 속성 획득을 도시한 흐름도.18 is a flow diagram illustrating object property acquisition in accordance with an aspect of the present invention.

도 19는 본 발명의 일측면에 따라 객체 속성을 세팅하거나 변경하는 것을 도시한 흐름도.19 is a flowchart illustrating setting or changing object attributes in accordance with an aspect of the present invention.

도 20은 본 발명의 일측면에 따라 판독 락(lock) 속성을 도시한 흐름도.20 is a flow diagram illustrating a read lock attribute in accordance with an aspect of the present invention.

도 21은 본 발명의 일측면에 따라 세팅 락 특성을 도시한 흐름도.21 is a flow chart illustrating setting lock characteristics in accordance with an aspect of the present invention.

도 22는 본 발명의 일측면에 따라 객체의 리세팅 락 속성을 도시한 흐름도.22 is a flow diagram illustrating a resetting lock attribute of an object in accordance with an aspect of the present invention.

도 23은 본 발명의 일측면에 따라 장치 결합을 얻는 것을 도시한 흐름도.23 is a flow chart illustrating obtaining device engagement in accordance with an aspect of the present invention.

도 24는 본 발명의 일측면에 따라 세팅 장치 결합을 도시한 흐름도.24 is a flow diagram illustrating setting device coupling in accordance with an aspect of the present invention.

도 1은 본 발명의 일측면에 따른 데이터 저장 장치(100)의 블록도이다. 장치(100)는 객체 지향 데이터 저장 장치(110 및 112), 파일 서버(114), 리퀘스터(116, 118 및 120), 및 상호접속부(122)를 포함한다. 시스템(100)은 많은 다른 공급자로부터의 장치 및 소프트웨어로 구성될수있고, 사용자에게 하나의 대용량 컴퓨터 장치로서 나타나는 네트워크 부가 저장 구성을 도시한다.1 is a block diagram of adata storage device 100 according to an aspect of the present invention.Device 100 includes object orienteddata storage devices 110 and 112,file server 114,requesters 116, 118 and 120, and interconnect 122. Thesystem 100 may be comprised of devices and software from many different suppliers, and shows a network side storage configuration that appears to the user as one mass computer device.

객체 지향 저장 장치(110-112)는 시스템(100)의 데이터 저장 기능을 수행하는 저장 컴포넌트이다. 저장 장치(110-112)는 바람직하게 디스크 드라이브, 독립 디스크 리던던트 어레이(RAID) 서브시스템, 테이프 드라이브, 테이프 라이브러리, 광학 드라이브, 쥬크 박스 또는 공유될수있는 임의의 다른 저장 장치를 포함한다. 저장 장치(110 및 112)에는 상기 장치(110 및 112)에 액세스할 수 있는 리퀘스터(116, 118 및 120)에 대한 입력/출력(I/O) 채널 부가물이 제공된다.Object-oriented storage devices 110-112 are storage components that perform data storage functions ofsystem 100. Storage devices 110-112 preferably include disk drives, independent disk redundant array (RAID) subsystems, tape drives, tape libraries, optical drives, juke boxes, or any other storage device that can be shared.Storage devices 110 and 112 are provided with input / output (I / O) channel additions torequesters 116, 118, and 120 that can access thedevices 110 and 112.

리퀘스터(116, 118 및 120)는 디스크(110 및 112) 상에 저장된 정보를 공유하는 서버 또는 클라이언트 같은 컴포넌트이다. 리퀘스터(116-120)는 저장 장치(110 및 112)상 정보를 직접 액세스하기 위하여 바람직하게 구성된다.Requesters 116, 118, and 120 are components, such as servers or clients, that share information stored ondisks 110 and 112. Requesters 116-120 are preferably configured to directly access information onstorage devices 110 and 112.

파일 서버(114)는 요청 인증 및 리소스 위치 같은 관리 및 보안 기능을 수행한다. 보다 작은 시스템에서, 전용 파일 서버는 바람직하게 사용되지 않는다. 대신, 리퀘스터중 하나(116-120)가 파일 서버(114)에 의해 수행되는 시스템(100)의 동작을 감독하는 기능 및 책임을 가진다. 게다가, 파일 서버(114)에 의해 제공된 보안 및 기능이 필요하거나 요청되지 않는 경우, 또는 리퀘스터(116-120)의 클러스터가 직접적으로 저장 장치(110 및 112)와 대화할수있도록 성능이 요청되는 경우, 파일 서버(114)는 시스템(100)으로부터 제거된다.File server 114 performs administrative and security functions such as request authentication and resource location. In smaller systems, dedicated file servers are not preferably used. Instead, one of the requesters 116-120 has the function and responsibility to oversee the operation of thesystem 100 performed by thefile server 114. In addition, when security and functionality provided byfile server 114 are not required or requested, or when performance is requested to allow clusters of requesters 116-120 to communicate directly withstorage devices 110 and 112.File server 114 is removed fromsystem 100.

바람직한 일실시예에서 상호접속부(122)는 네크워크 부가 저장 시스템(100)의 모든 컴포넌트가 서로 통신하는 물리적 인프라구조이다.In a preferred embodiment, theinterconnect 122 is a physical infrastructure in which all components of the network attachedstorage system 100 communicate with each other.

동작시, 시스템(100)이 켜졌을때, 모든 장치는 서로 그 자체를 식별하거나 파일 서버(114) 또는 상호접속부(122) 같은 기준 공통 지점을 식별한다. 예를들어, 섬유 채널(Fiber Channel) 기반의 시스템(100)에서, 객체 지향 저장 장치(110 및 112), 및 리퀘스터(116-120)는 시스템의 패브릭(fabric)에 로그한다. 운영 구조를 결정하기 위하여 요청하는 실행 같은 시스템(110)의 임의의 컴포넌트는 모든 다른 컴포넌트를 식별하기 위하여 패브릭 서비스를 사용한다. 파일 서버(114)로부터, 리퀘스터(116-120)는 리퀘스터(116-120)가 액세스할수있는 저장 장치(110 및 112)의 존재를 알게된다. 유사하게, 저장 장치(110 및 112)는 시스템(100)의 다른 장치를 배치하기 위하여 요청된 정보의 위치, 및 백업 같은 관리 서비스를 호출하기 위하여 사용되어야 하는 어드레스를 인식한다. 유사하게, 하나의 바람직한 실시예에서 파일 서버(114)는 패브릭 서비스로부터 저장 장치(110 및 112)의 존재를 배운다.In operation, when thesystem 100 is turned on, all devices identify themselves with each other or with reference common points, such asfile server 114 orinterconnect 122. For example, in a Fiber Channel basedsystem 100, object orientedstorage devices 110 and 112, and requesters 116-120 log to a fabric of the system. Any component of thesystem 110, such as the execution requesting to determine the operating structure, uses fabric services to identify all other components. Fromfile server 114, requester 116-120 knows the presence ofstorage devices 110 and 112 that requester 116-120 can access. Similarly,storage devices 110 and 112 know the location of the information requested to locate other devices ofsystem 100, and the address that should be used to invoke management services such as backup. Similarly, in one preferredembodiment file server 114 learns the presence ofstorage devices 110 and 112 from fabric services.

특정 시스템(100)의 보안 실행에 따라, 리퀘스터(116-120), 또는 이들중 일부는 시스템(100)의 몇몇 컴포넌트에 대한 액세스가 거부될수있다. 각각의 요청에 이용할수있는 저장 장치(110 및 112)의 세트로부터, 리퀘스터는 파일, 데이터베이스, 및 그것에 이용할수있는 자유 공간을 식별할 수 있다.Depending on the security implementation of theparticular system 100, the requesters 116-120, or some of them, may be denied access to some components of thesystem 100. From the set ofstorage devices 110 and 112 available for each request, the requester can identify a file, a database, and the free space available to it.

동시에, 시스템(100)에서 각각의 컴포넌트는 그것과 관련된 특정 고려사항을 파일 서버(114)에 식별시킨다. 예를들어, 임의의 저장 장치 레벨 서비스 속성은 서버(114)를 파일하기 위하여 일단 통신될수있고, 모든 다른 시스템(100)의 컴포넌트는 파일 서버(114)로부터 속성을 배운다. 예를들어, 특정 리퀘스터(116-120)는 시작후 부가적인 저장 장치의 명령을 알리고 싶어할 수 있다. 상기 속성은 예를들어 리퀘스터가 파일 서버(114)에 로그할때 제공될수있다. 그 다음 파일 서버(114)는 자동적으로 새로운 저장 장치가 시스템(100)에 부가될때마다 특정 리퀘스터(116-120)에게 충고한다. 그 다음 파일 서버(114)는 저장 장치가 RAID 5인지, 미러드(mirrored) 인지, 저장 장치인지 같은 리퀘스터의 다른 중요한 특성을 통과시킬수 있다.At the same time, each component insystem 100 identifies to fileserver 114 certain considerations associated with it. For example, any storage level service attribute may be communicated once tofile server 114, and allother system 100 components learn the attribute fromfile server 114. For example, certain requesters 116-120 may wish to inform additional storage device commands after startup. The attribute may be provided, for example, when the requester logs intofile server 114. Thefile server 114 then automatically advises the particular requester 116-120 whenever a new storage device is added to thesystem 100.File server 114 can then pass other important characteristics of the requester, such as whether the storage device is RAID 5, mirrored, or storage device.

본 발명의 일측면에 따라, 저장 장치(110 및 112)상에 저장된 정보는 도 2에 도시된 시스템에 저장된다. 각각의 저장 장치(110 및 112)는 데이터가 섹터의 순서보다 오히려 객체(124-126)로서 구성되고 액세스되는 모드에서 동작하는 객체 지향 장치이다. 객체 지향 장치(110 및 112)는 특정 장치상 각각의 파티션(partition)에 대하여 객체의 단일 레벨 리스트를 포함하는 객체 파일 시스템으로 객체(124-126)를 관리한다. 이것은 평면 파일 시스템(flat file system)이라 불린다. 각각의 장치(110 및 112)에서 저장 매체상에 저장된 객체(124-126)는 객체 지향 장치 모드에서 동작하는 장치(110 또는 112)상에서 용량 할당시 가장 작은 가시적인 유니트이다. 저장 장치상 객체는 단일 식별자와 연관된 순서적인 섹터 세트를 포함한다. 데이터는 식별자 및 오프셋에 의해 객체에 참조된다. 객체는 그 자체가 저장 장치(110 또는 112)에 의해 저장 매체상에 할당되고 배치되고, 운영 시스템은 종래 아키텍쳐에서 행한 바와같이, 데이터의 섹터를 관리하는 대신, 이들 객체 구조에서 파일 및 메타데이터를 관리한다.According to one aspect of the invention, information stored onstorage devices 110 and 112 is stored in the system shown in FIG. Eachstorage device 110 and 112 is an object oriented device that operates in a mode in which data is organized and accessed as objects 124-126 rather than in order of sectors. Object-orienteddevices 110 and 112 manage objects 124-126 with an object file system that includes a single level list of objects for each partition on a particular device. This is called a flat file system. The objects 124-126 stored on the storage medium in therespective devices 110 and 112 are the smallest visible units in capacity allocation on thedevice 110 or 112 operating in object oriented device mode. An object on storage includes an ordered set of sectors associated with a single identifier. Data is referenced to objects by identifiers and offsets. The objects themselves are allocated and placed on the storage medium bystorage device 110 or 112, and the operating system manages files and metadata in these object structures instead of managing sectors of data, as has been done in conventional architectures. Manage.

객체(124-126)는 인터페이스(128)에 의해 액세스되고 상기 인터페이스에서 객체들은 객체(124-126)의 속성 및 데이터를 액세스 및 조정하기 위하여 리퀘스터(116-120)에 의해 호출될수있는 다수의 메소드들을 노출시킨다. 따라서, 도 2에 도시된 바와같이, 요청(130)는 리퀘스터(116-120)로부터 발생한다. 바람직한 실시예에서, 리퀘스터(116-120)는 컴퓨터 시스템, 또는 클러스터 또는 시스템의 네트워크의 엘리먼트이고, 객체(124-126)를 포함하는 저장 장치상에서 작동하기 위하여 요청(130)를 발생시킨다. 따라서, 리퀘스터(116-120)는 양쪽 클라이언트 및 서버일수있다. 임의의 경우에, 리퀘스터(116-120)중 하나에 의해 발생된 요청(130)는 상기 응용에서 추후에 상세히 기술될 바와같이 하나 이상의 객체(124-126)의 조종을 차례로 유발하는 인터페이스(128) 메소드중 하나를 호출한다.Objects 124-126 are accessed by interface 128, where objects may be called by requester 116-120 to access and manipulate the attributes and data of object 124-126. Expose methods. Thus, as shown in FIG. 2, request 130 originates from requester 116-120. In a preferred embodiment, requesters 116-120 are elements of a computer system, or a cluster or network of systems, and generate a request 130 to operate on a storage device that includes objects 124-126. Thus, requesters 116-120 may be both client and server. In any case, the request 130 generated by one of the requesters 116-120 in turn results in the manipulation of one or more objects 124-126 as described in detail later in the application. Call one of the methods.

도 3a 및 3b는 저장 장치(110-112)상에 저장된 객체에 액세스하기 위하여 사용될수있는 두개의 다른 구성의 블록도이다. 간략화를 위하여, 단지 하나의 리퀘스터(116) 및 단일 객체 지향 저장 장치(110)가 도 3a 및 3b에 도시된다. 리퀘스터(116)가 객체(객체 124-126)를 개방하기 원한다면, 리퀘스터(116)는 저장 장치(110)상의 객체에 액세스하기 위하여, 직접적으로 저장 장치(110)에 액세스하거나, 파일 서버(114) 및 위치 정보로부터 허가를 요청하기 위하여 요청될수있다. 파일 서버(114)가 저장 장치(110)에 대한 액세스를 제어하는 범위는 우선적으로 시스템(100)의 특정 구현의 보안 요청 기능이다.3A and 3B are block diagrams of two different configurations that may be used to access objects stored on storage devices 110-112. For simplicity, only onerequester 116 and a single object orientedstorage device 110 are shown in FIGS. 3A and 3B. Ifrequester 116 wants to open object (objects 124-126),requester 116 can accessstorage 110 directly, or a file server (e.g., to access an object on storage 110). 114) and from the location information may be requested to request permission. The extent to whichfile server 114 controls access tostorage device 110 is primarily a security request function of a particular implementation ofsystem 100.

도 3a에 도시된 블록에서, 시스템(100)은 안전한 것이 가정된다. 즉, 레지스터(116) 및 저장 장치(110) 사이의 명령 정보 및 데이터 전송을 보호하기 위한 요청이 없다. 상기 실행에서, 관리 기능을 위하여 존재하는 파일 서버(114)가 존재할수있지만, 파일 서버(114)는 저장 장치(110)와 리퀘스터 상호작용을 감시할 필요가 없다.In the block shown in FIG. 3A, it is assumed thatsystem 100 is secure. That is, there is no request to protect the command information and data transfer between theregister 116 and thestorage device 110. In this implementation, there may be afile server 114 present for management functions, but thefile server 114 does not need to monitor the requester interaction with thestorage device 110.

상기 실행에서, 리퀘스터(116)는 저장 장치(110)상 객체를 직접적으로 액세스하고 상기 저장 장치상에 객체를 형성하기 위한 위치내에 있다. 따라서 리퀘스터(116)는 객체들이 리퀘스터(116)에 본래 부가되어 있을지라도 객체를 개방, 판독, 기입 및 폐쇄할 수 있다. 상기 동작은 상기 응용에서 추후에 상세히 기술된다. 그러나 간략화를 위하여 이 시점에서 요약만 제공된다. 저장 장치(110)상 객체를 판독하기 위하여, 리퀘스터(116)는 저장 장치(110)상 논리적 볼륨 또는 파티션, 및 그 위에 저장된 객체에 대한 탐색 시작 메소드를 나타내는 하나 이상의 객체로부터 우선적으로 판독된다. 그 다음 리퀘스터(116)는 루트 디렉토리일수있는 객체를 개방하고 판독한다. 이런 객체로부터, 다른 객체를 배치하는 것은 올바르고, 루트 디렉토리의 내용을 바탕으로 한다. 리퀘스터(116)는 목표된 데이터가 배치될 때까지 상기 처리를 반복한다. 데이터는 객체 식별(객체 ID) 및 객체 내의 변위에 의해 참조된다.In this implementation,requester 116 is in a position to directly access the object onstorage device 110 and form the object on the storage device. Thus, requester 116 can open, read, write, and close an object even though the objects are originally added torequester 116. The operation is described in detail later in this application. However, for simplicity, only a summary is provided at this point. To read an object onstorage 110,requester 116 is preferentially read from one or more objects representing a logical volume or partition onstorage 110 and a search start method for the object stored thereon.Requester 116 then opens and reads the object, which may be the root directory. From these objects, placing other objects is correct and based on the contents of the root directory. The requester 116 repeats the above process until the target data is placed. Data is referenced by object identification (object ID) and displacement within the object.

도 3b에 도시된 제 2 실행에서, 보안이 요청된다. 그러므로, 파일 서버(114)는 목표된 보호 레벨에 필요한 정도로 리퀘스터(116) 및 저장 장치(110) 사이의 I/O 체인에 끼워진다. 하나의 바람직한 실시예에서, 리퀘스터(116)는 I/O 동작 세트를 수행하기 위하여 파일 서버(114)로부터 허가를 우선 요청하여야 한다. 그 다음 파일 서버(114)(부가적인 보안을 위하여 리퀘스터(116)로부터 저장 위치 정보를 보류할 수 있음)는 리퀘스터가 저장 장치(110)과 직접적으로 통신하기에 충분한 정보를 리턴함으로써 리퀘스터(116)로부터의 요청을 인정한다. 저장 장치(110)가 파일 서버(114)에 로그할때 저장 장치(110)가 보안 파라미터로 알려지기 때문에, 저장 장치(110)는 그 적당하게 구성되고 파일 서버(114)로부터 유효한 허용을 포함하는 암호화된 데이터를 포함하지 않으면 I/O 요청을 허용하지 않는다.In the second implementation shown in FIG. 3B, security is requested. Therefore,file server 114 fits into the I / O chain betweenrequester 116 andstorage 110 to the extent necessary for the desired level of protection. In one preferred embodiment,requester 116 must first request permission fromfile server 114 to perform a set of I / O operations. File server 114 (which may withhold storage location information fromrequester 116 for additional security) then returns the requester by returning enough information for the requester to communicate directly withstorage device 110. Acknowledge request from 116. Becausestorage device 110 is known as a security parameter whenstorage device 110 logs tofile server 114,storage device 110 is configured appropriately and contains valid permissions fromfile server 114. It does not allow I / O requests unless it contains encrypted data.

그 다음, 상기 처리는 도 3a에 대해 기술된 것과 유사한 방식으로 진행한다. 그러나, 각각의 명령과 관계된 페이로드는 매우 다르다. 예를들어, 보안이 요청되는 경우(도 3b에 도시됨), 리퀘스터(116) 및 저장 장치(110) 사이로 통과하는 명령 및 데이터는 암호화된다. 게다가, 허가 정보는 리퀘스터(116)로부터 저장 장치(110)로 제공된 명령 파라미터에 부가되어야 한다.The process then proceeds in a similar manner to that described for FIG. 3A. However, the payload associated with each command is very different. For example, if security is requested (shown in FIG. 3B), the commands and data passing betweenrequester 116 andstorage 110 are encrypted. In addition, authorization information must be added to the command parameters provided from the requester 116 to thestorage device 110.

바람직한 실시예에서 저장 장치(110 및 112)가 하드 디스크 드라이브를 포함하기 때문에, 디스크 드라이브에 대한 간략한 논의가 바람직하다. 도 4는 저장 장치(110)로서 실행될수있는 하드 디스크 드라이브의 사시도이다. 디스크 드라이브(110)에서, 다수의 디스크(132)는 하우징(136)내의 스핀들 모터 어셈블리(134)에 대하여 저널링(journal)된다. 각각의 디스크(132)는 138로 개략적으로 지시된 다수의 동심원 기록 트랙을 가진다. 각각의 트랙(138)은 다수의 파티션으로 파티션된다(도 6에서 더 상세히 기술됨). 데이터는 트랙(138)내의 특정 파티션으로 불리는 디스크(132)상에 저장되거나 검색된다. 작동기 아암 어셈블리(140)는 하우징(136)의 하나의 모서리에 회전 가능하게 설치된다. 작동기 아암 어셈블리(140)는 디스크(132)로부터 정보를 판독하고 상기 디스크에 정보를 기입하기 위하여 판독/기입 헤드, 또는 트랜스듀서(도시되지 않음)를 가지는 슬라이더를 지지하는 다수의 헤드 짐벌 어셈블리(142)를 지지한다.Sincestorage devices 110 and 112 in the preferred embodiment include hard disk drives, a brief discussion of disk drives is desirable. 4 is a perspective view of a hard disk drive that may be implemented as thestorage device 110. In thedisk drive 110, the plurality ofdisks 132 are journaled relative to thespindle motor assembly 134 in thehousing 136. Eachdisc 132 has a plurality of concentric recording tracks, indicated schematically at 138. Eachtrack 138 is partitioned into multiple partitions (described in more detail in FIG. 6). Data is stored or retrieved ondisk 132 called a specific partition withintrack 138. Theactuator arm assembly 140 is rotatably installed at one corner of thehousing 136. Theactuator arm assembly 140 supports a plurality ofhead gimbal assemblies 142 that support a slider having a read / write head, or a transducer (not shown) for reading information from and writing information to thedisk 132. ).

음성 코일 모터(144)는 슬라이더(142)상 트랜스듀서가 화살표(146)로 지시된 아크를 따라 디스크(132)의 표면에 걸쳐 이동하도록 작동기 아암 어셈블리(140)를 순방향 및 역방향으로 정밀하게 회전시키도록 제공된다. 도 4는 공지된 방식으로 디스크 드라이브(110)의 임의의 동작을 제어하는데 사용되는 디스크 드라이브 제어기(148)를 블록도 형태로 도시한다. 그러나, 본 발명에 따라, 디스크 드라이브 제어기(148)는 디스크(132)에 저장된 객체(124-126)에 대해 인터페이스(128)를 실행하는데 사용된다.Voice coil motor 144 precisely rotatesactuator arm assembly 140 in the forward and reverse directions such that the transducer onslider 142 moves across the surface ofdisk 132 along the arc indicated byarrow 146. Is provided. 4 shows in block diagram form adisk drive controller 148 that is used to control any operation of thedisk drive 110 in a known manner. However, in accordance with the present invention,disk drive controller 148 is used to implement interface 128 on objects 124-126 stored ondisk 132.

도 5는 도 1에 도시된 시스템(100)내에 고정할때 디스크 드라이브(110) 일부의 블록도이다. 도 5에서, 디스크 드라이브 제어기(148)는 인터페이스(128)를 실행하는 제어 컴포넌트(150)를 포함한다. 객체(124-126)는 디스크(132)를 구성하는 저장 매체상에 저장된다. 요청 컴포넌트(152)는 리퀘스터(116-120)상에서 실행되고, 인터페이스(128)에서 메소드들을 호출하는 요청들을 논리적으로 공식화하도록 형성된다. 하나의 메소드의 호출중에 제어 컴포넌트(150)는 바람직한 방식으로 식별된 객체를 조종하기 위하여 임의의 태스크(task)를 수행한다. 제어 컴포넌트(150)는 임의의 식별된 객체와 연관된 데이터 또는 속성을 포함할수있는 이벤트를 리턴한다. 상기 이벤트는 리퀘스터(116-120)에 의해 호출된 특정 메소드를 바탕으로 리턴된다.FIG. 5 is a block diagram of a portion ofdisk drive 110 when secured withinsystem 100 shown in FIG. In FIG. 5,disk drive controller 148 includes acontrol component 150 that executes interface 128. Objects 124-126 are stored on the storage media that make updisk 132. Therequest component 152 executes on the requester 116-120 and is configured to logically formulate requests to invoke methods on the interface 128. During the invocation of one method, thecontrol component 150 performs any task to manipulate the identified object in the desired manner.Control component 150 returns an event that may include data or attributes associated with any identified object. The event is returned based on the specific method called by requester 116-120.

객체 지향 장치(110-112)가 블록 지향 장치를 가지는 운영 시스템에 의해 전달된 기능성과 동일한 기능성을 제공하도록 하기 위하여, 장치(110-112)상 저장 공간은 유사하게 관리되어야 한다. 따라서, 하나의 바람직한 실시예에서, 저장 장치(110-112)상 구성층은 저장되는 객체들(124-126) 상부에 제공된다. 하나의 바람직한 실시예에서, 객체 지향 저장 장치(110-112)는 파티션이라 불리는 하나 이상의 상호 배제 지역에 디스크 공간을 할당하기 위하여 제공한다. 파티션은 도 6을 참조하여 상세히 기술된다. 하나의 파티션내에 리퀘스터(116-120)는 객체를 생성할 수 있다. 하나의 바람직한 실시예에서, 하나의 파티션내의 구조는 간단한 평면 구조이다. 이런 구성에, 임의의 운영 시스템이 그 자신의 구조를 맵핑할 수 있다.In order for the object oriented devices 110-112 to provide the same functionality as the functionality delivered by an operating system having a block oriented device, the storage space on the devices 110-112 should be similarly managed. Thus, in one preferred embodiment, a component layer on storage devices 110-112 is provided over the objects 124-126 being stored. In one preferred embodiment, object-oriented storage devices 110-112 provide for allocating disk space in one or more mutually exclusive areas called partitions. The partition is described in detail with reference to FIG. Requesters 116-120 in one partition may create objects. In one preferred embodiment, the structure in one partition is a simple planar structure. In such a configuration, any operating system can map its own structure.

도 6은 디스크(132)중 하나 같은 저장 매체상 저장 공간의 일부를 도시한다. 저장 공간은 장치 제어 객체(154), 장치 관련 객체(156), 및 파티션 0(158로 표시), 파티션 1(160으로 표시) 및 파티션 N(숫자 162로 표시)으로서 라벨링된 다수의 파티션을 포함한다. 각각의 파티션은 파티션 제어 객체(164), 파티션 객체 리스트(166) 및 다수의 데이터 객체(168)(데이터 객체 0 내지 데이터 객체 N으로 라벨링됨) 같은 다수의 객체를 포함한다.6 illustrates a portion of storage space on a storage medium, such as one of thedisks 132. The storage space includes adevice control object 154, a device relatedobject 156, and a number of partitions labeled as partition 0 (denoted 158), partition 1 (denoted 160) and partition N (denoted 162). do. Each partition includes a number of objects, such aspartition control object 164,partition object list 166, and a number of data objects 168 (labeleddata objects 0 through data object N).

각각의 객체와 관련된 것은 한세트의 속성이다. 본 발명의 일측면에 따라, 액세스 제어 속성이 제공되어 설정 속성 메소드(상기 응용에서 추후에 자세히 논의됨)에 의해 세팅되고 특정 객체에 대한 액세스가 제어되는 수단을 제공한다. 액세스 제어 속성 버젼 수를 변화시킴으로써, 임의의 리퀘스터(116-120)는 특정 객체에 대해 거부되거나 제공되고, 액세스될수있다.Associated with each object is a set of attributes. In accordance with one aspect of the present invention, an access control attribute is provided to provide a means for setting by a set attribute method (discussed later in the application above) and for controlling access to a particular object. By changing the number of access control attribute versions, any requester 116-120 can be denied or provided for a particular object, and accessed.

클러스터 속성은 특정 객체가 저장 시스템의 다른 객체 근처에 배치되는지를 나타내는 속성이다. 클론(clone) 속성은 특정 객체가 저장 시스템의 다른 객체를 복사함으로써 형성되는지를 나타낸다. 한그룹의 크기 속성은 특정 객체의 크기 특성을 형성한다. 예를들어, 크기 속성 그룹은 객체내에 기입된 가장 큰 오프셋을 나타내는 정보, 객체에 할당된 블록 수, 객체내에 데이터를 저장하기 위하여 사용된 블록수 및 객체내의 블록당 바이트 수를 포함한다.The cluster attribute is an attribute that indicates whether a particular object is placed near other objects in the storage system. The clone attribute indicates whether a particular object is formed by copying another object from the storage system. The size attribute of a group forms the size characteristics of a particular object. For example, the size attribute group includes information indicating the largest offset written in the object, the number of blocks allocated to the object, the number of blocks used to store data in the object, and the number of bytes per block in the object.

한그룹의 시간 속성은 객체가 형성될때를 가리키고, 객체의 최종 시간 데이터는 변형되고 최종 시간 속성은 객체에서 변형된다. 객체는 파일 시스템의 임의의 데이터가 변형되고 파일 시스템의 임의의 속성이 변형되는 최종 시간을 형성하는 한세트의 속성을 포함한다. 다른 속성은 다른 파라미터, 임의의 주어진 객체의 특성 또는 특징을 가리키기 위하여 제공될수있다.The time attribute of a group indicates when an object is formed, the final time data of the object is transformed and the final time attribute is transformed in the object. An object contains a set of attributes that form the last time any data in the file system is modified and any attribute in the file system is modified. Other attributes may be provided to indicate other parameters, characteristics or characteristics of any given object.

각각의 객체는 객체를 형성하기 위한 명령에 응답하여 특정 저장 장치(110-112)에 의해 선택되고 리퀘스터(116-120)에 리턴되는 객체 식별자와 연관된다. 식별자는 바람직하게 특정 길이의 표시되지 않은 정수이다. 바람직한 실시예에서, 식별자의 길이는 특정 저장 장치(110-112)에 의해 특정화된 크기에 대한 디폴트이거나, 장치 속성으로서 세팅될수있다. 게다가, 하나의 바람직한 실시예에서, 식별자의 미리 형성된 서브세트(ID)는 공지된 객체들, 특정 용도, 및 바람직하게 수행될수있는 다른 특정 기능들을 위하여 예약될 수 있다.Each object is associated with an object identifier selected by the particular storage device 110-112 and returned to the requester 116-120 in response to a command to form the object. The identifier is preferably an unspecified integer of a particular length. In a preferred embodiment, the length of the identifier may be the default for the size specified by the particular storage device 110-112 or set as a device attribute. In addition, in one preferred embodiment, a preformed subset of identifiers (ID) may be reserved for known objects, for specific uses, and for other specific functions that may be preferably performed.

도 6은 저장 매체가 항상 특정 객체 ID를 가지는 잘 공지된 다수의 객체를 포함하는 것을 도시한다. 몇몇 경우, 상기 잘 공지된 객체는 모든 장치 또는 모든 파티션에 존재한다.FIG. 6 shows that a storage medium includes a number of well known objects that always have a particular object ID. In some cases, such well known objects exist on every device or every partition.

예를들어, 하나의 잘 공지된 객체는 각각의 장치(110-112)에 의해 유지되는 속성을 포함하고, 장치 그 자체 또는 장치상 모든 객체에 관련된 장치 제어 객체(154)이다. 상기 속성은 상기 응용예에서 이하 기술되는 Set_Attribute 메소드에 의해 유지된다. 바람직한 실시예에서, 하나의 장치(110-112)에는 하나의 장치 제어 객체(154)가 있다.For example, one well known object is adevice control object 154 that includes attributes maintained by each device 110-112, and is related to the device itself or to all objects on the device. The attribute is maintained by the Set_Attribute method described below in the application. In a preferred embodiment, there is onedevice control object 154 in one device 110-112.

테이블 1은 한세트의 바람직한 장치 제어 객체(DCO) 속성을 도시한다.Table 1 shows a set of preferred device control object (DCO) attributes.

테이블 1Table 1

형태shape이름name바이트byte의미meaning보안security클럭Clock88모노토닉 카운터Monotonic counter마스터 키master key88장치 키를 제어하는 마스터키Master key to control device keys장치 키Device key88파티션 키를 제어하는 장치 키Device key that controls the partitioning key보호 레벨Protection level1One보호 옵션 형성Forming protection options파티션partition파티션 카운트Partition count1One장치 파티션 수Number of device partitions장치 속성Device properties객체 속성Object properties88장치상에 모든 객체와 연관된 특성 형성Create properties associated with all objects on the device

하나의 바람직한 실시예에서, DCO 속성은 모노토닉(monotonic) 카운터인 클럭, 암호화 키를 포함하는 마스터 키, 또는 장치상 다른 모든 키를 제어하는 다른 마스터 키, 및 파티션 키를 제어하고 파티션을 락킹(locking)하기 위하여 사용될수있는 장치 키를 포함한다. 상기 속성은 소정 보호 레벨을 식별하고 관련된 보안 메소드를 가지는 보호 레벨 키, 상기 장치상 다수의 파티션을 형성하는 파티션 카운트, 및 특정 장치상 모든 객체가 액세스되는 것과 관련된 특성을 형성하는 객체 속성을 포함한다.In one preferred embodiment, the DCO attribute controls a partition that is a monotonic counter, a clock, a master key containing an encryption key, or another master key controlling all other keys on the device, and a partition key (locking partitions) Contains device keys that can be used for locking. The attribute includes a protection level key that identifies a given level of protection and has an associated security method, a partition count that forms multiple partitions on the device, and an object property that forms a property associated with all objects on a particular device being accessed. .

다수의 저장 장치(110-112)를 채우는 객체를 적당하게 관리하기 위하여, 각각의 저장 장치(110-112)는 바람직하게 다양한 장치(110-112) 사이 연관성을 형성하는 장치 관련 객체(156)를 포함한다. 예를들어, 저장 장치(110 및 112)가 미러된 쌍의 장치이거나, 어레이된 세트의 부재인 경우, 장치 연관 객체(156)는 이런 관계를 식별한다. 테이블 2는 장치 관련 객체(156)의 속성을 도시한다.In order to properly manage objects that fill multiple storage devices 110-112, each storage device 110-112 preferably provides device relatedobjects 156 that form an association between the various devices 110-112. Include. For example, ifstorage devices 110 and 112 are mirrored pairs of devices, or in the absence of an arrayed set,device association object 156 identifies this relationship. Table 2 shows the attributes of the device relatedobject 156.

테이블 2Table 2

이름name바이트byte의미meaning연관 식별자Association Identifier22이 세트의 유일한 IDUnique id for this set연관 형태Association form22연관 종류Association type맴버쉽 목록Membership Listnn연관 식별자Association Identifier22연관 형태Association form22맴버쉽 목록Membership Listnn

상기 속성은 각각 주어진 세트의 연관 장치에 대한 유일한 식별자인 연관 식별자를 바람직하게 포함한다. 상기 속성은 상기 장치 사이의 연관 종류(예를들어, 미러 쌍, RAID 5 등)를 형성하는 연관 형태를 포함한다. 상기 속성은 상기된 연관 부재인 장치(110-112)를 간단히 식별하는 맴버쉽(membership) 목록을 포함한다.The attribute preferably includes an association identifier, each of which is a unique identifier for a given set of association devices. The attribute includes an association type that forms the type of association between the devices (eg, mirror pair, RAID 5, etc.). The attribute includes a membership list that simply identifies the devices 110-112 that are the above-mentioned associated members.

저장 장치(110-112)상 각각의 파티션(158, 160 및 162)은 바람직하게 단일 파티션 특성을 포함하는 파티션 제어 객체(164)를 포함한다. 객체(164)는 상기 파티션뿐 아니라 파티션의 모든 객체에 포함된 임의의 객체 속성을 기술한다. 각각의 장치(110-112)는 바람직하게 장치상에 형성된 각각의 파티션에 대한 하나의 파티션 제어 객체(164)를 포함한다. 도 6은 각각의 파티션내에 저장된 파티션 제어 객체를 도시하지만, 이런 필요성은 상기 경우가 아니다. 파티션 제어 객체는 대신 파티션상 상기 평면 파일 시스템에 저장될 수 있다.Eachpartition 158, 160, and 162 on storage devices 110-112 preferably includes apartition control object 164 that includes a single partition characteristic.Object 164 describes any object attribute contained in the partition as well as all objects in the partition. Each device 110-112 preferably includes onepartition control object 164 for each partition formed on the device. 6 illustrates a partition control object stored in each partition, but this need is not the case. Partition control objects may instead be stored in the planar file system on a partition.

테이블 3은 파티션 제어 객체(168)에 포함된 속성 수를 나타낸다.Table 3 shows the number of attributes included inpartition control object 168.

테이블 3Table 3

형태shape이름name바이트byte의미meaning마스터 키master key88암호화 키Encryption key현재 작업 키Current operation key88이전 작업 키Previous action key88파티션 속성Partition properties객체 속성Object properties88파티션시 모든 객체와 관련된 특성 형성Create properties related to all objects at partition time

상기 속성은 전체 파티션을 위한 암호화 키를 형성하고 현재 작업 키를 세팅하기 위하여 사용될수있는 마스터 키를 포함한다. 상기 속성은 명령 및 데이터 메시지의 암호화 및 복호화를 위하여 사용된 현재 작업 키 및 이전 작업 키를 포함한다. 파티션 제어 객체(164)는 지정된 파티션에서 모든 객체와 연관된 객체 속성을 포함한다.The attribute contains a master key that can be used to form an encryption key for the entire partition and to set the current working key. The attribute includes the current work key and the previous work key used for encrypting and decrypting command and data messages.Partition control object 164 includes object attributes associated with all objects in the specified partition.

도 6은 하나의 파티션이 저장 매체상에 형성될때 제어 컴포넌트(150)에 의해 만들어진 객체인 파티션 객체 목록(166)을 포함한다. 파티션 객체 목록(166)은 모든 파티션에서 동일 식별자를 가지며 저장 매체상에서 실행된 객체 파일 시스템을 네비케이팅하기 위한 시발점을 구성한다. 테이블 5는 각각의 파티션 객체 리스트와 연관된 속성 목록을 도시한다.6 includes apartition object list 166 that is an object created by thecontrol component 150 when one partition is formed on a storage medium.Partition object list 166 constitutes a starting point for navigating an object file system executed on a storage medium with the same identifier in all partitions. Table 5 shows a list of attributes associated with each partition object list.

테이블 4Table 4                

분야Field바이트byte객체 IDObject id88ID는 이런 객체상에서 임의의 개방, 판독, 기입, 폐쇄를 위하여 사용된다.The ID is used for any opening, reading, writing or closing on this object.사용자 데이터User dataNNPOL 속성은 이것을 설정하고, 값을 알기 위하여 획득 속성을 사용한다.The POL attribute sets this and uses the acquisition attribute to know the value.

테이블 4에 도시된 바와같이, 객체는 바람직하게 파티션에 남아있는 모든 객체, 및 각각의 객체에 할당된 사용자 공간 볼륨에 대한 객체 식별자(또는 객체 ID)의 목록을 포함한다. 객체 식별자는 리퀘스터에 의해 객체를 개방, 판독, 기입 및 폐쇄하기 위하여 사용된다. 게다가, 사용자는 파티션 객체 목록에서 사용자 데이터 속성을 세팅함으로써 각각의 객체 ID에 대한 사용자 공간을 할당한다. 파티션 객체 목록(166) 다음, 각각의 파티션은 다수의 데이터 객체(168)를 포함한다. 각각의 데이터 객체(168)는 바람직하게 테이블 1에서 설정된 다수의 속성을 포함하고, 데이터 저장 시스템의 특정 실행에 따라 부가적인 속성을 포함할 수 있다.As shown in Table 4, the object preferably includes a list of all objects remaining in the partition, and an object identifier (or object ID) for the user space volume assigned to each object. The object identifier is used by the requester to open, read, write, and close the object. In addition, the user allocates user space for each object ID by setting user data attributes in the partition object list. Next to thepartition object list 166, each partition includes a number of data objects 168. Each data object 168 preferably includes a number of attributes set in Table 1, and may include additional attributes depending on the particular implementation of the data storage system.

객체 지향 저장 장치(110-112)는 리퀘스터(116-120)에게 데이터를 제공하거나, 데이터를 저장하기 위한 요청를 지원한다. 게다가, 저장 장치(110-112)는 종래 기술 아키텍쳐에서 운영 시스템에서 다른 컴포넌트에 행해진 다른 기능에 대한 책임을 나타낸다. 장치(110-112)상 객체와 관련된 속성 크기 뿐 아니라 공간 관리는 장치(110-112) 그 자체에 의해 수행된다. 상기 기능은 각각의 저장 장치(110-112)에서 제어 컴포넌트(150)에 의해 실행된 인터페이스(128)에 의해 지원된 메소드를 호출함으로써 바람직하게 수행된다. 호출될수있는 다수의 메소드들은 본 명세서에서 추후에 상세히 논의된다. 그러나, 상기 메소드의 이해를 보다 용이하게 하기 위하여, 도 7a 및 7b는 본 발명의 일측면에 따른 객체 지향 파일 시스템의 네비게이션을 도시하는 흐름도를 제공한다. 도 7a 및 7b의 논의는 하기에 설정된 각각의 메소드의 상세한 논의전에 본 발명의 이해를 촉진할 것이다.Object-oriented storage devices 110-112 provide data to requesters 116-120, or support requests to store data. In addition, storage devices 110-112 represent the responsibility for other functions performed on other components in the operating system in the prior art architecture. Space management as well as attribute sizes associated with objects on devices 110-112 are performed by device 110-112 itself. The function is preferably performed by invoking a method supported by the interface 128 executed by thecontrol component 150 in each storage device 110-112. Many of the methods that can be called are discussed in detail later herein. However, to facilitate understanding of the method, FIGS. 7A and 7B provide a flow diagram illustrating navigation of an object oriented file system in accordance with an aspect of the present invention. The discussion of FIGS. 7A and 7B will facilitate an understanding of the present invention prior to a detailed discussion of each method set forth below.

블록 170로부터 204로 연장하는 도 7a 및 7b는 저장장치(110-112)의 하나에서 특정 파티션의 객체를 찾는 것을 도시한다. 첫째, 리퀘스터(116)는 장치 제어 객체(154)의 장치 속성을 얻는다. 이것은 블록(172)으로 표시된다. Get_Dco_Attribute 메소드의 호출은 제어 컴포넌트(150)가 장치 제어 객체(154)에 저장된 속성을 리턴하게 한다. 이것은 블록(174)에 의해 지시된다. 그 다음 리퀘스터(116)는 장치 제어 객체(154)로부터 리턴된 속성을 바탕으로 주어진 파티션을 선택한다. 이것은 블록(176)에 의해 지시된다.7A and 7B extending fromblock 170 to 204 illustrate finding an object of a particular partition in one of the storage devices 110-112. First,requester 116 obtains device properties ofdevice control object 154. This is indicated byblock 172. Calling the Get_Dco_Attribute method causes thecontrol component 150 to return an attribute stored in thedevice control object 154. This is indicated byblock 174.Requester 116 then selects the given partition based on the attributes returned fromdevice control object 154. This is indicated byblock 176.

일단 파티션이 리퀘스터(116)에 의해 선택되면, 그 다음 리퀘스터(116)는 블록(173)에 의해 지시된 바와같이 Get_DAO_Attribute을 호출한다. 이것은 제어 컴포넌트(150)가 저장 매체(110)상에 저장된 장치 연관 객체(156)로부터 속성을 얻게한다. 그 다음 제어 컴포넌트(150)는 블록(175)에 의해 지시된 바와같이 리퀘스터(116)에 장치 관련 속성을 리턴한다. 장치 관련 속성 및 장치 제어 속성을 바탕으로, 리퀘스터(116)는 문의하기 위하여 한 파티션을 선택한다. 이것은 블록(176)에 의해 지시된다.Once the partition is selected byrequester 116, requester 116 then calls Get_DAO_Attribute as indicated byblock 173. This allows thecontrol component 150 to obtain attributes from thedevice association object 156 stored on thestorage medium 110.Control component 150 then returns device related attributes to requester 116 as indicated byblock 175. Based on the device related attributes and the device control attributes,requester 116 selects a partition to query. This is indicated byblock 176.

그 다음 리퀘스터(116)는 제어 컴포넌트(158)가 리퀘스터(116)에 의해 문의될 특정 파티션과 연관된 파티션 제어 객체(164)에서 발견된 속성을 얻도록 Get_PCO_Attribute 메소드를 호출한다. 이것은 제어 컴포넌트(150)가 파티션 제어 객체 속성을 획득하고 리턴하도록 한다. 이것은 블록(178 및 180)으로 지시된다. 만약 선택된 파티션의 객체가 리퀘스터에게 관심 객체가 아니면, 리퀘스터는 블록(182 및 176)에 지시된 바와같이 다른 파티션을 선택한다.Requester 116 then calls the Get_PCO_Attribute method such thatcontrol component 158 gets the attributes found inpartition control object 164 associated with the particular partition to be queried byrequester 116. This allows thecontrol component 150 to obtain and return partition control object attributes. This is indicated byblocks 178 and 180. If the object of the selected partition is not the object of interest to the requester, the requester selects another partition as indicated inblocks 182 and 176.

그러나, 리퀘스터(116)가 관심 파티션을 발견했다는 것을 가정하면, 리퀘스터는 블록(184)에 의해 지시된 바와같이 선택된 파티션에 대한 Get_POL_Attribute 호출한다. 이 메소드는 제어 컴포넌트(150)가 선택된 파티션과 연관된 파티션 객체 목록(150)으로부터 속성을 얻게한다. 그 다음 이들 속성은 블록(186)에 지시된 바와같이 리퀘스터(116)에 제공된다.However, assuming thatrequester 116 has found the partition of interest, the requester calls Get_POL_Attribute for the selected partition as indicated byblock 184. This method causes thecontrol component 150 to obtain attributes from thepartition object list 150 associated with the selected partition. These attributes are then provided to requester 116 as indicated inblock 186.

다음, 리퀘스터(116)는 Open_Read_Only_POL 메소드를 호출한다. 이것은 블록(188)에 의해 지시된다. 하기에 더 상세히 논의된 바와같이, 제어 컴포넌트(150)는 선택된 파티션과 관련된 파티션 객체 목록(166)에 저장된 데이터를 얻지만, 데이터가 변경되거나 확장될수없도록 데이터가 판독만을 위하여 제공되는 것을 가리키기 위하여 상기 객체의 속성을 변형한다. 이것은 블록(190)으로 나타낸다.Next,requester 116 calls the Open_Read_Only_POL method. This is indicated byblock 188. As discussed in more detail below, thecontrol component 150 obtains data stored in thepartition object list 166 associated with the selected partition, but to indicate that the data is provided for reading only so that the data cannot be changed or expanded. Modifies the attributes of the object. This is represented byblock 190.

그 다음 리퀘스터는 제어 컴포넌트(150)가 선택된 파티션의 객체 목록을 리퀘스터(116)에 의해 고찰하게 하는 Read_POL 메소드를 호출한다. 이것은 블록(194)에 의해 지시된다. 선택된 파티션에서 목표된 객체를 선택한후, 리퀘스터(116)는 제어 컴포넌트(150)가 파티션 객체 목록을 폐쇄하게 하는 close_POL 메소드를 호출한다. 이것은 블록(196)에 의해 지시된다.The requester then invokes a Read_POL method that causes thecontrol component 150 to consider by the requester 116 a list of objects in the selected partition. This is indicated byblock 194. After selecting the target object in the selected partition, requester 116 calls the close_POL method that causescontrol component 150 to close the partition object list. This is indicated byblock 196.

목표된 객체 또는 개체들에 대한 객체 ID를 발견한후, 리퀘스터(114)는 Open_xxx_Objectx 메소드를 호출한다. xxx는 리퀘스터에 의해 목표된 특정 데이터 조정을 바탕으로 리퀘스터에 의해 호출된 특정 개방 메소드를 나타낸다. Objectx는 리퀘스터에 의해 조종되거나 액세스될 객체를 식별하는 파티션 객체 목록으로부터의 객체 ID를 나타낸다. 예를들어 xxx 설계는 Open_Updat 동작, 또는 Open_Read_Only 동작을 나타낼수있다. 이들은 하기에 논의되고 이 단계는 블록(198)로 지시된다.After finding the object ID for the target object or objects, requester 114 calls the Open_xxx_Objectx method. xxx represents a specific open method called by the requester based on the specific data manipulation targeted by the requester. Objectx represents the object ID from the list of partition objects that identify the object to be manipulated or accessed by the requester. For example, a xxx design might represent an Open_Updat action, or an Open_Read_Only action. These are discussed below and this step is indicated byblock 198.

그 다음 리퀘스터는 제어 컴포넌트(150)에 의해 리턴된 객체의 목표된 조종을 수행한다. 객체를 조종하기 위하여 사용될수있는 다양한 메소드는 하기에 보다 상세히 논의된다. 이것은 블록(200)에 의해 지시된다.The requester then performs the desired manipulation of the object returned by thecontrol component 150. Various methods that can be used to manipulate an object are discussed in more detail below. This is indicated byblock 200.

최종적으로, 원하는 객체 조종 또는 액세스가 리퀘스터에 의해 완료되었으면, 리퀘스터(116)는 하기에 상세히 기술되는 Close_Objectx 메소드를 호출하고, 리퀘스터(116)에 의해 액세스된 객체를 폐쇄하도록 동작한다.Finally, once the desired object manipulation or access has been completed by the requester,requester 116 invokes the Close_Objectx method described in detail below and operates to close the object accessed byrequester 116.

도 8-24는 장치(110) 같은 객체 지향 저장 장치상에 저장된 객체의 목표된 기능 및 목표된 조정을 수용하기 위하여 리퀘스터에 의해 호출될수있는 여러 예시적인 메소드를 도시한 흐름도이다.8-24 are flow diagrams illustrating various exemplary methods that may be invoked by a requester to accommodate a desired function and a desired adjustment of an object stored on an object oriented storage device, such asdevice 110.

도 8은 Open_Create_Object 메소드를 도시하는 흐름도이다. 리퀘스터(116)가 블록(208)에서 지시된 바와 같이 이런 메소드를 호출하면, 제어 컴포넌트(150)는 객체가 생성되는 특정 파티션과 연관된 파티션 객체 목록에서 새로운 객체 ID를 생성하고 상기 객체 ID를 진입시킨다. 이것은 블록(210)으로 지시된다. 그 다음 제어 컴포넌트(150)는 객체와 연관된 블록 수를 할당함으로써, 및 객체 생성 시간을 가리키며 테이블 1에 기술되고 상기 객체와 연관된 다른 속성을 세팅하기 위하여 객체 속성을 변경함으로써 새로운 객체를 생성한다. 이것은 블록(212)으로 지시된다. 다음, 제어 컴포넌트(150)는 방금 생성된 객체의 새로운 ID와 함께 요청 상태를 리턴한다. 이것은 블록(214)로 지시된다.8 is a flowchart illustrating an Open_Create_Object method. Whenrequester 116 invokes such a method as indicated inblock 208,control component 150 generates a new object ID from the list of partition objects associated with the particular partition in which the object is created and enters the object ID. Let's do it. This is indicated byblock 210. Thecontrol component 150 then creates a new object by allocating the number of blocks associated with the object, and by changing the object properties to indicate the object creation time and set other properties as described in Table 1 and associated with the object. This is indicated byblock 212. Thecontrol component 150 then returns the request status with the new ID of the object just created. This is indicated byblock 214.

객체를 간단히 생성하는 것외에, 리퀘스터(116)는 다수의 옵션을 지정할 수 있다. 예를들어, 하나의 바람직한 실시예에서 리퀘스터(116)는 공간이 특정 최소 크기의 유니트에 할당되는 것을 가리키고, 충돌 특성(UNIX-형 시스템에서의 기입 같은)을 설정하기 위하여, 객체가 보호된 패스워드인지, 객체가 암호화되었는지, 임의의 품질 서비스 시작인지(예를들어, 객체가 백업되는지), 락(lock) 특성인지(예를들어, 객체가 객체 락, 및 파티션 및 장치 락 같은 임의의 다른 락에 의해 락킹되는지), 액세스 제어 버젼인지, 미러 또는 다른 백업 지원인지(모든 업데이트가 다른 객체에 미러되거나, 지정된 다른 방식으로 백업되게 하는)를 지정할 수 있다.In addition to simply creating an object,requester 116 may specify a number of options. For example, in one preferred embodiment requester 116 indicates that space is allocated to a particular minimum size unit, and in order to set collision characteristics (such as writing in UNIX-type systems), the object is protected. Is it a password, is the object encrypted, is any quality service started (e.g., the object is backed up), is a lock feature (e.g., the object is an object lock, and any other such as partitions and device locks You can specify whether it is locked by a lock), an access control version, a mirror or other backup support (allowing all updates to be mirrored to another object or backed up in a different way specified).

리퀘스터(116)가 이런 메소드를 호출하기 위하여 제어 컴포넌트(150)에 제공하는 특정 정보는 보안을 위하여 상기 정보를 요청하는 시스템에서 허가 정보, 객체가 생성될 장치의 파티션, 및 상기된 동작중 임의의 것을 포함한다. 응답하여, 제어 컴포넌트(150)는 하나의 도시적인 실시예에서, 새로운 객체의 ID에 따라 장치상에서 이용할수있는 용량, 요청 상태를 리턴한다.The specific information that requester 116 provides to controlcomponent 150 to invoke such a method may include authorization information, the partition of the device on which the object is to be created, and any of the operations described above in the system requesting the information for security. It includes thing of. In response,control component 150 returns, in one illustrative embodiment, the capacity, request status, available on the device according to the ID of the new object.

이 메소드의 특정 실시예는 객체와 연관된 모든 데이터를 포함하도록 호출될수있다. 상기 경우, 하나의 메소드가 객체를 생성하고, 객체에 기입하고, 객체를 폐쇄하도록 호출될수있다.Certain embodiments of this method may be called to include all data associated with the object. In that case, one method can be called to create the object, write to the object, and close the object.

도 9는 Open_Update_Objectx 메소드를 도시하는 흐름도이다. 리퀘스터(116)가 블록(220)에 의해 지시된 바와같이 이 메소드를 호출할때, 이것은 리퀘스터(116)가 특정 객체를 판독하고 기입할수있게 한다. 이것은 객체의 길이를 연장하기 위하여 제공한다. 상기 메소드가 호출될때, 제어 컴포넌트(150)는 객체가 사용중인 것을 나타내는 특정 객체의 속성을 세팅한다. 리퀘스터(116)는 허가 정보, 객체를 포함하는 파티션 ID, 액세스될 객체의 식별자, 취해질 활동 형태(업데이트 또는 기입) 및 임의의 전술한 옵션을 제공한다. 응답하여, 제어 컴포넌트(150)는 리퀘스터(116)에게 이용할 수 있는 나머지 용량에 따라 리퀘스터의 상태 및 특정 객체의 길이를 리턴한다.9 is a flowchart illustrating an Open_Update_Objectx method. When requester 116 calls this method as indicated byblock 220, this allows requester 116 to read and write a particular object. This provides to extend the length of the object. When the method is called, thecontrol component 150 sets the properties of the particular object indicating that the object is in use.Requester 116 provides the authorization information, the partition ID containing the object, the identifier of the object to be accessed, the type of activity to be taken (update or write) and any of the foregoing options. In response,control component 150 returns the status of the requester and the length of the particular object according to the remaining capacity available torequester 116.

도 10은 Write_Object 메소드를 도시하는 흐름도이다. 리퀘스터(116)가 블록(242)에 의해 지시된 바와같이 이 메소드를 호출할때, 이것은 제어 컴포넌트(150)가 지정된 위치에서 설계된 객체 블록에 지정된 수가 기입되게 한다.10 is a flowchart illustrating a Write_Object method. When requester 116 calls this method as indicated byblock 242, this causescontrol component 150 to write the specified number to the designed object block at the specified location.

기입 메소드는 다른 메소드가 호출되게 할수있다. 예를들어, 만약 페리티 지원이 액세스될 장치(110-112)를 위하여 호출되면, 기입은 기입될 데이터상에서 익스클루시브 Or 동작을 수행하는 익스클루시브 Or 메소드, 및 이미 지정된 하나 이상의 페리티 장치에 기입될 페리티 데이터를 자동적으로 호출할 수 있다.The write method can cause other methods to be called. For example, if parity support is invoked for the device 110-112 to be accessed, the write is an Exclusive Or method that performs an Exclusive Or operation on the data to be written, and one or more parity devices already specified. You can automatically call the parity data to be filled in.

이러한 메소드를 호출하기 위하여, 리퀘스터(116)는 허가 정보, 객체 식별자, 파티션 ID, 객체내에 기입될 블록의 시작 위치, 객체에 기입될 블록의 수, 옵션 정보, 및 기입될 데이터를 제공한다. 일단 이 메소드가 호출되면, 제어 컴포넌트(150)는 제공된 특정 데이터로 특정 객체를 변형한다. 이것은 블록(244)에 의해 지시된다. 그 다음 제어 컴포넌트(150)는 객체의 길이 같은 특정 객체의 필요한 속성, 객체 등과 관련된 시간 스탬프를 변형한다. 이것은 블록(246)에 의해 지시된다. 그 다음 제어 컴포넌트(150)는 필요한 경우 파티션 객체 목록 같은 다른 객체의 필요한 속성을 변형한다. 이것은 블록(248)에 의해 지시된다. 그 다음 제어 컴포넌트(150)는 특정 리퀘스터에 대한 요청 상태를 리턴한다. 이것은 블록(250)에 의해 지시된다.To invoke this method,requester 116 provides authorization information, object identifier, partition ID, start position of block to be written in object, number of blocks to be written to object, optional information, and data to be written. Once this method is called,control component 150 transforms the particular object with the particular data provided. This is indicated byblock 244. Thecontrol component 150 then transforms the time stamps associated with the required properties, objects, etc. of the particular object, such as the length of the object. This is indicated byblock 246.Control component 150 then modifies the necessary properties of other objects, such as a list of partition objects, if necessary. This is indicated byblock 248. Thecontrol component 150 then returns the request status for the particular requester. This is indicated byblock 250.

도 11은 Open_Read_Only_Objectx 메소드를 도시하는 흐름도이다. 이 메소드가 호출될때, 제어 컴포넌트(150)는 리퀘스터(116)가 판독 전용 목적을 위하여 지정된 객체에 액세스하게 한다. 따라서, 이 객체가 블록(230)에 의해 지시된 바와같이 호출될때, 리퀘스터는 허가 정보, 파티션 ID, 객체 ID, 및 옵션 정보를 제공한다. 그 다음 제어 컴포넌트(150)는 객체가 사용중인 것을 나타내는 특정 객체의 속성을 세팅한다. 이것은 블록(232)에 의해 지시된다. 그 다음 제어 컴포넌트(150)는 객체가 리퀘스터에 의해 기입될수없는 것을 나타내는 객체의 판독 전용 속성을 설정한다. 이것은 블록(234)에 의해 지시된다. 그 다음 제어 컴포넌트(150)는 요청 상태 및 지정된 객체의 길이를 리턴한다. 이것은 블록(236)으로 지시된다.11 is a flowchart illustrating an Open_Read_Only_Objectx method. When this method is called, thecontrol component 150 causes therequester 116 to access the specified object for read-only purposes. Thus, when this object is invoked as indicated byblock 230, the requester provides authorization information, partition ID, object ID, and option information. Thecontrol component 150 then sets the properties of the particular object indicating that the object is in use. This is indicated byblock 232. Thecontrol component 150 then sets a read only attribute of the object indicating that the object cannot be written by the requester. This is indicated byblock 234. Thecontrol component 150 then returns the request status and the length of the specified object. This is indicated byblock 236.

도 12는 Read_Objectx 메소드를 도시하는 흐름도이다. 이 메소드는 장치(110)가 지정된 객체로부터 데이터를 리턴하도록 리퀘스터(116)가 요청할때 리퀘스터(116)에 의해 호출된다. 리퀘스터는 허가 정보, 객체 ID, 파티션 ID, 판독될 블록의 시작 위치, 판독될 다수의 블록, 및 임의의 다른 목표된 옵션 정보를 제공한다. 응답하여, 제어 컴포넌트(150)는 요청 상태, 리턴되는 데이터 길이, 및 상기 메소드에 응답하여 리턴되는 실제 데이터를 리턴한다. 이것은 블록(256 및 258)로 지시된다.12 is a flow chart illustrating a Read_Objectx method. This method is called byrequester 116 when requester 116 requests thatdevice 110 return data from a specified object. The requester provides the authorization information, the object ID, the partition ID, the starting position of the block to be read, the plurality of blocks to be read, and any other desired option information. In response,control component 150 returns the request status, the length of data returned, and the actual data returned in response to the method. This is indicated byblocks 256 and 258.

도 13은 Close_Objectx 메소드를 도시하는 흐름도이다. 이 메소드가 블록(264)에 의해 지시된 바와같이 리퀘스터(116)에 의해 호출될때, 리퀘스터는 허가 정보, 객체 ID, 및 임의의 목표된 옵션 정보를 제공한다. 응답하여, 제어 컴포넌트(150)는 블록(266)에 의해 지시된 바와같이 특정 객체의 데이터를 변형한다. 게다가, 만약 저장 매체에 미리기입되지 않으면 객체에 대한 기입 결과로서 객체에 대한 임의의 변화는 이때 기입된다. 제어 컴포넌트(150)는 블록(268)에 의해 지시된 바와같이 객체 x의 속성을 업데이트한다. 예를들어, 만약 객체가 새롭게 생성된 객체이면, 속성은 생성 시간, 및 다른 요청된 속성 정보가 업데이트된다. 게다가, 상기 속성은 객체의 데이터가 변경되는 최종 시간을 가리키기 위하여 변경되고, 만약 변경되었다면 데이터 길이 및 속성은 객체가 주어진 리퀘스터에 의해 더 이상 사용되지 않는 것을 나타내는 제어 컴포넌트(150)에 의해 세팅된다.13 is a flowchart illustrating a Close_Objectx method. When this method is called byrequester 116 as indicated byblock 264, the requester provides the authorization information, the object ID, and any desired option information. In response, thecontrol component 150 transforms the data of the particular object as indicated byblock 266. In addition, any change to an object is then written as a result of writing to the object if it is not pre-written to the storage medium. Thecontrol component 150 updates the attributes of the object x as indicated byblock 268. For example, if the object is a newly created object, the property is updated at creation time, and other requested property information. In addition, the attribute is changed to indicate the last time the object's data is changed, and if so, the data length and attribute are set by thecontrol component 150 indicating that the object is no longer used by a given requester. do.

제어 컴포넌트(150)는 객체와 연관되고 객체 속성에 반영되는 잔류 캐쉬 정보를 선택적으로 업데이트할 수 있다. 이것은 블록(270)으로 표시된다. 예를들어, 만약 데이터가 폐쇄된 객체에 대해 캐쉬되지 않거나, 더이상 캐쉬가 아닌 것을 저장 장치(110)에게 알리기 위하여 요청을 만드는 특정 리퀘스터(116)가 형성되면, 저장 장치(110)의 운영 시스템은 객체가 폐쇄되고 연속하여 다시 개방될 경우의 애플리케이션에 대하여 캐쉬 정보를 유지할 수 있다. 그러나, 저장 장치(110)는 간섭 충돌의 이벤트에서 통지될 필요가 있는 시스템(100)의 컴포넌트들의 트랙을 유지할 수 있는 동시에, 다른 리퀘스터 요청은 중간에 이러한 객체에 액세스해야 한다. 그 다음 제어 컴포넌트(150)는 블록(272)에 의해 지시된 바와같이 요청 상태를 리턴한다.Thecontrol component 150 can optionally update the residual cache information associated with the object and reflected in the object properties. This is indicated byblock 270. For example, if aparticular requester 116 is formed that makes a request to informstorage 110 that data is not cached for a closed object or is no longer cached, the operating system ofstorage 110 May maintain cache information for the application when the object is closed and subsequently reopened. However, thestorage device 110 can keep track of the components of thesystem 100 that need to be notified in the event of an interference conflict, while other requester requests must access these objects in the interim.Control component 150 then returns the request status as indicated byblock 272.

도 4는 Remove_Objectx 메소드를 도시하는 흐름도이다. 블록(278)에 지시된 바와같이 이 메소드가 호출될때, 제어 컴포넌트(150)는 저장 매체로부터 객체를 삭제하기 위해 필요한 단계를 밟는다. 이것은 블록(280)으로 지시된다. 그 다음 제어 컴포넌트(150)는 특정 객체 ID가 이용 가능하지를 반영하기 위하여 객체가 삭제되는 파티션과 연관된 파티션 객체 목록을 변형한다. 이것은 블록(282)으로 지시된다. 그 다음 제어 컴포넌트(150)는 블록(284)에 의해 지시된 바와같이 요청 상태를 리턴한다. 이 메소드를 호출하기 위하여, 리퀘스터(116)는 허가 정보, 파티션 ID, 객체 ID, 및 임의의 목표된 옵션 정보를 제공한다. 그 다음 제어 컴포넌트(150)는 블록(284)에 의해 지시된 바와같이 요청 상태를 리턴한다.4 is a flowchart illustrating a Remove_Objectx method. When this method is called, as indicated inblock 278, thecontrol component 150 takes the necessary steps to delete the object from the storage medium. This is indicated byblock 280. Thecontrol component 150 then modifies the partition object list associated with the partition from which the object is deleted to reflect whether a particular object ID is available. This is indicated byblock 282.Control component 150 then returns the request status as indicated byblock 284. To call this method,requester 116 provides authorization information, partition ID, object ID, and any desired option information.Control component 150 then returns the request status as indicated byblock 284.

도 15는 저장 장치(110)상 파티션을 생성하기 위하여 블록(290)에 의해 지시된 바와같이 리퀘스터에 의해 호출될수있는 Create_Partitionx 메소드를 도시하는 흐름도이다. Create_Partitionx 메소드는 드라이브를 하나 이상의 지역으로 분할하는 동안, 저장 매체상 모든 공간이 평가될 필요가 없다는 것이 주의된다. 게다가, 파티션 지역은 디스크상 여러 존(zone)을 연결할 수 있다.FIG. 15 is a flow diagram illustrating a Create_Partitionx method that may be called by a requester as indicated byblock 290 to create a partition onstorage 110. Note that while the Create_Partitionx method partitions a drive into one or more regions, not all space on the storage medium needs to be evaluated. In addition, partitioned regions can span multiple zones on the disk.

일실시예에서, 이 메소드는 타일 배열로 파티션을 형성하기 위하여 사용되고, 상기 파티션은 장치상 저장 공간의 실제적인 파티션을 나타낸다. 이 배열은 데이터 어레이 같은 서비스 레벨에 의해 공간을 파티션하기 위하여 사용된다. 상기 파티션은 사이즈를 바꿀수 없지만, 제거 및 재생성될수있다.In one embodiment, this method is used to form partitions in an array of tiles, which represent actual partitions of storage space on the device. This arrangement is used to partition space by service level such as data array. The partition cannot be resized but can be removed and recreated.

본 발명의 다른 측면에 따라, 상기 파티션들은 서비스 레벨에 따른 공간을 관리하기 보다 오히려 논리적으로 객체들을 구성하기 위한 논리적 파티션으로서 사용된다. 이런 제 2 실시예에서, 파티션은 동적으로 사이즈가 변경될수있다.According to another aspect of the present invention, the partitions are used as logical partitions for logically organizing objects rather than managing space according to service level. In this second embodiment, the partition can be resized dynamically.

상기 메소드를 호출하기 위하여, 리퀘스터는 허가 정보, 임의의 목표된 옵션, 파티션 ID, 및 식별된 특정 부분에 할당될 공간을 식별하는 초기 공간 할당을 제공한다. 응답하여, 제어 컴포넌트(150)는 블록(292)으로 지시된 바와같은 특정 파티션을 위하여 저장 매체상에 공간을 할당한다. 그 다음 제어 컴포넌트(150)는 블록(294 및 296)에 의해 지시된 바와같이 파티션 제어 객체 및 신청 객체 목록을 형성한다. 상기된 바와같이, 파티션 객체 목록은 파티션시 객체를 네비게이팅하기 위하여 시작 지점으로 제거 및 사용될수없다. 그 다음 제어 컴포넌트(150)는 수행될 파티션을 도시하는 요청 상태 및 파티션 맵을 리턴한다. 이것은 블록(298)에 의해 지시된다.To invoke the method, the requester provides an initial space allocation that identifies the permission information, any desired option, partition ID, and the space to be allocated to the particular portion identified. In response,control component 150 allocates space on the storage medium for the particular partition as indicated byblock 292. Thecontrol component 150 then forms a partition control object and a list of subscription objects, as indicated byblocks 294 and 296. As mentioned above, the partition object list cannot be removed and used as a starting point for navigating objects at partition time. Thecontrol component 150 then returns a request status and partition map showing the partition to be performed. This is indicated byblock 298.

도 16은 Remove_partitionx 메소드를 도시하는 흐름도이다. 이 메소드를 호출하기 위하여, 리퀘스터(116)는 허가 정보, 옵션 정보, 및 제거될 파티션을 식별하는 파티션 ID를 제공한다. 이것은 블록(304)으로 지시된다. 응답하여, 제어 컴포넌트(150)는 블록(306)으로 지시된 바와같은 파티션과 관련된 공간을 할당하지 않는다. 그 다음 제어 컴포넌트(150)는 삭제될 파티션과 연관된 파티션 객체 목록의 모든 객체를 제거하고, 파티션 객체를 삭제하고 파티션 제어 객체를 삭제한다. 이것은 블록(308, 310 및 312)로 지시된다. 그 다음 제어 컴포넌트(150)는 요청 상태를 및 파티션로 만들어진 변화를 도시하는 파티션 맵을 리턴한다. 이것은 블록(314)으로 나타낸다.16 is a flowchart illustrating a Remove_partitionx method. To call this method,requester 116 provides permission information, option information, and a partition ID identifying the partition to be removed. This is indicated byblock 304. In response,control component 150 does not allocate space associated with the partition as indicated byblock 306.Control component 150 then removes all objects in the partition object list associated with the partition to be deleted, deletes the partition object and deletes the partition control object. This is indicated byblocks 308, 310 and 312. Thecontrol component 150 then returns a partition map showing the request status and the changes made to the partition. This is represented byblock 314.

본 발명의 일측면에 따라, 데이터 관리 방법은 각각의 저장 장치(110-112)에 통신되어, 저장 장치는 관리 방법을 실행하기 위하여 서로 독립적으로 작용할 수 있다. 이것은 보다 작은 인간의 중재뿐 아니라, 보다 정밀하고 적당한 관리 제어를 유발하는 중요한 장점을 제공한다.In accordance with one aspect of the present invention, a data management method is communicated to each storage device 110-112, so that the storage devices can act independently of one another to execute the management method. This provides important advantages that lead to more precise and proper administrative control as well as smaller human interventions.

예를들어, 저장 데이터 장치(110-112)상 데이터는 각각의 주중에 바람직하게 백업될수있다. 통상적인 시스템은 주말의 한가한 기간동안 백업되어 시스템 유용성이 집무 주중동안 간섭되지 않는다. 그러나, 유용성의 시간대는 시스템 용량이 증가함과 동시에 점차적으로 줄어든다. 따라서, 데이터의 테라바이트를 백업하기에 충분히 길게 시스템을 방해하지 않는 시간을 찾는 문제점이 매우 어렵게된다.For example, data on storage data devices 110-112 may be preferably backed up during each week. Conventional systems are backed up during the free time of the weekend so system availability is not interrupted during the working week. However, the time window for usability decreases gradually as system capacity increases. Thus, the problem of finding a time that does not disturb the system long enough to back up terabytes of data becomes very difficult.

따라서, 본 발명의 일측면에 따라, 객체에 할당된 속성을 바탕으로 객체상에 작용함으로써, 객체 지향 저장 장치(110-112)는 객체가 수행되는 백업 동안 올바른 상태에 도달했을때마다 백업 기능을 알릴수있다. 또한, 모든 파일의 백업은 보다 긴 기간, 즉 다른 파일들이 데이터 보전에 영향을 미치지 않고 업데이트되는 동안에 걸쳐 분산될수있다.Thus, in accordance with one aspect of the present invention, by acting on an object based on attributes assigned to the object, object-oriented storage devices 110-112 perform a backup function whenever the object reaches a correct state during the backup being performed. Can inform In addition, backup of all files can be distributed over a longer period of time, ie, while other files are updated without affecting data integrity.

객체 지향 저장 장치(110-112)에 의한 작용을 호출할수있는 속성의 다른 예는 암호화, 압축, 버전닝(versioning) 및 페리티 중복을 포함한다. 이들 각각의 예에서, 저장 장치(110-112)는 바람직하게 특정 객체 또는 객체 세트에 관한 메소드를 알릴 필요가 있다. 그 다음 상기 장치 자체는 기능을 수행하거나 서비스를 제공하기 위하여 설계된 에이전트를 알린다.Other examples of attributes that can invoke operations by object-oriented storage devices 110-112 include encryption, compression, versioning, and parity redundancy. In each of these examples, storage 110-112 preferably needs to advertise methods related to a particular object or set of objects. The device itself then informs the agent designed to perform the function or provide the service.

예를들어, 압축 및 암호화화는 저장 장치(110-112) 자체에서 수행될수있다. 그러므로, 상기 장치에 통신될 필요가 있는 것은 압축 또는 암호화화가 객체를 위해 요청된다는 사실이다. 에이전트에 의해 수행되는 관리 기능에 대하여, 관리 기능 메소드는 저장 장치에 통신되어야 하는 것뿐 아니라, 기능을 수행하기 위한 에이전트를 식별해야 하므로, 에이전트는 기능을 수행할 시간일때 저장 장치에 의해 액세스될수있다.For example, compression and encryption can be performed on the storage device 110-112 itself. Therefore, what needs to be communicated to the device is the fact that compression or encryption is required for the object. For management functions performed by an agent, the management function methods not only need to be communicated to the storage device, but also must identify the agent to perform the function, so that the agent can be accessed by the storage device when it is time to perform the function. .

본 발명의 일측면에 따라, 결합은 동일한 속성 또는 의존성을 가지는 것들이 식별될수있도록 객체중에서 이루어진다. 예를들어, 데이터베이스가 6 파일 또는 객체를 포함한다고 가정하면, 상기 파일 또는 객체중 어느 것도 모든 것이 폐쇄될때까지 또는 모든 다른 상기 파일 또는 객체들이 의존하는 객체로서 설계된 하나의 파일 또는 객체가 폐쇄될때까지 백업될수없다. 파일 서버(114)는 객체 사이의 이런 종류의 관계를 관리하기 위하여 필요할 수 있다. 게다가, 본 발명은 어레이된 페리티 세트의 경우 처럼 상호 장치 의존성을 이룬다. 그룹의 나머지가 동일한 필수적인 특성을 가지도록 하나의 장치 또는 객체가 확신시키는 것을 가능하게 만듬으로써, 그룹의 관리는 보다 효율적이고 효과적이다.In accordance with one aspect of the present invention, the association is made among the objects such that those having the same attributes or dependencies can be identified. For example, suppose a database contains 6 files or objects, until either all of the files or objects are closed or until one file or object designed as an object upon which all the other files or objects depend is closed. It cannot be backed up.File server 114 may be needed to manage this kind of relationship between objects. In addition, the present invention achieves interdevice dependency as in the case of an arrayed set of parity. By making it possible for one device or object to ensure that the rest of the group has the same essential characteristics, the management of the group is more efficient and effective.

도 17-24는 저장 장치상 객체에 의해 노출된 메소드를 호출함으로써 수행될수있는 관리 기능을 도시하는 흐름도이다. 상기 메소드를 호출하는 것은 제어 컴포넌트(150), 및/또는 관련 제어 컴포넌트가 호출된 메소드와 연관된 관리 기능을 수행하기 위하여 단계를 수행하도록 한다.17-24 are flow diagrams illustrating management functions that may be performed by invoking a method exposed by an object on a storage device. Invoking the method causescontrol component 150, and / or related control component, to perform steps to perform management functions associated with the invoked method.

도 17은 Export_Objectx 메소드를 도시하는 흐름도이다. 리퀘스터(116)는 허가 정보, 옵션 정보, 객체 ID, 타켓 장치 ID 및 타켓 파티션 ID를 제공함으로써 블록(320)에 의해 지시된 바와같이 이 메소드를 호출한다. 엑스포트(export) 메소드는 저장 장치(110-112)가 주어진 객체와 연관된 속성으로 표현된 룰(rule)을 바탕으로 하는 작용을 취하게 한다. 예를들어, 그것은 다른 장치에 객체의 백업 또는 지원 번역을 초기화하기 위하여 사용될수있다.17 is a flowchart showing an Export_Objectx method.Requester 116 invokes this method as indicated byblock 320 by providing authorization information, option information, object ID, target device ID, and target partition ID. Export methods allow storage devices 110-112 to take action based on rules expressed in attributes associated with a given object. For example, it can be used to initiate a backup or support translation of an object to another device.

Export_Objectx 메소드가 호출될때, 제어 컴포넌트(150)는 블록(322)으로 지시된 바와같이 저장 매체로부터 특정 객체를 얻는다. 그 다음 제어 컴포넌트(150)는 리퀘스터(116)에 의해 지정된 타켓 장치에서 Open_Create 메소드를 호출한다. 이것은 블록(324)에 의해 지시된다. 그 다음 제어 컴포넌트(150)는 특정 객체의 데이터 및 속성을 지원하는 타켓 장치에서 기입 메소드를 호출한다. 이것은 블록(326)에 의해 지시된다. 그 다음 제어 컴포넌트(150)는 타켓 장치에 기입된후 타켓 장치상 객체를 폐쇄하는 타켓 장치에 폐쇄 메소드를 호출한다. 이것은 블록(328)에 의해 지시된다. 최종적으로, 제어 컴포넌트(150)는 타켓 장치에 기입되었던 객체의 새로운 객체 ID에 따라 리퀘스터에 요청 상태를 리턴한다. 이것은 블록(330)에 의해 지시된다.When the Export_Objectx method is called,control component 150 obtains a particular object from the storage medium as indicated byblock 322. Thecontrol component 150 then calls the Open_Create method on the target device specified by therequester 116. This is indicated byblock 324.Control component 150 then invokes the write method on the target device that supports the data and attributes of the particular object. This is indicated byblock 326. Thecontrol component 150 then invokes the closure method on the target device, which writes to the target device and then closes the object on the target device. This is indicated byblock 328. Finally,control component 150 returns the request status to the requester according to the new object ID of the object that was written to the target device. This is indicated byblock 330.

제어 컴포넌트(150)에 의해 실행된 인터페이스(128)는 리퀘스터가 리뷰에 대한 객체 속성을 얻고, 객체 속성을 세팅하도록 하는 메소드를 지원한다. 도 18은 각각 대응하는 Get_Objectx_Attributes 및 Get_Objectx_Attributes 메소드를 도시하는 흐름도이다.The interface 128 executed by thecontrol component 150 supports methods that allow the requester to obtain object properties for reviews and set object properties. 18 is a flowchart illustrating corresponding Get_Objectx_Attributes and Get_Objectx_Attributes methods, respectively.

일단 블록(336)에 의해 지시된 바와같이 호출된 도 18에 도시된 메소드는 제어 컴포넌트(150)가 특정 객체에 대한 속성을 얻도록 한다. 도시적인 일실시예에서, 리퀘스터는 허가 정보, 객체 ID, 또는 객체 ID의 목록 및 옵션 정보를 제공한다. 그 다음 제어 컴포넌트(150)는 리퀘스터에 대한 요청 상태에 따라 객체 ID와 연관된 속성, 또는 객체 ID 목록을 얻고, 상기 속성을 리턴한다. 이것은 블록(338)에 의해 지시된다.The method shown in FIG. 18, once invoked as indicated byblock 336, causes thecontrol component 150 to obtain attributes for a particular object. In one illustrative embodiment, the requester provides permission information, an object ID, or a list of object IDs and optional information. Thecontrol component 150 then obtains an attribute associated with the object ID, or a list of object IDs, according to the request state for the requester, and returns the attribute. This is indicated byblock 338.

도 19에 도시된 Get_Objectx_Attributes 메소드는 블록(344)에 의해 지시된 바와같이 허가 정보, 객체 ID, 및 제어 컴포넌트(150)에 대한 옵션 정보를 제공하는 리퀘스터에 의해 호출될수있다. 그 다음 제어 컴포넌트(150)는 리퀘스터에 의해 제공된 정보를 가지는 특정 객체의 속성을 변형하고, 변형된 특정 객체의 속성에 따라 요청 상태를 리턴한다. 이것은 블록(346 및 348)에 의해 지시된다.The Get_Objectx_Attributes method shown in FIG. 19 may be invoked by the requester providing authorization information, object ID, and optional information for thecontrol component 150 as indicated byblock 344. Thecontrol component 150 then modifies the attributes of the particular object with the information provided by the requester, and returns the request status according to the attributes of the modified particular object. This is indicated byblocks 346 and 348.

본 발명의 다른 측면에 따라, 객체가 로킹될수있어서, 상기 객체들은 객체상에 배치된 락(lock)을 가지는 서버에 의해 객체들이 언로킹되면 액세스될수있다. 하나의 도시적인 실시예에서, 객체들은 객체 레벨, 파티션 레벨, 또는 장치 레벨에 락킹될수있다. 락 메카니즘은 상호 서버 액세스 분해능을 위하여 제공한다. 하나의 바람직한 실시예에서 상기 락은 동시 발생 업데이트을 계획하고 유지 기능 동안 액세스를 방지하기 위하여 사용된다. 도 20, 21 및 22는 Get_Attribute 및 Set_Attribute 메소드의 예로서 고려될수있는 락 메소드를 도시하는 흐름도이다. 그러나, 부가적인 설명은 상기 특정 예를 위하여 제공되어, 리퀘스터 군 사이의 데이터를 공유하는데 사용될수있다.According to another aspect of the invention, an object can be locked so that the objects can be accessed when the objects are unlocked by a server having a lock placed on the object. In one illustrative embodiment, objects may be locked at the object level, partition level, or device level. The lock mechanism provides for mutual server access resolution. In one preferred embodiment the lock is used to schedule concurrent updates and to prevent access during the maintenance function. 20, 21 and 22 are flow diagrams illustrating lock methods that may be considered as examples of Get_Attribute and Set_Attribute methods. However, additional descriptions are provided for this particular example, and can be used to share data between requester groups.

도 20은 Read_Lock_Attributes 메소드를 도시하는 흐름도이다. 이 메소드는 블록(354)에 의해 도시된 바와같이 허가 정보, 객체, 파티션 또는 장치 ID, 락 파라미터, 및 컴포넌트(150)를 제어하기 위한 리퀘스터(116)으로부터의 임의의 옵션 정보를 제공함으로써 호출될수있다. 응답하여, 제어 컴포넌트(150)는 특정 객체가 설정된 락을 가지는지를 결정한다. 그 다음 제어 컴포넌트(150)는 락을 가지는 리퀘스터의 요청 상태를 리턴한다. 이것은 블록(356)에 의해 지시된다.20 is a flowchart illustrating a Read_Lock_Attributes method. This method is called by providing authorization information, an object, partition or device ID, lock parameters, and any optional information fromrequester 116 to controlcomponent 150 as shown byblock 354. Can be In response,control component 150 determines whether the particular object has a lock set. Thecontrol component 150 then returns the request status of the requester with the lock. This is indicated byblock 356.

도 21은 Set_Lock_Attributes 메소드를 도시하는 흐름도이다. 이 메소드는 블록(362)에 의해 지시된 바와같이, 허가 정보, 객체, 파티션 또는 장치 식별자 정보, 락 파라미터 및 옵션 정보를 제공함으로써 호출될수있다. 이 메소드가 호출될때, 제어 컴포넌트(150)는 식별된 객체와 연관된 락을 검사한다. 이것은 블록(364)에 의해 지시된다. 그 다음 제어 컴포넌트는 리퀘스터의 식별을 사용하여 락킹 또는 언락킹 동작을 수행하기 위하여 시도한다. 이것은 블록(366)에 의해 지시된다. 만약 동작을 요청하는 리퀘스터가 락의 소유자이면, 동작이 수행될 것이다. 만약 그렇지 않으면, 동작은 수행되지 않을 것이다. 임의의 경우에, 제어 컴포넌트(150)는 락을 소유하는 서버의 ID를 따라 요청 상태를 리턴한다. 이것은 블록(368)에 의해 지시된다.21 is a flowchart illustrating a Set_Lock_Attributes method. This method may be invoked by providing authorization information, object, partition or device identifier information, lock parameters and option information, as indicated byblock 362. When this method is called,control component 150 checks the lock associated with the identified object. This is indicated byblock 364. The control component then attempts to perform the locking or unlocking operation using the identification of the requester. This is indicated byblock 366. If the requester requesting the operation is the owner of the lock, the operation will be performed. If not, the operation will not be performed. In any case,control component 150 returns the request status along with the ID of the server that owns the lock. This is indicated byblock 368.

도 22는 Reset_Lock_Attribute 메소드를 도시하는 흐름도이다. 이 기능은 락을 소유하는 서버가 더이상 기능하지 않는 경우 락을 리셋하기 위하여 사용된다. 상기 메소드는 블록(374)에 의해 도시된 바와같이 허가 정보, 객체, 파티션 또는 장치 식별자 정보, 락 파라미터, 및 임의의 목표된 옵션 정보를 제공함으로써 호출될수있다. 응답하여, 제어 컴포넌트(150)는 블록(376)에 의해 지시된 바와같이 특정 객체, 파티션 또는 장치를 락킹하고 락을 소유하는 서버의 식별에 따라 요청 상태를 리턴한다. 이것은 블록(378)에 의해 지시된다.22 is a flowchart illustrating a Reset_Lock_Attribute method. This function is used to reset the lock if the server that owns the lock is no longer functioning. The method may be invoked by providing authorization information, object, partition or device identifier information, lock parameters, and any desired option information as shown byblock 374. In response,control component 150 locks the particular object, partition or device as indicated byblock 376 and returns the request status in accordance with the identification of the server that owns the lock. This is indicated byblock 378.

도 23 및 도 24는 Get 및 Set_Device_Association 메소드를 도시하는 흐름도이다. 이들 메소드는 장치(110-112) 사이의 관계를 한정하거나 문의한다. 상기 관계의 한가지 실행은 하나의 저장 장치(110-112)가 제 1 세트 장치의 마스터로서 식별되고, 다른 저장 장치가 상기 세트의 수에 종속한다 것을 포함한다. 제 1 또는 마스터 세트는 세트 속성의 변화를 다른 부재에 알린다. 다른 부재는 만약 속성 세트가 제 1 또는 마스터 세트로부터 제공되지 않으면 속성 세팅을 거부한다. 저장 장치(110-112)가 이들 기능을 수행하도록 하기 위하여, 상기 저장 장치에는 자체 검색 능력이 제공된다. 이것은 상기 장치가 보다 큰 장치 그룹의 맴버쉽에 포함되는지를 결정하기 위하여 상기 장치가 자체적으로 검사되게 한다.23 and 24 are flowcharts showing Get and Set_Device_Association methods. These methods define or query the relationship between devices 110-112. One implementation of the relationship includes that one storage device 110-112 is identified as the master of the first set of devices and another storage device is dependent on the number of the set. The first or master set notifies the other member of the change in the set attribute. The other member rejects the attribute setting if no attribute set is provided from the first or master set. In order for the storage devices 110-112 to perform these functions, the storage device is provided with its own search capability. This allows the device to be checked on its own to determine if the device is included in the membership of a larger device group.

도 23에서, Get_Device_Associations 메소드가 도시된다. 이 메소드는 블록(384)에 의해 지시된 바와같이, 허가 정보 및 옵션 정보를 제공함으로써 호출될수있다. 응답하여, 제어 컴포넌트(150)는 요청 상태, 및 장치가 하나의 부재인 요청된 결합을 리턴한다. 이것은 블록(386)에 의해 지시된다. 도 24는 Set_Device_Associations 메소드를 도시하는 흐름도이다. 이 메소드는 블록(392)에 의해 지시된 바와같이 허가 정보, 옵션 정보, 및 상기 결합을 형성하는 부재 목록과 속성을 제공함으로써 호출될수있다. 응답하여, 제어 컴포넌트(150)는 블록(394)에 의해 지시된 바와같이 저장 매체상에 포함된 장치 결합 객체(156)를 변형한다. 장치 결합 객체는 리퀘스터에 의해 제공된 속성을 포함하고, 객체 속성이 최종적으로 변형될때를 도시하는 타임 스탬프를 포함하도록 변형된다. 제어 컴포넌트(150)는 블록(396)에 의해 지시된 바와같이 요청 상태를 리턴한다.In Fig. 23, the Get_Device_Associations method is shown. This method may be called by providing permission information and option information, as indicated byblock 384. In response,control component 150 returns the requested status and the requested combination in which the device is one member. This is indicated byblock 386. 24 is a flowchart illustrating the Set_Device_Associations method. This method may be invoked by providing permission information, option information, and a list of members and attributes forming the combination, as indicated byblock 392. In response,control component 150 deforms thedevice binding object 156 included on the storage medium as indicated byblock 394. The device binding object contains the attributes provided by the requester, and is modified to include a time stamp showing when the object attributes are finally modified.Control component 150 returns the request status as indicated byblock 396.

상기된 허가 정보는 파일 서버(114)가 저장 장치(110-112)로부터 응답을 얻기 위하여 필요한 자격증을 제공하는 것을 리퀘스터(116-120)에 의해 제어함으로써 파일 서버(114)가 저장소에 게이트 액세스하게 한다. 또한 파일 서버(114)는 설치 보안 메소드를 지지하는 I/O 요청만을 받아들여야 하는 저장 장치(110-112)에게 명령한다. 허가 보안 능력을 바탕으로 하는 키는 Set_Object_Attributes 메소드에 의해 저장 장치(110-112)와 통신된다. 만약 적당한 레벨의 보안성이 저장 장치(110-112)를 위하여 세팅되면, 저장 장치는 보안 컴플라이언스를 위한 모든 I/O 명령을 검사하기 위하여구성될수있다. 그러나, 상기된 바와같이, 몇몇 응용은 보안을 필요로하지 않는다. 게다가, 만약 특정 서버 클러스터가 다른 물리적 장치에 배치된 몇몇 장치를 가지면, 원격으로 배치된 장치와 통신하지만, 로컬 트래픽으로부터 통신하기 위한 보다 높은 레벨의 보안을 형성하는 것이 바람직하다. 이것은 원격으로 배치된 리퀘스터 또는 서버를 위해 보안을 이용하게 하지만, 로컬 리퀘스터 또는 서버에 대한 상기 보안 실행에 따른 성능 손실을 피한다.The permission information described above is controlled by the requester 116-120 that thefile server 114 provides the credentials needed to obtain a response from the storage device 110-112, thereby allowing thefile server 114 to access the storage. Let's do it.File server 114 also instructs storage devices 110-112 to accept only I / O requests that support the installation security method. Keys based on permission security capabilities are communicated to storage devices 110-112 by the Set_Object_Attributes method. If an appropriate level of security is set for storage 110-112, the storage device can be configured to check all I / O commands for security compliance. However, as mentioned above, some applications do not require security. In addition, if a particular server cluster has several devices deployed on other physical devices, it is desirable to communicate with devices deployed remotely, but to create a higher level of security for communicating from local traffic. This allows security to be used for remotely deployed requesters or servers, but avoids the loss of performance due to such security enforcement against local requesters or servers.

게다가, 각각의 저장 장치(110-112)는 스탬핑 보안 메시지 및 객체에 사용될 판독 가능한 모노토닉 증가 클럭을 포함한다. 하나의 도시적인 실시예에서, 다양한 장치에 대한 클럭은 시스템-와이드 베이시스상에 동기화된다. 다른 도시적인 실시예에서, 파일 서버(114)는 저장 장치로부터 저장 장치로 불일치 및 값을 수용한다.In addition, each storage device 110-112 includes a readable monotonic increment clock to be used for stamping security messages and objects. In one illustrative embodiment, clocks for various devices are synchronized on a system-wide basis. In another illustrative embodiment,file server 114 accepts inconsistencies and values from storage to storage.

따라서, 본 발명은 통상적인 저장 장치에 걸쳐 중요한 장점을 제공하는 디스크 드라이브 같은 객체 지향 저장 장치를 제공하는 것이 도시된다. 객체 지향 저장 장치는 클러스터 아키텍쳐를 크게 개선시킨다. 예를들어, 객체 지향 방식으로 데이터를 저장함으로써, 데이터는 저장 장치 그 자체에 의해 관리될수있다. 객체는 잔류 데이터의 충분한 지식을 저장 장치에 제공하여, 그 자체 공간을 관리하기 위한 책임이 있다는 것을 가정할 수 있다. 게다가, 데이터를 공유하는 것은 장치가 논리적 엔티티를 구성하는 것에 관한 정보를 가질때 보다 잘 제어될수있다. 예를들어, 만약 두개의 시스템이 블록 지향 장치상에 저장된 데이터를 공유하면, 모든 메타데이터 활동은 동시 액세스를 위하여 제어되어야 한다. 비교하여, 객체 지향 장치에서, 보다 많은 메타데이터 활동은 그것에 액세스하는 시스템에게 불분명하다. 따라서, 시스템은 사용자 데이터에 대한 액세스 충돌로 단지 그 자체에 관한 것만 필요하다. 게다가, 장치 그 자체에 의해 수행되는 공간 관리는 동시에 동일 저장 장치상 공간을 관리하기 위한 두개의 시스템으로부터 발생할수있는 임의의 충돌 또는 혼란을 제거한다.Accordingly, it is shown that the present invention provides an object oriented storage device, such as a disk drive, that offers significant advantages over conventional storage devices. Object-oriented storage greatly improves the cluster architecture. For example, by storing data in an object-oriented manner, the data can be managed by the storage device itself. The object may assume that it is responsible for managing its own space by providing the storage device with sufficient knowledge of the residual data. In addition, sharing data can be better controlled when the device has information about what constitutes a logical entity. For example, if two systems share data stored on a block oriented device, all metadata activity must be controlled for simultaneous access. In comparison, in object-oriented devices, more metadata activity is unclear to the system accessing it. Thus, the system only needs to be concerned about itself as an access conflict to the user data. In addition, the space management performed by the device itself eliminates any conflicts or confusion that may arise from two systems for managing space on the same storage device at the same time.

게다가, 이질적인 계산은 객체 추출에 의해 보다 쉽게 이루어진다. 객체 지향 장치는 운영 시스템이 번역할수있는 구성을 적어도 가지기 위한 능력을 제공한다.In addition, heterogeneous calculations are made easier by object extraction. Object-oriented devices provide the ability to at least have a configuration that the operating system can translate.

게다가, 클러스터된 시스템의 성능은 다수의 이유로 인해 객체 지향 저장 장치를 사용함으로써 향상된다. 예를들어, 메타데이터는 장치 그 자체에 꼭 필요하고, 임의의 수의 I/O 동작을 제거한다.In addition, the performance of clustered systems is improved by using object-oriented storage for a number of reasons. For example, metadata is necessary for the device itself and eliminates any number of I / O operations.

게다가, 상기 장치는 객체가 임의의 시간에 개방되거나 폐쇄되고, 보다 효과적으로 데이터를 캐쉬하기 위한 정보를 사용할수있다는 것을 알고있다. 프리페치(prefetch)는 장치가 판독되는 객체의 레이아웃을 알기 때문에 보다 효과적이다. 저장 장치는 추후 액세스 패턴을 효과적으로 결정할 수 있다. 장치에서 캐쉬는 액세스할 다중 시스템에 대해 메타데이터를 유지할 수 있다. 게다가, 장치는 보다 적당하게 데이터를 배치시키는 경우 같은 서비스 결정 품질에 참여할 수 있다. 장치는 저장소를 할당하기 위한 책임이 있으면 이것을 행할 수 있다. 비교하여, 대체로 운영 시스템은 디스크 드라이브상 존에 데이터를 할당할수없다. 따라서, 장치 그 자체에 이런 능력을 제공하는 것은 성능을 향상시킨다.In addition, the device knows that an object can be opened or closed at any time and can use the information to cache data more effectively. Prefetch is more effective because the device knows the layout of the object being read. The storage device can effectively determine the access pattern later. In the device, the cache can maintain metadata for multiple systems to access. In addition, the device may participate in the same quality of service decision when distributing data more appropriately. The device can do this if it is responsible for allocating storage. In comparison, operating systems usually cannot assign data to zones on disk drives. Thus, providing this capability to the device itself improves performance.

본 발명은 다수의 객체(124-126)로서 구성된 그 위에 저장된 데이터를 가지는 저장 매체(132)를 포함하는 저장 장치(112)를 제공하고, 상기 객체 각각은 객체의 특성을 나타내는 속성을 가진다. 제어 컴포넌트(150)는 저장 매체(132)에 결합되어 동작되고 객체(124-126)에 인터페이스(128)를 제공하도록 구성된다. 인터페이스는 객체(124-126)에 액세스하기 위하여 호출되는 (메소드 0 - 메소드 N)을 노출시킨다.The present invention provides astorage device 112 that includes astorage medium 132 having data stored thereon configured as a plurality of objects 124-126, each of which has attributes representing the characteristics of the object. Thecontrol component 150 is operated to be coupled to thestorage medium 132 and configured to provide an interface 128 for the objects 124-126. The interface exposes (method 0-method N) that is called to access the objects 124-126.

바람직한 일실시예에서, 다수의 객체(124-126)는 데이터 저장 장치(110)의 특성을 나타내는 속성을 가지는 장치 제어 객체(154)를 포함한다. 다른 바람직한 실시예에서, 저장 매체는 다수의 파티션(158, 160, 162)으로 파티션되고, 각각의 파티션은 다수의 객체(124-126)를 포함한다. 다수의 객체는 다수의 파티션(158, 160 및 162)에 대응하는 다수의 파티션 제어 객체(164)를 포함하고, 각각의 파티션 제어 객체(164)는 대응하는 파티션의 특성을 나타내는 속성을 포함한다. 파티션 제어 객체(164)는 대응하는 파티션의 모든 객체에 속하는 특성을 포함할 수 있다. 다수의 파티션 목록 객체(166)는 다수의 파티션(158, 160 및 162)과 결합되고 데이터 식별, 관련된 파티션에 저장된 객체를 식별을 나타내는 속성을 포함한다.In one preferred embodiment, the plurality of objects 124-126 includes adevice control object 154 having attributes that represent the characteristics of thedata storage device 110. In another preferred embodiment, the storage medium is partitioned into a number ofpartitions 158, 160, 162, each partition comprising a number of objects 124-126. The plurality of objects includes a plurality of partition control objects 164 corresponding to the plurality ofpartitions 158, 160, and 162, and eachpartition control object 164 includes attributes representing the characteristics of the corresponding partition.Partition control object 164 may include properties belonging to all objects of the corresponding partition. Multiplepartition list object 166 is associated withmultiple partitions 158, 160, and 162 and includes attributes for identifying data, identifying objects stored in related partitions.

인터페이스(128)에 의해 노출된 메소드는 제어 컴포넌트가 특정 객체와 이미 연관된 식별 데이터를 릴리스(release)함으로써 저장 매체(132)로부터 특정 데이터를 삭제하도록 하는 제거 메소드를 포함한다. 상기 메소드는 호출될때 제어 컴포넌트(150)가 다수의 파티션으로 저장 매체(132)를 파티션하도록 하는 생성 파티션을 포함한다. 제거 파티션 메소드는 호출되고 제어 컴포넌트(150)가 저장 매체(132)로부터 특정 파티션을 제거하게 한다.The method exposed by interface 128 includes a remove method that allows the control component to delete specific data fromstorage medium 132 by releasing identification data already associated with the specific object. The method includes a creation partition that, when called, causes thecontrol component 150 to partition thestorage medium 132 into multiple partitions. The remove partition method is called and causes thecontrol component 150 to remove a particular partition from thestorage medium 132.

다른 실시예에서, 다수의 객체는 두개 이상의 데이터 저장 장치중에 결합을 나타내는 속성을 포함하는 장치 결합 객체(156)를 포함한다. 장치 결합 메소드가 호출되고 제어 컴포넌트(150)가 결합 속성에 액세스하게 한다. 장치 결합 메소드는 제어 컴포넌트(150)가 결합 속성을 얻고 리턴하게 하거나 결합 속성에 액세스하게 하기 위하여 사용될수있다.In another embodiment, the plurality of objects includes adevice binding object 156 that includes an attribute indicating a binding among two or more data storage devices. The device association method is called and causes thecontrol component 150 to access the association attribute. The device association method may be used to allow thecontrol component 150 to obtain and return a binding attribute or to access a binding attribute.

다른 실시예에서, 상기 메소드는 리퀘스터(116)에 의해 호출될때 저장 장치(110)상 객체에 대한 액세스를 리퀘스터(116)에게 제공하는 개방 메소드를 포함한다.In another embodiment, the method includes an open method that provides the requester 116 with access to an object on thestorage device 110 when called by therequester 116.

리퀘스터(116)에 의해 호출될때 개방 생성 메소드는 제어 컴포넌트(150)가 리퀘스터(116)에 의해 지정된 속성을 가지는 저장 매체(132)에 새로운 객체를 생성하게 한다.When invoked byrequester 116, the open create method causescontrol component 150 to create a new object instorage medium 132 having the attributes specified byrequester 116.

다른 실시예에서, 개방 업데이트 메소드는 리퀘스터(116)에 의해 호출될때, 제어 컴포넌트(150)가 리퀘스터(116)에 의해 구체화되는(specified) 방식으로 리퀘스터에 의해 식별된 객체를 변형하게 하도록 제공된다. 기입 메소드는 제어 컴포넌트(115)가 특정 객체에 데이터를 기입하게 하기 위하여 호출될수있고, 폐쇄 메소드는 제어 컴포넌트(150)가 특정 객체를 폐쇄하도록 호출할 수 있다.In another embodiment, the open update method causes thecontrol component 150 to modify the object identified by the requester in a manner specified by therequester 116 when called by therequester 116. Is provided. The write method can be called to cause the control component 115 to write data to the particular object, and the closure method can call thecontrol component 150 to close the particular object.

다른 실시예에서, 엑스포트 객체 메소드는 제어 컴포넌트(150)가 특정 객체를 제 2 데이터 저장 장치(112)에 복사하도록 호출될수있다. 획득(get) 객체 속성 메소드 및 설정 객체 속성 메소드는 제어 컴포넌트(150)가 지정된 객체의 속성을 얻고 리턴하거나, 특정 객체의 속성을 설정하도록 호출될수있다. 락 메소드는 제어 컴포넌트(150)가 특정 객체의 락 특성에 액세스하도록 호출될수있다.In another embodiment, the export object method may be called to cause thecontrol component 150 to copy the particular object to the seconddata storage device 112. The get object attribute method and setting object attribute method may be called to cause thecontrol component 150 to obtain and return attributes of the specified object or to set attributes of a particular object. The lock method may be called to allow thecontrol component 150 to access lock properties of a particular object.

본 발명은 디스크 드라이브상에서 데이터를 저장하는 방법으로서 실행될수있다. 상기 방법은 객체로서 디스크상 정보를 저장하는 단계 및 상기에서 설정된 바와같이 다수의 메소드들을 호출함으로써 정보를 액세스하는 단계를 포함한다. 본 발명은 데이터 저장 장치와 관련하여 상기된 바와같이 배열된 하나 이상의 디스크 드라이브를 포함하는 데이터 저장 시스템으로서 실행된다. 본 발명은 데이터 저장 시스템에서 컴퓨터에 의해 실행될때, 컴퓨터가 객체의 특성을 나타내는 속성을 가지는 다수의 객체(124-126)로서 디스크(132)상에 데이터를 저장하게 하는 명령을 저장하는 컴퓨터 판독 가능 매체(제어 컴포넌트(150)의 메모리, 또는 디스크(132)중 하나, 또는 다른 컴퓨터 판독 가능 매체)로서 실행될수있다. 실행될때 명령은 컴퓨터가 인터페이스에 의해 노출된 기능을 호출함으로써 인터페이스를 통하여 객체로 디스크(132)상 객체에 액세스하게 한다.The present invention can be implemented as a method of storing data on a disk drive. The method includes storing the information on disk as an object and accessing the information by invoking a number of methods as set above. The invention is implemented as a data storage system comprising one or more disk drives arranged as described above in connection with a data storage device. The present invention is computer readable for storing instructions that, when executed by a computer in a data storage system, cause the computer to store data ondisk 132 as a plurality of objects 124-126 having attributes representing the characteristics of the objects. May be implemented as a medium (memory ofcontrol component 150, or one ofdisk 132, or other computer readable medium). When executed, the instruction causes the computer to access the object ondisk 132 as an object through the interface by invoking a function exposed by the interface.

비록 본 발명의 다수의 특성 및 다양한 실시예가 상기 설명에서 본 발명의 다양한 실시예의 상세한 구조 및 기능과 함께 기술되었지만, 본 명세서는 단지 도시적이고 변화는 첨부된 청구범위에서 표현된 용어의 넓은 일반적인 의미에 의해 지시된 전체 범위에 의해 본 발명의 원리내에서 일부분의 구조 및 배열에 대해서 이루어질수있다. 예를들어, 특정 엘리먼트는 본 발명의 범위 및 사상으로부터 벗어나지 않고. 동일한 기능을 유지하는 동안 사용된 특정 인터페이스 메소드에 따라 변화할 수 있다.Although a number of features and various embodiments of the invention have been described in the foregoing description, along with the detailed structure and functionality of the various embodiments of the invention, the specification is illustrative only and variations are to be accorded the broad general meaning of the terms expressed in the appended claims. The full scope dictated by the invention can be made for the structure and arrangement of parts within the principles of the present invention. For example, certain elements may be made without departing from the scope and spirit of the invention. It can change depending on the specific interface method used while maintaining the same functionality.

Claims (24)

Translated fromKorean
컴퓨터 시스템에서 데이터 저장 기능을 수행하도록 구현될 수 있는 데이터 저장 장치로서,A data storage device that can be implemented to perform a data storage function in a computer system,다수의 객체들로서 구성된 저장된 데이터를 가지는 비휘발성 저장 매체 - 각각의 객체는 객체의 특성들을 나타내는 속성들을 가짐 -; 및Non-volatile storage medium having stored data configured as a plurality of objects, each object having attributes indicative of characteristics of the object; And상기 저장 매체에 동작가능하게 결합되고, 상기 객체들을 노출시키는 인터페이스를 제공함으로써 객체 파일 시스템에 따라 상기 객체들을 관리하도록 구성된 제어 컴포넌트 - 상기 인터페이스는 상기 객체들에 액세스하도록 호출되는 메소드들(methods)을 노출시킴 -A control component operatively coupled to the storage medium and configured to manage the objects according to an object file system by providing an interface that exposes the objects, the interface having methods invoked to access the objects. Exposed-를 포함하는 데이터 저장 장치.Data storage device comprising a.제 1 항에 있어서, 상기 다수의 객체들은 상기 데이터 저장 장치의 특성들을 나타내는 속성들을 포함하는 장치 제어 객체를 포함하는 것을 특징으로 하는 데이터 저장 장치.The data storage device of claim 1, wherein the plurality of objects include a device control object that includes properties that represent characteristics of the data storage device.제 2 항에 있어서, 상기 장치 제어 객체는 상기 저장 매체상의 다수의 객체들 중 다른 객체들의 특성들을 나타내는 속성들을 포함하는 것을 특징으로 하는 데이터 저장 장치.3. The data storage device of claim 2, wherein the device control object includes attributes indicative of characteristics of other objects among a plurality of objects on the storage medium.제 1 항에 있어서, 상기 저장 매체는 각각의 파티션이 다수의 객체들을 포함하는 다수의 파티션들로 분할되고, 상기 다수의 객체들은 상기 다수의 파티션들에 대응하는 다수의 파티션 제어 객체들을 포함하며, 각각의 파티션 제어 객체는 해당 파티션의 특성들을 나타내는 속성들을 포함하는 것을 특징으로 하는 데이터 저장 장치.The storage medium of claim 1, wherein the storage medium is divided into a plurality of partitions, each partition including a plurality of objects, the plurality of objects including a plurality of partition control objects corresponding to the plurality of partitions, Each partition control object includes attributes indicative of the characteristics of the partition.제 4 항에 있어서, 각각의 상기 파티션 제어 객체들은 해당 파티션의 모든 객체들에 속하는 특성들을 나타내는 속성들을 포함하는 것을 특징으로 하는 데이터 저장 장치.5. The data storage device of claim 4, wherein each of said partition control objects includes attributes indicative of properties belonging to all objects of that partition.제 4 항에 있어서, 상기 다수의 객체들은 상기 다수의 파티션들과 연관된 다수의 파티션 목록 객체들을 포함하고, 각각의 파티션 목록 객체는 연관된 파티션에 저장된 객체들을 식별하는 식별 데이터를 나타내는 속성들을 포함하는 것을 특징으로 하는 데이터 저장 장치.5. The method of claim 4, wherein the plurality of objects comprises a plurality of partition list objects associated with the plurality of partitions, each partition list object including attributes representing identification data identifying objects stored in the associated partition. Data storage device.제 6 항에 있어서, 상기 메소드들은 호출시 특정 객체와 이전에 연관된 식별 데이터를 릴리스함으로써 상기 제어 컴포넌트가 상기 저장 매체로부터 특정 객체를 삭제하게 하는 제거 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.7. The data storage device of claim 6, wherein the methods include a remove method that causes the control component to delete the particular object from the storage medium by releasing identification data previously associated with the particular object upon invocation.제 4 항에 있어서, 상기 메소드들은 호출시 상기 제어 컴포넌트가 상기 저장 매체를 다수의 파티션들로 분할하도록 하는 생성 파티션 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.5. The data storage device of claim 4, wherein the methods comprise a creation partition method that, upon invocation, causes the control component to divide the storage medium into a plurality of partitions.제 4 항에 있어서, 상기 메소드들은 호출시 상기 제어 컴포넌트가 상기 저장 매체로부터 특정 파티션을 제거하도록 하는 제거 파티션 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.5. The data storage device of claim 4, wherein the methods include a remove partition method that, when invoked, causes the control component to remove a particular partition from the storage medium.제 1 항에 있어서, 상기 다수의 객체들은 다수의 저장 장치들에 저장된 부분들을 가지며, 상기 다수의 객체들은 두개 이상의 데이터 저장 장치들간의 연관성들을 나타내는 연관 속성들을 포함하는 장치 연관 객체를 포함하는 것을 특징으로 하는 데이터 저장 장치.The device of claim 1, wherein the plurality of objects have portions stored in a plurality of storage devices, the plurality of objects comprising a device association object comprising association properties indicative of associations between two or more data storage devices. Data storage device.제 10 항에 있어서, 상기 메소드들은 호출시 상기 제어 컴포넌트가 상기 연관 속성들에 액세스하게 하는 장치 연관 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.11. The data storage device of claim 10, wherein the methods comprise a device association method that, when invoked, causes the control component to access the association attributes.제 1 항에 있어서, 상기 메소드들은 리퀘스터에 의해 호출시 리퀘스터에 의해 구체화된 속성들을 가지는 상기 저장 매체상에 상기 제어 컴포넌트가 새로운 객체를 생성하도록 하는 개방 생성 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.2. The method of claim 1, wherein the methods include an open creation method that, when called by a requester, causes the control component to create a new object on the storage medium having properties specified by the requester. Storage device.제 1 항에 있어서, 상기 메소드들은 리퀘스터에 의해 호출시 리퀘스터에 의해 구체화된 방식으로 리퀘스터에 의해 식별되는 객체를 상기 제어 컴포넌트가 수정하도록 하는 개방 업데이트 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.2. The method of claim 1, wherein said methods comprise an open update method that, when called by a requester, causes the control component to modify the object identified by the requester in a manner specified by the requester. Device.제 1 항에 있어서, 상기 메소드들은 리퀘스터에 의해 호출시 판독 전용으로 리퀘스터에 의해 식별되는 객체를 상기 제어 컴포넌트가 개방하도록 하는 개방 판독 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.The data storage device of claim 1, wherein the methods include an open read method that causes the control component to open an object identified by the requester as read only when called by a requester.제 1 항에 있어서, 상기 저장 장치는 리퀘스터에 결합가능하고, 상기 메소드들은 리퀘스터에 의해 호출시 상기 리퀘스터에 의해 구체화된 객체에 저장된 데이터를 상기 제어 컴포넌트가 리턴시키도록 하는 판독 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.The method of claim 1, wherein the storage device is coupled to a requester, and the methods include a read method that causes the control component to return data stored in an object embodied by the requester when called by the requester. Data storage device, characterized in that.제 15 항에 있어서, 상기 메소드들은 리퀘스터에 의해 호출시 리퀘스터에 의해 구체화된 객체에 리퀘스터에 의해 구체화된 데이터를 상기 제어 컴포넌트가 기입하도록 하는 기입 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.16. The data storage device of claim 15, wherein the methods include a write method that causes the control component to write data specified by the requester to an object specified by the requester when called by the requester. .제 15 항에 있어서, 상기 메소드들은 리퀘스터에 의해 호출시 폐쇄된 것으로서 상기 리퀘스터에 의해 이전에 개방된 특정 객체를 상기 제어 컴포넌트가 식별하도록 하는 폐쇄 메소드를 포함하는 것을 특징으로 하는 데이터 저장 장치.16. The data storage device of claim 15, wherein the methods include a closure method that causes the control component to identify a particular object previously closed by the requester as being closed by a caller.제 1 항에 있어서, 상기 데이터 저장 장치는 제 2 데이터 저장 장치에 결합가능하고, 상기 메소드들은 호출시 상기 제어 컴포넌트가 상기 제 2 데이터 저장 장치에 특정 객체를 복사하도록 하는 엑스포트 객체(export object)를 포함하는 것을 특징으로 하는 데이터 저장 장치.The data storage device of claim 1, wherein the data storage device is coupled to a second data storage device, and the methods generate an export object that, when called, causes the control component to copy a specific object to the second data storage device. Data storage device comprising a.제 1 항에 있어서, 상기 메소드들은 호출시 상기 제어 컴포넌트가 특정 객체의 락(lock) 속성들에 액세스하도록 하는 락 메소드를 포함하고, 상기 락 속성들은 특정 객체, 특정 파티션 및 데이터 저장 장치 중 하나에 현재 액세스가능한지 여부를 나타내는 것을 특징으로 하는 데이터 저장 장치.The method of claim 1, wherein the methods include a lock method that, when called, causes the control component to access lock attributes of a particular object, the lock attributes being assigned to one of a particular object, a particular partition, and a data storage device. A data storage device that indicates whether it is currently accessible.디스크 드라이브에 데이터를 저장하는 방법으로서,A method of storing data on a disk drive,(a) 다수의 객체들로서 객체 파일 시스템에 따라 디스크에 데이터를 저장하는 단계 - 각각의 객체는 상기 객체의 특성들을 나타내는 속성들을 가짐 -; 및(a) storing data on a disk in accordance with an object file system as a plurality of objects, each object having attributes indicative of characteristics of the object; And(b) 인터페이스에 의해 노출되는 기능들을 호출함으로써 상기 객체들로의 인터페이스를 포함하는 상기 객체 파일 시스템을 통해 상기 디스크상의 객체들에 액세스하는 단계(b) accessing objects on the disk through the object file system that includes an interface to the objects by invoking the functions exposed by the interface.를 포함하는 데이터 저장 방법.Data storage method comprising a.제 20 항에 있어서, 상기 저장 단계 (a)는 두개 이상의 디스크 드라이브들간의 연관성들을 나타내는 연관 속성들을 포함하는 장치 연관 객체를 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 저장 방법.21. The method of claim 20, wherein said storing step (a) comprises storing a device association object comprising association attributes indicative of associations between two or more disk drives.제 21 항에 있어서, 상기 액세스 단계 (b)는,The method of claim 21 wherein the access step (b) comprises:상기 연관 속성들을 획득하여 리턴하도록 획득 연관 속성 기능(get association attributes function)을 호출하는 단계; 및Calling a get association attributes function to obtain and return the association attributes; And상기 장치 연관 객체의 연관 속성들을 설정하도록 설정 연관 속성 기능(set association attributes function)을 호출하는 단계를 포함하는 것을 특징으로 하는 데이터 저장 방법.Invoking a set association attributes function to set association attributes of the device association object.제 1 디스크 드라이브를 포함하는 데이터 저장 장치로서,A data storage device comprising a first disk drive, comprising:제 1 디스크 드라이브는,The first disk drive is데이터 헤드;Data head;데이터 헤드에 대해 회전가능하게 장착되고 다수의 객체들로서 구성된 저장 데이터를 갖는 데이터 저장 디스크 - 각각의 객체는 상기 객체의 특성들을 나타내는 속성들을 가짐 -; 및A data storage disk rotatably mounted about a data head and having storage data configured as a plurality of objects, each object having properties indicative of the properties of the object; And상기 데이터 저장 디스크에 동작가능하게 결합되고 상기 객체들에 인터페이스를 제공하도록 구성되는 제어 컴포넌트 - 상기 인터페이스는 상기 객체들에 액세스하도록 호출되는 메소드들을 노출시킴 -A control component operatively coupled to the data storage disk and configured to provide an interface to the objects, the interface exposing methods invoked to access the objects를 포함하는 데이터 저장 장치.Data storage device comprising a.데이터 저장 시스템의 검퓨터에 의해 실행될때 상기 컴퓨터가,The computer, when run by a computer in a data storage system,(a) 다수의 객체들로서 객체 파일 시스템에 따라 데이터 저장 디스크에 데이터를 저장하는 단계 - 각각의 객체는 상기 객체들의 특성을 나타내는 속성들을 가짐 -; 및(a) storing data on a data storage disk in accordance with an object file system as a plurality of objects, each object having attributes indicative of the properties of the objects; And(b) 인터페이스에 의해 노출되는 기능들을 호출함으로써 상기 객체로의 인터페이스를 포함하는 상기 객체 파일 시스템을 통해 상기 데이터 저장 디스크상의 상기 객체들에 액세스하는 단계를 수행하게 하는 저장된 명령어들을 갖는 컴퓨터 판독가능 매체.(b) a computer readable medium having stored instructions for performing the step of accessing the objects on the data storage disk via the object file system comprising an interface to the object by invoking the functions exposed by the interface. .
KR1020007001402A1997-08-111998-08-10 Object-oriented data storageExpired - Fee RelatedKR100602393B1 (en)

Applications Claiming Priority (5)

Application NumberPriority DateFiling DateTitle
US5473797P1997-08-111997-08-11
US60/054,7371997-08-11
US8183498P1998-04-151998-04-15
US60/081,8341998-04-15
PCT/US1998/016623WO1999008173A2 (en)1997-08-111998-08-10Object oriented data storage device

Publications (2)

Publication NumberPublication Date
KR20010022801A KR20010022801A (en)2001-03-26
KR100602393B1true KR100602393B1 (en)2006-07-20

Family

ID=26733438

Family Applications (1)

Application NumberTitlePriority DateFiling Date
KR1020007001402AExpired - Fee RelatedKR100602393B1 (en)1997-08-111998-08-10 Object-oriented data storage

Country Status (6)

CountryLink
JP (1)JP2003517645A (en)
KR (1)KR100602393B1 (en)
CN (1)CN1266514A (en)
DE (1)DE19882605T1 (en)
GB (1)GB2345167B (en)
WO (1)WO1999008173A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN1267379A (en)*1997-08-152000-09-20西加特技术有限公司Redundancy implementation on object oriented data storage device
CN1158604C (en)*1997-08-282004-07-21西加特技术有限责任公司Object reconstruction on object oriented data storage device
US6725392B1 (en)1999-03-032004-04-20Adaptec, Inc.Controller fault recovery system for a distributed file system
US6742137B1 (en)*1999-08-172004-05-25Adaptec, Inc.Object oriented fault tolerance
US6823398B1 (en)*2000-03-312004-11-23Dphi Acquisitions, Inc.File system management embedded in a storage device
FI120638B (en)*2003-12-172009-12-31Nokia Corp Protection system for data used by Java applications
US7680864B2 (en)2004-03-022010-03-16Intel CorporationMethod and apparatus for managing access to stored objects based on retention policy
US8225221B2 (en)*2004-04-122012-07-17Microsoft CorporationMethod and apparatus for constructing representations of objects and entities
US7444464B2 (en)2004-11-082008-10-28Emc CorporationContent addressed storage device configured to maintain content address mapping
US8161013B2 (en)2004-11-082012-04-17Emc CorporationImplementing application specific management policies on a content addressed storage device
US8996466B2 (en)2008-12-012015-03-31Sap SeExtend crud to support lifecyle management and business continuity
US9256383B2 (en)2010-03-162016-02-09Amplidata NvDevice driver for use in a data storage system
US8386840B2 (en)2010-12-272013-02-26Amplidata NvDistributed object storage system
EP2469413B1 (en)2010-12-272013-06-05Amplidata NVA hierarchical, distributed object storage system
CN111414330B (en)*2019-01-042024-03-22阿里巴巴集团控股有限公司Data editing method and system, data processing device and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP2711216B2 (en)*1993-01-261998-02-10インターナショナル・ビジネス・マシーンズ・コーポレイション System and method for managing objects
US5613099A (en)*1993-02-171997-03-18International Business Machines CorporationPersistent object storage system with modifiable group skeletal formats
US5893107A (en)*1996-07-011999-04-06Microsoft CorporationMethod and system for uniformly accessing multiple directory services

Also Published As

Publication numberPublication date
WO1999008173A2 (en)1999-02-18
JP2003517645A (en)2003-05-27
KR20010022801A (en)2001-03-26
GB0001558D0 (en)2000-03-15
WO1999008173B1 (en)1999-11-04
GB2345167B (en)2002-08-21
WO1999008173A3 (en)1999-09-30
GB2345167A (en)2000-06-28
DE19882605T1 (en)2000-08-10
CN1266514A (en)2000-09-13

Similar Documents

PublicationPublication DateTitle
US6298401B1 (en)Object oriented storage device having a disc drive controller providing an interface exposing methods which are invoked to access objects stored in a storage media
US6321358B1 (en)Object reconstruction on object oriented data storage device
US6704838B2 (en)Hybrid data storage and reconstruction system and method for a data storage device
KR100602393B1 (en) Object-oriented data storage
US7240057B2 (en)System and method for implementing journaling in a multi-node environment
CN100485678C (en)Distributed object-based storage system storing virtual mappings in object attributes
US8229897B2 (en)Restoring a file to its proper storage tier in an information lifecycle management environment
JP4310354B2 (en) Replication facility
US5390297A (en)System for controlling the number of concurrent copies of a program in a network based on the number of available licenses
JP2010533324A (en) Mounting a file system to a clustered file system
US20090112811A1 (en)Exposing storage resources with differing capabilities
US20080319996A1 (en)Distributed Lock Manager For File System Objects In A Shared File System
KR20020080458A (en)A method for repartitioning physical sectors of a storage system with use of virtual disc drives, a data processing apparatus and a data storage apparatus
MillerA reference model for mass storage systems
KR20010022942A (en)Redundancy implementation on object oriented data storage device
US7831642B1 (en)Page cache management for a shared file
US8095503B2 (en)Allowing client systems to interpret higher-revision data structures in storage systems
GuideHPSS
KR100601705B1 (en) Method and device for sharing memory among applications
JP3533113B2 (en) Common resource management method and apparatus, and machine-readable recording medium recording program
HK1028120A (en)Object oriented data storage device

Legal Events

DateCodeTitleDescription
PA0105International application

St.27 status event code:A-0-1-A10-A15-nap-PA0105

N231Notification of change of applicant
PN2301Change of applicant

St.27 status event code:A-3-3-R10-R13-asn-PN2301

St.27 status event code:A-3-3-R10-R11-asn-PN2301

PG1501Laying open of application

St.27 status event code:A-1-1-Q10-Q12-nap-PG1501

A201Request for examination
P11-X000Amendment of application requested

St.27 status event code:A-2-2-P10-P11-nap-X000

P13-X000Application amended

St.27 status event code:A-2-2-P10-P13-nap-X000

PA0201Request for examination

St.27 status event code:A-1-2-D10-D11-exm-PA0201

E902Notification of reason for refusal
PE0902Notice of grounds for rejection

St.27 status event code:A-1-2-D10-D21-exm-PE0902

T11-X000Administrative time limit extension requested

St.27 status event code:U-3-3-T10-T11-oth-X000

T11-X000Administrative time limit extension requested

St.27 status event code:U-3-3-T10-T11-oth-X000

T11-X000Administrative time limit extension requested

St.27 status event code:U-3-3-T10-T11-oth-X000

P11-X000Amendment of application requested

St.27 status event code:A-2-2-P10-P11-nap-X000

P13-X000Application amended

St.27 status event code:A-2-2-P10-P13-nap-X000

E701Decision to grant or registration of patent right
PE0701Decision of registration

St.27 status event code:A-1-2-D10-D22-exm-PE0701

GRNTWritten decision to grant
PR0701Registration of establishment

St.27 status event code:A-2-4-F10-F11-exm-PR0701

PR1002Payment of registration fee

St.27 status event code:A-2-2-U10-U12-oth-PR1002

Fee payment year number:1

PG1601Publication of registration

St.27 status event code:A-4-4-Q10-Q13-nap-PG1601

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:4

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:5

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:6

R18-X000Changes to party contact information recorded

St.27 status event code:A-5-5-R10-R18-oth-X000

R18-X000Changes to party contact information recorded

St.27 status event code:A-5-5-R10-R18-oth-X000

FPAYAnnual fee payment

Payment date:20120625

Year of fee payment:7

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:7

LAPSLapse due to unpaid annual fee
PC1903Unpaid annual fee

St.27 status event code:A-4-4-U10-U13-oth-PC1903

Not in force date:20130712

Payment event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903Unpaid annual fee

St.27 status event code:N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date:20130712

R18-X000Changes to party contact information recorded

St.27 status event code:A-5-5-R10-R18-oth-X000

P22-X000Classification modified

St.27 status event code:A-4-4-P10-P22-nap-X000

P22-X000Classification modified

St.27 status event code:A-4-4-P10-P22-nap-X000

R18-X000Changes to party contact information recorded

St.27 status event code:A-5-5-R10-R18-oth-X000


[8]ページ先頭

©2009-2025 Movatter.jp