The recent development of storage technology has resulted in the rapidly growing of the storage capacity and the emerging of various new storage devices. This research is motivated by the needs of a dynamically configurable storage device that can fit the needs of users in performance and reliability. In particular, we propose the design of a virtual storage device that is composed of multiple heterogeneous or homogeneous storage devices. An efficient LBA mapping implementation is presented to map any given LBA to a proper location of a component storage device. We then propose a dynamic remapping mechanism with a heap-based data structure to manage the moving of data among component storage devices for performance optimization. A lazy swapping method is also proposed to reduce the mapping overheads. The capability of the proposed design is evaluated with a prototype virtual storage device with a flash-memory storage drive and a hard drive over Linux and an ex2 file system and realistic/randomly generated workloads.