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

Oracle Automatic Storage Management

Oracle Automatic Storage Management (ASM) — это интегрированная система управления томами и файловой системой, разработанная корпорацией Oracle Corporation специально для баз данных Oracle. ASM предоставляет уровень абстракции между базой данных и физическими дисками, упрощая администрирование хранения данных и обеспечивая высокую производительность, отказоустойчивость и масштабируемость. В отличие от традиционных менеджеров томов (LVM) и файловых систем (ext4, XFS), ASM оптимизирован для работы с Oracle Database и поддерживает такие функции, как автоматическое перераспределение данных (rebalancing), зеркалирование и управление дисковыми группами.

История

Разработка ASM началась в начале 2000-х годов в ответ на растущую сложность управления хранением данных в крупных кластерных средах Oracle Real Application Clusters (RAC). Первая версия была представлена в Oracle Database 10g Release 1 (2003 год). До появления ASM администраторы баз данных были вынуждены вручную настраивать LVM, создавать файловые системы и распределять файлы данных по дискам, что было трудоёмко и подвержено ошибкам.

В Oracle Database 10g Release 2 (2005) ASM был значительно улучшен: добавлена поддержка больших дисковых групп (до 4 экзабайт), улучшена производительность операций ввода-вывода. В Oracle Database 11g (2007) появилась поддержка ASM Cluster File System (ACFS) для хранения не-базовых файлов (например, бинарных файлов Oracle, журналов). В Oracle Database 12c (2013) ASM получил поддержку Flex-дисковых групп, позволяющих гибко управлять избыточностью и производительностью. В Oracle Database 19c и 21c ASM остаётся ключевым компонентом, интегрированным с Oracle Multitenant и другими технологиями.

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

ASM работает на уровне операционной системы как отдельный экземпляр (ASM instance), который управляет дисковыми группами. Каждая дисковая группа — это набор физических дисков (или разделов), объединённых в единое хранилище. ASM автоматически распределяет файлы базы данных по дискам в группе, используя алгоритмы, основанные на хешировании (extent-based allocation).

Дисковые группы

Дисковая группа — основная единица хранения в ASM. Она может содержать от одного до нескольких тысяч дисков. Каждая группа имеет политику избыточности:

  • External redundancyизбыточность не обеспечивается ASM; предполагается, что диски защищены на уровне аппаратного RAID-массива.
  • Normal redundancy — данные зеркалируются на два диска, обеспечивая защиту от отказа одного диска.
  • High redundancy — данные зеркалируются на три диска, обеспечивая защиту от отказа двух дисков.

Файлы ASM

ASM хранит не только файлы данных (datafiles), но и управляющие файлы (control files), файлы журналов (redo logs), файлы отката (undo tablespaces), файлы параметров (spfile), а также файлы кластера (OCR, Voting disks) для Oracle RAC. Файлы ASM имеют уникальные имена, генерируемые системой, но могут быть доступны через псевдонимы (aliases) для удобства администрирования.

ASM Instance

Для работы ASM требуется отдельный экземпляр Oracle (ASM instance), который запускается до экземпляра базы данных. Этот экземпляр не имеет собственных данных пользователя, а только управляет метаданными дисковых групп. Он использует файл параметров (init.ora или spfile) и может быть настроен на автоматический запуск при старте операционной системы.

Классификация

ASM можно классифицировать по нескольким признакам:

  1. По версии Oracle Database:
  • ASM 10g — базовая версия.
  • ASM 11g — добавлена поддержка ACFS, улучшена производительность.
  • ASM 12c — Flex-дисковые группы, поддержка больших файлов.
  • ASM 19c/21c — интеграция с Oracle Multitenant, улучшенная поддержка SSD и NVMe.
  1. По типу использования:
  • Standalone ASM — для одиночных экземпляров баз данных.
  • ASM for RAC — для кластерных конфигураций Oracle Real Application Clusters.
  1. По типу дисковых групп:
  • Standard disk groups — традиционные группы с фиксированной избыточностью.
  • Flex disk groups — позволяют настраивать избыточность на уровне файлов или групп файлов, а не всей группы.

Управление и администрирование

Управление ASM осуществляется через утилиты командной строки:

Основные операции администратора:

  • Создание и удаление дисковых групп.
  • Добавление и удаление дисков в группе (ASM автоматически перераспределяет данные).
  • Настройка параметров производительности (например, ASM_POWER_LIMIT для управления скоростью ребалансировки).
  • Мониторинг состояния дисков и групп через представления V$ASM_DISK, V$ASM_DISKGROUP.

Преимущества и недостатки

Преимущества

  • Автоматизация — ASM самостоятельно распределяет данные по дискам, упрощая администрирование.
  • Производительность — оптимизирован для работы с Oracle Database, использует прямой ввод-вывод (direct I/O) и асинхронные операции.
  • Масштабируемость — поддерживает дисковые группы до 4 экзабайт, тысячи дисков.
  • Отказоустойчивость — встроенное зеркалирование и автоматическое восстановление при отказе диска.
  • Интеграция с Oracle RAC — все узлы кластера имеют единый доступ к данным.

Недостатки

  • Привязка к Oracle — ASM не может использоваться для других СУБД или приложений.
  • Сложность отладки — при возникновении проблем с производительностью или отказами требуется глубокое знание внутренней архитектуры ASM.
  • Зависимость от ASM instance — отказ ASM instance может привести к недоступности базы данных.
  • Ограниченная поддержка сторонних утилитрезервное копирование и восстановление (например, с помощью RMAN) требует специальной настройки.

Применение

ASM широко используется в корпоративных средах, где развёрнуты базы данных Oracle, особенно в конфигурациях Oracle RAC. Он является стандартом для хранения данных в Oracle Exadata (аппаратно-программный комплекс для баз данных). ASM также применяется в облачных решениях Oracle Cloud Infrastructure (OCI) для управления хранилищем баз данных.

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

  • ASM может работать с дисками, подключёнными через Fibre Channel, iSCSI, NFS, а также с локальными дисками (SSD, HDD).
  • В ASM 12c появилась поддержка «Quorum disks» — дисков, которые не содержат данных, но используются для голосования в кластере RAC.
  • ASM поддерживает сжатие данных на уровне дисковых групп, что позволяет экономить место на дисках.
  • Некоторые администраторы используют ASM в сочетании с традиционными файловыми системами (например, ext4) для хранения не-базовых файлов, но это не рекомендуется Oracle.

Критика

Основная критика ASM связана с его закрытостью и привязкой к экосистеме Oracle. В отличие от открытых решений, таких как LVM + ZFS или Ceph, ASM не может быть использован для других целей. Кроме того, некоторые администраторы отмечают, что ASM может быть избыточным для небольших баз данных, где проще использовать традиционные файловые системы. Также критикуется сложность миграции с ASM на другие системы хранения.

Источники

  • Oracle Database Administrator’s Guide, 19c
  • Oracle Automatic Storage Management Administrator’s Guide, 19c
  • «Oracle Database 10g: A Beginner’s Guide» by Ian Abramson, Michael Abbey, Michael Corey
  • Документация Oracle Corporation (docs.oracle.com)
  • Статьи и обсуждения на форумах Oracle Community

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

На главную BFOmetr →