跨多个磁盘的虚拟机存储的最佳组合算法

时间:2013-02-13 03:55:00

标签: algorithm optimization storage

我有一个数据池,包括计算机名称和每台计算机占用的GB磁盘空间量。我正在寻找一种算法,可以获取这些数据,并将它们组合在一起,尽可能接近650 GB(最佳组合)。它看起来很像背包算法,除了一切都加权相同。

在现实世界中,我的数据是生活在单个大型LUN上的虚拟机。我正在尝试将该LUN分解为多个较小的LUN,这些LUN的大小为1 TB,但由于需要增长以及缓冲区空间而只想在每个LUN上存储多达650 GB,因此不会触发大小警报。我将大型和小型机器混合在一起,它们的范围从9 GB到300 GB不等。只是尝试从我的数据中优化存储。

2 个答案:

答案 0 :(得分:0)

看起来更像是CoinChange问​​题。

http://www.algorithmist.com/index.php/Coin_Change

您需要找到最多可添加650 GB的所有可能的机器组合

答案 1 :(得分:0)

我认为理解它的最好方法是分析Bin打包问题,因为你的虚拟机就是垃圾箱等。

http://en.wikipedia.org/wiki/Bin_packing_problem