a storage system , method and program product , the system comprising : storage devices ; and a controller configured to : provide virtual volumes to a host computer ; manage logical units on the storage device and storage pools ; allocate , in response to receiving a write request to a virtual volume , a storage region of the storage pools ; and store data related to the write request in the storage region allocated , wherein the controller is further configured to : allocate first storage region in first storage pool to first virtual volume based on first size of the first storage region or the first virtual volume ; allocate a second storage region in a second storage pool to a second virtual volume of the plurality of virtual volumes based on a second size of the second storage region or the second virtual volume .