Rules for shared entities of a network-attached storage device

A system comprises storage configurable, at least in part, into a plurality of shared entities. The storage comprises rules. Each rule is configurable to specify one or more of the shared entities to associate with a specified computer identity so that at least one computer identity is associatable with a different set of shared entities from at least one other computer identity.

BACKGROUND

In many environments (e.g., offices, homes, etc.), multiple computing entities are networked together. An example of a device that has become desirable to include in a network is a network-attached storage (NAS) device. A NAS device comprises storage (e.g., one or more hard disk drives) that, being coupled to a network, can be accessed by one or more computers on the network. Via the network, a computer can access data (writes and reads) on the NAS. A NAS thus provides a shared storage resource available to multiple computers.

Some storage devices such as universal serial bus (USB) flash drives (which are not NAS devices) can be connected directly to a computer (e.g., via a USB port). Upon connecting a USB drive to a computer, the drive automatically becomes available for access on the computer (e.g., an “E” drive). A user thus can immediately use the drive. A NAS device, however, is not automatically made available on the computer(s) coupled to the NAS device via the network. This lack of automatic and immediate NAS device access is problematic for many users who may not know how to configure the computer to recognize and access the NAS device, or may prefer not to bother with such a configuration process.

NOTATION AND NOMENCLATURE

DETAILED DESCRIPTION

FIG. 1shows a system10in accordance with various embodiments. As shown, system10comprises one or more computers12communicatively coupled together and to a network-attached storage device (NAS)30via a network link25.FIG. 1shows three computers12(designated as computer A, computer B, and computer C), but the number of computers can be other than three (i.e., one or more). Each computer12may comprise a desktop computer, a notebook computer, a server, or any other type of computing entity. Via the network25, each computer12can access the NAS device30. An access can be to write data to the NAS device30or to read data from the NAS device.

Each computer12comprises logic14coupled to storage16and to a network interface22. The logic14comprises a processor adapted to execute code18stored on the storage16. The code18may comprise an operating system, one or more applications, one or more drivers, or other executable software items. The storage16comprises a computer-readable medium such as volatile memory (random access memory), non-volatile storage (e.g., hard disk drive, read-only memory, Flash memory, etc.), or combinations thereof. Via the network interface22, which may comprise a network interface controller (NIC), the computer's logic14can access other computers12and/or the NAS device30. Each computer12may also comprise a display17and an input device19(e.g., keyboard, mouse, etc.) coupled to the logic14. Via the display17and input device19, a user can operate the computer12.

Referring still toFIG. 1, the NAS device30comprises logic32coupled to network interface34and to storage36. The logic32comprises a processor adapted to execute code38stored on the storage36. The code38may comprise an operating system, firmware, one or more applications, one or more drivers, or other executable software items. The storage36comprises a computer-readable medium such as non-volatile storage (e.g., hard disk drive, read-only memory, Flash memory, etc.) in some embodiments. In other embodiments, the storage36comprises a computer-readable medium such as volatile memory (random access memory), non-volatile storage, or combinations thereof. Via the network interface34, which may comprise a network interface controller (NIC), the NAS' logic32can be accessed by the computers12.

The storage36of the NAS30is configured to comprise one or more shared entities39. A shared entity (sometimes referred to as a “share”) comprises a shared folder. In the example ofFIG. 1, four shared entities39are shown as SH1, SH2, SH3, and SH4. Each shared entity39can comprise data written to it by any computer12permitted access to that particular shared entity. In accordance with embodiments of the invention, each shared entity39can be shared by one or more of the computers12. Further, each shared entity39can be configured to be associated with a different set of computers than other shared entities. For example, SH1may be configured to be shared by computer A and computer B, but not computer C, while SH2may be configured to be shared by computer A and computer C, but not computer B. As such, at least one computer12can be associated with a different set of shared entities than at least one other computer12.

The configurability of the NAS device30to associate individual computers12with individual shared entities39is made by possible using rules37. Rules37comprise a separate rule for each computer12. Each computer12comprises a computer identity. The identity of a computer may comprise its name, address, serial number, etc. A computer identity uniquely distinguishes one computer12from another. A computer12can communicate its identity over the network25at least from the computer12to the NAS device30.

