Должен ли я дефрагментировать жесткий диск, работающий на виртуальной машине?

18

Я знаю, что нет смысла (на самом деле это плохая идея) запускать Defrag на SSD. Как насчет виртуальной машины, работающей на SSD, я должен дефрагментировать ее жесткий диск, поскольку он в основном обращается к жесткому диску таким же образом?

Крис Эриксон
источник
Не знаю, почему это на SO, но может быть актуально: stackoverflow.com/questions/281527/…
Der Hochstapler
VSS может привести к увеличению объема памяти, если вы не используете дефрагментатор с поддержкой VSS.
Только если опция дефрагментации является частью вашего программного обеспечения для виртуализации.
qasdfdsaq

Ответы:

14

Я дефрагментирую свои виртуальные жесткие диски, но из-за нехватки времени, а не времени:

Я использую динамически распределенную опцию для виртуальных жестких дисков, поэтому они начинаются с малого и расширяются по мере необходимости. Но поскольку VHD (не обязательно файлы) становится фрагментированным, он расширяется и включает все выделенные блоки. Дефрагментация VHD - это первый шаг к его повторному сжатию.

JRobert
источник
Фактор пространства может иметь значение, потому что виртуальная машина находится на SSD, хотя в общем случае дефрагментация чего-либо на SSD не требуется по соображениям производительности и не рекомендуется.
Bigbio2002
3

Нет необходимости дефрагментировать SSD. Обычный жесткий диск должен вращаться, чтобы найти (части) файлов. SSD сравним с RAM, все файлы могут быть доступны с одинаковой задержкой.

Википедия утверждает, что «производительность чтения не меняется в зависимости от того, где хранятся данные на SSD»

Саймон Вербеке
источник
Пожалуйста, предоставьте ссылку на статью в Википедии .
wizlog
1
@wizlog Вуаля;)
Саймон Вербеке
2

Это только мое мнение, у меня нет результатов испытаний, подтверждающих это. Вот приблизительное приближение того, как все, вероятно, происходит:

Реальная ОС:

  1. Приложение запрашивает данные X (быстро)
  2. ОС запрашивает драйвер диска для данных X (быстро)
  3. Физический диск извлекает данные X и возвращает их в ОС ( медленно, если фрагментировано )

Вот эквивалентная цепочка команд в ВМ:

  1. Приложение VM запрашивает данные X (быстро)
  2. VM OS запрашивает данные X (быстро)
  3. Хост VM просит настоящую ОС получить данные X, хранящиеся в файле виртуального диска (быстро)
  4. Реальная ОС просит драйвер диска получить данные X (быстро)
  5. Физический диск извлекает данные X и возвращает их ОС ( медленно, если фрагментировано ).

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

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

Редактировать: И если это правильно, это чертовски веская причина для установки виртуальной машины на SSD! На жестком диске фрагментация на любом этапе (гостевая ОС, файл виртуального диска, настоящая ОС) нарушит линейность и приведет к фрагментации на шаге физического диска.

MTONE
источник
2

Независимо от того, обращается ли ваша виртуальная машина к данным, хранящимся на традиционных магнитных жестких дисках или электронных SSD, фрагментация файлов и свободного пространства в Windows NTFS замедляет скорость доступа приложений, запрашивающих данные. Фрагментация файлов NTFS и свободного места происходит гораздо чаще, чем вы можете догадаться. Это может произойти, как только вы установите операционную систему. Это может произойти при установке приложений или обновлений системы, доступе к Интернету, загрузке и сохранении фотографий, создании электронной почты, офисных документов и т. Д. Это обычное явление и поведение компьютерной системы, но оно оказывает отрицательное влияние на все приложения и производительность системы. По мере фрагментации компьютерная система и основное хранилище выполняют больше работы, чем необходимо. Каждый запрос ввода / вывода занимает измеримое количество времени. Даже в средах SSD не существует такого понятия, как «мгновенный» запрос ввода-вывода. Каждый раз, когда приложение запрашивает чтение или запись данных, и этот запрос разделяется на дополнительные запросы ввода-вывода, это требует больше работы. Эта дополнительная работа вызывает задержку как раз в тот самый момент времени.

Диски стали быстрее с годами, как и процессоры. Фактически, разрыв между разницей в скорости между жесткими дисками и процессором фактически увеличился. Это означает, что приложения могут получать много циклов ЦП, но они все еще испытывают недостаток в получении данных из хранилища. Более того, объем хранимых данных значительно увеличился. Подумайте о всех этих цифровых фотографиях, сделанных и переданных в праздничные дни. Размер каждой фотографии составляет около 1 МБ, теперь они превышают 15 МБ на фотографию, а некоторые выходят за рамки этого. Редактирование видео, рендеринг и хранение цифровых фильмов также стали довольно популярными, и в результате приложения манипулируют сотнями гигабайт данных. При типичных дисковых кластерах размером 4 КБ файл размером 15 МБ потенциально может быть фрагментирован почти до 4000 экстентов. Это означает дополнительные 4, 000 запросов дискового ввода-вывода необходимы для чтения или записи файла. Независимо от того, какой тип хранилища, для завершения операции потребуется больше времени.

Физическое размещение данных на SSD не так важно, как на обычных магнитных HDD. С SSD нет задержки вращения или поиска времени, чтобы бороться с. Многие эксперты предполагают, что фрагментация больше не является проблемой, но скорость доступа к данным приложения определяется не только этими терминами. Каждый выполненный запрос ввода / вывода занимает измеримое время. SSD быстрые, но они не мгновенные. Файловая система Windows NTFS не ведет себя по-другому, потому что основное хранилище - это SSD или HDD, и поэтому фрагментация все еще происходит. Сокращение ненужных операций ввода-вывода за счет предотвращения и искоренения фрагментации сокращает количество запросов ввода-вывода и, как следствие, ускоряет время отклика данных приложения и увеличивает общий срок службы SSD. По сути,

Кроме того, твердотельные накопители требуют, чтобы старые данные были стерты до того, как на них будут записаны новые данные, а не просто поверх старой информации, как на жестких дисках. Это удваивает износ и может вызвать серьезные проблемы с быстродействием и сроком службы SSD. Большинство производителей SSD имеют очень сложные технологии выравнивания износа, чтобы помочь с этим. Принципиальным вопросом является снижение скорости записи из-за фрагментации свободного пространства. Небольшие свободные места, разбросанные по всему SSD, заставляют файловую систему NTFS записывать файл фрагментированными частями в эти небольшие доступные свободные места. Это приводит к тому, что трафик случайного ввода-вывода генерируется медленнее, чем последовательные операции.

У меня есть результаты тестов, чтобы подтвердить это. Если хотите, оставьте комментарий, запрашивая эти результаты, и я буду рад поделиться ими с вами.

Говард Батлер
источник
Говард Батлер, вы новичок в этом сайте, добро пожаловать. В общем, не рекомендуется публиковать личную информацию в Интернете.
wizlog
@wizlog Нет ничего плохого в том, чтобы публиковать личную информацию в Интернете, если эта информация принадлежит вам. Однако для целей StackExchange размещение вашей контактной информации или «подписи» в ответе является излишним. Пользователи могут перейти на ваш профиль для получения дополнительной информации, если они хотят.
iglvzx
@iglvzx Я просто составлял комментарий, который по сути предлагал бы то же самое ... Как рекомендовано этим ответом.
wizlog
2

Что касается первоначального вопроса о традиционной дефрагментации SSD, я согласен, что это плохая идея, но существуют конкретные решения, которые решают проблемы перемещения файлов и срока службы SSD.

Виртуальная машина, работающая под управлением Windows в качестве операционной системы, фрагментирование все равно будет происходить, и объединенный эффект дополнительного трафика ввода-вывода снизит скорость и эффективность не только гостевых систем, но и хоста. И Microsoft, и VMware рекомендуют учитывать проблему фрагментации на уровне гостя.

Вот почему ...

  1. Приложение запрашивает данные X

  2. Запрос обрабатывается NTFS.sys

  3. Атрибуты файла проверяются ($ MFT), и если данные не содержатся в одном экстенте (фрагменте), то для каждого экстента / фрагмента создаются дополнительные запросы ввода-вывода, чтобы удовлетворить исходный запрос данных.

  4. Каждый из этих запросов затем отправляется драйверу дискового хранилища.

  5. Как только данные получены, они передаются обратно в стек пользователю / приложению.

Каждая виртуальная машина Windows отправляет этот тип трафика ввода-вывода в хост-систему. Если структура файловой системы фрагментирована на уровне гостевой / виртуальной машины, то это приводит к дополнительному и ненужному трафику ввода-вывода, который должен обрабатываться хостом и обрабатываться бэкэнд-хранилищем. Это усложняется по мере добавления все большего количества виртуальных машин. Фактически, вы можете иметь фрагментацию внутри фрагментации на уровне файловой системы хоста.

Независимо от того, хранятся ли данные на SSD или традиционном жестком диске, если вы работаете в Windows, файловая система NTFS будет фрагментирована, и в результате вы никогда не достигнете номинальной скорости и пропускной способности производителей из-за фрагментации файла NTFS и свободного пространства. Эффекты можно измерить с помощью PerfMon, посмотрев на «Средняя длина очереди чтения с диска», «Средняя длина очереди записи» и, что наиболее важно, «Разделение ввода-вывода / сек».

Говард Батлер
источник
1

Начиная с Windows Server 2008 и Windows Vista, будьте осторожны с запланированной по умолчанию задачей дефрагментации Windows.

Это можно отключить с помощью: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable

или используя PowerShell:

Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask

Извлечено из: http://www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html

Джонатан
источник
0

Я только что дефрагментировал виртуальную машину VMLite XPMode с помощью дефрагментации Windows, размещенной на 240 ГБ INTEL SSDSC2CW240A3.

Размер виртуальной машины до дефрагментации на хосте - 7,83 ГБ (Используемое пространство на C: на ВМ, 5,81 ГБ из 121 ГБ)

Post defrag - 9,86 ГБ (Используемое пространство на C: на ВМ, 5,80 ГБ из 121 ГБ)

Не ожидаемый результат, и я восстановил версию предварительной дефрагментации.

Essendee
источник
-1

Нет, не совсем. Есть такие вещи, как «Hyperfast» от Diskeeper, но я понятия не имею, насколько эффективны эти технологии. (Возможно, это просто плагиат, чтобы они не упали с рынка после того, как SSD станут мейнстримом.)

апаш
источник
Сверхбыстрый, звучит как волшебный соус.
Jafin