WO2004021214A1 - Verfahren und anordnung zur randomisierten datenspeicherung - Google Patents

Verfahren und anordnung zur randomisierten datenspeicherung Download PDF

Info

Publication number
WO2004021214A1
WO2004021214A1 PCT/EP2003/008635 EP0308635W WO2004021214A1 WO 2004021214 A1 WO2004021214 A1 WO 2004021214A1 EP 0308635 W EP0308635 W EP 0308635W WO 2004021214 A1 WO2004021214 A1 WO 2004021214A1
Authority
WO
WIPO (PCT)
Prior art keywords
data storage
data
storage
systems
computer
Prior art date
Application number
PCT/EP2003/008635
Other languages
English (en)
French (fr)
Inventor
André BRINKMANN
Christian Scheideler
Friedhelm Meyer Auf Der Heide
Ulrich RÜCKERT
Kay Salzwedel
Original Assignee
Brinkmann Andre
Christian Scheideler
Friedhelm Meyer Auf Der Heide
Rueckert Ulrich
Kay Salzwedel
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
Priority to US10/524,159 priority Critical patent/US20060242212A1/en
Application filed by Brinkmann Andre, Christian Scheideler, Friedhelm Meyer Auf Der Heide, Rueckert Ulrich, Kay Salzwedel filed Critical Brinkmann Andre
Priority to EP03790856A priority patent/EP1546935A1/de
Priority to AU2003258569A priority patent/AU2003258569A1/en
Publication of WO2004021214A1 publication Critical patent/WO2004021214A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation

