NSF-файлы
NSF-файл (от англ. Notes Storage Facility) — это формат файла базы данных, используемый в клиент-серверной платформе для совместной работы IBM Lotus Notes и IBM Domino (ранее — Lotus Domino). NSF-файлы служат основным хранилищем для всех типов данных в среде Notes: документов, электронной почты, календарей, задач, контактов, форм, представлений, агентов и дизайна приложений.
История
Формат NSF был разработан корпорацией Lotus Development (позднее приобретена IBM) в конце 1980-х годов для системы Lotus Notes, впервые выпущенной в 1989 году. Изначально файлы имели расширение .NSF и использовали проприетарную структуру, основанную на страничной организации данных. В первых версиях Notes (до 4-й) размер NSF-файла был ограничен 4 ГБ. С выходом Lotus Notes 4.5 в 1996 году был введён новый формат — NSF с поддержкой 64-битной адресации, что позволило увеличить максимальный размер файла до 64 ГБ. В версии Notes 6 (2002 год) это ограничение было расширено до 256 ГБ, а в Notes 8.5 (2008 год) — до 64 ТБ за счёт использования 64-битной файловой системы.
В 2012 году IBM передала разработку платформы Notes/Domino компании HCL Technologies (сделка завершена в 2019 году). HCL продолжает поддерживать формат NSF в своих продуктах HCL Notes и HCL Domino.
Структура и устройство
NSF-файл представляет собой однопользовательскую или многопользовательскую базу данных, организованную в виде совокупности страниц фиксированного размера (обычно 4 КБ, 8 КБ, 16 КБ или 32 КБ). Основные элементы структуры:
- Страницы данных — хранят содержимое документов, полей и вложений.
- Страницы индексов — обеспечивают быстрый поиск и сортировку данных по ключам (например, по дате, автору, категории).
- Страницы каталогов — содержат метаданные о расположении других страниц.
- Страницы свободного пространства — отслеживают неиспользуемые участки файла.
Каждый документ в NSF-файле состоит из набора полей (текстовых, числовых, дат, вложений, rich-text и т.д.) и хранится в виде иерархической структуры с уникальным идентификатором (Note ID). Вложения (файлы, прикреплённые к документам) хранятся внутри NSF-файла в сжатом или несжатом виде.
Типы NSF-файлов
В среде Lotus Notes/HCL Notes выделяют несколько типов NSF-файлов в зависимости от назначения:
- Mail NSF — файл почтового ящика пользователя. Обычно называется
mail.boxилиusername.nsf. Содержит входящие, исходящие, черновики и удалённые сообщения. - Application NSF — файл базы данных приложения (например,
discussion.nsf,doclibrary.nsf). Хранит документы, формы, представления и агенты, созданные разработчиками. - Template NSF — файл шаблона (расширение .NTF). Используется как основа для создания новых баз данных. Содержит дизайн приложения, но не содержит документов.
- Log NSF — файл журнала событий сервера Domino (например,
log.nsf). Хранит записи о работе сервера, ошибках, аудите. - Directory NSF — файл каталога пользователей и групп (например,
names.nsf). Содержит записи о пользователях, сертификатах, политиках безопасности.
Применение
NSF-файлы являются основным хранилищем данных в экосистеме Lotus Notes/HCL Notes. Они используются для:
- Электронной почты — хранение почтовых сообщений, календарей, задач и контактов пользователей.
- Корпоративных приложений — базы данных для управления документами, проектами, заявками, обсуждениями, базами знаний.
- Совместной работы — репликация данных между серверами и клиентами, поддержка офлайн-доступа.
- Аудит и логирование — хранение журналов событий сервера Domino.
Репликация и синхронизация
Одной из ключевых особенностей NSF-файлов является поддержка репликации — механизма синхронизации данных между несколькими серверами Domino или между сервером и клиентом. Репликация позволяет создавать распределённые базы данных, где изменения, внесённые в один экземпляр NSF-файла, автоматически распространяются на другие копии. Для этого используется уникальный идентификатор реплики (Replica ID), который присваивается каждому NSF-файлу при его создании.
Ограничения и критика
Несмотря на широкое распространение в корпоративной среде, формат NSF имеет ряд недостатков:
- Проприетарность — формат является закрытым, что затрудняет интеграцию с другими системами и миграцию данных.
- Размер и производительность — при больших объёмах данных (сотни гигабайт) производительность базы может снижаться, особенно при выполнении сложных запросов.
- Сложность администрирования — для управления NSF-файлами требуются специальные навыки работы с сервером Domino.
- Уязвимость к повреждениям — при сбоях в работе сервера или клиента NSF-файлы могут быть повреждены, что требует восстановления из резервной копии или использования утилит (например,
nfixup,ncompact).
Инструменты для работы с NSF-файлами
Для управления и обслуживания NSF-файлов используются как встроенные средства сервера Domino, так и сторонние утилиты:
- Domino Administrator — консоль управления сервером, позволяющая создавать, копировать, удалять и восстанавливать NSF-файлы.
- nfixup — утилита для проверки и исправления повреждённых NSF-файлов.
- ncompact — утилита для дефрагментации и сжатия NSF-файлов.
- nupgrade — утилита для обновления формата NSF-файла до новой версии.
- Lotus Notes Client — клиентское приложение, через которое пользователи работают с NSF-файлами (чтение, редактирование, создание документов).
- Сторонние конвертеры — программы для экспорта данных из NSF-файлов в другие форматы (например, PST, CSV, PDF).
Современное состояние
По состоянию на 2024 год формат NSF продолжает использоваться в организациях, эксплуатирующих HCL Notes и HCL Domino. Однако с ростом популярности облачных решений (Microsoft 365, Google Workspace) и открытых стандартов (IMAP, CalDAV, CardDAV) доля рынка платформы Notes/Domino снижается. HCL Technologies выпускает обновления продукта, включая поддержку современных операционных систем и улучшенную совместимость. Миграция с NSF-файлов на другие платформы остаётся сложной задачей из-за проприетарного характера формата и большого объёма накопленных данных.
Источники
- IBM Lotus Notes and Domino 8.5: Administration and Security. IBM Redbooks, 2009.
- HCL Notes and Domino Product Documentation. HCL Software, 2023.
- Lotus Notes/Domino: The Complete Reference. Greg Neilson, 2002.
- RFC 2307 — An Approach for Using LDAP as a Network Information Service. IETF, 1998 (используется в контексте интеграции Notes с LDAP).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →