Patent Description:
<CIT> describes structures for creating and managing unused storage capacity in Redundant Array of Independent Disks (RAID) systems. A RAID controller includes a controller operable to create and manage a logical volume out of storage space that would otherwise not be used by a RAID system. The logical volume is exposed to the host operating system as a logical volume where the storage space can be used as a cache device for a host operating system.

A storage assembly includes a docking station configured to serve as an interface between a host computer and a portable data pack including multiple storage drives. The docking station includes a drive-side connection interface that provides a physical and electrical coupling to each of the multiple storage drives in the portable data pack, a RAID controller, and mode selection logic for directing communications in route between the host computer and a select drive of the multiple storage drives along one of two selectable paths within the docking station. According to one implementation, the first path permits the host computer to interact with the select drive through the RAID controller within the docking station and the second path permits the host computer to interact with the select drive along a data channel that bypasses the RAID controller within the docking station.

These and various other features and advantages will be apparent from a reading of the following Detailed Description.

As the automotive and transport industries increase reliance on and use of artificial intelligence technologies, the amount of data collected by in-vehicle computers grows exponentially. Since current cellular bandwidth speeds are too low to support the daily offload of vast amounts of data collected in these smart vehicles, industry leaders are turning to manual data transport and offload solutions in an effort to provide effective oversight of these new technologies.

A variety of challenges impede present efforts to streamline large-scale systems that provide for manual offload (e.g., at a data center) of data that is captured by in-vehicle storage devices. Cost-effective in-vehicle data storage and offload solutions tend to have simplified designs that lack components such internal power reserves and displays to present information that may provide a user with instructions. Since these solutions may be less user-friendly, systems that incorporate these cost-effective solutions may be more difficult to operate. For example, the average taxi or track driver may not, without considerable training, be able to self-initiate data offload operations such as operations to de-couple storage components from a vehicle, re-couple the storage components to a data center host, and initiate an offload of data.

In addition to the above challenges pertaining to operability, still other challenges arise from efforts to mitigate the time required for offload and processing of massive amounts of data collected within vehicles. In-vehicle computer systems may have significantly reduced processing capabilities in comparison to the types of computer systems that may otherwise be available (e.g., external to the vehicle) for aggregating and analyzing collected data. For example, a low-power consumption computer such as an in-vehicle data logger device may lack the capability to self-implement RAID (redundant array of independent disks) technology for redundancy and protection against drive failure. At the same time, a powerful PC may have its own RAID controller that can quickly and/or simultaneously access RAID virtual drives formed by multiple peripheral devices. In light of the above, it is desirable to design a data storage solution that can be accessed and controlled by different types of host computers with varying levels of processing capability while still guaranteeing certain safeguards with respect to reliability and data integrity (e.g., RAID capability).

The herein disclosed technology includes a design for a portable data pack and docking assembly that addresses the foregoing challenges by incorporating features that provide multi-mode read/write control for an external host. According to one implementation, the portable data pack is designed to removably couple to a docking station, such as a docking assembly permanently mounted within a vehicle, data center, or other location. The docking station includes mode selection logic that allows drives within the data pack to be viewed and accessed by a host computer in two discrete and independently-selectable modes.

When the mode selection logic is configured to provide access to the portable data pack in a first mode, communications between the host computer and the drives are routed through a RAID controller included the docking assembly. This internal RAID controller provides system compatibility with low-power consumption host systems, such as host systems lacking an independent RAID controller and/or processing or power resources to support RAID data access.

When the mode selection logic is configured to provide access to the portable data pack in second mode, communications between the host computer and the drives are routed to bypass the RAID controller internal to the docking station, allowing the host computer to see the drives individually and/or utilize its own internal RAID card (external to the docking station and portable data pack) to view and interact with data stored on the drives in the portable data pack. This versatility of drive access options allows a same docking station to be used to record data in-vehicles with limited-power consumption host computing systems and also to offload data in data centers leveraging host servers with comparatively significant processing capability. The use of the same docking station in these two distinct scenarios reduces system-wide implementation costs and reduces the relative skill level needed for an operator to offload data from the portable data back to a location for analysis.

