A method of managing data storage using a management device that includes determining respective status information for a plurality of storage devices, and calculating, based on the status information, a respective cost for each of the plurality of storage devices using a cost function that includes one or more parameters including at least one of: a program/erase (P/E) parameter, a block error state parameter, a block error level parameter, and a workload parameter. The method further includes selecting a destination storage device of the plurality of storage devices based on at least some of the calculated costs, and writing data to the destination storage device.