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-1 | 1986 | Прототип, использовался в CMU. Поддерживал кэширование, но имел ограничения по масштабу. |
| AFS-2 | 1989 | Первая коммерческая версия. Добавлена поддержка Kerberos, улучшена масштабируемость. |
| AFS-3 | 1990-е | Основная версия, используемая до сих пор. Введены тома, репликация, улучшенное управление кэшем. |
| OpenAFS | 2000 | Открытая реализация на основе AFS-3. Поддерживает Linux, macOS, Windows, FreeBSD. |
¶Применение
AFS получила распространение в основном в академической и исследовательской среде, а также в крупных организациях, где требуется централизованное управление файлами для тысяч пользователей. Основные области применения:
- Университетские кампусы — обеспечение доступа к домашним каталогам и общим ресурсам для студентов и преподавателей.
- Научные центры — хранение и совместная работа с большими наборами данных (например, в CERN, где AFS использовалась для управления данными экспериментов).
- Корпоративные среды — в некоторых компаниях (например, IBM, Morgan Stanley) AFS применялась для централизованного хранения исходного кода и документации.
¶Сравнение с другими сетевыми файловыми системами
| Характеристика | AFS | NFS | SMB/CIFS |
|---|---|---|---|
| Кэширование | Whole-file, на стороне клиента | Блочное, на стороне клиента (с версии 4.1) | Блочное, на стороне клиента |
| Масштабируемость | Высокая (тысячи клиентов) | Средняя (сотни клиентов) | Средняя (сотни клиентов) |
| Безопасность | Kerberos, токены | Kerberos (NFSv4), AUTH_SYS | NTLM, 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 →


