A hierarchical storage system comprises a host computer and a storage system. The storage system comprises at lease two kinds of storage devices, a first tier storage and a second tier storage. The first tier storage is a high performance (or high cost) storage device, and the second tier storage is a lower performance (or lower cost) storage device. The storage system creates a virtual volume based on the first and second tier storages, and enables the host computer to access the virtual volume. A file system in the host computer knows which region of the virtual volume corresponds to the first tier storage and which region of the virtual volume corresponds to the second tier storage. When the file system receives a command to migrate a file from the first tier to the second tier storage, e.g., from a user, the file system examines the address information of the virtual volume where the file resides, and instructs the storage system to migrate the blocks of the designated addresses.