<FIG> illustrates an example data storage device <NUM> that includes a docking station <NUM> that provides a host computer with selective multi-mode read/write control of drives in portable data pack <NUM>. The docking station <NUM> is configured for communication with a variety of types of host computers and may, in different implementations, be mounted in different locations for different purposes.

In <FIG>, dotted arrows <NUM> and <NUM> indicate compatibility of the docking station <NUM> with two types of host computing devices. In one implementation, the docking station <NUM> is included in a vehicle <NUM> and configured to provide a host computer within the vehicle <NUM> with access to drives in the portable data pack <NUM>. For example, the docking station <NUM> may be permanently or removably mounted within the vehicle <NUM> and coupled to a vehicle host computer <NUM>. In this implementation, the vehicle host computer <NUM> provides the docking station with control and/or power signals. The docking station <NUM> acts as an interface to provide the vehicle host computer <NUM> with read and write access to drives (e.g., drives <NUM>-N) within the portable data pack <NUM> when the portable data pack <NUM> is selectively coupled to the docking station <NUM> within the vehicle <NUM>, such as when the vehicle <NUM> is in transit. When the portable data pack <NUM> is coupled to the docking station <NUM>, the vehicle host computer <NUM> may send control signals through the docking station to the various drives <NUM>-N.

In the same or another implementation, the docking station <NUM> is located at a data center <NUM> and configured to provide a data center host server <NUM> with access to the drives in the portable data pack <NUM> whenever the portable data pack <NUM> is physically coupled to the docking station <NUM> at the data center <NUM>. Here, the docking station <NUM> acts as an interface between the data center host server <NUM> and the portable data pack <NUM>, such as to enable data offload at the data center <NUM>.

The docking station <NUM> is designed to serve as a universal interface that provides different types of host systems (e.g., the vehicle host computer <NUM> or the data center host server <NUM>) with access the same portable data pack <NUM>. Although <FIG> shows a single instance of the docking station <NUM>, <FIG> is intended to illustrate the potential for duplicate instances of the docking station <NUM> that may be used at different times for recording and offloading data. For example, multiple instances of the docking station <NUM> may be used within the same system, such as to facilitate recordation of data on the portable data pack <NUM> and the subsequent transfer of captured data from the portable data pack <NUM> to a more permanent storage location. Different versions of the docking station <NUM> within a same system may be identical or different from one another (e.g., with some hardware and/or software components different from that shown and described herein). For instance, to optimize costs, the docking station <NUM> attached to the data center host server <NUM> may not have a RAID controller embedded. As discussed below, the docking station <NUM> may instead be utilized leverage the higher compute capabilities of the data center host server <NUM>.

In some implementations, different types of host systems may have very different power and memory capabilities. For example, the vehicle host computer <NUM> may be a processing device with a lower processing capability CPU optimized for power consumption and embedded systems. In contrast, the data center host server <NUM> may be a processing device with comparatively higher processing capabilities, including hardware RAID processing capabilities. For example, the data center host computer may have two high cores count CPUs per motherboard and a built-in RAID controller that can be shared and reused across multiple portable disk packs.

In one implementation, the portable data pack <NUM> includes an outer enclosure encasing a number of non-volatile storage media represented as drives <NUM>-N in <FIG>. These drives may have characteristics that are identical or disparate from one another. In various implementations, the drives <NUM>-N may include one or more or a combination of hard drive disks (HDDs), optical disks, solid state drives ("SSDs"), flash memory, and the like. In one example implementation, the portable data pack <NUM> houses multiple solid state devices and various circuitry and electrical ports for coupling each of the SSDs communication channels within the docking station <NUM> when the portable data pack <NUM> is coupled to the docking station <NUM>.

In some implementations, the drives <NUM>-N of the portable data pack <NUM> are managed as a RAID array. Using RAID, data on the drives in the portable data pack <NUM> is written using various techniques such as mirroring, parity, and/or striping, to ensure data redundancy and thereby safeguard against drive failure.

