вторник, 19 мая 2009 г.

Куда уходит место на дисках?

Одна из проблемных областей администраторов платформ виртуализации - куда девается место на дисках?

А все просто.

Overprovisioning

Администраторы забывают, что они больше не работают с железками и выделяют дискового пространства сразу от души, на вырост. Оно и понятно - если купить сервер с дисками, скажем, по 36, то очень скоро место может просто кончиться и единственный вариант - выкидывать эти диски и покупать новые, после чего переносить данные.
В виртуальной среде и конкретно VMware VI диски виртуальных машин можно увеличивать онлайн. Не хватает 8ГБ - на тебе еще 2, до 10. Все ограничивается только необходимостью работы с файловой системой и расширением разделов. Увеличить диски можно всегда, а вот уменьшить - нет, увы.
Каждый гигабайт, который выделен машине без необходимости, "на вырост", лежит мертвым грузом. И его нельзя использовать для других машин. Каждый гигабайт, который выделен "на вырост" без необходимости, будет лежать мертвым грузом очень долго, увеличивая расходы на СХД.

Неразумное использование снапшотов

Некоторые администраторы используют снапшоты не в качестве временной меры, создания точки отката при внесении изменений, а на постоянной основе. Делаем что-то - снапшот. И не удаляем. А вдруг понадобится? Получается как в анекдоте про дохлую кошку: "Не пригодилась".
Снапшоты в абсолютном большинстве случаев не нужны больше, чем на неделю. Патчим систему? Снапшот. Патчи работают, все ОК? Удаляем снапшот.
Практически слышу сразу "А если что-то случится после, то куда откатываться?". Господа, а бэкапы на что? Снапшот - это _быстрый_ откат, это не средство резервного копирования.

Более того, если объединить постоянное использование снапшотов и overprovisioning - вообще грустная картина. Поставили голую систему (пусть будет Windows 2003) на диск в 20ГБ, снапшот. Поставили патч - снапшот, поставили еще что-то - снапшот. Да, у ВМ 2ГБ памяти. Итого имеем, скажем, 5 снапшотов со средней дельтой в 1,5ГБ, и финальное использование диска в 30% (6ГБ). Что это значит на практике? А на практике это значит, что 12ГБ дискового пространства потрачены впустую только на overprovisioning. Каждый снапшот занимает 2ГБ (снимок RAM) + 1,5ГБ (дельта) = 3,5*5 = 17,5ГБ. Итого, ВМ, которой требуется всего 6ГБ впустую расходует почти 30ГБ дискового пространства СХД. Почему, кстати, 12 - потому что чистое использование диска 6ГБ, но 2ГБ свободными оставить стоит хотя бы из соображений дефрагментации (Windows рекомендует не менее 15% диска) и небольшого(!) запаса рабочего места.

В этом случае машина нам обошлась в 37,5/8 = 4,7 раза дороже по статье СХД, чем должна была. (написано по мотивам реальной ВМ)

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

Поэтому:

1) В случае с ВМ заповедь "много не мало" работает в обратную сторону. Семь раз подумай, прежде чем добавить место, отрезать уже не получится.
2) Не храните снапшоты без крайней необходимости, пользуетесь бэкапами.

4 комментария:

  1. Размер жесткого диска виртуальной машины можно уменьшить с помощью VMware Converter.

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

    ОтветитьУдалить
  3. На сколько я знаю, снапшоты еще и не дают возможности увличить диск виртуальной машниы. Операция вроде как завершается успешно, но при повторном входе в опции ВМ снова видим старую цифру.
    Я на эту детать как то почти час убил. А хотел всего-то сделать снапшот перед увеличением диска.

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

    ОтветитьУдалить
  4. По поводу снапшотов - согласен.
    По поводу расширения - не совсем так. :)
    Расширить системный раздел без перезагрузки поможет Dell Extpart или оснастка compmgmt.msc из Windows 2008 Server.
    P.S. Вроде бы в гостевой win2k8 еще и Diskpart адекватный. В win2k3 в половине случаев он не работал!

    ОтветитьУдалить