John Nicholson написал интересный пост с советами по экономии дискового пространства в кластере VMware vSAN, а также некоторыми рекомендациями по использованию техник дедупликации и сжатия данных.
Вот каким моментам следует уделить внимание:
1. Посмотрите на параметр политики хранения object space reservation (OSR) - если он установлен в 0, то виртуальные диски машин будут тонкими. Если же он будет больше 0, то пространство под диски будет резервироваться и vSAN не сможет эффективно использовать дедупликацию, так как будет вынужден поддерживать фиксированные резервы дискового пространства под ВМ.
2. Помните, что параметр резервирования свопа установлен в 100%, но это можно поменять, как мы писали в этой статье. Уменьшение параметра резервирования свопа оправдано, когда вы не собираетесь использовать memory overcommitment (то есть, ресурсов у вас с запасом), а значит виртуальным машинами не потребуется активно сбрасывать страницы в своп в случае недостатка физической памяти.
3. Помните, что отдельно развертываемые виртуальные машины c дисками типа "thick" или "Eager Zero Thick" (например, со старых клиентов vSphere Client или через консоль) могут перекрывать настройку политики OSR. Чтобы пофиксить это, вы можете переприменить политику хранения (storage policy) на эти хранилища. William Lam написал несколько скриптов, которые позволяют найти такие ВМ и накатить политики по-новой.
4. Убедитесь, что данные записываются на capacity tier - только там они будут дедуплицироваться и сжиматься. Если вы развернули всего 3-4 машины, они могут остаться в буффере (write buffer). Механизмы vSAN не тратят ресурсы на дедупликацию и сжатие объектов, которые долго не живут (то есть, находятся в буффере на запись). Например, 10 машин по 8 ГБ диска каждая тоже могут остаться на стейджинге и, пока не переместятся в постоянное хранилище, не будут дедуплицированы.
Вот тут можно посмотреть, как именно отрабатывает дедупликация, и сколько она экономит дискового пространства:
Ну и вот что Джон рекомендует в плане тестирования дедупликации и компрессии:
Самый простой способ организовать тестирование - запустить клонирование 200+ виртуальных машин, они сразу пойдут в capacity tier, и механизм дедупликации включится.
Надо помнить, что тестирование этих механизмов и реальное их применение дадут разные результаты, так как при тестировании вы последовательно пишете данные на хранилище и избегаете узких мест, связанных с дестэйджингом из кэша во время размеренного использования кластера vSAN в продакшене.
Тестирование алгоритма сжатия на данных, которые плохо сжимаются - плохая идея, так как в этом случае vSAN не будет тратить ресурсы на их сжатие, чтобы записать на хранилище. Это позволит быстрее читать их, а экономия с точки зрения диска будет небольшой (к тому же, алгоритм сжатия LZ4 не такой быстрый, как хотелось бы).
При резких всплесках объема записываемых данных и IOPS, которые не помещаются в кэш, видно, что механизмы сжатия и дедупликации приостанавливаются и теряют эффективность. Это связано с тем, что vSAN прежде всего должен обеспечить хороший показатель latency (то есть уровня сервиса), а уже во вторую очередь эффективность механизмов дедупликации и компрессии.