When reading and writing data to the portable data pack <NUM>, the drives (e.g., Drive <NUM>-N) may be managed as a RAID virtual array. In general, a RAID array is managed by a RAID controller (e.g., a RAID controller <NUM>), which has the ability to access multiple copies of duplicate data on different drives in the array and thereby implement procedures to improve performance in the event of a system crash. RAID controllers may assume a variety of different forms including pure software or a mix of hardware and software. Notably, higher-end processing devices designed for intensive processing and data analysis, such as the data center host server <NUM>, may be manufactured to include an independent RAID controllers In some implementations, lower-end processing devices, such as in-vehicle computers (e.g., the vehicle host computer <NUM>) and mobile electronics do not independently include a RAID controller. Thus, there exists the possibility that the portable data pack <NUM> could be selectively accessed by first host with internal RAID capability and subsequently accessed by a second host that lacks independent RAID control.

To provide RAID support regardless of host capabilities while also leveraging host processing assets, the docking station <NUM> includes mode selection logic <NUM> that is selectively configurable to provide the associated host computer (e.g., the vehicle host computer <NUM> or the data center host server <NUM>) with two different alterative mechanisms for viewing and accessing the drives within the portable data pack <NUM>.

When the mode selection logic <NUM> is configured in a virtual drive mode, control signals and read/write data passing between the portable data pack <NUM> and the host computer (e.g., vehicle host computer <NUM>) are routed through a RAID controller <NUM> that is internal to the docking station <NUM>. For example, the RAID controller <NUM> may take the form of a PCI or PCI Express (PCIe) card, which is designed to support a specific drive format such as SATA (serial advanced technology attachment) or SCSI (small computer system interface). In this mode, the host computer receives signals that are interpretable to view the array of drives in the portable data pack <NUM> as a virtual drive (e.g., with visibility regarding redundancies across drives).

When the mode selection logic <NUM> is configured in a virtual drive bypass mode, control signals and read/write data passing between the portable data pack <NUM> and the host computer (e.g., the data center host server <NUM>) bypass the RAID controller <NUM> that is internal to the docking station <NUM>. In this mode, the host computer receives signals from the drives <NUM>-N that are not arranged in a way so as to alone provide the host with visibility of the virtual drive (e.g., the locations of data redundancies). In this mode, the host computer may use its own internal RAID controller when viewing and accessing the drives <NUM>-N (e.g., as a RAID virtual drive). In yet other implementations, the virtual drive bypass mode is usable to provide a host computer with visibility of each of the drives <NUM>-N individually (e.g., without using a RAID controller), such as via a SAS host bus adaptor in the hosts system that provides direct visibility and communication with individual drives in isolation of one another.

The above two different drive access modes - virtual drive mode and virtual drive bypass mode - provide the host with different levels of control and visibility that are selectable so as to provide for various levels of data management and control tailored to the unique needs and/or requirements of the host computing system and/or facility. For example, the data center host server <NUM> may be a powerful PC with its own RAID controller. This RAID controller may be designed to couple to multiple docking stations at once with the mode selection logic <NUM> of each docking station configured in the virtual drive bypass mode. In this manner, the RAID controller internal to the data center host server <NUM> may provide simultaneous access to the multiple different drives of the multiple different portable data packs.

In <FIG>, the docking station <NUM> is also shown to include a power supply unit (PSU) <NUM> which includes, for example, an AC-to-DC converter and an AC power connector for powering the docking station <NUM> to draw power from an AC source, such as an electrical outlet in a data center. In another implementation, the docking station <NUM> includes a DC power connector (not shown) in addition to or in lieu of the PSU <NUM>, such as to enable the docking station <NUM> to draw power from a car battery. In at least one implementation, the portable data pack <NUM> has no independent power source (e.g., no battery) and is powered through the electrical couplings to the docking station <NUM>.

Although not shown, the portable data pack <NUM> may, in some implementations, include a microcontroller and various environmental sensors for collecting data. For example, the microcontroller may include a combination of software and hardware, such as control instructions executed by one or more separate or shared device controllers (e.g., microprocessors), peripheral interface controllers ("PICs"), application-specific integrated circuits ("ASICs"), systems on chips ("SoCs"), etc. Various environmental sensors included within the portable data pack <NUM> may include a GPS sensors and/or one or more environmental sensors such as temperature sensors, vibration sensors, accelerometers, hygrometer, etc..

