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: dividing each of the plurality of flash memory devices into a plurality of logical chunks, wherein each logical chunk includes one or more flash memory blocks; assigning a weight to each of the plurality of flash memory devices for a distribution algorithm, wherein the weight is based on at least a number of available logical chunks; 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; 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.