Устроено это шифрование ВМ на базе алгоритма AES-NI, а управление ключами происходит по стандарту KMIP 1.1. Когда операция ввода-вывода приходит на диск виртуальной машины - она сразу же шифруется "на лету", что обеспечивает полную безопасность при попытке несанкционированного доступа к данным.
Шифруются не только виртуальные диски, но и конфигурационные файлы VMX, файлы снапшотов и все прочие файловые объекты, относящиеся к виртуальной машине. Шифрованные виртуальные машины всегда перемещаются между хостами ESXi средствами также шифрованного vMotion.
Между тем, на уровне отказоустойчивого кластера хранилищ Virtual SAN также есть возможность шифрования их содержимого. Как же эти два вида шифрования соотносятся между собой, и зачем они оба нужны?
Для начала посмотрим, как это работает на примере схемы шифрования на уровне виртуальных машин:
VM Encryption реализован на уровне программного интерфейса VAIO (vSphere APIs for IO Filters), который позволяет специальному фильтру обрабатывать команды ввода-вывода непосредственно до того, как они поступят в виде блоков на устройство хранения (помимо шифрования, фильтры могут еще и некоторым другим образом обрабатывать ввод-вывод).
Непосредственно - это означает, перед тем как отправить конечную команду ввода-вывода на устройство, фреймворк VAIO проверяет, назначено ли шифрование для ВМ в политике хранения (Storage policy), и если это так - то команда процессится на уровень соответствующего I/O-фильтра, после чего сразу же отправляется на блочный девайс.
Таким образом, на самом нижнем уровне происходит шифрование ввода-вывода, и это очень безопасно. Зато не очень удобно - зашифрованные таким образом блоки, поступающие в пространство хранения VSAN теперь уже не могут быть эффективно дедуплицированы (малая вероятность совпадения блоков), а также и сжаты - ведь шифрованные данные обладают большой энтропией, а значит неэффективны для алгоритмов сжатия.
Поэтому в кластере VSAN, где на первом плане, как правило, эффективность хранения виртуальных машин в плане экономии дискового пространства, шифрование организуется иным образом. Тут используется концепция "encryption at rest". Сначала данные в незашифрованном виде идут по сети (в целях ускорения и работы сжатия), затем они в зашифрованном виде падают в кэш. После чего, перед тем, как отправиться на постоянное хранение (destaging), они будут расшифрованы, дедуплицированы/сжаты и снова зашифрованы уже на целевом устройстве.
Поэтому шифрование на уровне кластера VSAN - это настройка также на уровне всего кластера. Таким образом, ключевые отличия данных методов шифрования состоят в следующем:
Шифрование уровня ВМ (VM Encryption) средствами VAIO:
Основано на политиках хранения (и включается для конкретной ВМ)
Передача данных также шифрована (vMotion)
Дедупликация на целевом хранилище неэффективна
Шифрование уровня кластера хранилищ (vSAN Encryption):
Включается для всего кластера в целом
Данные передаются между хостами в незашифрованном виде, но в кэше хранятся шифрованными
Полная совместимость со всеми сервисами VSAN, такими как компрессия и дедупликация