<FIG> illustrates an example system <NUM> with a and docking station <NUM> that includes mode selection logic <NUM> to provide multi-mode control of drives in a portable data pack <NUM>. The docking station <NUM> provides a host computer <NUM> with read and write access to a number of non-volatile storage media (drives) included within the portable data pack <NUM>. In different implementations, the portable data pack <NUM> may include different types of storage media configured and accessible in different ways. By example and without implementation, the portable data pack <NUM> of <FIG> houses four groups (e.g., groups <NUM>, <NUM>, <NUM>, and <NUM>) of four drives (e.g., drive <NUM> - drive <NUM> in each group). In one implementation, the drives <NUM>-<NUM> in each group are SSDs. Control signals are provided to each group of drives by way of connections ports <NUM>, <NUM>, <NUM> and <NUM> that are each in electrical communication with a corresponding external connection port <NUM>, <NUM>, <NUM>, or <NUM> on the portable data pack <NUM>.

The docking station <NUM> serves as an interface that selectively routes control signals and data between the drives in the portable data pack <NUM> and the host computer <NUM> based on a currently-selected drive access mode. In <FIG>, the docking station <NUM> includes multiple (e.g., four) drive-side connection ports <NUM>, <NUM>, <NUM>, and <NUM> each designed to couple to a corresponding one of the external connection ports <NUM>, <NUM>, <NUM>, and <NUM> on the portable data pack <NUM>. The docking station <NUM> additionally includes multiple host-side connection ports (e.g., <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>) as well as mode selection logic <NUM> for directing communications in route between the host computer <NUM> and a select group of drives (e.g., groups <NUM>, <NUM>, <NUM>, and <NUM>) along one of two selectable paths within the docking station <NUM>.

The docking station <NUM> is configured to permit the host computer <NUM> to view the drives of the portable data pack <NUM> in two different modes - a "virtual drive mode" and a "virtual drive bypass mode. " In one implementation, these two modes of operation are mutually exclusive and do not operate simultaneously at the same point in time. This dual mode viewing capability may allow different data collection center entities to view, offload, and interact with stored data in whichever manner is preferable based on their respective system configurations.

When the mode selection logic <NUM> is configured in the virtual drive bypass mode, the host computer <NUM> has direct visibility to one or more groups (e.g., group <NUM>, <NUM>, <NUM> or <NUM>) of drives in the portable data pack <NUM>. As used herein, "direct visibility" refers to a connection between two endpoints (e.g., an input to the host computer <NUM> and an input to a select drive) that does not route data through a RAID controller <NUM> in the docking station <NUM>. In one implementation, the host computer <NUM> accesses the drives in the virtual drive bypass mode by utilizing an internal SAS host bus adaptor to send SAS protocol signals through the host-side connection ports <NUM>, <NUM>, <NUM>, and <NUM>. In another implementation, the host computer <NUM> accesses the drives in the virtual drive bypass mode by utilizing an internal RAID controller and by transmitting SAS protocol signals through the host-side connection ports <NUM>, <NUM>, <NUM>, and <NUM>.

When the mode selection logic <NUM> is configured in a virtual drive mode, the host computer <NUM> communicates with the drives through the RAID controller <NUM> within the docking station <NUM>. For example, the host computer <NUM> may be equipped with a PCIe switch card that transmits signals of a PCIe protocol through the host-side connection ports <NUM> or <NUM> to access the drives in the portable data pack <NUM> in the virtual drive mode. The PCIe signals are, for example, routed through a PCIe re-driver card (not shown) to the RAID controller <NUM>.

The mode selection logic <NUM> may include hardware or a selection of hardware and software. According to one implementation, the currently-selected drive access mode (e.g., virtual mode or virtual mode bypass) is determined based on a location of a detected coupling between the host computer <NUM> and one or more of the host-side connection ports <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. When, for example, the mode selection logic <NUM> detects a coupling between the host computer <NUM> and one or more of the host-side connection ports <NUM>, <NUM>, <NUM>, and <NUM>, data and control signals in route between the host computer <NUM> and the portable data pack <NUM> are routed around (e.g., to bypass) the RAID controller <NUM>. In contrast, when the mode selection logic <NUM> detects a coupling between the host computer <NUM> and one or more of the host-side connection ports <NUM> and <NUM>, data and control signals in route between the host computer <NUM> and the portable data pack <NUM> are routed through the RAID controller <NUM>.

