Oracle ACFS vs. Raw ASM Diskgroups: Architectural Guidance for Database & Application Files

Architectural performance comparison between raw Oracle ASM diskgroups and ACFS (ASM Cluster File System) for database datafiles, application binaries, backups, and shared assets.

⚡ BLUF (Bottom Line Up Front) Summary

⚠️ Advisory Scope & Terms

Choosing between raw ASM diskgroups and ACFS comes down to file access requirements. Raw ASM diskgroups deliver optimal direct I/O for database datafiles and redo logs, while ACFS provides a POSIX-compliant cluster filesystem ideal for application binaries (WebLogic, ORDS), trace logs, shared file uploads, and snapshot backups.

Environment & Prerequisites

ComponentVersion / Specification
Supported VersionsOracle Grid Infrastructure 11gR2, 12c, 18c, 19c, 23ai
Key Toolingasmca, acfsutil, crsctl, mkfs.acfs
Storage TechnologiesRaw ASM Diskgroup, Oracle ACFS, ADVM (ASM Dynamic Volume Manager)

Executive Summary: Raw ASM vs. ACFS Decoded

nterprise database architects working with Oracle Grid Infrastructure frequently debate whether to store files in Raw ASM Diskgroups or mount an Oracle ACFS (ASM Cluster File System).

While both technologies leverage Oracle ASM for striping, mirroring, and storage virtualization, they serve fundamentally different architectural roles:

  • Raw ASM Diskgroups: High-performance block-level storage designed specifically for Oracle Database datafiles, redo logs, control files, and flash recovery areas (FRA).
  • Oracle ACFS: A general-purpose, POSIX- and Windows-compliant multi-node cluster file system built on top of ASM Dynamic Volumes (ADVM). It supports non-database files, application binaries, export dumps, and shared web directories.

📊 Architectural Comparison Matrix

Feature / Capability Raw ASM Diskgroups Oracle ACFS (Cluster File System)
Primary File Types Datafiles (.dbf), Redo Logs, Control Files App Binaries, Web Server Uploads, Export Dumps (.dmp)
File System API Oracle Kernel Direct I/O (libaio) Standard OS POSIX Filesystem API (open, read, write)
OS Mount Point None (Accessed via +DATA/dbname/...) Standard Mount Point (/u01/app/oracle, /mnt/acfs_shared)
Multi-Node Cluster Access Active-Active via Oracle RAC Active-Active Multi-Node Cluster Access
Snapshot Support File-level via RMAN Instant Space-Efficient Read-Only & Read-Write Snapshots
Encryption & Compression Column/Tablespace TDE Native File-System Level Encryption & Compression
I/O Latency Overhead Zero (Direct Raw Block Access) Ultra-Low (< 2% overhead over raw ASM for standard I/O)

When to Use Raw ASM Diskgroups

Raw ASM diskgroups bypass the OS page cache entirely, leveraging O_DIRECT and asynchronous I/O (libaio) to minimize kernel context switching.

Ideal Use Cases for Raw ASM:

  1. Production Oracle Datafiles & Tempfiles: Highest IOPS throughput with zero filesystem locking.
  2. Online Redo Logs (LOG) & Standby Redo Logs: Lowest write latency critical for commit performance.
  3. Control Files & Block Change Tracking (BCT) Bitmaps: High-frequency small-block writes.

When to Use Oracle ACFS

ACFS bridges the gap between database storage and OS application workloads. Because ACFS presents a standard POSIX filesystem, non-Oracle applications can read and write files without specialized Oracle APIs.

Ideal Use Cases for ACFS:

  1. Application Server Binaries & Configuration: Hosting Oracle WebLogic, ORDS, Tomcat, or PeopleSoft App Server /PS_HOME binaries across RAC nodes.
  2. Data Pump Export/Import Staging (/u01/app/oracle/admin/dpdump): Multi-gigabyte .dmp files shared across cluster nodes.
  3. Shared Enterprise Web Upload Directories: Storing user-uploaded PDF reports or images accessed by APEX or WebLogic app pools.
  4. Development/Staging Database Refresh: Utilizing ACFS Read-Write Snapshots for instant database clones.

🛠️ Step-by-Step ACFS Creation Workflow

To create an ACFS filesystem, you first create an ADVM Volume inside an existing ASM diskgroup, then format it with mkfs.acfs:

# Step 1: Create ADVM Volume inside ASM Diskgroup (+DATA) via asmcmd
asmcmd volcreate -G DATA -s 500G volume_acfs_shared

# Step 2: Determine Volume Device Path
# Output: /dev/asm/volume_acfs_shared-123

# Step 3: Format Volume with ACFS File System
/sbin/mkfs -t acfs /dev/asm/volume_acfs_shared-123

# Step 4: Create Target OS Mount Directory across all RAC nodes
mkdir -p /mnt/acfs_shared
chown oracle:oinstall /mnt/acfs_shared

# Step 5: Register and Mount ACFS File System in Grid Infrastructure
/sbin/acfsutil registry -a /dev/asm/volume_acfs_shared-123 /mnt/acfs_shared

🔍 Diagnostic Queries: Monitoring ACFS & ADVM Volume Health

Diagnostic 1: Query ADVM Volume Status in ASM

SELECT 
    volume_name, 
    volume_device, 
    diskgroup_name, 
    size_mb, 
    state 
FROM v$asm_volume;

Diagnostic 2: Query ACFS Space Utilization via CLI

# Check ACFS Space Utilization & Snapshot Usage
/sbin/acfsutil info fs /mnt/acfs_shared

📚 Official Documentation & Technical References

  • MOS Doc ID 1369107.1: ACFS Support on Oracle Database / RAC Files — Detailed MOS guide on supported file types (datafiles, binaries, trace files) for ACFS storage.

  • Oracle Automatic Storage Management Administrator’s Guide: Oracle ACFS and ADVM Concepts — Official documentation on ACFS architecture, ASM Dynamic Volume Manager, and driver components.

  • Oracle Automatic Storage Management Administrator’s Guide: Administering ACFS with acfsutil — CLI command reference for acfsutil, mkfs.acfs, and volume management.

  • ORACLE-BASE: Oracle Automatic Storage Management Cluster File System (ACFS) — Tim Hall’s step-by-step guide to configuring ADVM volumes and ACFS filesystems.


Need assistance designing a hybrid ASM/ACFS storage topology or configuring instant ACFS snapshots for dev/test automation? Schedule a Storage Architecture Review or Contact our Enterprise Infrastructure Team.

⚠️INFORMATIONAL & TECHNICAL ADVISORY DISCLAIMER

The diagnostic methodologies, commands, and runbooks provided on DBPros.Net are published for informational and educational purposes only. They do not constitute customized professional consulting advice. Operating engineers and DBAs are solely responsible for securing pre-flight backups (RMAN, VM snapshots, LVM clones), validating changes in non-production staging environments, and adhering to organizational change-control policies. All content, scripts, and runbooks are provided "AS IS" without warranty of any kind, and DBPros.Net assumes no liability for system downtime, database corruption, data loss, or operational disruption. For complete advisory limitations and legal terms, view our full Terms of Service & Advisory Disclaimer.