1. A method of managing a storage system that comprises a storage controller and a plurality of flash memory devices, each with a plurality of flash memory blocks, the method comprising: at the storage controller: assigning a weight to each of the plurality of flash memory devices for a distribution algorithm, wherein each of the plurality of flash memory devices has a plurality of logical chunks, each logical chunk including one or more flash memory blocks, and wherein the weight is based on at least a number of available logical chunks for the respective flash memory device, the available logical chunks for the respective flash memory device including logical chunks that already store data and logical chunks able to store new data; storing data in the plurality of logical chunks of the plurality of flash memory devices in accordance with the distribution algorithm; detecting a predefined trigger condition with respect to a respective flash memory device of the plurality of flash memory devices; and in response to detecting the predefined trigger condition: decreasing the weight corresponding to the respective flash memory device, the decreased weight corresponding to a decreased number of the available logical chunks for the respective flash memory device; updating the distribution algorithm to reflect the decreased weight of the respective flash memory device; and rebalancing data stored in the plurality of flash memory devices in accordance with the updated distribution algorithm.