In another implementation, the mode selection logic <NUM> includes a microprocessor (not shown) that selectively routes signals through the docking station <NUM> responsive to firmware commands from a host.

In addition to the above-described features, the docking station <NUM> includes a power supply unit <NUM> which may include, for example, an AC-to-DC converter and an AC power connector for drawing power from an AC source, such as an electrical outlet. In another implementation, the power supply unit <NUM> includes a DC power connector for drawing power from a battery, such as vehicle battery. A power connector (not shown) may route power from the power supply unit <NUM> to the portable data pack <NUM>. In one implementation, the portable data pack <NUM> does not include an independent power source. Other aspects of the system <NUM> not explicitly described herein may be the same or similar to those described with respect to other implementations.

<FIG> illustrates another example system <NUM> with a docking station <NUM> that includes mode selection logic <NUM> that provides multi-mode control over drives in a portable data pack <NUM>. The docking station <NUM> includes a RAID controller <NUM> and a PCIe re-driver card (not shown) that couples the RAID controller to each of multiple storage drives in the portable data pack <NUM>.

By example and without implementation, the portable data pack <NUM> includes an enclosure housing six groups of four drives (e.g., groups <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> each having drives labeled drive <NUM> - drive <NUM>). In one implementations, the drives are SSDs. Control signals are provided to each group of drives through a connection interface <NUM> on the portable data pack <NUM> which may, for example, include a collection of SAS and power connection ports. Depending on the select hardware configuration, the portable data pack <NUM> may additionally include a port expander <NUM> (e.g., a SAS expander to provide connections between the drives in the portable data pack <NUM> and the RAID controller <NUM> or an external controller through a limited number of SAS ports in the connection interface <NUM>). The docking station <NUM> includes multiple drive-side connection ports collectively represented as a drive-side connection interface <NUM>, which is configured to couple with and provide data signal connectivity to the connection interface <NUM>.

The docking station <NUM> additionally includes multiple host-side connection ports represented collectively as a host-side connection interface <NUM>. The mode selection logic <NUM> within the docking station <NUM> includes routing circuitry for directing communications received from the various drives in the portable data pack <NUM> to the host computer <NUM> along one of two selectable paths (e.g., paths labeled '<NUM>' and '<NUM>') within the docking station <NUM>. By way of example and without limitation, the mode selection logic <NUM> includes a multiplexor <NUM>.

When the host computer <NUM> is coupled to the host-side connection interface <NUM> rather than the host-side connection interface <NUM>, no input signal is detected along a selection line (SEL) at the host-side connection interface <NUM>, and the multiplexor <NUM> routes signals received from the drives of the portable data pack <NUM> along a first path (e.g., path '<NUM>' representing a virtual drive mode) through the RAID controller <NUM> to the host computer <NUM>. In one such implementation, the host computer <NUM> receives data of a PCIe format from the RAID controller <NUM> that effectively allows the host to see the various drives in the portable data pack as an array forming a RAID virtual drive.

When the host computer <NUM> is coupled to the host-side connection interface <NUM> rather than the host-side connection interface <NUM>, an input signal is received along the select line (SEL) and the multiplexor <NUM> routes signals received from the drives of the portable data pack <NUM> along a second path (e.g., path '<NUM>', representing a virtual drive bypass mode). This path bypasses the RAID controller <NUM>, allowing the host computer <NUM> to view the drives individually using a SAS host bus adaptor <NUM>. Alternatively, the host computer <NUM> may be configured to re-format the data received along the second path using an internal RAID controller <NUM>. Other aspects of the system <NUM> not explicitly described herein may be the same or similar to those described with respect to other implementations.

<FIG> illustrates example operations <NUM> for routing data through a docking assembly between drives of a portable data pack and a host computer. According to one implementation, the routing operations are performed by hardware and/or software of a docking assembly that is attached to a portable data pack through a drive-side connection interface and attached to the host computer through one of multiple host-side connection interfaces on the docking assembly.

A detection operation <NUM> detects an input signal from a host computer one of multiple host-side connection interfaces of a docking assembly. A determination operation <NUM> determines whether the detected input signal was received through a select one of multiple host-side connection interfaces. If so, a configuration operation <NUM> configures routing logic to route return signals received at the drive-side connection interface (e.g., from one or more storage drives of the portable data pack) through a RAID controller prior to providing the signals to the host computer.

