Назад | Перейти на главную страницу

VM Дефрагментация диска виртуальной гостевой машины повышает производительность, миф или реальность?

При работе виртуальной гостевой системы Vmware или Hyper-V обычно рекомендуется дефрагментировать образы хоста и виртуальных дисков, чтобы повысить производительность.

Что-то вроде cmd: vmware-vdiskmanager -d <file.vmdk> works great.

Тем не менее, я не могу найти никаких качественных свидетельств того, что дефрагментация гостевой виртуальной машины улучшает производительность. Есть ли у кого-нибудь совет или свидетельство, которое не содержится в техническом документе коммерческого дефрагментации, который предлагает внутреннюю гостевую дефрагментацию?

Это зависит от производительности вашего хранилища и производительности вашего приложения. Проблема с текущими хостами виртуализации заключается в том, что каждый гость может получить только 1 адаптер шины хоста (HBA) пропускной способности для любого данного LUN. (Единственным исключением из этого правила является последняя версия VMware vSphere v4.0 - самый верхний уровень лицензирования дает вам возможность запускать программное обеспечение EMC для работы с несколькими путями.) Итак, если узким местом пропускной способности является один HBA, даже если другие гости не используют хранение, фрагментация обычно не будет самым слабым звеном в виртуальной цепочке.

Плюс ко всему, стоит отметить тот факт, что несколько виртуальных гостей в любом случае обычно используют один и тот же лог SAN. Если три сервера обращаются к своим дискам одновременно и все они используют один и тот же физический массив, то весь доступ по существу является случайным.

Единственный раз, когда я бы посмотрел на дефрагментацию виртуальных дисков, это если бы у каждого гостя был свой собственный выделенный массив SAN и если бы пропускная способность HBA не была узким местом.

Насколько я понимаю, файл виртуального диска - это файл, который действует как физический диск. Поэтому я думаю, что вопрос в том, действительно ли vdiskmanager понимает файловую систему, которая находится на этом диске. Я думаю, что это не так, и поэтому дефрагментация в ОС должна помочь.

Поскольку вы упоминаете vmware и гостей Hyper-v, я предполагаю, что вы не используете версии vmware для ESX, а используете больше размещенную модель. Дефрагментация ОС хоста - хорошая идея.

Однако дефрагментация внутри гостя может быть плохой. У меня есть опыт работы только с продуктами vmware, а не с Hyper-v, но если у вас есть гость со снимками, дефрагментация может привести к использованию большого количества дискового пространства.

Моментальный снимок - это дельта изменений, сделанных из файла родительского диска. Когда вы обновляете блок в гостевой, размер дельты увеличивается. Если дефрагментация коснется каждого блока, ваш снимок увеличится в размере и займет столько же места на диске, что и исходный виртуальный жесткий диск. Просто то, о чем нужно знать.

Ответ Брента, безусловно, разумный. Сегодня утром, исследуя эту тему, я наткнулся на несколько ссылок, по которым рекомендуется дефрагментировать виртуальную машину, как физический сервер.

http://itknowledgeexchange.techtarget.com/virtualization-pro/defragmenting-virtual-machine-disk-files/

http://www.vmware.com/support/gsx3/doc/disks_defrag_shrink_gsx.html

http://www.dciginc.com/2008/10/the-physical-challenges-of-disk-defragmentati.html

Если мы предположим, что несколько виртуальных машин одновременно обращаются к LUN, то, как предлагает Брент, дефрагментация будет иметь ограниченное значение. Но одновременный доступ к LUN не всегда будет иметь место, поэтому внутренняя дефрагментация диска виртуальной машины по-прежнему будет иметь некоторую ценность?