Definitions

  • the present invention relates to a method and an arrangement for randomized data storage in storage networks and / or an intranet and / or the Internet as well as a corresponding computer program product and a corresponding computer-readable storage medium, which can be used in particular for the distribution and retrieval of data in fault-tolerant as well as faulty systems such as storage networks, an intranet or the Internet.
  • a distributed data server or a storage network, generally consists of a set of computer systems which are connected to a set of data storage systems via a network.
  • the connection network between the computer systems and the data storage systems consists of a number of switches or routers which ensure delivery of the data packets between communicating units (see FIG. 1).
  • In-band appliances are used in so-called in-band virtualization.
  • the control authority the in-band appliance
  • the in-band appliance is located in the data stream between the server and Storage.
  • the control data as well as the user data run through the appliance, which appears to the servers as the storage system itself.
  • the assignment of storage segments, also referred to as logical volumes, to each individual server takes place here.
  • Control of data access also takes place via this appliance.
  • the appliance is outside the data path and communicates via the network (for example a LAN) with the host bus adapter (HBA) in the server, which requires a special agent.
  • the appliance defines the logical volumes that a server can use.
  • In-Band has the advantage of being easy to integrate and maintain in the storage network. Since in-band operates in the data path, data security can be increased with little effort using a storage firewall in the SAN appliance. Out-band is more complex due to the interactions between the additional agents on the application servers and the SAN appliance. In contrast to in-band, this method occupies only a few ports in the switch, so that greater scalability is available, especially with large redundant SANs. In addition, a failure of the SAN appliance does not hinder data access.
  • in-band appliances all read / write operations of the computer systems connected to the in-band appliances are only accepted by one of the in-band appliances before they are forwarded to the storage systems.
  • the Functionality for the management and distribution of the data can be integrated both in the computer systems, in the routers and in the in-band appliances. It is assumed in the further course that the computer systems connected to a storage network or a distributed file server have all the information necessary for finding data.
  • a web cache is a unit in a network that answers requests from web clients to represent one or more web servers.
  • the web cache has a storage system on which parts of the content of the web server are stored. If the web cache does not store the information requested by a client, the request is forwarded to a higher-level web cache or the original web server and answered by it.
  • Web caches are widely used on the Internet for various reasons. The use of a web cache can significantly reduce the latency that elapses between making a request from the web client to successfully delivering the information to the web client. This is particularly true if the bandwidth between the web cache and the web client is greater than the bandwidth between the web server and the web client or if the load on the web server is so high that it is too high Delivery of the data in the web
  • the performance of the Internet can be significantly increased through the cooperation of several web caches, which are placed in different places on the Internet.
  • the NLANR National Laboratory of Applied Network Research
  • the Akamai caching system the caching services for companies deployed around the world.
  • the main difference in the provision of methods for retrieving data in storage networks or distributed file servers and for web caches is that in the case of storage networks, the connected computer systems have all the information relating to the placement strategy that is necessary to find the data they use are. This includes, among other things, the number and properties of the connected servers and the data storage systems.
  • the client In the case of web caches, on the other hand, the client has only a limited view of the overall system, ie he does not know all the web caches connected to the system.
  • a suitable data management strategy should:
  • 1. can fulfill any proportional division of the data blocks among the storage systems. For identical systems, the uniform distribution of the data blocks over the systems is generally required. 2. make it possible to be able to distribute the data questions to the data storage systems in accordance with the proportional allocation of the data blocks. In the case of different access frequencies to data blocks, this point is not automatically ensured by point 1. 3. be fault tolerant, d. H. Data storage system failures can withstand data loss. The lost parts should be able to be regenerated in the shortest possible time. 4. Ensure that when adding or removing data storage systems, as few data blocks as possible need to be re-placed in order to restore the above points. If possible, this should be done without noticeably affecting ongoing operations. 5. Ensure compact storage and efficient predictability of the placement.
  • the data placement strategy must ensure that the highest possible number of accesses to the storage system is successful. H. be placed on a server storing the information.
  • mapping is the so-called disk striping [CPK95], which is used in many approaches in different granularity [PGK88, TPBG93, BBBM94, BHMM93, HG92, BGMJ94, BGM95].
  • RAID Redundant Array of Independent Disks
  • RAID level Redundant Array of Independent Disks
  • With disk striping the data blocks of the virtual address space (or partial blocks of these data blocks) are wrapped cyclically around the hard disks.
  • the disadvantage of this strategy is that it is very inflexible with a changing number of hard drives. A change by just one hard disk can require an almost complete redistribution of the data blocks. For this reason, today's hard disk fields are difficult to scale. Hard disk systems with a large number of hard disks are therefore
  • the object to be achieved by the invention is to provide a method and an arrangement for randomized data storage in storage networks and / or an intranet and / or the Internet, as well as a corresponding computer program product and a corresponding computer-readable storage medium, by means of which the the disadvantages mentioned above are eliminated and in particular an effective handling of storage networks which comprise heterogeneous storage media, and a dynamic one Scaling of storage networks is ensured by inserting or removing storage media.
  • An arrangement for randomized data storage in storage networks and / or an intranet and / or the Internet is advantageously set up in such a way that it comprises at least one processor which is (are) set up such that a method for randomized data storage in storage networks and / or an intranet and / or the Internet, the randomized data storage comprising the method steps according to one of claims 1 to 14.
  • a computer program product for randomized data storage in storage networks and / or an intranet and / or the Internet comprises a computer-readable storage medium on which a program is stored which enables a computer to be randomized after it has been loaded into the memory of the computer Perform data storage in storage networks and / or an intranet and / or the Internet, the randomized data storage comprising the method steps according to one of claims 1 to 14.
  • a computer-readable storage medium is advantageously used, on which a program is stored which enables a computer after it has been loaded into the memory of the computer is to carry out a method for randomized data storage in storage networks and / or an intranet and / or the Internet, the randomized data storage comprising the method steps according to one of claims 1 to 14.
  • pseudo-random functions are used in the first and / or second random process.
  • Storage systems are each assigned at least one subspace Ij or Ik of the virtual storage space by the first random process, wherein
  • the predefinable parameter describes the physical capacity of data storage systems or the request load of data storage systems or correct deviations from the desired distribution.
  • C ' (c ⁇ >,..., c n >)
  • c ⁇ - c k ⁇ ⁇ ⁇ jc ⁇ - c 'j (1 1,..., n).
  • This procedure has the great advantage that, in contrast to a direct update, the system can react much faster to high demand loads or a new capacity distribution C 'chosen by the administrator, since the transition process from C to C' can be terminated in each C 1 .
  • at least one table is provided for storing the data blocks in a storage medium, in which the association between the virtual address and the physical address is stored on the storage medium.
  • Another advantage of the method according to the invention for randomized data storage is that a plurality of data blocks are combined to form an extent, which in the table have a common physical assigned address on the storage medium, the data blocks of an extent in the logical address space being connected to one another by the first data block of an extent consisting of 2 data blocks being given an address of the form x00 ... 000, the lower ⁇ bits being zero, the last block of this extent the address xll. , , 111 is obtained, the lowest ⁇ bits being one, and the physical position of a data block being obtained by adding the table entry for the associated extent to the last ⁇ bits of the logical address of the data block.
  • This procedure reduces the number of table entries to be saved.
  • the arrangement of at least one data storage system and / or at least one computer system which (reads) and / or writes (accesses) the storage media, and / or at least one between the (the ) Computer system (s) and the data storage system (s) switched controller unit for controlling the method comprises randomized data storage.
  • the data storage systems advantageously include hard disk fields and / or buffers designed as web cashes
  • the arrangement comprises at least one controller unit connected between the computer system (s) and the data storage system (s) for controlling the method for randomized data storage. It can prove useful that the method for randomized data storage is implemented as a hardware RAID method in the controller unit.
  • the arrangement has at least one dedicated computer system (SAN appliance) connected via means for data exchange with storage media and computer systems of the arrangement for coordinating the data storage and / or via means for data exchange with storage media and Computer systems of the arrangement includes connected computing resources (in-band appliances) for the distribution of the data blocks. It is also an advantage that the arrangement comprises heterogeneous storage media.
  • Fig. 1 construction of a storage network
  • the solution to the task generally depends on whether the clients 3 connected to a system have all the information necessary for data distribution.
  • the method according to the invention which is referred to below as a share strategy, presented, which is able to guarantee almost optimal distribution and access properties in both cases.
  • the number of data blocks to be stored in a system is designated by m, the number of maximum usable data storage systems by N.
  • N is specified by the data placement strategy and is not dependent on the current number and size of the data storage systems.
  • the number of data storage systems actually available in the system is designated by n. In the event that the number of data blocks that can be stored by the data storage systems is less than m, it is necessary that a further storage system be made available into which data blocks that cannot currently be mapped can be swapped out.
  • the size of the individual ci can depend on various factors, for example: B. from the storage capacity if it is a hard disk, or from the bandwidth of the connected connections in a web cache.
  • the goal of a data placement strategy should be that on everyone
  • the task of the data distribution strategy can now be divided into two task points.
  • a data block with its virtual address must be assigned to a data storage system. This assignment is also referred to below as global data distribution.
  • the data block In a second step, the data block must not only be assigned to a data storage system, but also to a position on this data storage system. This assignment is also referred to below as local data distribution.
  • the invention deals with the problem of global data distribution. In the context of the description of the method according to the invention, simple local data distribution strategies are presented briefly, which supplement our new global data distribution strategies.
  • a prerequisite for the use of the share strategy is that it can use a function as a subroutine that solves the problem of data distribution for uniforms
  • each storage system is assigned one or more intervals, the total size of which corresponds to the relative capacity of the system. These intervals are mapped to a [0, 1) interval, but, unlike previous strategies, can overlap with other intervals.
  • a real point in the [0, 1) interval is now assigned to each data block using a (pseudo) random function. This point may belong to multiple intervals of storage systems. If so, a uniform placement strategy is used to assign the data block to one of these storage systems. If the relative capacities of the storage systems change, the interval slopes are adjusted accordingly.
  • the strategy used by the share strategy for uniform data storage systems is referred to below as uniform (b, S), where b describes the virtual address of the data block and S the amount of data storage systems.
  • the return of the function is provided by the data storage system on which data block b is placed.
  • the share strategy is based on two additional hash functions that must be provided in addition to the hash functions that may be used for the uniform strategy.
  • the hash function h ⁇ ! ,. , , M ⁇ -> [0,1) distributes the data blocks pseudorandomly over the interval [0,1).
  • Another hash ⁇ ! ,. , , M ⁇ -> [0,1) distributes the data blocks pseudorandomly over the interval [0,1).
  • An interval Ii of length s * c ⁇ is now assigned to each virtual data storage system i, which ranges from g (i) to (g (i) + s * CiJmodl.
  • the [0, 1) range is therefore regarded as a ring, um the individual intervals are wrapped.
  • the constant s is called the stretch factor.
  • ⁇ ⁇ y should be selected. A ⁇ ⁇ y is possible, but complicates the implementation of the method.
  • an important advantage of the invention is that it allows the handling of changes in the storage network 1 in an extremely simple manner. Depending on the requirements, it can be useful to react to changing environments by adapting the share strategy.
  • the simplest method is to go directly from C to C and make the appropriate relocations. This has the disadvantage that even with minor changes due to the use of pseudorandom functions may require repositioning of multiple blocks of data, and major changes may result in the system being in a transitional state for a long time, which may jeopardize the maintenance of the fourth point of the data management strategy requirements mentioned above.
  • Variant 2 Lazy Update In the following, a strategy is presented that ensures that no data can be redistributed with very small changes in capacity.
  • 0 ⁇ ⁇ 1 be a fixed constant, which is called the inertia of the share strategy.
  • the share strategy only changes the relative capacity of a data storage system i from Ci to Ci 'if Ci'> (1 + ⁇ ) Ci or Ci 1 ⁇ (1 - ⁇ ) Ci.
  • the sum of the relative capacities across all data storage systems can deviate from 1, but remains in the range of 1 ⁇ ⁇ , so that the properties of the share strategy are not endangered if the ⁇ is small.
  • the choice of capacities for share does not necessarily depend on the physical capacity of a storage system. Since Share allows any capacity distribution, the Share capacities can also be used to better balance the request load, for example to eliminate bottlenecks in the connections to storage systems or in the storage systems themselves. They can also be used to compensate for deviations from the desired distribution (which cannot be ruled out due to the use of pseudo-random hash functions).
  • the share strategy thus allows a high degree of flexibility in the distribution of data and a high level of robustness, and thus fulfills important requirements for a storage system.
  • high probability means that the probability that an area is not covered is less than / yn.
  • Ck ibt the control of the distribution of the intervals that not every point of the
  • the covering can be done by adapting the stretch factor.
  • the expected time to calculate the data storage system belonging to a data block is 0 (1).
  • the memory complexity for the calculation of the share strategy is 0 (s * k * (n + ys)) - the memory and calculation complexity of the hash functions used are not included here.
  • the following sections show how the construction of data storage systems can be carried out efficiently using the share strategy. It is pointed out that these are only implementation examples.
  • the first step shows how the functionality can be integrated into a general RAID system:
  • the share strategy can be used to build up hard disk fields in systems that consist of a large number of storage media, several computer systems and a controller unit.
  • the share strategy can be integrated in the connected computer systems as a software RAID procedure, as well as in the controller unit as a hardware RAID procedure.
  • the share strategy is responsible for the assignment of the data blocks via the hard disks, the assignment of the data block to a physical address on the hard disk is carried out by a strategy lying under the share strategy.
  • One way of assigning the physical position is to provide tables in which an assignment between the virtual address and the physical address is stored on the hard disk.
  • An extent is a set of blocks that are linked together in the logical address space.
  • An extent consists of 2 ⁇ blocks. The first block of the extent has an address of the form x00. , , 000, the lower ⁇ bits 7 being represented by the digit zero. The last block of the extent has the address xll. , , III, the lowest ⁇ bits 7 being represented by the number one.
  • the physical position of a data block is obtained by adding the table entry for the associated extent with the lower ⁇ bits 7 of the logical address of the data block.
  • Every table entry has the form y00. , , 000, ie the lower ⁇ bits 7 are set to zero, the addition can be carried out by a simple OR operation.
  • the upper bits 6 of the virtual address of a data block thus serve to calculate the assigned storage medium and to determine the table entry for the extent, the lower bits 7 serve as an offset within the extent.
  • a table entry is assigned to all data blocks that have common upper bits 6. This table entry can e.g. B. can be saved at the point at which the calculation of the share strategy is also carried out.
  • the integration of the global data distribution strategies in a storage network 1 is based on a structure according to FIG. 1.
  • the overall system consists of a number of file or database servers, hereinafter referred to as computer systems, which are connected to data storage systems 4 via a storage network 1.
  • the storage network 1 further comprises a number of switches or routers 2 which ensure the delivery of the data packets between communicating units.
  • the computer systems are to be regarded as clients 3, which read 4 blocks from the data storage systems or write 4 data blocks on the data storage systems.
  • any subset M of the storage systems 4 connected to the storage network 1 can be managed like a single logical storage pool which has a linear address space.
  • the amount of storage systems 4 can be divided into several smaller or one large storage pool, wherein none of the storage systems 4 should be assigned to more than one storage pool. In the following, only the case is considered that the system consists of a storage pool.
  • ⁇ virtual storage systems can be built from a storage pool, each of these virtual storage systems being managed in accordance with the share strategy. If a storage pool consists of a subset M of the storage systems, the share strategy for the logical storage systems is called up in accordance with the entire subset M.
  • a storage policy is assigned to each virtual storage system, which includes properties such as physical block size and redundancy. This mapping can be done separately for each virtual storage system or once for the entire storage pool. After data has been written to a virtual hard disk, the storage policy can generally not be changed.
  • the computer system asks a central entity that has global knowledge of all table entries for a table entry for the extent
  • An area is reserved on each storage system 4 which assigns the virtual address to the physical address.
  • the computer system first searches for the virtual address of the extent. If this address has not yet been reserved, the computer system searches for a free address on the storage system 4.
  • this task according to FIG. 1 must be performed by one or more of the connected computer systems.
  • one or more dedicated devices which are referred to as SAN appliances 5, can also be connected to the storage network 1 for coordinating the computer systems according to FIG.
  • the use of SAN appliances 5 can ensure that everyone connected computer systems have the same view of the storage systems 4, ie are informed at the same time about the exit or addition of the storage systems 4.
  • the SAN appliance 5 thus offers a number of interfaces via which information can be exchanged between the SAN appliance 5 and the client computers 3. These include:
  • the share method can also be integrated in so-called in-band appliances (see FIG. 3).
  • the in-band appliances are dedicated systems that transform the logical address of a data block that they receive from the connected computer systems into the physical address.
  • the use of in-band appliances is necessary if the functionality of the share strategy cannot be integrated directly into the computer systems, since no software version of the share strategy is available for these computer systems or the performance of the connected computer systems is insufficient is large to perform the transformation of the logical addresses into the physical addresses.
  • an in-band appliance behaves like a connected computer system, from the point of view of the in-band appliance connected computer systems like a physical storage system.
  • in-band appliances can be mixed with computer systems in which the share strategy is carried out.
  • the problem with the construction of systems for the delivery of data objects via the Internet differs from the construction of storage systems in that clients 3 on the Internet do not have a global view of all available web servers and web caches in the system. If a date is to be read from a web cache in order to relieve the burden on the participating web servers, it must therefore be ensured that the client 3 knows at least one web cache belonging to a data object and that the data object to be read also knows the correct web cache can assign.
  • this task cannot be solved without creating multiple copies of a data object, which are distributed over the web caches according to a predefined placement strategy. If k copies of each data object are stored by a system, the client 3 asks one after the other or simultaneously for the k web caches which it believes are storing a copy of the data object. If one of the web caches holds a copy of the data object, this copy is then read by the client 3.
  • a data object of the web cache which is calculated by the share strategy, is the same for C and V.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die vorliegende Erfindung beschreibt ein Verfahren und eine Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium, welche insbesondere einsetzbar sind für die Verteilung und das Wiederauffinden von Daten in fehlertoleranten sowie fehlerbehafteten Systemen. Hierfür wird vorgeschlagen, dass bei dem Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet jedem Speichersystem ein oder mehrere Intervalle zugeordnet werden. Diese Intervalle werden auf ein [0,1)-Intervall abgebildet, können sich aber im Gegensatz zu früheren Strategien mit anderen Intervallen überlappen. Jedem Datenblock wird nun mittels einer (pseudo- )zufälligen Funktion ein reeller Punkt im [0,1)-Intervall zugewiesen. Dieser Punkt kann zu mehreren Intervallen von Speichersystemen gehören. Falls dem so ist, wird eine uniforme Platzierungsstrategie verwendet, um den Datenblock einem dieser Speichersysteme zuzuweisen. Verändern sich die relativen Kapazitäten der Speichersysteme, so werden die Intervalllängen angepasst.

Description

Verfahren und Anordnung zur randomisierten Datenspeicherung
Beschreibung
Die vorliegende Erfindung betrifft ein Verfahren und eine Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm- Erzeugnis und ein entsprechendes computerlesbares Speichermedium, welche insbesondere einsetzbar sind für die Verteilung und das Wiederauffinden von Daten in fehlertoleranten sowie fehlerbehafteten Systemen, wie beispielsweise Speichernetzwerke, einem Intranet oder dem Internet .
Die Organisation von mehreren Datenspeichersystemen als effizientes und flexibles Speichersystem erfordert die Lösung zahlreicher Aufgaben. Eine der wichtigsten ist es, eine geeignete Datenplatzierung, d. h. eine geeig- nete Strategie zur Verteilung der Datenblöcke über das Speichersystem zu finden, die einen schnellen Zugriff auf die Daten und eine hohe Sicherheit gegen Datenverlust erlaubt. Im Rahmen der Beschreibung wird im Folgenden zwischen einer Menge von auf die Datenblöcke zugreifenden Einheiten, den Clients, und einer Menge von Einheiten, die Datenblöcke ausliefert, den Servern, unterschieden. Die Begriffe Server und Datenspeichersystem werden dabei synonym verwendet.
Die im Folgenden betrachteten Verfahren und Systeme dienen zum Aufbau von verteilten Datenservern und Speichernetzwerken, sowie zum Aufbau von Web-Systemen zum Caching von Daten. Ein verteilter Datenserver, bzw. ein Speichernetzwerk, besteht im Allgemeinen aus einer Menge von Computersystemen, die über ein Netzwerk mit einer Menge von Datenspeichersystemen, verbunden sind. Das Verbindungsnetzwerk zwischen den Computersystemen und den Datenspeichersystemen besteht aus einer Menge von Switches bzw. Routern, die eine Zustellung der Datenpakete zwischen kommunizierenden Einheiten sicherstellen (siehe Figur 1) . Weiterhin kann das System über eine Menge von SAN-Appliances (SAN = Storage Area Network) verfügen, die an das Netzwerk angekoppelt sein können und ein Koordination zwischen den einzelnen ComputerSystemen und den Datenspeichersystemen sicherstellen (siehe Figur 2). Weiterhin können so genannte In-Band-Appliances zwischen die ComputerSysteme und die Daten- speichersysteme geschaltet werden (siehe Figur 3). In- Band-Appliances finden bei der so genannten In-Band- Virtualisierung Verwendung. Bei der In-Band- Virtualisierung befindet sich die Kontrollinstanz, die In-Band-Appliance, im Datenstrom zwischen Server und Speicher. Die Steuerdaten wie auch die Nutzdaten laufen durch die Appliance, die den Servern als das Speichersystem selbst erscheint. Die Zuordnung von Speichersegmenten, auch als logische Volumes bezeichnet, zu jedem einzelnen Server geschieht hier. Ebenso passiert die Steuerung des Datenzugriffs über diese Appliance. Demgegenüber gibt es auch den Ansatz, die Virtualisierung über die so genannte Out-of-Band- Virtualisierung zu realisieren. In diesem Falle befindet sich die Appliance außerhalb des Datenpfades und kommuniziert über das Netzwerk (beispielsweise ein LAN) mit dem Host-Bus-Adapter (HBA) im Server, der einen speziellen Agenten benötigt. Die Appliance definiert die logischen Volumes, die ein Server benutzen darf. Die exakten Informationen über die zugehörigen logischen und physischen Blöcke speichert der Server anschließend auf seinem HBA. In-Band verfügt über den Vorteil, sich unkompliziert ins Speichernetz integrieren und warten zu lassen. Da In-Band im Datenpfad operiert, lässt sich die Datensicherheit durch eine Storage-Firewall in der SAN-Appliance mit geringem Aufwand erhöhen. Out-Band gestaltet sich auf Grund der Wechselwirkungen zwischen den zusätzlichen Agenten auf den Applikationsservern und der SAN- Appliance komplexer. Im Gegensatz zu In-Band belegt diese Methode im Switch nur wenige Ports, so dass vor allem bei großen redundant ausgelegten SANs eine höhere Skalierbarkeit zur Verfügung steht. Zudem behindert ein Ausfall der SAN-Appliance den Datenzugriff nicht. Im Falle des Einsatzes von In-Band-Appliances werden alle Lese/ Schreib-Operationen der an die In-Band-Appliances angeschlossenen ComputerSysteme erst von einer der In- Band-Appliances entgegengenommen, bevor sie an die Speichersysteme weitergeleitet werden. Die Funktionalität zum Management und zur Verteilung der Daten kann dabei sowohl in die ComputerSysteme, in die Router, als auch in die In-Band-Appliances integriert werden. Es wird im weiteren Verlauf davon ausgegangen, dass die an ein Speichernetzwerk bzw. einen verteilten Dateiserver angeschlossenen Computersysteme über alle für das Auffinden von Daten notwendigen Informationen verfügen.
Ein Web-Cache ist eine Einheit in einem Netzwerk, die stellvertretend für einen oder mehrere Web-Server Zugriffe von Web-Clients beantwortet. Um diese Funktionalität zur Verfügung zu stellen, verfügt der Web-Cache über ein Speichersystem, auf dem Teile der Inhalte der Web-Server gespeichert werden. Speichert der Web-Cache die von einem Client angefragten Information nicht, so wird die Anfrage an einen übergeordneten Web-Cache, bzw. den ursprünglichen Web- Server weitergeleitet und von diesem beantwortet. Web- Caches erfreuen sich aus verschiedenen Gründen einer weiten Verbreitung im Internet . Durch den Einsatz eines Web-Caches kann die Latenzzeit, die zwischen dem Stellen einer Anfrage von dem Web-Client bis zu der erfolgreichen Auslieferung der Informationen an den Web-Client vergeht, signifikant reduziert werden. Dieses trifft besonders dann zu, wenn die Bandbreite zwischen dem Web-Cache und dem Web-Client größer als die Bandbreite zwischen dem Web-Server und dem Web-Client ist oder wenn die Belastung des Web-Servers so hoch ist, dass es bei der Auslieferung der Daten in dem Web-
Server selbst zu Stauungen kommt. Weiterhin kann durch den Einsatz von Web-Caches der Datenverkehr im Internet reduziert werden, wodurch eine Steigerung der Lei- stungsfähigkeit des gesamten Systems Internet erzielt werden kann.
Durch die Kooperation mehrerer Web-Caches , die an ver- schiedenen Orten des Internets platziert werden, kann die Leistungsfähigkeit des Internets deutlich erhöht werden. Beispielsweise für die kooperative Zusammenarbeit mehrerer Web-Caches sind das NLANR (National Laboratory of Applied Network Research) Caching-System, dass aus einer Menge von Backbone-Caches in den USA besteht, oder das Akamai Caching-System, das Caching- Services für Unternehmen auf der ganzen Welt bereitstellt.
Der Hauptunterschied in der Bereitstellung von Verfahren zum Wiederauffinden von Daten in Speichernetzwerken bzw. verteilten Dateiservern und für Web-Caches besteht darin, dass im Falle von Speichernetzwerken die angeschlossenen ComputerSysteme über alle Informationen bezüglich der Platzierungsstrategie verfügen, die zum Wiederauffinden der von ihnen verwendeten Daten notwendig sind. Dieses umfasst unter anderem die Anzahl und die Eigenschaften der angeschlossenen Server, respektive der Datenspeichersysteme. Im Falle von Web- Caches verfügt der Client hingegen nur über eine beschränkte Sicht des Gesamtsystems, d. h. er kennt nicht alle an das System angeschlossene Web-Caches. Werden nicht alle Daten auf allen Web-Caches gespeichert, kann dieses dazu führen, dass der Web-Client ein Datum nicht von einem Web-Cache, sondern nur direkt vom Web-Server anfordern kann, da er entweder keinen Web-Cache kennt, der die von ihm angefragten Informationen speichert, oder weil er zwar den für ihn re- levanten Web-Cache kennt, jedoch diesen Web-Cache nicht als für dieses Datum zuständig identifizieren kann.
Um eine hohe Effizient, Skalierbarkeit und Robustheit eines Datenspeichersystems, bzw. eines Web-Caches sicherzustellen, sind eine Reihe von Anforderungen zu erfüllen. Eine geeignete Datenverwaltungsstrategie sollte:
1. jede anteilsmäßige Aufteilung der Datenblöcke auf die Speichersysteme erfüllen können. Für identische Systeme wird in der Regel die gleichmäßige Verteilung der Datenblöcke über die Systeme gefordert. 2. es ermöglichen, die Datenfragen gemäß der anteils- mäßigen Zuordnung der Datenblöcke an die Datenspeichersysteme verteilen zu können. Für den Fall unterschiedlicher Zugriffshäufigkeiten auf Datenblöcke ist dieser Punkt nicht automatisch durch Punkt 1 sichergestellt. 3. fehlertolerant sein, d. h. Ausfälle von Datenspeichersystemen ohne Datenverlust überstehen können. Die verlorenen Teile sollten in möglichst kurzer Zeit neu generiert werden können. 4. sicherstellen, dass bei einer Hinzufügung oder Wegnahme von Datenspeichersystemen nur möglichst wenige Datenblöcke replatziert werden müssen, um die oberen Punkte wieder herzustellen. Dieses sollte möglichst ohne spürbare Beeinträchtigung des laufenden Betriebs geschehen. 5. eine kompakte Speicherung und effiziente Berechenbarkeit der Platzierung sicherstellen.
Verfügt der Client nur über unvollständige Informationen über die Verteilung der Daten über die Datenspei- chersysteme, wie z. B. der Client von Web-Caches, so muss zusätzlich der folgende Punkt unterstützt werden:
6. auch wenn der Client nur über unvollständige, bzw. falsche Informationen über den Aufbau des Speichersystems verfügt, muss die Datenplatzierungsstrategie sicherstellen, dass eine höchst mögliche Anzahl von Zugriffen auf das Speichersystem erfolgreich ist, d. h. an einen die Informationen speichernden Server gestellt werden.
Es gibt im Wesentlichen zwei Standardstrategien für die Speicherung von Daten in Festplattensystem:
1. die Verwendung einer Zeigerstruktur, die ähnlich der VerbindungsStruktur in Dateisystemen für klassische Speichermedien (wie z. B. Festplatten und Disketten) arbeitet, oder 2. die Verwendung eines virtuellen Adressraums, der ähnlich eines virtuellen Adressraums in Rechnern verwaltet wird.
Wir werden uns im Folgenden auf den zweiten Punkt beschränken und annehmen, die Daten eines Festplatten- - Systems werden in Form eines virtuellen Adressraums gleichgroßer Datenblöcke verwaltet. Das Problem besteht also darin, eine • geeignete Abbildung des virtuellen Adressraums auf die Festplatten zu finden.
Die einfachste Art der Abbildung ist das so genannte Disk-Stripi g [CPK95] , das in vielen Ansätzen in unterschiedlicher Granularität verwendet wird [PGK88, TPBG93, BBBM94, BHMM93, HG92, BGMJ94, BGM95] . Diese Methode hat eine weite Verbreitung in Festplattenfeldern (auch als RAID-Arrays [RAID = Redundant Array of Independent Disks] bezeichnet) erfahren, da viele der optionalen Platzierungsmethoden (genannt: RAID-Level) auf Disk-Striping aufbauen. Beim Disk-Striping werden die Datenblöcke des virtuellen Adressraums (oder Teilblöcke dieser Datenblöcke) zyklisch um die Festplatten gewickelt. Diese Strategie hat den Nachteil, dass sie sehr unflexibel bezüglich einer sich ändernden Anzahl an Festplatten ist. Eine Ver- änderung um lediglich eine Festplatte kann eine fast vollständige Neuverteilung der Datenblöcke erfordern. Aus diesem Grund sind heutige Festplattenfelder nur schlecht skalierbar. Üblicherweise werden daher Festplattensysteme mit sehr vielen Festplatten in mehrere RAID-Arrays untergliedert.
Die Verwendung von zufälligen Datenplatzierungen
(mittels pseudo-zufälliger Funktionen) ist bereits von vielen Forschern als vielversprechende Alternativ- methode angesehen worden [AT97, B97, SMB98, K97]. In dieser Technik werden den Datenblöcken zufällig ausgewählte Festplatten zugewiesen. Zu den ersten, die zufällige Datenplatzierungsstrategien untersucht haben, zählen Mehlhorn und Vishkin [MV83]. Insbesondere haben sie untersucht, inwiefern mehrere zufällig platzierte Kopien pro Datenblock helfen können, um Anfragen gleichmäßig auf die Speichereinheiten zu verteilen. Weitere wichtige Resultate in dieser Richtung sind z. B. von Upfal and Wigderson [UW87] und Karp, Luby und Meyer auf der Heide [KLM92] erzielt worden.
Birk [B97] hat ähnliche Datenabbildungs- und -zugriffs- strategien vorgeschlagen, aber er verwendet eine Paritätskodierung der Datenblöcke. Weitere Arbeiten sind unter anderem von Santos und Muntz im Rahmen des RIO Datenserver-Projekts (RIO = Remote I/O) durchgeführt worden [SMB98, SM98] . Sie vergleichen die zufällige Platzierung mit traditionellen Striping-Methoden und zeigen, dass selbst in Situationen, für die Disk-Striping entwickelt worden ist (reguläre Zugriffsmuster) , die zufällige Platzierung gleichwertig oder besser ist [SM98b] . Ihre zufäl- lige Platzierung basiert auf einem zufälligen Muster fester Größe. Falls die Anzahl der Datenblöcke diese Größe übersteigt, dann wenden sie das Muster wiederholt an, um den gesamten Datenraum auf die Festplatten abzubilden. Das kann natürlich zu unangenehmen Korrelatio- nen zwischen den Datenblöcken führen und eine Abweichung von der Gleichverteilung der Datenblöcke und Anfragen verursachen.
Bisher gibt es jedoch nur wenige Ansätze, die in der Lage sind, die Anforderungen an eine effiziente, pseudo-randomisierte Datenplatzierung zu erfüllen. Besonders Schwierigkeiten ergeben sich . dann, wenn heterogene, das heißt verschieden große Datenspeichersysteme verwendet werden oder wenn Datenspeichersysteme dynamisch in ein System eingefügt oder aus dem System herausgenommen werden .
Ein erster Ansatz, um Datenblöcke dynamisch und ran- domisiert über Datenspeichersysteme zu verteilen, ist in [KLL+97] vorgestellt worden. Dort werden (pseudo-
) zufällige Funktionen verwendet, um den Datenblöcken und Datenspeichersystemen zufällige reelle Punkte im Intervall [0,1] zuzuweisen. Ein Datenblock wird immer von dem Datenspeichersystem gespeichert, dessen Punkt am nächsten am Punkt des Datenblocks im [0 , 1] -Intervall liegt. Der Vorteil dieser Strategie liegt darin, dass sie einfach zu verwalten ist und sie nur die Replatzierung einer erwartungsgemäß minimalen Anzahl an Blöcken bei einer wechselnden Anzahl an Datenspeichersystemen erfordert. Sie hat allerdings den Nachteil, dass relativ hohe Schwankungen um den Erwartungswert für die Anzahl der auf einem Datenspeichersystem zu speichernden Blöcke und der zu replatzierenden Blöcke auftreten können und dass sie nur für homogene Datenspeichersysteme effizient anwendbar ist.
In [BBS99] wurde ein Verfahren vorgestellt, das auch auf (pseudo-) zufälligen Funktionen aufbaut. Die Daten- blocke werden wie auch in [KLL+97] mittels einer solchen Funktion auf zufällige Punkte im [0 , 1] -Intervall abgebildet. Aber die Zuordnung des [0 , 1] -Intervalls auf die Datenspeichersysteme geschieht mittels einer fest vorgegebenen Abbildung, die Assimilierungsfunktion ge- nannt wird. Diese Funktion sorgt dafür, dass jede Festplatte den gleichen Anteil des [0 , 1] -Intervalls zugewiesen bekommt. Damit kann gewährleistet werden, dass nicht nur die benutzten Datenblöcke des virtuellen Adressraums sondern auch Anfragen an diese Blöcke gleichmäßig über die Festplatten verteilt werden können. Ein Vorteil dieses Verfahrens im Vergleich zu [KLL+98] liegt darin, dass die Assimilierungsfunktion die Daten mit wesentlich geringeren Abweichungen von der Gleichverteilung über die Datenspeichersysteme ver- teilen kann. Wie die Strategie in [KLL+98] benötigt diese Strategie nur die Replatzierung einer erwartungsgemäß minimalen Anzahl an Blöcken bei einer wechselnden Anzahl an DatenspeicherSystemen. Allerdings funktio- niert sie wie die Strategie in [KLL+98] nur gut für homogene Systeme.
Da es häufig aus Kostengründen nicht effizient ist, dass ein Speichersystem rein aus identischen Datenspeichersystemen besteht, wurden in [BSS00] auch Strategien für nichtuniforme Datenspeichersysteme entworfen. Diese basieren auf der in [BBS99] vorgestellten Strategie für identische Datenspeichersysteme. Zunächst wird angenommen, alle Systeme haben die gleiche Speicherkapazität. Auf alle die Intervallteile, die über die Kapazität einer DatenspeicherSysteme hinausgehen, wird dann in einer zweiten Runde noch einmal die Strategie für identische Festplatten angewandt, aller- dings diesmal nur auf die Datenspeichersysteme, die nach der ersten Platzierungsrunde noch freie Kapazitäten besitzen. Die dabei nicht unterzubringenden Intervallteile werden in einer weiteren Runde noch einmal platziert, usw., bis das komplette [0 , 1] -Intervall untergebracht ist. Der Hauptnachteil dieses Verfahrens besteht darin, dass es Situationen gibt, in denen deutlich mehr an Daten umplatziert werden, als minimal notwendig .
Die Aufgabe, die durch die Erfindung gelöst werden soll, besteht darin, ein Verfahren und eine Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium bereitzustellen, durch welche die vorstehend genannten Nachteile behoben werden und insbesondere eine effektive Behandlung von Speichernetzwerken, die heterogene Speichermedien umfassen, sowie eine dynamische Skalierung von Speichernetzwerken durch Einfügen oder Herausnehmen von Speichermedien gewährleistet wird.
Diese Aufgabe wird erfindungsgemäß gelöst durch die Merkmale im kennzeichnenden Teil der Ansprüche 1, 15, 23 und 24 im Zusammenwirken mit den Merkmalen im Oberbegriff. Zweckmäßige Ausgestaltungen der Erfindung sind in den Unteransprüchen enthalten.
Ein besonderer Vorteil der Erfindung liegt darin, dass durch das Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet die Behandlung von Änderungen im Speichernetzwerk ganz erheblich vereinfacht wird, indem eine Menge von Datenblöcken Di (i=l, ..., m) einer Menge von Datenspeichersystemen Sj (j=l/ ■ ■ • , n.) gemäß den folgenden Schritten zugeordnet und dort gespeichert wird: a) der Gesamtmenge der Datenspeichersysteme wird ein virtueller Speicherraum und jedem einzelnen Datenspeichersystem S (j=l, ..., n) durch einen ersten Zufallsprozeß mindestens ein Teilraum Ij des virtuellen Speicherraums zugeordnet, wobei das Verhältnis zwischen dem Teilraum Ij und dem gesamten virtuellen Speicherraum wenigstens näherungsweise dem Verhältnis der auf das Datenspeichersystem Sj bzw. auf die Gesamtmenge der Datenspeichersysteme bezogenen Werte eines vorgebbaren Parameters entspricht, b) jedem Datenblock Di (i=l, ..., m) wird durch einen zweiten Zufallsprozeß ein (zufälliges) Element h(i) des virtuellen Speicherraums zugeordnet, c) für jeden Datenblock Di (i=l, ..., m) wird mindestens ein Teilraum Ik ermittelt, in dem h(i) ent- halten ist, und der Datenblock D mindestens einem der durch diese (n) Teilräume (Teilraum) Ik repräsentierten Datenspeichersystem Sk zugeordnet und dort gespeichert.
Eine Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet ist vorteilhafterweise so eingerichtet, daß sie mindestens einen Prozessor umfaßt, der (die) derart eingerichtet ist (sind) , daß ein Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet durchführbar ist, wobei die randomisierte Datenspeicherung die Verfahrensschritte gemäß einem der Ansprüche 1 bis 14 umfaßt.
Ein Computerprogrammprodukt zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet umfaßt ein computerlesbares Speichermedium, auf dem ein Programm gespeichert ist, das es einem Computer ermöglicht, nachdem es in den Speicher des Computers geladen worden ist, ein Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Inter- net durchzuführen, wobei die randomisierte Datenspeicherung die Verfahrensschritte gemäß einem der Ansprüche 1 bis 14 umfaßt.
Um eine randomisierte Datenspeicherung in Speichernetz- werken und/oder einem Intranet und/oder dem Internet durchzuführen, wird vorteilhafterweise ein computerlesbares Speichermedium eingesetzt, auf dem ein Programm gespeichert ist, das es einem Computer ermöglicht, nachdem es in den Speicher des Computers geladen worden ist, ein Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet durchzuführen, wobei die randomisierte Datenspeicherung die Verfahrensschritte gemäß einem der Ansprüche 1 bis 14 umfaßt .
In einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens ist vorgesehen, dass bei dem ersten und/oder zweiten Zufallsprozeß pseudo-zufällige Funktionen angewendet werden.
Als ein weiterer Vorteil erweist es sich, wenn Datenspeichersysteme Sj , deren Wert Cj des vorgebbaren Parameters einen ebenfalls vorgebbaren zweiten Wert 8 übersteigt, in neue virtuelle Datenspeichersysteme Sj.
Figure imgf000016_0001
mit Cj. = δ und - falls c δ ≠ 0 - in ein
Figure imgf000016_0002
weiteres virtuelles Datenspeichersystem Sk mit Ck = Cj - δ zerlegt werden und diesen virtuellen Daten-
Figure imgf000016_0003
Speichersystemen durch den ersten Zufallsprozeß jeweils mindestens ein Teilraum Ij- bzw. Ik des virtuellen Speicherraums zugeordnet wird, wobei |_j den ganzzahligen Anteil einer Zahl a e 3 beschreibt. Des weiteren ist es von Vorteil, wenn der virtuelle Speicherraum durch das Intervall [0,1) und die Teilräume Ij durch mindestens ein in [0,1) enthaltenes Teilintervall repräsentiert werden und im ersten Zufallsprozeß durch die Anwendung einer ersten Hash- Funktion g(j) der linke Rand des Intervalls Ij ermittelt und die Länge des Intervalls gemäß (g (j) + s * Cj) berechnet wird, mit: CJ : Wert des auf das Datenspeichersystem Sj bezogenen
Parameters und s: Stretch-Faktor, der so gewählt ist, daß s * Cj < 1 erfüllt ist. Von Vorteil ist es dabei, wenn der Stretch-Faktor s derart gewählt wird, dass das Intervall [0,1) vollstän- dig durch die Teilintervalle Ij überdeckt wird.
Im zweiten Zufallsprozeß wird vorteilhafterweise durch die Anwendung einer zweiten Hash-Funktion h(i) jedem Datenblock Di (i=l, ..., m) eine Zahl h(i) e [0,1) zugeordnet . In einer bevorzugten Ausführungsform des Verfahrens zur randomisierten Datenspeicherung ist vorgesehen, dass der vorgebbare Parameter die physikalische Kapazität von Datenspeichersystemen oder die Anfragelast von Datenspeichersystemen beschreibt oder Abweichungen von der gewünschten Verteilung korrigieren.
In dem Fall, dass das einem Datenblock Di zugeordnete Element h(i) in mehreren Teilräumen Ij enthalten ist, erweist es sich als vorteilhaft, dass eine uniforme Platzierungsstrategie angewendet wird, um den Daten- block Di einem der durch die Teilräume Ij repräsentierten Datenspeichersystem zuzuordnen.
Darüber hinaus ist es von Vorteil, dass bei Änderungen mindestens eines der Werte C= (cl f . . . , cn) des vorgebbaren Parameters eine erneute Zuordnung der Datenblöcke Di zu den DatenspeicherSystemen Sj nach dem Verfahren zur randomisierten Datenspeicherung gemäß einem der Ansprüche 1 bis 9 unter Zugrundelegung der neuen Parameterwerte C '= (cχ > , . . . , cn>) erfolgt. In bestimmten Fällen kann es nützlich sein, bei nur geringen Änderungen von Werten des vorgebbaren Parameters keine Neuverteilung der Datenblöcke vorzunehmen. Dies wird erreicht, indem bei Änderungen mindestens eines der Werte C= (cχ, . . . , cn) des vorgebbaren Parameters eine erneute Zuordnung der Datenblöcke Di zu den Datenspeichersystemen Sj nach dem Verfahren zur randomisierten Datenspeicherung gemäß einem der Ansprüche 1 bis 9 unter Zugrundelegung der neuen Parameterwerte C ' = (c ' , . . . , cn>) nur erfolgt, wenn ein neuen Para- meterwert cι< sich von dem entsprechenden aktuellen Parameterwert Ci um einen vorgebbaren Wert μ unterscheidet.
Bei großen Änderungen des vorgebbaren Parameters wiederum werden Anpassungen des Systems vorteilhafter- weise vorgenommen, indem bei Änderungen mindestens eines der Werte C= (cχ, . . . , cn) des vorgebbaren Parameters in einen neuen Parameterwert C' = (cχ >, . . . , cn>) stufenweise eine .erneute Zuordnung der Datenblöcke Di zu den Datenspeichersystemen Sj nach dem Verfahren zur randomisierten Datenspeicherung gemäß einem der Ansprüche 1 bis 9 erfolgt, wobei in jeder Stufe k Zwischen-Parameterwerte &- (ckχ, . . . , ck n) mit | c± - ck± \ ≤ jc± - c ' j (1 = 1 , . . . , n) zugrundegelegt werden. Dieses Vorgehen hat den großen Vorteil, dass das System im Gegensatz zu einem direkten Update wesentlich schneller auf hohe Anfragebelastungen oder eine neue, vom Administrator gewählte Kapazitätsverteilung C ' reagieren kann, da in jedem C1 der Übergangsprozess von C nach C ' abgebrochen werden kann. Darüber hinaus ist es von Vorteil, dass zur Abspeicherung der Datenblöcke in einem Speichermedium mindestens eine Tabelle bereitgestellt wird, in denen die Zuordnung zwischen virtueller Adresse und physikalischer Adresse auf dem Speichermedium abge- speichert ist.
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens zur randomisierten Datenspeicherung besteht darin, dass mehrere Datenblöcke zu einem Extent zusammengefasst werden, denen in der Tabelle eine gemeinsame physika- lische Adresse auf dem Speichermedium zugeordnet wird, wobei die Datenblöcke eines Extents im logischen Adressraum miteinander verbunden sind, indem der erste Datenblock eines aus 2 Datenblöcken bestehenden Extents eine Adresse der Form x00...000 erhält, wobei die unteren λ Bits Null sind, der letzte Block dieses Extents die Adresse xll . . . 111 erhäl t, wobei die untersten λ Bits Eins sind, und die physikalische Position eines Datenblocks durch eine Addition des Tabellen- eintrags für den zugehörigen Extent mit den letzten λ Bits der logischen Adresse des Datenblocks gewonnen wird. Durch dieses Vorgehen wird die Anzahl von zu sichernden Tabelleneinträgen reduziert.
In einer bevorzugten Ausführungsform der Erfindung ist vorgesehen, dass die Anordnung mindestens einem Datenspeichersystem und/oder mindestens einem Computersystem, das (die) lesend und/oder schreibend auf die Speichermedien zugreift (zugreifen) , und/oder minde- stens eine zwischen das (die) Computersystem (e) und das (die) Datenspeichersystem(e) geschaltete Kontroller- Einheit zur Steuerung des Verfahrens randomisierten Datenspeicherung umfasst. Die DatenspeicherSysteme umfassen dabei vorteilhafterweise Festplattenfelder und/oder als Web-Cashes ausgebildete Zwischenspeicher
Weiterhin stellt es sich als vorteilhaft heraus, wenn die Anordnung mindestens eine zwischen das (die) Computersystem(e) und das (die) Datenspeichersystem(e) geschaltete Kontroller-Einheit zur Steuerung des Ver- fahrens zur randomisierten Datenspeicherung umfasst. Dabei kann es sich als nützlich erweisen, dass das Verfahren zur randomisierten Datenspeicherung als Hard- ware-RAID-Verfahren in der Kontroller-Einheit implementiert ist. In einer weiteren bevorzugten Ausführungsform der Erfindung ist vorgesehen, dass die Anordnung mindestens ein dediziertes, über Mittel zum Datenaustausch mit Speichermedien und Computersystemen der Anordnung ver- bundenes Computersystem (SAN-Appliance) zur Koordination der Datenspeicherung und/oder über Mittel zum Datenaustausch mit Speichermedien und Computersystemen der Anordnung verbundene Rechenressourcen (In-Band- Appliances) zur Verteilung der Datenblöcke umfasst. Ebenso stellt es einen Vorteil dar, dass die Anordnung heterogene Speichermedien umfasst.
Die Erfindung soll nachstehend anhand von zumindest teilweise in den Figuren dargestellten Ausführungs- beispielen näher erläutert werden.
Es zeigen :
Fig . 1 Aufbau eines Speichernetzwerkes,
FFiigg.. 22 Veranschaulichung der Out-of-Band Visualisierung des Datenraums,
Fig . 3 Veranschaulichung der In-Band Visualisierung,
Fig . 4 Aufteilung der virtuellen Adresse eines Datenblocks zur Bestimmung der zugehörigen
Festplatte und des zugehörigen Metablocks .
Wie aus dem Anforderungsprofil an die Datenverwaltungs- strategie ersichtlich wird, ist die Lösung der Aufga- benstellung im Allgemeinen davon abhängig, ob die an ein System angeschlossenen Clients 3 über alle für die Datenverteilung notwendigen Informationen verfügen. Im Folgenden wird das erfindungsgemäße Verfahren, welches nachfolgend als Share-Strategie bezeichnet wird, vorgestellt, welches in der Lage ist, in beiden Fällen nahezu optimale Verteilungs- und Zugriffseigenschaften zu garantieren.
Nachfolgend werden kurz Voraussetzungen und Definitionen vorgestellt, die bei der Beschreibung des Ausführungsbeispiels benutzt werden.
Die Anzahl der in einem System zu speichernden Daten- blocke wird mit m, die Anzahl der maximal verwendbaren Datenspeichersysteme mit N bezeichnet. N wird dabei durch die Datenplatzierungsstrategie vorgegeben und ist nicht von der aktuellen Anzahl und Größe der Datenspeichersysteme abhängig. Die Anzahl der in dem System tatsächlich verfügbaren Datenspeichersysteme wird mit n bezeichnet. Für den Fall, dass die Anzahl der von den Datenspeichersystemen speicherbaren Datenblöcke kleiner als m ist, ist es erforderlich, dass ein weiteres Speichersystem zur Verfügung gestellt wird, in das aktuell nicht abbildbare Datenblöcke ausgelagert werden können.
Der Anteil der Datenblöcke, die von einem Datenspeichersystem i gespeichert werden können, wird als relative Kapazität c± e [0,1] bezeichnet, wobei ∑i Ci = 1. Die Größe der individuellen ci kann dabei von verschiedenen Faktoren abhängen, so z. B. von der Speicherkapazität, wenn es sich um eine Festplatte handelt, oder von der Bandbreite der angeschlossenen Verbindungen bei einem Web-Cache. Zielsetzung einer Daten- platzierungsstrategie sollte es sein, dass auf jedem
Datenspeichersystem i bei m zu platzierenden Datenblöcken Ci * m Datenblöcke gespeichert werden. Bei der Beschreibung der umzusetzenden Techniken wird nicht davon ausgegangen, dass sich die Anzahl der Datenspei- chersysteme in dem System verändert. Diese Situation kann dadurch modelliert werden, dass die relative Kapazität Ci eines Datenspeichersystems i , das sich zum Zeitpunkt t nicht in dem System befindet, zu diesem Zeitpunkt auf Null gesetzt wird.
Die Aufgabe der Datenverteilungsstrategie kann nun in zwei Aufgabenpunkte untergliedert werden. In einem ersten Schritt muss ein Datenblock mit seiner virtuellen Adresse einem Datenspeichersystem zugeordnet werden. Diese Zuordnung wird im Folgenden auch als globale Datenverteilung bezeichnet. In einem zweiten Schritt muss der Datenblock nicht nur einem Datenspeichersystem, sondern zusätzlich auch einer Position auf diesem Datenspeichersystem zugeordnet werden. Diese Zuordnung wird im Folgenden auch als lokale Datenverteilung bezeichnet. Die Erfindung beschäftigt sich mit dem Problem der globalen Datenverteilung. Im Rahmen der Beschreibung des erfindungsgemäßen Verfahrens wer- den kurz einfache lokale Datenverteilungsstrategien vorgestellt, die unsere neuen globalen Datenverteilungsstrategien ergänzen.
Eine Voraussetzung für den Einsatz der Share-Strategie ist es, dass sie als Subroutine eine Funktion verwenden kann, die das Problem der Datenverteilung für uniforme
Datenspeichersysteme löst, d. h. für den Fall, dass Ci
= 1 ' für alle i. Mögliche Strategien für den uniformen
Fall sind in [KLL+97] und [BBS00] vorgestellt worden
Die Share-Strategie wird nun im Detail beschrieben: In Share werden jedem Speichersystem ein oder mehrere Intervalle zugeordnet, deren Gesamtgröße der relativen Kapazität des Systems entspricht. Diese Intervalle werden auf ein [0, 1) -Intervall abgebildet, können sich aber im Gegensatz zu früheren Strategien mit anderen Intervallen überlappen. Jedem Datenblock wird nun mittels einer (pseudo- ) zufälligen Funktion ein reeller Punkt im [0 , 1) -Intervall zugewiesen. Dieser Punkt kann eventuell zu mehreren Intervallen von Speichersystemen gehören. Falls dem so ist, wird eine uniforme Platzierungsstrategie verwendet, um den Datenblock einem dieser Speichersysteme zuzuweisen. Verändern sich nun die relativen Kapazitäten der Speichersysteme, so werden die IntervalHängen entsprechend angepasst.
Im Folgenden werden wir zunächst eine detaillierte Beschreibung der Share-Strategie geben und anschließend darlegen, warum sie anderen Strategien überlegen ist.
Die von der Share-Strategie verwendete Strategie für uniforme Datenspeichersysteme wird im Folgenden als Uniform(b,S) bezeichnet, wobei b die virtuelle Adresse des Datenblocks und S die Menge der Datenspeichersysteme beschreibt. Die Rückgabe der Funktion liefert das Datenspeichersystem, auf das der Datenblock b platziert wird.
Die Share-Strategie basiert auf zwei zusätzlichen Hash- Funktionen, die neben den möglicherweise für die uniforme Strategie verwendeten Hash-Funktionen bereitgestellt werden müssen. Die Hash-Funktion h: { ! , . . . , M} —> [0,1) verteilt die Datenblöcke pseudo- zufällig über das Intervall [0,1) . Eine weitere Hash-
Funktion g: {1,..., N} —» [0,1) ordnet den beteiligten Datenspeichersystemen einen Punkt in dem Intervall [0,1) zu. Weiterhin werden die Parameter s, S e [1/N, 1] verwendet, deren Bedeutung im weiteren Verlauf erläutert wird.
Es wird angenommen, dass n Datenspeichersysteme mit (cι,...,cn) e [0,l)n gegeben sind. Es wird dann die folgende Strategie verwendet: Für jedes Datenspeicher-
C- system mit Ci > δ werden — neue virtuelle Datenspei¬
chersysteme i1 mit Ci« = δ eingefügt. Entspricht die Summe der relativen Kapazitäten der virtuellen Daten- speichersysteme nicht der ursprünglichen Kapazität, wird ein zusätzliches virtuelles Datenspeichersystem j mit Cj = C - * δ eingefügt. Datenspeichersysteme,
Figure imgf000024_0001
deren Demand kleiner als δ sind, werden in ihrer ursprünglichen Form belassen und als einzelne, vir- tuelle Datenspeichersysteme angesehen. Durch die Transformation der Datenspeichersysteme werden maximal n' < n + 1/δ virtuelle Datenspeichersysteme erzeugt.
Jedem virtuellen Datenspeichersystem i wird nun ein Intervall Ii der Länge s * c± zugeordnet, das von g (i) bis (g (i) + s * CiJmodl reicht. Der [0, 1) -Bereich wird also als Ring angesehen, um den die einzelnen Intervalle gewickelt werden. Die Konstante s wird als Stretch-Faktor bezeichnet. Um zu verhindern, dass ein einzelnes Intervall mehrfach um den Ring gewickelt wird, sollte δ ≤ y gewählt werden. Ein δ ≥ y ist möglich, erschwert jedoch die Umsetzung des Verfahrens.
Für jedes x e [0,1) sei Cx = {i : x e lf) die Menge der Intervalle, in denen x enthalten ist. Die Anzahl der
Elemente cx = |CX| in dieser Menge wird als Contention bezeichnet. Da die Anzahl der Endpunkte der Intervalle der virtuellen Datenspeichersysteme maximal 2n < 2 (n + . ) beträgt, wird das [0 , 1) -Intervall in maximal 2 (n + V ) Rahmen Fj e [0,1) aufgeteilt, so dass für jeden Rahmen Fj die Menge Cx für jedes x e Fj identisch ist. Die Beschränkung der Anzahl der Rahmen ist wichtig, um die Größe der Datenstrukturen für die Share-Strategie zu begrenzen.
Die Berechnung des zu einem Datenblock zugehörigen Datenspeichersystems erfolgt nun durch den Aufruf: Uniform(b, Ch< ) ) •
Ein wichtiger Vorteil der Erfindung besteht wie erwähnt darin, daß sie die Behandlung von Änderungen im Spei- chernetzwerk 1 in äußerst einfacher Weise gestattet. Je nach Anforderung kann es sich dabei als sinnvoll erweisen, auf sich ändernde Umgebungen mit einer Adaption der Share-Strategie zu reagieren.
Bisher wurde erläutert, wie die Platzierung von Datenblöcken in einem statischen System vorzunehmen ist. Es wird nun angenommen, dass sich die Verteilung der relativen Kapazitäten in dem System von C= (c , . . . , cn) auf C ' = (cχ ' , . . . , cn' ) verändert. Wie oben erläutert, umfasst dieses auch den Fall, dass neue Datenspeichersysteme in das System eintreten, bzw. Datenspeichersysteme das System verlassen. Es sind nun verschiedene Varianten denkbar, um einen Übergang von C nach C1 vorzunehmen .
Variante 1 : Direct Update
Die einfachste Methode besteht darin, direkt von C nach C überzugehen und die entsprechenden Umplatzierungen vorzunehmen. Das hat den Nachteil, dass selbst bei kleinsten Veränderungen wegen der Verwendung pseudozufälliger Funktionen eventuell Umplatzierungen von mehreren Datenblöcken vorgenommen werden müssen, und bei großen Veränderungen das System sich lange in einem Übergangszustand befindet, was die Aufrechterhaltung des oben genannten vierten Punktes der Anforderungen an Datenverwaltungsstrategien gefährden kann.
Variante 2 : Lazy Update Im Folgenden wird eine Strategie vorgestellt, die dafür sorgt, dass bei sehr geringen Kapazitätsveränderungen keine Daten umzuverteilen sind.
Sei 0 < μ < 1 eine feste Konstante, die als Träghei t der Share-Strategie bezeichnet wird. Die Share- Strategie ändert die relative Kapazität eines Datenspeichersystems i nur dann von Ci auf Ci ' , wenn Ci ' > (1 + μ) Ci oder Ci1 < (1 - μ)Ci. Hierdurch kann die Summe der relativen Kapazitäten über alle Datenspeichersysteme von 1 abweichen, bleibt jedoch im Bereich von 1 ± μ, so dass bei kleinem μ die Eigenschaften der Share-Strategie nicht gefährdet sind.
Variante 3 : Smooth Update Diese Variante ist sinnvoll für den Fall großer Kapazitätsänderungen. Falls C und C große Kapazitätsabweichungen haben, werden zunächst Zwischenstufen Ci, C , C3,...,C berechnet, so dass mit C=C0 und C ' =Ct+ι für jedes i in {0,...,t} Ci und Ci+χ eng genug beisammen liegen, dass es dem System möglich ist, schnell von der einen zur anderen Kapazitätsverteilung und damit in einen stabilen Zustand überzugehen. Dieser Prozess hat den großen Vorteil, dass das System im Gegensatz zum Direct Update wesentlich schneller auf hohe Anfragebelastungen oder eine neu vom Administrator gewählte Kapazitätsverteilung C' reagieren kann, da in jedem Ci der Übergangsprozess von C nach C abgebrochen werden- kann.
Konkrete Umsetzungen der Verfahren werden in der weiteren Beschreibung erläutert.
Wahl der Kapazitäten:
Die Wahl der Kapazitäten für Share muss sich nicht notwendigerweise nach der physikalischen Kapazität eines Speichersystems richten. Da Share beliebige Kapazitätsverteilungen zulässt, können die Share-Kapazitäten auch dazu benutzt werden, um eine bessere Balancierung der Anfragelast vorzunehmen, um zum Beispiel Engpässe in den Verbindungen zu Speichersystemen oder in den Speichersystemen selbst zu beseitigen. Des Weiteren können sie benutzt werden, um Abweichungen von der gewünschten Verteilung (die wegen der Verwendung pseudo-zufälliger Hash-Funktionen nicht auszuschließen sind) auszugleichen. Die Share Strategie erlaubt also eine hohe Flexibilität in der Verteilung der Daten und eine hohe Robustheit, und erfüllt damit wichtige Anforderungen an ein Speichersystem.
Nachfolgend werden noch einige spezielle Aspekte des erfindungsgemäßen Verfahrens erläutert:
1. Abdeckung des [0 , 1) -Intervalls
Damit sichergestellt werden kann, dass die Share- Strategie jedem Datenpunkt ein Datenspeichersystem zuweisen kann, muss das [0 , 1) -Intervall vollständig durch die Intervalle der virtuellen Datenspeichersysteme abgedeckt werden. Dieses kann bereits durch die Hash- Funktion g sichergestellt sein, indem nach der Verteilung der Intervalle der Datenspeichersysteme die Ab- deckung überprüft wird und gegebenenfalls einzelne Intervalle verschoben werden. Bei einer zufälligen Platzierung der Intervalle durch eine pseudo-randomisierte Hash-Funktion h ist es jedoch ausreichend, einen Stretch-Faktor s = k * In n mit 7c > 3 zu verwenden, so dass mit hoher Wahrscheinlichkeit die Intervalle der Datenspeicher Systeme das [0 , 1) -Intervall abdecken. Hohe Wahrscheinlichkeit bedeutet hier, dass die Wahrscheinlichkeit, dass ein Bereich nicht abgedeckt wird, kleiner als / yn ist. Ergaibt die Kontrolle der Verteilung der Intervalle, dass nicht jeder Punkt des
[0, 1) -Intervalls abgedeckt ist, so kann die Abdeckung durch eine Adaption des Stretch-Faktors erfolgen.
2. Benötigter Speicherplatz und Rechenkomplexität
Wird die in [KLL+97] vorgestellte Strategie als homogene Datenplatzierungsstrategie Uniform (b,S) verwendet, so liegt die erwartete Zeit, das zu einem Datenblock zugehörige Datenspeichersystem zu berechnen, in 0 (1 ) . Die Speicherkomplexität zur Berechnung der Share-Strategie liegt in 0 (s * k * (n + ys ) ) - Nicht mitgezählt sind hier die Speicher- und Berechnungskomplexität der verwendeten Hash-Funktionen.
3. Güte der Verteilung
Werden pseudo-randomisierte Hash-Funktionen verwendet und wird ein Stretch-Faktor s > 6 ln(I\7'2) mit σ = £/(l + ε) gewählt, so bewegt sich der Anteil der Datenblöcke, die von einem Datenspeichersystems i gespeichert werden, mit hoher Wahrscheinlichkeit in dem Bereich Si e [ (1 - £)di, (1 - ε) άi] .
In den folgenden Abschnitten wird dargestellt, wie der Aufbau von Datenspeichersystemen mit Hilfe der Share- Strategie effizient durchgeführt werden kann. Es wird darauf hingewiesen, dass es sich dabei lediglich um Implementierungsbeispiele handelt. In einem ersten Schritt wird vorgestellt, wie die Funktionalität in ein allgemeines RAID-System integriert werden kann:
Integration der Share-Strategie in ein allgemeines RAID-System:
Die Share-Strategie kann verwendet werden, um in Systemen, die aus einer Menge von Speichermedien, aus mehreren ComputerSystemen und einer Kontroller-Einheit bestehen, Festplattenfelder aufzubauen. Dabei kann die Share-Strategie sowohl in dem angeschlossenen Computersystemen als Software-RAID Verfahren integriert werden, als auch in der Kontroller-Einheit als Hardware-RAID Verfahren. Die Share-Strategie ist dabei für die Zuordnung der Datenblöcke über die Festplatten zuständig, die Zuordnung des Datenblocks zu einer physikalischen Adresse auf der Festplatte wird von einer unter der Share-Strategie liegenden Strategie übernommen. Eine Möglichkeit für die Zuordnung der physikalischen Position besteht in der Bereitstellung von Tabellen, in denen eine Zuordnung zwischen virtueller Adresse und physikalischer Adresse auf der Festplatte abgespeichert wird. Es ist dabei möglich, die Anzahl der zu sichernden Tabelleneinträge zu reduzieren, indem nicht jedem einzelnen Datenblock ein eigener Eintrag zugeordnet wird, sondern indem Blockmengen minimaler Größe, im Folgenden auch als Extents bezeichnet, über einen gemeinsamen Eintrag in der Tabelle verfügen. Bei einem Extent handelt es sich um eine Menge von Blöcken, die in dem logischen Adressraum miteinander verbunden sind. Ein Extent besteht aus 2λ Blöcken. Der erste Block des Extents hat eine Adresse der Form x00. . . 000, wobei die unteren λ Bits 7 durch die Ziffer Null repräsentiert sind. Der letzte Block des Extents hat die Adresse xll . . . lll , wobei die untersten λ Bits 7 durch die Ziffer Eins repräsentiert sind. Die physikalische Position eines Datenblocks wird durch eine Addition des Tabelleneintrags für den zugehörigen Extent mit den unteren λ Bits 7 der logischen Adresse des Datenblocks gewonnen. Hat jeder Tabelleneintrag die Form y00. . . 000, d. h. die unteren λ Bits 7 werden Null gesetzt, kann die Addition durch eine einfache ODER-Verknüpfung durchgeführt werden. Die oberen Bits 6 der virtuellen Adresse eines Datenblocks dienen also zur Berechnung des zugeordneten Speichermediums und der Bestimmung des Tabelleneintrages für den Extent, die unteren Bits 7 dienen als Offset innerhalb des Extents. Allen Datenblöcken, die über gemeinsame obere Bits 6 verfügen, wird ein Tabelleneintrag zugeordnet. Dieser Tabelleneintrag kann z. B. an der Stelle gespeichert werden, an der auch die Berechnung der Share-Strategie durch- geführt wird.
Integration der Share-Strategie in ein Speichernetzwerk 1: Die Integration der globalen Datenverteilungsstrategien in ein Speichernetzwerk 1 geht von einer Struktur gemäß Figur 1 aus . Das Gesamtsystem besteht aus einer Menge von Datei- oder Datenbankservern, im Folgenden als ComputerSysteme bezeichnet, die über ein Speichernetzwerk 1 an DatenspeicherSysteme 4 angeschlossen sind. Das Speichernetzwerk 1 umfaßt weiter eine Menge von Switches bzw. Routern 2, die die Zustellung der Datenpakete zwischen kommunizierenden Einheiten sicherstel- len. Die ComputerSysteme sind in dem hier vorliegenden Kontext als Clients 3 zu betrachten, die von den Datenspeichersystemen 4 Blöcke lesen, oder auf den Datenspeichersystemen 4 Datenblöcke schreiben. Mit Hilfe der Share-Strategie kann jede beliebige Teilmenge M der an das Speichernetzwerk 1 angeschlossenen Speichersysteme 4 wie ein einziger logischer Speicherpool verwaltet werden, der über einen linearen Adressraum verfügt. Die Menge der SpeicherSysteme 4 kann dabei in mehrere kleinere oder einen großen Speicherpool aufgeteilt werden, wobei keine der SpeicherSysteme 4 mehr als einem Speicherpool zugeordnet werden sollte. Es wird im Folgenden nur der Fall betrachtet, dass das System aus einem Speicherpool besteht.
Aus einem Speicherpool können mehrere virtuelle Speichersysteme aufgebaut werden, wobei jedes dieser virtuellen Speichersysteme gemäß der Share-Strategie verwaltet wird. Besteht ein Speicherpool aus einer Teilmenge M der Speichersysteme, so erfolgt der Aufruf der Share-Strategie für die logischen Speichersysteme gemäß der gesamten Teilmenge M. Jedem virtuellen Speichersystem wird eine Speicher-Policy zugeordnet die Eigenschaften wie physikalische Blockgröße und Redundanz umfasst. Diese Zuordnung kann separat für jedes virtuelle Speichersystem oder einmal für den gesamten Speicherpool erfolgen. Nachdem Daten auf eine virtuelle Festplatte geschrieben wurden, kann die Speicher-Policy im Allgemeinen nicht mehr verändert werden.
Wird von einem ComputerSystem auf einen Extent zugegriffen, der bisher von dem Computersystem noch nicht verwendet wurde und für den kein Tabelleneintrag in diesem Computersystem vorliegt, muss ein neuer Tabel- leneintrag allokiert werden. Die Allokation kann auf zwei Arten erfolgen:
1. Das Computersystem fragt bei einer zentralen Instanz, die über globales Wissen über alle Tabel- leneinträge verfügt, nach einem Tabelleneintrag für das Extent,
2. Auf jedem Speichersystem 4 ist ein Bereich reserviert, der eine Zuordnung zwischen virtueller Adresse und physikalischer Adresse vornimmt. Das Computersystem sucht zuerst nach der virtuellen Adresse des Extents. Falls diese Adresse noch nicht reserviert ist, sucht das Computersystem nach einer noch freien Adresse auf dem Speichersystem 4.
Wird die Koordination nicht durch eine zentrale Instanz vorgenommen, so muss diese Aufgabe nach Figur 1 von einem oder mehreren der angeschlossenen Computersysteme übernommen werden. Weiterhin können jedoch auch ein oder mehrere dedizierte Geräte, die als SAN-Appliances 5 bezeichnet werden, zur Koordination der Computersysteme gemäß Figur 2 an das Speichernetzwerk 1 angeschlossen werden. Neben der Entlastung der Computersysteme um die Koordination kann durch den Einsatz von SAN-Appliances 5 sichergestellt werden, dass alle angeschlossenen ComputerSysteme die gleiche Sicht auf die Speichersysteme 4 haben, d. h. zum gleichen Zeitpunkt über das Verlassen bzw. Hinzukommen von Speichersystemen 4 informiert werden.
Die SAN-Appliance 5 bietet somit eine Reihe von Schnittstellen, über die Informationen zwischen dem SAN-Appliances 5 und den Client-Rechnern 3 ausgetauscht werden können. Diese umfassen:
- Anfrage der Grundkonfiguration von jedem Client 3,
- Anfrage nach neuen Extents von jedem Client 3,
- Information der Clients 3 über Veränderungen der Infrastruktur .
Das Share-Verfahren kann auch in so genannte In-Band- Appliances integriert werden (siehe Figur 3). Bei den In-Band-Appliances handelt es sich um dedizierte Systeme, die eine Transformation der logischen Adresse eines Datenblocks, die sie von den angeschlossenen ComputerSystemen erhalten, in die physikalische Adresse vornehmen. Der Einsatz von In-Band-Appliances ist dann notwendig, wenn die Funktionalität der Share-Strategie nicht in die ComputerSysteme direkt integriert werden kann, da keine Software-Version der Share-Strategie für diese ComputerSysteme verfügbar ist oder die Leistung der angeschlossenen ComputerSysteme nicht ausreichend groß ist, um die Transformation der logischen Adressen in die physikalischen Adressen durchzuführen.
Eine In-Band-Appliance verhält sich aus Sicht der Speichersysteme 4 wie ein angeschlossenes Computersystem, aus der Sicht der an die In-Band-Appliance angeschlossenen ComputerSysteme wie ein physikalisches Speichersystem.
In dem Speichernetzwerk 1 können In-Band-Appliances mit Computersystemen, in denen die Share-Strategie ausgeführt wird, gemischt werden.
Aufbau von Internetsystemen mit Hilfe der Share- Strategie:
Die Problemstellung beim Aufbau von Systemen zur Auslieferung von Datenobjekten über das Internet unterscheidet sich von dem Aufbau von SpeicherSystemen in sofern, dass Clients 3 in dem Internet keine globale Sicht über alle verfügbaren Web-Server und Web-Caches in dem System haben. Soll ein Datum von einem Web-Cache gelesen werden, um die teilnehmenden Web-Server zu entlasten, muss also sichergestellt werden, dass der Client 3 mindestens einen zu einem Datenobjekt gehörenden Web-Cache kennt und das zu lesende Datenobjekt auch dem richtigen Web-Cache zuordnen kann.
Diese Aufgabenstellung kann im Allgemeinen nicht gelöst werden, ohne dass von einem Datenobjekt mehrere Kopien angelegt werden, die über die Web-Caches gemäß einer vorgegebenen Platzierungsstrategie verteilt werden. Werden von einem System von jedem Datenobjekt k Kopien gespeichert, so fragt der Client 3 nacheinander oder gleichzeitig bei den k Web-Caches nach, von denen er glaubt, dass sie eine Kopie des Datenobjektes speichern. Hält einer der Web-Caches eine Kopie des Daten- Objektes, so wird diese Kopie anschließend von dem Client 3 gelesen. Die Anzahl der notwendigen Kopien, damit ein Client 3 einem Datenobjekt mindestens einen Web-Cache zuordnet, der auch dieses Datenobjekt speichert, ist von der verwendeten Verteilungsstrategie und den relativen Kapazitäten C = (ci; ..., cn) der Web-Caches abhängig. Weiterhin ist sie von der Sicht V= (vχ, . . . , vn) des Clients 3 abhängig, das heißt von den relativen Größen der Web-Caches, die der Client 3 zu kennen glaubt. Die Konsistenz κv der Sicht eines Clients 3 wird wie folgt definiert:
n
JCV = Yτmn[vi,ci] ι=l
Es kann gezeigt werden, dass bei Verwendung der Share- Strategie die Verwendung von Θ(log N) Kopien ausreichend ist, um mit einer Wahrscheinlichkeit von größer f χ als 1-- garantieren zu können, das mindestens für
ein Datenobjekt der Web-Cache, der von der Share- Strategie berechnet wird, für C und V derselbe ist.
Die Erfindung ist nicht beschränkt auf die hier dargestellten Ausführungsbeispiele. Vielmehr ist es möglich, durch Kombination und Modifikation der genannten Mittel und Merkmale weitere Ausführungsvarianten zu realisie- ren, ohne den Rahmen der Erfindung zu verlassen.
Bezugszeichenliste
Speichernetzwerk
Switches bzw. Router
Client
Datenspeichersystem
SAN-Appliance
obere Bits
untere Bits
Referenzen
[AT97] J. Alemany und J.S. Thathachar, "Random Striping News on De and Server" , Technischer
Report der University of Washington,
Department of Computer Science and
Engineering, 1997
[B97] Y. Birk, "Random RAIDs with Selective Exploi- tation of Redundancy for High Performance
Video Servers", In Proceedings of 7th International Workshop on Network and Operating System Support for Digital Ausio and Video, 1997 [BBBM94] M. Blaum, J. Brady, J. Brück und J. Menon, EVENODD: An Optimal Scheme for Tolerating Double Disk Failures in RAID Architectures" , In Proceedings of the 21st Annual International Symposium on Computer Architecture, Seiten 245-254, 1994
[BBS99] P. Berenbrink, A. Brinkmann und C. Scheideier, "Design of the PRESTO Multimedia Data Storage Network" , In Proceedings of the Workshop on Communication and Data Management in Large Networks (INFORMATIK 99), 1999
[BGM95] S. Berson, L. Golubchik und R.R. Muntz, "Fault Tolerant Design of Multimedia Servers", In SIGMOD Record (ACM Special Interest Group on Management of Data) , 19(2) :364-375, 1995 [BGMJ94] S. Berson, S.
Ghandeharizadeh, R.R. Muntz und x. Ju, "Staggered Striping in Multimedia Systems", In Proceedings of the 1994 ACM Conference on Management of Data (SIGMOD), Seiten 79-90, 1994 [BHMM93] M. Blaum, H.T. Hao, R.L. Mattsoll und J.M.
Menon, "Method and Means for Encoding and
Rebuilding Data Contents of up to two unavailable DASDs in an in an Array of
DASDs", US Patent No . 5,271,012, Dezember
1993 [BSS00] A. Brinkmann, K. Salzwedel und C. Scheideier:
"Efficient, Distributed Data Placement for Storage Area Networks", In Proceedings of the
12th Symposium on Parallel Algorithms and
Architectures (SPAA 2000), 2000 [CPK95] A. L. Chervenak, D. A. Pattersoll und R. H.
Katz, "Choosing the best storage System video Service", In Proceedings of the third ACM
International Multimedia Conference and
Exhibition, Seiten 109-120, 1996 [HG92] M. Holland und G. Gibson, "Parity
Declustering for Continuous Operation in Redundant Disk Arrays", In Proceedings of the
Fifth International Conference on Architectural Support for Programming Languages ans Operating Systems, Seiten 23- 35, 1992 [K97] J. Korst, "Random Duplicated Assignment: An Alternative to Striping in Video Servers", In Proceedings of the Fifth ACM International Multimedia Conference, Seiten 219-226, 1997 [KLL+97] D. Karger, E. Lehman, T. Leighton, M. Levine, D. Lewin und R. Panigrahy: "Consistent
Hashing and Random Trees : Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web", In Proceedings of the Twenty-Ninth Annual ACM Symposium on Theory of Computing (STOC) , Seiten 654-663, 1997
[KLM92] R. Karp, M. Luby und F. Meyer auf der Heide,
"Efficient PRAM Simulation on a Distributed
Memory Machine, In Proceedings of the 24th
ACM Symposium on Theory of Computing, S. 318-
326, 1992
[MV83] K. Mehlhorn und U Vishkin, "Randomized and deterministic Simulation of PRAMs by parallel machines with restricted granularity of parallel memories", In Proceedings of gth
Workshop on Graph Theoretic Concepts in
Computer Science, 1983
[PGK88] D.A. Patterson, G. Gibson und R.H. Katz, "A
Case for Redundant Arrays of Inexpensive
Disks (RAID)", In Proceedings of the 1988 ACM
Conference on Management of Data (SIGMOD) ,
Seiten 109-116, 1988
[SM98] J.R. Santos und R.R. Muntz, "Performance
Analysis of the RIO Multimedia Storage System with Heterogeneous Disk Configuration" , In
Proceedings of ACM Multimedia 98, Seiten 303-
308, 1998
[SM98b] J.R. Santos und R.R. Muntz" "Comparing Random
Data Allocation and Data Striping in
Multimedia Servers", Technischer Report,
University of California, Los Angeles,
Computer Science Department, 1998
[SMB98] J.R. Santos, R.R. Muntz und S. Berson, " A
Parallel Disk Storage System for Realtime
Multimedia Applications", International
Journal of Intelligent Systems, 13(12): 1137-
1174, 1998
[TPBG93; F.A. Tobagi, J. Pang, R. Baird und M. Gang,
"Streaming RAID: A Disk Array Management System for Video Files", In Proceedings of Computer Graphics (Multimedia '93 Proceedings), Seiten 393-400,1993 [UW87] E. Upfal und A. Wigderson, "How to Share memory in a distributed system" , Journal of the ACM, 34(1): 116-127,1987

Claims

Patentansprüche
1. Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/ oder dem Internet, dadurch gekennzeichnet, daß eine Menge von Datenblöcken Di (i=l, ..., m) einer Menge von Datenspeichersystemen Sj (j=l, ..., n) gemäß den folgenden Schritten zugeordnet und dort gespeichert wird: a) der Gesamtmenge der Datenspeichersysteme wird ein virtueller Speicherraum und jedem einzelnen Datenspeichersystem Sj (j=l, ..., n) durch einen ersten Zufallsprozeß mindestens ein
Teilraum Ij des virtuellen Speicherraums zugeordnet, wobei das Verhältnis zwischen dem Teilraum Ij und dem gesamten virtuellen Speicherraum wenigstens näherungsweise dem Ver- hältnis der auf das Datenspeichersystem Sj bzw. auf die Gesamtmenge der Datenspeichersysteme bezogenen Werte eines vorgebbaren Parameters entspricht, b) jedem Datenblock Di (i=l, ..., m) wird durch einen zweiten Zufallsprozeß ein (zufälliges)
Element h(i) des virtuellen Speicherraums zugeordne , c) für jeden Datenblock Di (i=l, ..., m) wird mindestens ein Teilraum Ik ermittelt, in dem h(i) enthalten ist, und der Datenblock Di mindestens einem der durch diese (n) Teilräume (Teilraum) Ik repräsentierten Datenspeichersystem Sk zugeordnet und dort gespeichert .
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, daß bei dem ersten und/oder zweiten Zufallsprozeß pseudo-zufällige Funktionen angewendet werden.
3. Verfahren nach einem der Ansprüche 1 oder 2 , dadurch gekennzeichnet, daß
Datenspeichersysteme Sj , deren Wert Cj des vorgebbaren Parameters einen ebenfalls vorgebbaren zweiten Wert δ übersteigt, in neue virtuelle
Figure imgf000042_0001
Datenspeichersysteme Sj > mit Cj. = δ und - falls
cj δ ≠ 0 - in ein weiteres virtuelles
Figure imgf000042_0002
Datenspeichersystem S mit C = Cj
Figure imgf000042_0003
zerlegt werden und diesen virtuellen Datenspei- chersystemen durch den ersten Zufallsprozeß jeweils mindestens ein Teilraum I - bzw. Ik des virtuellen Speicherraums zugeordnet wird, wobei
Figure imgf000042_0004
den ganzzahligen Anteil einer Zahl a e 3 beschreibt .
4. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß der virtuelle Speicherraum durch das Intervall [0,1) und die Teilräume Ij durch mindestens ein in [0,1) enthaltenes Teilintervall repräsentiert werden .
5. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß im ersten Zufallsprozeß durch die Anwendung einer ersten Hash-Funktion g(j) der linke Rand des Intervalls Ij ermittelt und die Länge des Intervalls gemäß (g (j) + s * Cj) berechnet wird, mit :
CJ : Wert des auf das Datenspeichersystem Sj bezogenen Parameters und s: Stretch-Faktor, der so gewählt ist, daß s * Cj < 1 erfüllt ist.
6. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß der Stretch-Faktor s derart gewählt wird, dass das Intervall [0,1) vollständig durch die Teilinter- valle Ij überdeckt wird.
7. Verfahren nach einem der vorangehenden Ansprüche , dadurch gekennzeichnet, daß im zweiten Zufallsprozeß durch die Anwendung einer zweiten Hash-Funktion h(i) jedem Datenblock Di
(i=l, ..., m) eine Zahl h(i) e [0,1) zugeordnet wird.
8. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß der vorgebbare Parameter die physikalische Kapazität von Datenspeichersystemen oder die Anfragelast von Datenspeichersystemen be- schreibt oder
Abweichungen von der gewünschten Verteilung korrigieren.
9. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß in dem Fall, dass das einem Datenblock Di zugeordnete Element h(i) in mehreren Teilräumen Ij enthalten ist, eine uniforme Platzierungsstrategie angewendet wird, um den Datenblock Di einem der durch die Teilräume Ij repräsentierten Datenspeichersystem zuzuordnen.
10. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß bei Änderungen mindestens eines der Werte C= (cχ, . . . , cn) des vorgebbaren Parameters eine erneute Zuordnung der Datenblöcke Di zu den Datenspeichersystemen Sj nach dem Verfahren zur randomisierten Datenspeicherung gemäß einem der Ansprüche 1 bis 9 unter Zugrundelegung der neuen Parameterwerte C'= (cχ - , . . . , cn>) erfolgt.
11. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß bei Änderungen mindestens eines der Werte C= (cχ, . . . , CΏ) des vorgebbaren Parameters eine erneute Zuordnung der Datenblöcke Di zu den Datenspeichersystemen Sj nach dem Verfahren zur randomisierten Datenspeicherung gemäß einem der Ansprüche 1 bis 9 unter Zugrundelegung der neuen Parameterwerte C '= (cχ >, . . . , cn> ) nur erfolgt, wenn ein neuen Parameterwert Ci< sich von dem entsprechenden aktuellen Parameterwert Ci um eine vorgebbare Konstante μ unterscheidet .
12. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß bei Änderungen mindestens eines der Werte C= (cl f . . . , cn) des vorgebbaren Parameters in einen neuen Parameterwert C '= (cχ - , . . . , cn>) stufenweise eine erneute Zuordnung der Datenblöcke D zu den Datenspeichersystemen Sj nach dem Verfahren zur randomisierten Datenspeicherung gemäß einem der Ansprüche 1 bis 9 erfolgt, wobei in jeder Stufe k Zwischen-Parameterwerte Ck= (ckχ, . . . , ck n) mit | Ci - ck ± j < jc - c 'i j (i = 1 , . . . , n) zugrundegelegt werden.
13. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß zur Abspeicherung der Datenblöcke in einem Speichermedium mindestens eine Tabelle bereitgestellt wird, in denen die Zuordnung zwischen virtueller Adresse und physikalischer Adresse auf dem Speichermedium abgespeichert ist.
14. Verfahren nach Anspruch 13 , dadurch gekennzeichnet, daß mehrere Datenblöcke zu einem Extent zusammen- gefasst werden, denen in der Tabelle eine gemeinsame physikalische Adresse auf dem Speichermedium zugeordnet wird, wobei die Datenblöcke eines Extents im logischen Adressraum miteinander ver- bunden sind, indem der erste Datenblock eines aus
2 Datenblöcken bestehenden Extents eine Adresse der Form x00...000 erhält, wobei die unteren λ Bits durch die Ziffer Null repräsentiert sind, der letzte Block dieses Extents die Adresse xll . . . lll erhäl t, wobei die untersten λ Bits durch die Ziffer Eins repräsentiert sind, und die physikalische Position eines Datenblocks durch eine Addition des Tabelleneintrags für den zugehörigen Extent mit den letzten λ Bits der logischen Adresse des Datenblocks gewonnen wird.
15. Anordnung mit mindestens einen Prozessor, der (die) derart eingerichtet ist (sind) , daß ein Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/ oder dem Internet durchführbar ist, wobei die randomisierte Datenspeicherung die Verfahrensschritte gemäß einem der Ansprüche 1 bis 14 umfasst .
16. Anordnung nach Anspruch 15, dadurch gekennzeichnet, daß die Anordnung mindestens einem Datenspeichersystem und/oder mindestens einem Computersystem, das (die) lesend und/oder schreibend auf die Speicher- medien zugreift (zugreifen) , und/oder mindestens eine zwischen das (die) Computersy- stem(e) und das (die) Datenspeichersystem (e) geschaltete Kontroller-Einheit zur Steuerung des Verfahrens randomisierten Datenspeicherung umfasst.
17. Anordnung nach Anspruch 16, dadurch gekennzeichnet, daß das Datenspeichersystem
Festplattenfelder und/oder als Web-Cashes ausgebildete Zwischenspeicher umfasst.
18. Anordnung nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, daß die Anordnung mindestens eine zwischen das (die) Computersystem (e) und das (die) Datenspeicher- system(e) geschaltete Kontroller-Einheit zur Steuerung des Verfahrens zur randomisierten Datenspeicherung umfasst.
19. Anordnung nach Anspruch 18, dadurch gekennzeichnet, daß die Anordnung mindestens ein über die Kontroller- Einheit auf die Speichermedien zugreifendes Computersystem umfasst.
20. Anordnung nach einem der Ansprüche 15 bis 19, dadurch gekennzeichnet, daß das Verfahren zur randomisierten Datenspeicherung als Hardware-RAID-Verfahren in der Kontroller-Einheit implementiert ist.
21. Anordnung nach einem der Ansprüche 15 bis 20, dadurch gekennzeichnet, daß die Anordnung mindestens ein dediziertes, über Mittel zum Datenaustausch mit Speichermedien und Computersystemen der Anordnung verbundenes Computer- system (SAN-Appliance) zur Koordination der Datenspeicherung und/oder über Mittel zum Datenaustausch mit Speichermedien und ComputerSystemen der Anordnung ver- bundene Rechenressourcen (In-Band-Appliances) zur Verteilung der Datenblöcke umfasst .
22. Anordnung nach einem der Ansprüche 15 bis 21, dadurch gekennzeichnet, daß die Anordnung heterogene Speichermedien umfasst.
23. Computerprogrammprodukt, das ein computerlesbares Speichermedium umfaßt, auf dem ein Programm ge- speichert ist, das es einem Computer ermöglicht, nachdem es in den Speicher des Computers geladen worden ist, ein Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet durchzu- führen, wobei die randomisierte Datenspeicherung die Verfahrensschritte gemäß einem der Ansprüche 1 bis 14 umfaßt.
24. Computerlesbares Speichermedium, auf dem ein Pro- gramm gespeichert ist, das es einem Computer ermöglicht, nachdem es in den Speicher des Computers geladen worden ist, ein Verfahren zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet durchzuführen, wobei die randomisierte Datenspeicherung die Verfahrensschritte gemäß einem der Ansprüche 1 bis 14 umfaßt.
PCT/EP2003/008635 2002-08-08 2003-08-05 Verfahren und anordnung zur randomisierten datenspeicherung WO2004021214A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/524,159 US20060242212A1 (en) 2002-08-08 2003-05-08 Method and arrangement for randomly storing data
EP03790856A EP1546935A1 (de) 2002-08-08 2003-08-05 Verfahren und anordnung zur randomisierten datenspeicherung
AU2003258569A AU2003258569A1 (en) 2002-08-08 2003-08-05 Method and arrangement for randomly storing data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10236796A DE10236796B4 (de) 2002-08-08 2002-08-08 Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium
DE10236796.5 2002-08-08

Publications (1)

Publication Number Publication Date
WO2004021214A1 true WO2004021214A1 (de) 2004-03-11

Family

ID=31196963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/008635 WO2004021214A1 (de) 2002-08-08 2003-08-05 Verfahren und anordnung zur randomisierten datenspeicherung

Country Status (5)

Country Link
US (1) US20060242212A1 (de)
EP (1) EP1546935A1 (de)
AU (1) AU2003258569A1 (de)
DE (1) DE10236796B4 (de)
WO (1) WO2004021214A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
DE102004018808B3 (de) * 2004-04-15 2005-12-29 Conet Ag Verfahren und Anordnung zur Verteilung von Datenblockmengen in Speichernetzwerken und/oder einem Datennetz sowie Computerprogramm-Erzeugnis und computerlesbares Speichermedium
DE102004046243A1 (de) * 2004-09-22 2006-04-06 Universität Paderborn Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium
US7720889B1 (en) 2006-10-31 2010-05-18 Netapp, Inc. System and method for nearly in-band search indexing
US8868495B2 (en) * 2007-02-21 2014-10-21 Netapp, Inc. System and method for indexing user data on storage systems
US7430584B1 (en) * 2008-03-12 2008-09-30 Gene Fein Data forwarding storage
US7636761B1 (en) 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US7599997B1 (en) 2008-08-01 2009-10-06 Gene Fein Multi-homed data forwarding storage
US7636759B1 (en) 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US8458285B2 (en) * 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US7877456B2 (en) * 2008-04-08 2011-01-25 Post Dahl Co. Limited Liability Company Data file forwarding storage and search
US8386585B2 (en) 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US8452844B2 (en) 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8478823B2 (en) 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US7636764B1 (en) 2008-09-29 2009-12-22 Gene Fein Cloud resource usage in data forwarding storage
US8352635B2 (en) 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
US7685248B1 (en) 2008-09-29 2010-03-23 Gene Fein User interface in data forwarding network
TWI592805B (zh) * 2010-10-01 2017-07-21 傅冠彰 網路儲存與計算資源分享系統與方法
JP6212891B2 (ja) * 2013-03-25 2017-10-18 日本電気株式会社 仮想化システム、仮想サーバ、仮想ディスク配置方法、及び仮想ディスク配置プログラム
US20150293699A1 (en) 2014-04-11 2015-10-15 Graham Bromley Network-attached storage enhancement appliance
KR20180051706A (ko) * 2016-11-07 2018-05-17 삼성전자주식회사 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템
US10459786B2 (en) * 2017-06-27 2019-10-29 Western Digital Technologies, Inc. Scaling large drives using enhanced DRAM ECC
CN112035498B (zh) * 2020-08-31 2023-09-05 北京奇艺世纪科技有限公司 数据块调度方法、装置、调度层节点及存储层节点
CN113342272B (zh) * 2021-06-07 2023-02-10 深圳数联天下智能科技有限公司 一种坐姿数据的存储方法、展示方法、智能坐垫和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111877A (en) * 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001246799A1 (en) * 2000-04-18 2001-10-30 Storeage Networking Technologies Storage virtualization in a storage area network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111877A (en) * 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HILFORD V ET AL: "EH-extendible hashing in a distributed environment", COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE, 1997. COMPSAC '97. PROCEEDINGS., THE TWENTY-FIRST ANNUAL INTERNATIONAL WASHINGTON, DC, USA 13-15 AUG. 1997, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 13 August 1997 (1997-08-13), pages 217 - 222, XP010247302, ISBN: 0-8186-8105-5 *
KARGER DAVID ET AL: "Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the World Wide Web", PROCEEDINGS OF THE 29TH. ANNUAL ACM SYMPOSIUM ON THEORY OF COMPUTING. EL PASO, MAY 4 - 6, 1997, PROCEEDINGS OF THE ANNUAL ACM SYMPOSIUM ON THEORY OF COMPUTING, NEW YORK, ACM, US, vol. SYMP. 29, 4 May 1997 (1997-05-04), pages 654 - 663, XP002183010, ISBN: 0-89791-888-6 *
M. COYLE ET AL.: "Evaluation of Disk Allocation Methods for Parallelizing Spatial Queries on Grid Files", JOURNAL OF COMPUTER AND SOFTWARE ENGINEERING, 1995, pages 1-17, XP002266010 *

Also Published As

Publication number Publication date
DE10236796A1 (de) 2004-03-04
DE10236796B4 (de) 2004-12-02
EP1546935A1 (de) 2005-06-29
US20060242212A1 (en) 2006-10-26
AU2003258569A1 (en) 2004-03-19

Similar Documents

Publication Publication Date Title
DE10236796B4 (de) Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium
DE60111072T2 (de) Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten
DE69533575T2 (de) Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz
DE69533058T2 (de) Speicherplattenanordnung mit redundanter Speicherung und Verfahren zur inkrementalen Redundanzerzeugung während des Datenschreibens auf die Speicherplattenanordnung
DE112013006504B4 (de) Speichersystem und Datenverwaltungsverfahren
DE60036539T2 (de) Verwendung von ungenutzter Speicherkapazität bei vernetzten Computern
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE112018005869T5 (de) Strukturanpassung einer namensraumzuordnung in nicht flüchtigen speichervorrichtungen
DE112011100623B4 (de) Read-Other-Protokoll zur Aufrechterhaltung der Paritätskohärenz in einem Writeback-Datenspeichersystem mit verteilter Redundanz
DE69838367T2 (de) Paralleles Dateiensystem und Verfahren zur unabhängigen Aufzeichnung von Metadaten
DE60034327T2 (de) Verfahren und systeme zur implementierung von verwaltungsfunktionen für gemeinsam genutzte plattenanordnungen
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112009000411T5 (de) Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung
DE102013215535A1 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE69830965T2 (de) System zur wiedergabe von daten in einem video-server
DE19822543A1 (de) Verfahren zum Zuteilen von Aufträgen, Datenverarbeitssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
EP1228432A1 (de) Verfahren zur dynamischen speicherverwaltung
DE10236179A1 (de) Speichersystem und Verfahren zur Verwendung desselben
DE112010003675T5 (de) Adress-Server
DE102016219854A1 (de) Computersystem und Verfahren zum dynamischen Anpassen eines software-definierten Netzwerks
DE10234138A1 (de) Verwalten einer Speicherkonkurrenz bei automatisierten Speichersystemen
DE60221156T2 (de) Verfahren und system zur verteilung der arbeitslast in einem netzwerk von rechnersystemen
DE69933043T2 (de) Verfahren und vorrichtung für einen adaptiven generator von adressennachschlagtabellen
EP1262051A1 (de) Verfahren zur steuerung der kommunikation von einzelrechnern in einem rechnerverbund
WO2012022378A1 (de) Verfahren und anordnung zur projektierung und/oder programmierung eines projektes einer industriellen automatisierungsanordnung

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006242212

Country of ref document: US

Ref document number: 10524159

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2003790856

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003790856

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

WWP Wipo information: published in national office

Ref document number: 10524159

Country of ref document: US

WWW Wipo information: withdrawn in national office

Ref document number: 2003790856

Country of ref document: EP