Jump to content

МагмаФС

Сетевая файловая система Magma
Разработчик(и) Тх0
Написано в С
Операционная система Ядра Linux и BSD
Доступно в Английский
Тип Распределенная файловая система
Лицензия GNU GPL
Веб-сайт www .magmafs .сеть

Magma распределенная файловая система , основанная на распределенной хеш-таблице , написанной на C , совместимой с Linux и BSD ядрами с использованием FUSE .

Терминология и основные принципы

[ редактировать ]

Magma связывает несколько хостов, соединенных между собой сетью TCP/IP, образуя общее пространство хранения, называемое лавовым кольцом . Каждый хост (или узел) называется вулканом . Каждый вулкан содержит часть общего пространства ключей, ограниченного двумя ключами SHA1 . Каждый вулкан также отвечает за зеркалирование пространства ключей предыдущего узла, чтобы обеспечить избыточность данных . Каждый ключ может представлять один или несколько объектов внутри пространства хранения. Эти объекты называются вспышками .

Magma может хранить различный набор объектов: файлы, каталоги, символические ссылки, блочные и символьные устройства, каналы FIFO. Каждый объект привязан к блику и наоборот. Вспышка любого типа из шести перечисленных выше описывается некоторыми базовыми свойствами, общими для всех вспышек, такими как путь и хэш-ключ. Но каждый из шести типов имеет и свои специфические свойства. Например, указатели каталогов будут содержать некоторую специфическую информацию, не применимую к символическим ссылкам. Вспышка, содержащая только общую информацию, называется некастовой , а полная вспышка называется кастом .

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

Факельная система

[ редактировать ]

Внутренний движок Magma называется факельной системой и реализован в виде многоуровневого стека.

Слои факельной системы
1. Публичный API: Flare_system_init(), magma_open(), magma_mknod(), magma_lstat(), ...
2. Сеть лавы: magma_new_node(), Route_key(), join_network()
3. Вспыхивающие объекты: magma_new_flare(), magma_search_or_create(), magma_add_to_cache(), ...

magma_mkdir() можно использовать как пример обхода слоев. В этом параграфе предполагается, что каталог с именем /example будет создан . magma_mkdir() является частью уровня Public API . Он используется для создания нового каталога, как это делается стандартным аналогом Libc mkdir().

magma_mkdir() сначала маршрутизирует запрос, чтобы решить, можно ли им управлять локально или потребуются сетевые операции. Для выполнения маршрутизации путь /example преобразуется в соответствующий хэш-ключ SHA1 81f762fd59d88768b06b8e9de56aef8a95962045 . Если маршрутизация определит необходимость обращения к другому узлу вулкана, запрос не покинет этот уровень. Сетевой уровень Lava перенаправит запрос узлу, владеющему ключом, продолжая поток операций на удаленном узле. Маршрутизация — это половина роли сетевого уровня Lava , который также включает в себя мониторинг сети и создание, обновление и удаление узлов вулкана.

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

Маршрутизация

[ редактировать ]

Поскольку каждый узел вулкана имеет полную доступную топологию сети, маршрутизация — это всего лишь вопрос сопоставления ключей Flare с пространством ключей узла и поиска узла, содержащего сигнал. Топология сети также сохраняется в распределенном каталоге. /.dht/ внутри файловой системы магмы. Узлы Vulcano могут периодически сверять свою информацию с содержимым /.dht/ , чтобы узнать, изменилось ли что-то. Ноды также периодически сохраняют внутри свою собственную информацию. /.dht/ Каталог .

Балансировка нагрузки

[ редактировать ]

Каждый узел Vulcano имеет некоторые параметры, объявленные при загрузке, такие как пропускная способность и доступное хранилище. Отдельный поток , называемый балансировщиком, посвящен распределению ключей во избежание перегрузки или недогрузки узлов. С каждым узлом связано значение динамической нагрузки, которое рассчитывается по формуле:

где – ключевая нагрузка узла, рассчитанная в логарифмическом масштабе; это пропускная способность узла и — средняя пропускная способность; это хранилище узлов и средний объем памяти

Распространение программного обеспечения Magma

[ редактировать ]

Magma распространяется в виде сервера magmad и клиента mount.magma .

Магма сервер

[ редактировать ]

Магма сервер magmad управляет взаимодействием между узлами DHT и клиентами magma. Система Flare обеспечивает цикл сетевых событий, который принимает входящие соединения. Принимаются три вида подключения.

  • Соединение по протоколу Flare используется для работы с Flare: открытия файлов и каталогов, чтения и записи, получения информации и обмена Flare во время операций балансировки. Протокол Flare — это двоичный протокол.
  • Соединение по межузловому протоколу используется для обмена информацией DHT и присоединения к новым узлам. Межузловой протокол — это двоичный протокол.
  • Соединение по консольному протоколу используется, чтобы позволить администраторам запрашивать сеть лавы, выполнять простые операции, такие как просмотр содержимого каталога и отображение содержимого файла, и, наконец, выдавать некоторые административные команды узлам (пример административной команды: выключение). Консольный протокол — это текстовый протокол, доступный через Telnet .

Клиент Магмы

[ редактировать ]

Клиент Магмы magma.mount основан на FUSE и совместим с ядрами Linux и BSD. Клиент Magma использует соединение по протоколу Flare для связи и работы с ближайшим сервером Magma. Топология сети и расположение факелов полностью прозрачны для клиентов. Клиент просто запрашивает один сервер таким же образом, поскольку вся информация находится только на этом хосте.

Для клиента Magma запланирован криптографический уровень, позволяющий шифровать только содержимое файла. Реализация криптографии на стороне клиента обусловлена ​​масштабируемостью (вычислительная мощность будет увеличиваться с той же скоростью вычислительного запроса) и конфиденциальностью криптографического ключа (ключи или парольные фразы никогда не дойдут до сервера).

Альтернативный интерфейс NFS

[ редактировать ]

В качестве альтернативы клиенту Magma, который поддерживается только ядрами Linux и BSD, сервер Magma планирует предложить интерфейс NFS для других Unix. Поскольку NFS является устоявшимся стандартом, добавлять новые функции невозможно. Например, криптографический уровень будет недоступен для клиента, монтирующего общие ресурсы Magma через NFS.

[ редактировать ]
  • [1] — домашний сайт MagmaFS.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 028e215391cadb3b56e883cbceb4b711__1630677960
URL1:https://arc.ask3.ru/arc/aa/02/11/028e215391cadb3b56e883cbceb4b711.html
Заголовок, (Title) документа по адресу, URL1:
MagmaFS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)