If the determination operation <NUM> determines that the detected input signal was not received at the select host-side connection interface (e.g., the signal has been received at a second, different one of the multiple host-side connection interfaces), another configuration operation <NUM> configures routing logic to route the return signals received at the drive-side connection interface along a route that bypasses the RAID controller such that the signals received at the host computer are not routed through a RAID controller prior to providing the signals to the host computer.

<FIG> illustrates an example schematic of a processing device <NUM> suitable for implementing aspects of the disclosed technology. The processing device <NUM> includes one or more processor unit(s) <NUM>, memory <NUM>, a display <NUM>, and other interfaces <NUM> (e.g., buttons). The memory <NUM> generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., flash memory). An operating system <NUM>, such as the Microsoft Windows® operating system, the Microsoft Windows® Phone operating system or a specific operating system designed for an embedded device, resides in the memory <NUM> and is executed by the processor unit(s) <NUM>, although it should be understood that other operating systems may be employed.

One or more applications <NUM> are loaded in the memory <NUM> and executed on the operating system <NUM> by the processor unit(s) <NUM>. The processing device <NUM> includes a power supply <NUM>, which is powered by one or more batteries or other power sources and which provides power to other components of the processing device <NUM>. The power supply <NUM> may also be connected to an external power source that overrides or recharges the built-in batteries or other power sources.

The processing device <NUM> includes one or more communication transceivers <NUM> and an antenna <NUM> to provide network connectivity (e.g., a mobile phone network, Wi-Fi®, Bluetooth®). The processing device <NUM> may also include various other components, such as a positioning system (e.g., a global positioning satellite transceiver), one or more accelerometers, one or more temperature sensors or hygrometers, and storage devices <NUM>. Other configurations may also be employed.

In an example implementation, the processing device <NUM> couples to a docking station (e.g., docking station <NUM> in <FIG>) to access data stored on a portable data pack (e.g., portable data pack <NUM> in <FIG>) that removably couples to the docking station.

The processing device <NUM> may include a variety of tangible computer-readable storage media and intangible computer-readable communication signals. Tangible computer-readable storage can be embodied by any available media that can be accessed by the processing device <NUM> and includes both volatile and nonvolatile storage media, removable and non-removable storage media. Tangible computer-readable storage media excludes intangible and transitory communications signals and includes volatile and nonvolatile, removable and non-removable storage media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Tangible computer-readable storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible medium which can be used to store the desired information, and which can be accessed by the processing device <NUM>. In contrast to tangible computer-readable storage media, intangible computer-readable communication signals may embody computer readable instructions, data structures, program modules or other data resident in a modulated data signal, such as a carrier wave or other signal transport mechanism. By way of example, and not limitation, intangible communication signals include wired media, such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.

An example storage system disclosed herein includes.

In another example storage system of any preceding storage system, the mode selection logic selects between the first path and the second path based on a location of a detected coupling between the host computer and the docking station.

In still yet another example storage system of any preceding storage system, the host computer includes an internal RAID card to interact with the select drive along the first path.

In another example storage system of any preceding storage system, the mode selection logic includes a multiplexor that selects one of multiple available paths for routing each signal received at the drive-side connection interface to the host computer.

In yet another example storage system of any preceding storage system, the first path between the select drive and the host computer directs communications from the select drive through the RAID controller to a first host-side connection interface on the docking station.

In still another example storage system of any preceding storage system, the second path between the select drive and the host computer bypasses the RAID controller and directs the communications to a second host-side connection interface on the docking station.

In still another example storage system of any preceding storage system, the mode selection logic selects the first path when the host computer is coupled to a first host-side connection interface and selects the second path when the host computer is coupled to a second host-side connection interface.

In another example storage system of any preceding storage system, the docking station removably couples to the portable data pack.

An example method disclosed herein provides for detecting a coupling between a host computer and a select port of multiple host-side connection ports in a docking station and, based on a location of the detected coupling, selecting one of two selectable paths along which to direct communications in route between the host computer and a select drive of the multiple storage drives. The docking station is coupled to a portable data pack through a plurality of drive-side connection ports each providing a communication channel between the docking station and one of multiple storage drives in the portable data pack. A first path of the two selectable paths permits the host computer to view the select drive as part of a RAID virtual drive and a second path of the two selectable paths permits the host computer to view the select drive independent of the RAID virtual drive.

