Открыть сервис

Andrew File System

Andrew File System (AFS) — это распределённая сетевая файловая система, разработанная в Университете Карнеги — Меллона (США) в рамках проекта Andrew (1983—1989). AFS обеспечивает прозрачный доступ к файлам, хранящимся на удалённых серверах, для клиентских машин в масштабе крупной организации или университетского кампуса. Ключевыми особенностями AFS являются масштабируемость, кэширование на стороне клиента (whole-file caching) и использование механизма токенов (tokens) для управления доступом и состоянием сессии.

История

Проект Andrew был начат в 1983 году в Университете Карнеги — Меллона (CMU) при финансовой поддержке IBM. Целью проекта было создание вычислительной среды, объединяющей тысячи рабочих станций в единую информационную инфраструктуру. Разработка файловой системы, получившей название Andrew File System, велась под руководством Махмуда Саттервайта (Mahadev Satyanarayanan, известного как «Satya»). Первая версия AFS (AFS-1) была внедрена в CMU в 1986 году.

В 1989 году разработка AFS была передана компании Transarc Corporation, основанной при участии CMU. Transarc коммерциализировала AFS, выпустив версии для различных платформ, включая IBM AIX, SunOS и HP-UX. В 1997 году IBM приобрела Transarc, и AFS стал частью продуктовой линейки IBM. В 2000 году IBM выпустила AFS под лицензией IBM Public License, что сделало систему открытой. В дальнейшем развитие AFS продолжилось в рамках сообщества OpenAFS, которое поддерживает и развивает свободную реализацию системы.

Архитектура и принципы работы

AFS построена по архитектуре «клиент-сервер» с несколькими ключевыми компонентами:

  • Клиенты (Cache Managers) — процессы, работающие на каждой клиентской машине. Они перехватывают системные вызовы к файлам, расположенным в пространстве имён AFS, и управляют локальным кэшем.
  • Серверы файлов (File Servers) — хранят файлы и метаданные. Обычно работают под управлением операционной системы Unix/Linux.
  • Серверы аутентификации (Authentication Servers) — реализуют протокол Kerberos (в версии 4 или 5) для проверки подлинности пользователей.
  • Серверы управления томами (Volume Location Servers, VLDB) — хранят информацию о расположении томов (логических единиц хранения) на физических серверах.

Кэширование

Главная особенность AFS — стратегия кэширования «целиком» (whole-file caching). Когда клиент запрашивает файл, Cache Manager загружает его полную копию с сервера в локальный кэш на диске клиента. Все последующие операции чтения и записи производятся с локальной копией. При закрытии файла изменения отправляются обратно на сервер. Это резко снижает нагрузку на серверы и сеть, так как файл передаётся только один раз за сеанс работы с ним.

Тома (Volumes)

Файлы в AFS организованы в тома (volumes) — логические контейнеры, которые могут быть перемещены между серверами без изменения пути к файлу для пользователя. Том может быть:

  • Read-write — основной том, доступный для чтения и записи.
  • Read-only — реплика (копия) тома, создаваемая для балансировки нагрузки и отказоустойчивости. Реплики обновляются по расписанию.

Пространство имён

AFS использует глобальное пространство имён, начинающееся с корня /afs. Все файлы и каталоги в AFS доступны по единому пути, независимо от физического расположения сервера. Например, /afs/cmu.edu/user/john/file.txt указывает на файл, хранящийся на сервере в CMU, но доступный с любого клиента AFS в мире.

Классификация и версии

AFS прошёл несколько этапов развития:

ВерсияГодОсобенности
AFS-11986Прототип, использовался в CMU. Поддерживал кэширование, но имел ограничения по масштабу.
AFS-21989Первая коммерческая версия. Добавлена поддержка Kerberos, улучшена масштабируемость.
AFS-31990-еОсновная версия, используемая до сих пор. Введены тома, репликация, улучшенное управление кэшем.
OpenAFS2000Открытая реализация на основе AFS-3. Поддерживает Linux, macOS, Windows, FreeBSD.

Применение

AFS получила распространение в основном в академической и исследовательской среде, а также в крупных организациях, где требуется централизованное управление файлами для тысяч пользователей. Основные области применения:

  • Университетские кампусы — обеспечение доступа к домашним каталогам и общим ресурсам для студентов и преподавателей.
  • Научные центры — хранение и совместная работа с большими наборами данных (например, в CERN, где AFS использовалась для управления данными экспериментов).
  • Корпоративные среды — в некоторых компаниях (например, IBM, Morgan Stanley) AFS применялась для централизованного хранения исходного кода и документации.

Сравнение с другими сетевыми файловыми системами

ХарактеристикаAFSNFSSMB/CIFS
КэшированиеWhole-file, на стороне клиентаБлочное, на стороне клиента (с версии 4.1)Блочное, на стороне клиента
МасштабируемостьВысокая (тысячи клиентов)Средняя (сотни клиентов)Средняя (сотни клиентов)
БезопасностьKerberos, токеныKerberos (NFSv4), AUTH_SYSNTLM, Kerberos
УправлениеТома, репликацияЭкспорт файловых системОбщие папки
Производительность при большом количестве мелких файловНизкая (из-за кэширования целиком)ВысокаяВысокая

Критика и ограничения

Несмотря на преимущества в масштабируемости и безопасности, AFS имеет ряд недостатков:

  • Задержка при открытии файла — загрузка всего файла в кэш может быть медленной для больших файлов (сотни мегабайт и более).
  • Сложность администрирования — управление томами, репликами и кэшем требует специальных знаний.
  • Плохая поддержка мелких файлов — при работе с тысячами мелких файлов (например, исходный код) производительность может быть ниже, чем у NFS.
  • Устаревшая архитектура — AFS была разработана в эпоху, когда дисковое пространство было дорогим, а сеть — медленной. Современные альтернативы (например, Ceph, GlusterFS) предлагают более гибкие решения.

Интересные факты

  • Название «Andrew» происходит от имён двух основателей CMU — Эндрю Карнеги (Andrew Carnegie) и Эндрю Меллона (Andrew Mellon).
  • AFS стала основой для разработки протокола Kerberos, который изначально создавался как часть проекта Andrew.
  • В 2000-х годах AFS использовалась в крупнейших суперкомпьютерных центрах, включая Национальный центр суперкомпьютерных приложений (NCSA) и Национальную лабораторию Ок-Ридж.

Источники

  • Satyanarayanan, M. (1990). «Scalable, Secure, and Highly Available Distributed File Access». IEEE Computer.
  • Howard, J. H., et al. (1988). «Scale and Performance in a Distributed File System». ACM Transactions on Computer Systems.
  • Документация OpenAFS: https://docs.openafs.org/
  • IBM AFS Administration Guide (1997).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →