AFS
AFS (сокр. от англ. Andrew File System) — это распределённая файловая система, разработанная для обеспечения масштабируемого и отказоустойчивого доступа к данным в гетерогенных компьютерных сетях. Относится к классу глобальных файловых систем, позволяющих пользователям работать с файлами, физически расположенными на удалённых серверах, как с локальными. Основные характеристики AFS — прозрачность расположения данных, поддержка кэширования на стороне клиента, строгая модель безопасности на основе керберос-аутентификации и возможность работы в глобальном масштабе (вплоть до тысяч клиентов и петабайт данных).
История
Разработка в Университете Карнеги — Меллон
AFS была создана в 1980-х годах в рамках проекта Andrew в Университете Карнеги — Меллон (США). Проект ставил целью создание распределённой вычислительной среды для образовательных и исследовательских нужд, объединяющей тысячи рабочих станций. Первая версия, AFS-1, была представлена в 1984 году. Она продемонстрировала принципиально новый подход к организации файлового доступа: вместо централизованного NFS-сервера предлагалась иерархическая структура с кэшированием целых файлов на клиентских машинах.
Влияние на индустрию
В 1989 году компания Transarc Corporation (позднее приобретена IBM) выпустила коммерческую версию AFS-2, которая стала широко использоваться в академических и корпоративных сетях. В 1990-е годы AFS была внедрена в ряде крупных университетов (MIT, Stanford) и научных организаций (CERN, Fermilab). Система оказала значительное влияние на развитие распределённых файловых систем, включая OpenAFS (открытая реализация) и Coda (файловая система для мобильных вычислений). В 2000-х годах популярность AFS снизилась из-за появления более простых в администрировании решений (например, NFSv4, CIFS), однако она сохранила нишевое применение в высокопроизводительных вычислениях и научных кластерах.
Архитектура и принципы работы
Основные компоненты
AFS состоит из трёх ключевых элементов:
- Клиент (client) — программа (кэширующий агент), работающая на пользовательской машине. Она перехватывает системные вызовы к файлам и обращается к серверам только при отсутствии данных в локальном кэше.
- Сервер файлов (file server) — хранит данные в виде целых файлов (не блоков). Каждый сервер обслуживает определённые тома (volumes) — логические единицы хранения.
- Сервер управления томами (volume location server, VLDB) — поддерживает карту соответствия между именами томов и физическими серверами. Позволяет перемещать тома между серверами без изменения клиентских путей.
Кэширование
Ключевая особенность AFS — кэширование целых файлов на стороне клиента. При первом обращении к файлу клиент загружает его полностью в локальный кэш (обычно на диск). При повторных обращениях данные читаются из кэша, что снижает нагрузку на сеть и серверы. Изменения записываются на сервер только при закрытии файла (семантика «close-to-open»). Это обеспечивает высокую производительность для операций чтения, но может приводить к конфликтам при одновременной записи несколькими пользователями.
Идентификация и безопасность
AFS использует Kerberos (в модифицированной версии) для аутентификации пользователей. Каждый пользователь получает билет (ticket) от сервера аутентификации, который затем предъявляется файловым серверам. Доступ к файлам контролируется на основе списков контроля доступа (ACL), привязанных к директориям (не к отдельным файлам). ACL поддерживают права для отдельных пользователей и групп (чтение, запись, администрирование).
Масштабируемость
Система спроектирована для работы с тысячами клиентов. Кэширование снижает нагрузку на серверы, а иерархическая структура томов позволяет перераспределять данные между серверами без остановки обслуживания. AFS поддерживает репликацию томов (read-only копии) для повышения отказоустойчивости и производительности при чтении.
Классификация и виды
AFS-1 и AFS-2
- AFS-1 (1984) — прототип, использовавшийся внутри Университета Карнеги — Меллон. Имел ограничения по масштабу (до 100 клиентов).
- AFS-2 (1989) — коммерческая версия Transarc, поддерживавшая до 5000 клиентов. Включала улучшенное управление томами и кэширование.
OpenAFS
OpenAFS — открытая реализация AFS, выпущенная в 2000 году под лицензией IBM Public License. Поддерживается сообществом разработчиков. OpenAFS включает все основные функции AFS-2, а также расширения: поддержка 64-битных файловых систем, улучшенная совместимость с современными операционными системами (Linux, macOS, Windows). Является наиболее распространённой реализацией AFS на сегодняшний день.
DCE/DFS
DFS (Distributed File Service) — часть архитектуры Distributed Computing Environment (DCE) от Open Software Foundation (OSF). DFS основан на коде AFS-2, но имеет ряд отличий: использует собственную систему аутентификации (DCE Security) и поддерживает прозрачное кэширование на уровне блоков. DFS применялся в основном в корпоративных средах в 1990-е годы.
Применение
Научные и образовательные учреждения
AFS исторически широко использовалась в университетах и исследовательских центрах. Например:
- Массачусетский технологический институт (MIT) — до 2010-х годов AFS обслуживала домашние директории студентов и преподавателей.
- CERN — применялась для хранения данных экспериментов на Большом адронном коллайдере (LHC).
- Fermilab — использовала AFS для распределённого доступа к результатам физических экспериментов.
Высокопроизводительные вычисления (HPC)
В кластерных системах AFS обеспечивает единое файловое пространство для сотен вычислительных узлов. Кэширование целых файлов позволяет эффективно обрабатывать задачи, требующие многократного чтения одних и тех же данных (например, симуляции, обработка изображений).
Корпоративные сети
В 1990-е годы AFS внедрялась в крупных компаниях (IBM, HP, DEC) для организации централизованного хранения документов и домашних директорий. Однако с распространением Active Directory и CIFS интерес к AFS в коммерческом секторе снизился.
Сравнение с другими файловыми системами
| Характеристика | AFS | NFS (v3/v4) | CIFS (SMB) |
|---|---|---|---|
| Кэширование | Целыми файлами | На уровне блоков (v3) или файлов (v4) | На уровне файлов (опционально) |
| Аутентификация | Kerberos (обязательно) | Kerberos (опционально) | NTLM, Kerberos |
| Масштабируемость | Высокая (тысячи клиентов) | Средняя (сотни клиентов) | Средняя (сотни клиентов) |
| Поддержка ACL | На директории | На файлы (v4) | На файлы и директории |
| Отказоустойчивость | Репликация томов | Failover через NFSv4 pNFS | Кластеризация (SMB 3.0) |
| Сложность администрирования | Высокая | Средняя | Низкая |
Критика и ограничения
- Сложность настройки и обслуживания. AFS требует специальных знаний для администрирования серверов томов, кэширования и безопасности. Это ограничило её распространение в небольших организациях.
- Семантика close-to-open. При одновременной записи в файл несколькими пользователями сохраняется только последняя версия, что может приводить к потере данных. Для совместной работы требуются внешние механизмы синхронизации.
- Зависимость от Kerberos. Для работы AFS необходима инфраструктура Kerberos, что усложняет интеграцию с системами, не поддерживающими этот протокол.
- Устаревание. С развитием облачных хранилищ и простых в использовании файловых систем (NFSv4, CIFS) AFS потеряла актуальность для большинства современных приложений.
Интересные факты
- Название «Andrew» происходит от имён двух создателей проекта: Аndrew (Andrew Hume) и Аndrew (Andrew Birrell) — хотя точное происхождение остаётся предметом дискуссий.
- AFS стала первой файловой системой, которая использовала кэширование целых файлов на клиенте — подход, позже заимствованный такими системами, как Dropbox и Google Drive (на уровне синхронизации).
- В 1990-е годы AFS использовалась для обеспечения доступа к файлам в сети Andrew — одной из первых крупных университетских сетей, объединявшей более 10 000 рабочих станций.
- OpenAFS до сих пор поддерживается сообществом и используется в некоторых научных проектах, например, в LIGO (лазерно-интерферометрическая гравитационно-волновая обсерватория).
Источники
- Satyanarayanan, M. «A Survey of Distributed File Systems». Carnegie Mellon University, 1990.
- Howard, J. H. et al. «Scale and Performance in a Distributed File System». ACM Transactions on Computer Systems, 1988.
- OpenAFS Project. «OpenAFS Documentation». openafs.org, 2023.
- IBM Corporation. «IBM AFS: The Andrew File System». IBM Redbooks, 1995.
- Tanenbaum, A. S. «Современные операционные системы». 4-е издание, 2015 (глава 11 «Распределённые файловые системы»).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →