Восстановление потерянного места на жестком диске на хост-серверах Hyper-V (часть 1)

Опубликовано: 21 Апреля, 2023

Введение

Когда организации впервые приступают к виртуализации своих серверов, они обычно уделяют большое внимание тому, чтобы на хост-серверах было достаточно ресурсов ЦП, памяти и дискового ввода-вывода для поддержки всех виртуальных машин. Любой, кто планирует виртуализировать один или несколько серверов, также почти наверняка проверит, достаточно ли свободного места в массивах хранения, в которых будут размещаться все виртуальные жесткие диски. Однако после того, как первоначальное планирование завершено, объем доступного дискового пространства, как правило, становится чем-то запоздалым.

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

Чтобы понять, почему это так, вам нужно остановиться и подумать о том, как многие организации создают виртуальные машины в среде Hyper-V. Когда организация развертывает хост-сервер, у нее обычно есть несколько серверов, которые они планируют разместить на этом сервере. Таким образом, организация, скорее всего, проведет некоторое планирование емкости, чтобы убедиться, что у нового хост-сервера достаточно ресурсов для размещения всех виртуальных серверов, а также останется место для будущего расширения.

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

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

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

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

Прежде чем я перейду к следующему этапу процесса, давайте представим, что рассматриваемая организация имеет массив хранения объемом три терабайта, подключенный к хост-серверу. Давайте также представим, что изначально они решили развернуть три виртуальных сервера, которые в совокупности будут потреблять два из трех терабайт массива хранения, оставляя один терабайт свободного места.

Хорошо, теперь давайте перенесемся на несколько месяцев вперед, и ИТ-отдел организации рассматривает возможность размещения еще нескольких виртуальных серверов на сервере. Как вы думаете, сотрудники ИТ-отдела будут помнить, что у них есть ровно один терабайт дискового пространства, с которым они могут играть? Отличный шанс. Прошло много времени с тех пор, как были развернуты первые виртуальные серверы, и есть вероятность, что ИТ-персонал точно не вспомнит, сколько дискового пространства было доступно. Вместо этого они, скорее всего, пойдут по простому пути и проверят, сколько свободного места доступно в массиве хранения.

В таком случае давайте представим, что ИТ-отдел смотрит на массив хранения и видит, что на нем почти два терабайта свободного дискового пространства. Таким образом, они развертывают еще пару виртуальных серверов и коллективно выделяют им оставшиеся два терабайта пространства. Некоторое время все работает нормально, но однажды сотрудники обнаруживают, что на сервере полностью закончилось место на диске.

В этой конкретной ситуации у нашей вымышленной организации есть сервер с тремя терабайтами дискового пространства, но они выделили четыре терабайта хранилища. Как это произошло?

Причина возникновения подобных ситуаций заключается в том, что когда вы создаете виртуальный сервер в среде Hyper-V, Hyper-V создаст динамические виртуальные жесткие диски для виртуального сервера, если только вы специально не укажете ему использовать виртуальный жесткий диск фиксированного размера. размер. Имейте в виду, что когда я говорю, что Hyper-V создает динамические виртуальные жесткие диски, я имею в виду файл виртуального жесткого диска, который динамически расширяется по мере необходимости. Это отличается от использования Windows для преобразования обычного жесткого диска в динамический жесткий диск.

Динамический виртуальный жесткий диск не занимает автоматически все пространство, которое вы ему выделили. Например, даже если вы создадите виртуальный жесткий диск объемом 500 ГБ, этот виртуальный жесткий диск может занимать только 100 МБ физического дискового пространства. Файл виртуального жесткого диска начинается с малого, а затем расширяется по мере добавления в него данных. Поэтому, если вы создали огромный виртуальный жесткий диск, но не разместили на нем много данных, то виртуальный жесткий диск не займет много места на диске.

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

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

Конечно, возникает вопрос, почему Hyper-V по умолчанию создает динамические виртуальные жесткие диски. У меня нет официального ответа от Microsoft, но я подозреваю, что ответ заключается в том, что динамические виртуальные жесткие диски могут быть созданы почти мгновенно. Создание виртуальных жестких дисков фиксированного размера может занять несколько часов. Таким образом, виртуальные серверы могут быть развернуты намного быстрее, если используются динамически расширяемые виртуальные жесткие диски.

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

Вывод

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