Эксперимент по созданию файловой системы, хранящей данные в кэше DNS

13 января 2018 года

Под вдохновением от проекта PingFS, предпринята попытка создания более надёжной ФС - DNSFS. Как и PingFS проект DNSFS позиционируется как эксперимент, не рассчитанный на серьёзное использование.

В PingFS для хранения информации используется поле с данными в пакетах ICMP Echo - инициируется серия непрерывных операций ping, и каждый ответ синхронизирует примерно 1400 байт информации по аналогии с синхронизацией содержимого памяти (время жизни информации от отправки пакета до получения ответа). Но в случае остановки ping или потери пакета информация потеряется.

В DNSFS для хранения информации решено использовать кэш DNS. Для определения общедоступных резолверов было произведено сканирование всех IP-адресов сети при помощи пакета masscan, которое выявило почти 4 млн открытых DNS-резолверов, но повторная проверка показала, что 37.9% не пригодны для проекта, так как используют динамически выделяемые адреса. Дальнейшее изучение списка показало, что только 18% открытых резолверов могут хранить данные в кэше около суток. В итоге пригодными для проекта оказались 438 тысяч открытых резолверов.

Отслеживая время жизни записей и дублируя информацию можно добиться приемлемого уровня надёжности при достаточно редком цикле обновления информации (по сравнению с PingFS). В итоге можно получить полностью распределённое и независимое эфемерное хранилище. Для хранения было решено использовать TXT-записи в рассчёте 9 TXT-записей по 187 байт на каждый резолвер. Максимальный размер хранилища при такой разбивке составляет 250 Мб с учётом репликации данных как минимум на три разных резолвера. В текущем виде DNSFS оформлен в виде простого HTTP-интерфейса для загрузки и скачивания файла. Обновление состояния блоков пока не поддерживается, т.е. данные могут храниться не более суток.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Эксперимент по созданию файловой системы, хранящей данные в кэше DNS», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.