FIG. 2illustrates an example of rules37. For each computer identity (assumed to be “A,” B,” and “C” inFIG. 2), one or more identities of shares (SH1, SH2, etc.) are provided. As explained above, different computers12may be associated with a different set of shares. In the example ofFIG. 2, computer A is associated with shares SH1, SH2and SH4. That is, computer A is to be permitted access to shares SH1, SH2and SH4, but no other shares (i.e., share SH3). Computer B is associated with SH1, SH3, and SH4, while computer C is associated with only SH4. Share SH4is common to all computers. In some embodiments, a separate rule can be provided that specifies which shares are to be associated with all computers.

The rules37are stored in NAS device30and are specified by a user of a computer12. In some embodiments, a default set of rules are specified by the manufacturer of the NAS device30and can later be changed by a user of the NAS device. Logging into a computer with a password so as to enable, for example, various administrator access privileges, enables a user to specify the shared entity identifier(s) for each computer identity. In some embodiments, the functionality in the computer12that enables a user to configure the rules37is by way of code18executed by a process or in logic14. Such code may provide a web interface or other suitable graphical user interface. Code18that enables a user to configure the rules may be present on all computers, or only some, and in some embodiments, only users that log in under a domain as an administrator can configure the rules37. In other embodiments, administrator rights are not required to configure the rules37, that is, any user of a computer12can configure the rules37as described herein.

After the rules37have been configured in the NAS device30, each computer12interacts with the NAS device and is configured to access the shared entities39in accordance with that computer's rule. When a computer12is powered on, code18causes the computer's processor to perform a discovery process by which the computer12determines whether, perhaps among other things, one or more NAS devices30are present on the network. If such a NAS device30is present, the NAS device receives that computer's identity (e.g., its name), examines the rule associated with that particular computer identity, and sends a message to the computer to inform the computer as to the identity of the shared entities that computer's rule specifies. The computer receives the shared entity identities and configures itself to access the specified shared entities. In some embodiments, the computer maps a drive designator to each specified shared entity.

The user of the computer12thus is able to access the particular shared entities on the NAS device30that the rule for that particular computer permits. In various embodiments, the computer cannot access other shared entities not included in its associated rule.

FIG. 3shows an illustrative method in accordance with various embodiments by which a computer discovers the NAS device30and configures itself based on the rules37stored in the NAS device. Some of the actions shown inFIG. 3are performed by a computer12, while other actions are performed by NAS30. In various embodiments, code (18in computer12and38in NAS device30) is executed by the respective logic14and32to perform the various actions shown inFIG. 3. The code that performs these actions in the computer may comprise the computer's operating system. The actions shown can be performed in the order shown, or in a different order.

At52, the method comprises the computer12performing a discovery process to discover any network-attached storage devices30. This action may be performed by the computer sending a message over network25requesting any device connected to the network to reply with its identity. Once the computer12discovers that a particular NAS device30is present, then at54, the computer12sends a request to the NAS device30for the NAS device to report what shared entities it possesses for the computer12to access. The request comprises at least the computer's identity. At56, the NAS device30receives the request.

At58, the NAS device30accesses its rules37for the rule associated with the requesting computer (using the requesting computer's computer identity). At60, the NAS device30generates a reply for the computer. The reply comprises the identities of the shared entities from the rule37associated with the requesting computer. At62, the NAS device30sends the reply across the network25to the computer. The computer receives the reply at64and, at66, configures itself (the computer) for access to the shared entities specified in the reply. At68, the computer maps drive designators to the shared entities. The drive designators mapped by the computer12may comprise the next available drive designator. That is, the computer12selects its own drive designators for use in the mapping process of action68.

In some embodiments, the NAS device30stores a drive designator for each of its shared entities39. For example, NAS device30may store drive designators E, F, G, and H for SH1, SH2, SH3, and SH4, respectively. In such embodiments, the NAS device30forms the reply message (60) to also comprise the drive designator for each of the shared entity identifiers specified in the reply. In such embodiments, the NAS device30informs the computer which drive designators to use with each shared entity specified in the reply thereby precluding the drive from selecting its drive designators. This embodiment helps to ensure that the same shared entities are mapped to the same drive designators each time a computer12interacts with the NAS device30as inFIG. 3.

In some embodiments, the method ofFIG. 3is performed each time a computer12boots. In other embodiments, the method ofFIG. 3is performed at predetermined time intervals (e.g., once per minute). In still other embodiments, the method ofFIG. 3is performed each time a computer12boots and at predetermined time intervals. A computer12will thus dynamically reconfigure itself if a NAS device30replies with a different shared entity identifier than for which the computer was currently configured. If during the discovery process of action52, no NAS device is discovered then the rest of the method (54-68) is not performed.