Кратко
- RFC 7145 запрещает уровню iSER у инициатора полагаться на то, что узел-партнёр аннулирует локальный STag: Send with Invalidate необязателен, а когда аннулирование ожидается, локальный уровень должен проверить тег и аннулировать его, если он всё ещё действителен.
- Это вопрос срока жизни ресурса: действующий STag может оставить буфер ввода-вывода доступным по RDMA после завершения задачи, для которой его объявили.
Команда завершилась — доступ мог сохраниться
Окончание команды хранения заметно: приходит ответ, задача закрывается, и программа может захотеть повторно использовать буфер. В RDMA остаётся менее очевидный вопрос: действительно ли отозвана возможность удалённой стороны обращаться к этой памяти? В iSER Steering Tag (STag) обозначает буфер ввода-вывода, который один узел объявляет другому для прямого чтения или записи через RDMA. Сам тег не содержит данные, но входит в механизм адресации доступной области.
Опубликованный в 2014 году RFC 7145 заменил RFC 5046 и уточнил, кто отвечает за последнюю проверку. Если базовый RDMA-протокол поддерживает Send with Invalidate, целевой узел может автоматически аннулировать тег, отправляя ответ SCSI. Но этот тип сообщения необязателен. Поэтому инициатор не должен рассчитывать на то, что партнёр его использовал. Если после завершения задачи STag должен быть недействителен, локальный уровень iSER обязан проверить его состояние и аннулировать тег, если он ещё действителен. RFC 7145
Получение ответа и изменение локальной регистрации памяти — разные события. Для нормального завершения стандарт рекомендует аннулировать объявленный STag; двунаправленная команда и аварийное завершение усложняют автоматический путь. Кроме того, сообщение Send with Invalidate может указать лишь один тег, поэтому при некоторых двунаправленных передачах инициатору придётся явно аннулировать другой. Если задача завершается без PDU-ответа, RFC 7145 задаёт отдельную процедуру освобождения ресурсов: найти связанные теги и локальное отображение, затем аннулировать их.
Причина — длительность экспозиции. Если STag сохраняют, например для кэширования и повторного использования, соответствующий буфер остаётся доступным по сети через RDMA и после исходной операции iSCSI. Сам факт хранения тега не доказывает злоупотребление, но продлевает период доступности ресурса. Следовательно, завершение команды само по себе не подтверждает, что окно доступа закрылось.
Стандарт не запрещает оптимизации: автоматическое аннулирование можно применять, если его поддерживает нижележащий RDMA-протокол. Но необязательное действие удалённого узла не может быть единственным доказательством изменения локального состояния. RFC 7145 не описывает конкретный взлом, дефект поставщика или частоту несоответствий. Аннулирование также не заменяет аутентификацию и другие требования безопасности iSCSI и RDMA. В истории изменений RFC 5046 сказано, что RFC 7145 из соображений безопасности закрепил ответственность за локальное аннулирование за инициатором. RFC 5046 · RFC 7143 Источники: Информационная страница RFC Editor.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
