A non-transitory computer-readable storage medium storing a program for controlling a storage apparatus comprising a first storage device, and a second storage device having an access speed higher than an access speed of the first storage device, the program making a processor:
- monitor a write access load for the first storage device;
- compare the write access load for the first storage device monitored in the monitoring, with a load threshold;
- incorporate a write-through cache driver for employing the second storage device as a write-through cache for the first storage device, and cause write access target data to be written into the first and second storage devices, when it is determined in the comparison that the write access load for the first storage device does not exceed the load threshold, and
- cause the write access target data to be written into the first storage device, when it is determined in the comparison that the write access load for the first storage device exceeds the load threshold, wherein
- when it is determined in the comparison that the write access load for the first storage device does not exceed the load threshold, the program makes the processor cause the target data for a region among regions in the first storage device where a ratio of a read access load to a total access load does not exceed a predetermined value, to be written into the first and second storage devices, and
- when a time period for migrating tiered migration candidate segments between tiers is less than an average life expectancy of a state where the write access load for the first storage device exceeds the load threshold, the program makes the processor cause the write-through cache driver to be deleted.