NDFS (Nutanix Distributed File System)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:28, 11 декабря 2016.

NDFS (англ. Nutanix Distributed File System - Распределенная файловая система Nutanix) является ядром конвергентной инфраструктуры Nutanix, объединяет все локальные флэш-диски в единый общий ресурс, доступный всем виртуальным серверам кластера. Файловая система использует метаданные, которые хранятся в VM контроллере, который расположен на каждом хосте. Контроллер VM общается с другими VM контроллерами через распределенное хранилище. Этот VM контроллер обеспечивает прямой доступ к локальному хранилищу (посредством VMdirectPath), к гипервизору. Используются протоколы iSCSI или NFS.

Определение NDFS от Nutanix

NDFS работает как передовые NAS, которые используют локальные SSD-накопители и диски из всех узлов, чтобы хранить данные виртуальной машины. Виртуальные машины, работающие на кластере записи данных на NDFS как если бы они были на записи для NAS. NDFS предоставляет расширенные возможности записи данных. Это приводит данные ближе к виртуальным машинам, что приводит к большой производительности по меньшей цене.

Общая информация

При создании NDFS для хранения метаданных файловой системы в кластере была использована OpenSource NoSQL база данных Apache Cassandra. Данная БД прекрасно масштабируется, но все равно возникает проблема консистентности базы в масштабах кластера, разработчикам Nutanix надо было обеспечить не только распределенность, но и консистентность, которая является критически необходимой для Nutanix. Cassandra была сильно переработана, чтобы обеспечить необходимую консистентность хранения в кластере. Для обеспечения консистентности данных используется алгоритм Паксос.

При этом за счет распределенности Cassandra в системе не существует «главного узла», выход из строя которого может повлиять на работоспособность всего кластера, база метаданных распределена по кластеру. Единственного управляющего доступом к метаданным у Nutanix нет.

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

Работа и доступ к дискам

Работа

Схема работы

Nutanix не пользуется технологией RAID для обеспечения высокой доступности данных на дисках. Избыточность данных обеспечивается способом RAIN — Redundant/Reliable Array of Inexpensive/Independent Nodes (резервируемый / надежный массив из недорогих / независимых нодов), тем, что каждый записываемый блок данных записывается не только на диски того узла кластера, которому он предназначается, но и в то же время на диски других узлов.

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

Организация доступа к дискам

Все задачи внутри сервера Nutanix работают на гипервизорах, например MS Hyper-V, Linux KVM или ESXi.

Среди виртуальных машин существует CVM (Controller VM). Это готовый образ виртуальной машины, внутри которого работает вся система формирования и обеспечения файловой системы Nutanix. CVM — это виртуальная машина под Centos Linux с многочисленными сервисами.

Эта виртуальная машина пропускает через себя трафик ввода/вывода виртуальных машин к их виртуальным дискам. CVM всех кластерных нодов, включенных в общий кластер, создают из физических дисков, из отдельных SSD и HDD общее пространство. Создают и отдают его в удобной форме гипервизору, видящему уже общее хранилище. Для VMware ESXi это NFS-storage, для 2012R2 Hyper-V — storage по протоколу SMB3, а для KVM — iSCSI. Для каждого гипервизора делается свой CVM, который устанавливается в гипервизор во время первоначальной установки кластера.

Так как Nutanix не использует RAID и раскладывает блоки данных по дискам самостоятельно, это дает ему большую гибкость.

Структура Nutanix

Над физическими дисками находится хранилище данных. Данные хранятся в виде последовательно расположенных адресуемых цепочек блоков и групп этих цепочек. В качестве адресуемого хранилища используется файловая система ext4, из которой используется только функция хранения и адресации экстентов. На схеме ниже желтое — физические диски SSD и HDD SATA, зеленое — NDFS, состоящая из ext4 как extent store данных и кластерного хранилища метаданных в Cassandra, и, наконец, поверх них располагаются блоки данных файловых систем «гостевых» VM OS, это уже будут NTFS, ext3, XFS

Желтым отмечены физические диски SSD и HDD SATA, зеленым — NDFS, состоящая из ext4 как extent store данных и кластерного хранилища метаданных в Cassandra, выше них располагаются блоки данных файловых систем «гостевых» VM OS, это уже будут NTFS, ext3, XFS

Источники