A storage appliance, comprising - an interface for providing access to at least one virtual tape drive for at least one host computer; - a first database for storing metadata about a plurality of virtual tape volumes received via the interface; - at least one volatile main memory; and - a deduplication engine for deduplicating storage objects; wherein each virtual tape volume of the plurality of virtual tape volumes is represented within the storage appliance as an ordered set of segments of data (B1, B2, B3, B4) and the storage appliance is configured to perform the following steps: - defining a maximum segment size; - providing, from the at least one volatile main memory, at least one memory buffer of the defined maximum segment size for storing a segment of data; - receiving a data stream representing a virtual tape volume of the at least one virtual tape drive at the interface; - filling the at least one memory buffer with data from the received data stream until: the received data stream is closed, a synchronization point of the virtual tape volume is identified in the received data stream, or a predefined amount of data corresponding to the defined maximum segment size has been stored in the at least one memory buffer; - deduplicating, by the deduplication engine, the segment of data stored in the at least one memory buffer; and - storing the deduplicated segment of data in a nonvolatile storage device. - an interface for providing access to at least one virtual tape drive for at least one host computer; - a first database for storing metadata about a plurality of virtual tape volumes received via the interface; - at least one volatile main memory; and - a deduplication engine for deduplicating storage objects; wherein each virtual tape volume of the plurality of virtual tape volumes is represented within the storage appliance as an ordered set of segments of data (B1, B2, B3, B4) and the storage appliance is configured to perform the following steps: - defining a maximum segment size; - providing, from the at least one volatile main memory, at least one memory buffer of the defined maximum segment size for storing a segment of data; - receiving a data stream representing a virtual tape volume of the at least one virtual tape drive at the interface; - filling the at least one memory buffer with data from the received data stream until: the received data stream is closed, a synchronization point of the virtual tape volume is identified in the received data stream, or a predefined amount of data corresponding to the defined maximum segment size has been stored in the at least one memory buffer; - deduplicating, by the deduplication engine, the segment of data stored in the at least one memory buffer; and - storing the deduplicated segment of data in a nonvolatile storage device. - defining a maximum segment size; - providing, from the at least one volatile main memory, at least one memory buffer of the defined maximum segment size for storing a segment of data; - receiving a data stream representing a virtual tape volume of the at least one virtual tape drive at the interface; - filling the at least one memory buffer with data from the received data stream until: the received data stream is closed, a synchronization point of the virtual tape volume is identified in the received data stream, or a predefined amount of data corresponding to the defined maximum segment size has been stored in the at least one memory buffer; - deduplicating, by the deduplication engine, the segment of data stored in the at least one memory buffer; and - storing the deduplicated segment of data in a nonvolatile storage device.