In another example method of any preceding method, the docking station includes a RAID controller and the first path between the select drive and the host computer directs communications through the RAID controller.

In still another example method of any preceding method, the second path between the select drive and the host computer bypasses the RAID controller.

In yet still another example method of any preceding method, selecting one of the two selectable paths further comprises selecting one of the two selectable paths based on a location of a detected coupling between the host computer and the docking station.

In still another example method of any preceding method, the host computer includes at least one of an internal RAID card and a SAS host bus adapter to interact with the select drive when the second path is selected.

In yet another example method of any preceding method, selecting one of the two selectable paths further comprises selecting the first path when the host computer is coupled to a first host-side connection interface and selecting the second path when the host computer is coupled to a second host-side connection interface.

In another example method of any preceding method, the docking station removably couples to the portable data pack.

In still another example method of any preceding method, the docking station is configured for attachment to a vehicle.

In another example method of any preceding method, selecting one of the two selectable paths further comprises selecting a path with a multiplexor based on a value detected on a multiplexor selection line.

An example storage assembly disclosed herein includes a docking station configured to serve as an interface between a portable data pack and a host computer. The docking station includes at least a plurality of drive-side connection ports each serving as a coupling to a corresponding one of multiple storage drives in the portable data pack; and mode selection logic for directing communications in route between the host computer and a select drive of the multiple storage drives along one of two selectable paths within the docking station. A first path of the two selectable paths permits the host computer to receive signals from the select drive routed through a RAID controller and a second path of the two selectable paths permits the host computer to interact with the select drive along a data channel that bypasses the RAID controller.

In an example storage assembly of any preceding storage assembly, the mode selection logic selects one of the two selectable paths based on a location of a detected coupling between the host computer and the docking station.

In yet another example storage assembly of any preceding storage assembly, first path directs the communications to a first host-side interface and wherein the second path directs the communications to a second host-side interface.

An example system disclosed herein includes a means for detecting a coupling between a host computer and a select port of multiple host-side connection ports in a docking station and a means for selecting one of two selectable paths along which to direct communications in route between the host computer and a select drive of the multiple storage drives based on a location of the detected coupling. The docking station may be coupled to a portable data pack through a plurality of drive-side connection ports each providing a communication channel between the docking station and one of multiple storage drives in the portable data pack. A first path of the two selectable paths permits the host computer to view the select drive as part of a RAID virtual drive and a second path of the two selectable paths permits the host computer to view the select drive independent of the RAID virtual drive.

Some implementations may comprise an article of manufacture. An article of manufacture may comprise a tangible storage medium to store logic. Examples of a storage medium may include one or more types of processor-readable storage media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or rewriteable memory, and so forth. Examples of the logic may include various software elements, such as software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, operation segments, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. In one implementation, for example, an article of manufacture may store executable computer program instructions that, when executed by a computer, cause the computer to perform methods and/or operations in accordance with the described implementations. The executable computer program instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. The executable computer program instructions may be implemented according to a predefined computer language, manner or syntax, for instructing a computer to perform a certain operation segment. The instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.

Claim 1:
A storage system comprising:
a portable data pack (<NUM>) including multiple storage drives within an enclosure;
a docking station (<NUM>) configured to serve as an interface between the portable data pack (<NUM>) and a host computer (<NUM>), the docking station including:
a RAID controller (<NUM>);
a drive-side connection interface (<NUM>) that provides a physical and electrical coupling to each of the multiple storage drives in the portable data pack (<NUM>); and
mode selection logic (<NUM>) for directing communications in route between the host computer and a selected drive of the multiple storage drives along one of two selectable paths within the docking station, a first path of the two selectable paths permitting the host computer to interact with the selected drive through the RAID controller and a second path of the two selectable paths permitting the host computer to interact with the selected drive along a data channel that bypasses the RAID controller,
wherein the mode selection logic is configured to:
select the first path of the two selectable paths when the host computer is coupled to a first host-side connection port on the docking station; and
select the second path of the two selectable paths when the host computer is coupled to a second different host-side connection port on the docking station.