Saturday, 20 June 2026

asm disk architecture

 ok lets consider now I have 3 full capacitry storage server  , each provides 264 TB disk capacity 

To provision your 3 High Capacity (HC) storage servers from scratch, you do not use dcli for the final ASM group creation—ASM disk groups are always created via standard SQL inside the database instance.

However, you use dcli to log into all 3 storage cells simultaneously to format the physical drives, build the celldisks, slice them into griddisks, and reserve your space.

Here is the exact step-by-step production workflow to build +DATA01 and +RECO01 using HIGH Redundancy (3-way mirroring) across your 3 cells.

The Infrastructure Plan (3 Cells)

  • Physical Layout: 3 cells × 12 hard drives = 36 physical disks (Total: 792 TB Raw).

  • Space Reservation Goal: We will allocate 70% of the space to DATA01, 20% to RECO01, and leave 10% unallocated as free headroom for safe cell rebalancing and diagnostic workspace.

Step 1: Create Celldisks on All 3 Cells

Log onto a database compute node as the celladmin or root user. Run this dcli command to format all 36 physical hard drives across your 3 cells (cell01, cell02, cell03) into usable celldisks:

Bash
dcli -g cell_group -l celladmin "cellcli -e CREATE CELLDISK ALL HARDDISK"

Verify it by listing them:

Bash
dcli -g cell_group -l celladmin "cellcli -e LIST CELLDISK"

Step 2: Create Griddisks with Space Reservations

Next, we slice those celldisks into logical griddisks. We will hard-code sizes to guarantee a clean split and leave the remaining trailing space completely unallocated.

Each physical drive is 22 TB (approximately 20.01 TiB / 20,490,000 MB of actual formatted OS space).

  • DATA01 Split (70%): We assign 14,000,000 MB per disk.

  • RECO01 Split (20%): We assign 4,000,000 MB per disk.

  • Remaining Space (10%): Left unallocated.

Run the DATA01 Griddisk creation:

Bash
dcli -g cell_group -l celladmin "cellcli -e CREATE GRIDDISK ALL HARDDISK PREFIX=DATA01, size=14000G"

Run the RECO01 Griddisk creation:

Bash
dcli -g cell_group -l celladmin "cellcli -e CREATE GRIDDISK ALL HARDDISK PREFIX=RECO01, size=4000G"

Verify the layout on all cells:

Bash
dcli -g cell_group -l celladmin "cellcli -e LIST GRIDDISK WHERE availableSpace   != 0"

(You will see all 36 DATA01 and 36 RECO01 griddisks status as active).

Step 3: Create the ASM Disk Groups via SQL

Now that the griddisks exist at the storage layer, drop back to your database compute node. Log into your Grid Infrastructure environment as the grid user, access SQL*Plus as SYSASM, and run the SQL strings to build the disk groups.

Bash
. oraenv
# (Select +ASM1)
sqlplus / as sysasm

1. Create the +DATA01 Disk Group:

SQL
CREATE DISKGROUP DATA01 HIGH REDUNDANCY
  DISK 'o/*/DATA01_*'
  ATTRIBUTE 
    'au_size'='4M',
    'compatible.asm'='19.0.0.0.0',
    'compatible.rdbms'='19.0.0.0.0',
    'cell.smart_scan_capable'='TRUE';

2. Create the +RECO01 Disk Group:

SQL
CREATE DISKGROUP RECO01 HIGH REDUNDANCY
  DISK 'o/*/RECO01_*'
  ATTRIBUTE 
    'au_size'='4M',
    'compatible.asm'='19.0.0.0.0',
    'compatible.rdbms'='19.0.0.0.0',
    'cell.smart_scan_capable'='TRUE';

📊 Final Usable Space Metrics (3 Cells with HIGH Redundancy)

Because you are using HIGH Redundancy across exactly 3 cells, ASM places exactly 1 copy of every block on each of the 3 cells.

Disk GroupTotal Raw Aggregated SizeUsable Database Space (Raw ÷ 3)
+DATA01~492 TB Raw~164 TB Usable Capacity
+RECO01~140 TB Raw~46.6 TB Usable Capacity

With this configuration, your data is fully protected. If any single storage cell goes down or suffers a total power loss, the remaining 2 cells continue running your databases without a single byte of data loss.

in eahc step pleae show me how it will show the output like list physicaldisk , list cell disk , initially list celldisk what it will show etc

Here is the complete visual execution walkthrough showing exactly how the outputs look inside the terminal at every stage of the provisioning process.

Step 1: Checking the Initial State of Raw Storage

Before any configuration is made, you use dcli to verify that the 3 storage cells see the factory-fresh physical hard drives. Initially, checking for celldisks or griddisks will return empty results.

Command: List Physical Disks

Bash
dcli -g cell_group -l celladmin "cellcli -e LIST PHYSICALDISK WHERE diskType=HardDisk"

Expected Output:

Plaintext
cell01: 20:0  STATUS=normal
cell01: 20:1  STATUS=normal
... [truncated lines for drives 2 through 10] ...
cell01: 20:11 STATUS=normal
cell02: 20:0  STATUS=normal
cell02: 20:1  STATUS=normal
...
cell03: 20:11 STATUS=normal

Command: List Celldisks (Initial State)

If you check for celldisks right now, the cells have no logical layout mapped.

Bash
dcli -g cell_group -l celladmin "cellcli -e LIST CELLDISK"

Expected Output:

Plaintext
cell01: 
cell02: 
cell03: 

(The output returns completely blank because no celldisks exist yet).

Step 2: Creating and Verifying Celldisks

This step initializes the physical disks into an Exadata-managed software layer.

Command: Create Celldisks

Bash
dcli -g cell_group -l celladmin "cellcli -e CREATE CELLDISK ALL HARDDISK"

Expected Output:

Plaintext
cell01: Celldisk CD_00_cell01 successfully created
cell01: Celldisk CD_01_cell01 successfully created
...
cell03: Celldisk CD_11_cell03 successfully created

Command: List Celldisks (After Creation)

Now when you query the cells, you will see all 36 initialized celldisks across the cluster (12 per cell).

Bash
dcli -g cell_group -l celladmin "cellcli -e LIST CELLDISK"

Expected Output:

Plaintext
cell01: CD_00_cell01  normal
cell01: CD_01_cell01  normal
...
cell02: CD_11_cell02  normal
...
cell03: CD_11_cell03  normal

Step 3: Creating and Verifying Griddisks (Slicing the Storage)

Now we carve up those 12 celldisks per cell into DATA01 and RECO01 fractions, keeping 10% unallocated.

Command: Create DATA01 Griddisks (70% Allocation)

Bash
dcli -g cell_group -l celladmin "cellcli -e CREATE GRIDDISK ALL HARDDISK PREFIX=DATA01, size=14000G"

Expected Output:

Plaintext
cell01: Griddisk DATA01_CD_00_cell01 successfully created
cell01: Griddisk DATA01_CD_01_cell01 successfully created
...
cell03: Griddisk DATA01_CD_11_cell03 successfully created

Command: Create RECO01 Griddisks (20% Allocation)

Bash
dcli -g cell_group -l celladmin "cellcli -e CREATE GRIDDISK ALL HARDDISK PREFIX=RECO01, size=4000G"

Expected Output:

Plaintext
cell01: Griddisk RECO01_CD_00_cell01 successfully created
cell01: Griddisk RECO01_CD_01_cell01 successfully created
...
cell03: Griddisk RECO01_CD_11_cell03 successfully created

Command: List Final Griddisk Layout

To confirm the sizing and see the remaining free space left on the drives, run a detailed attributes check:

Bash
dcli -g cell_group -l celladmin "cellcli -e LIST GRIDDISK attributes name, size, status"

Expected Output:

Plaintext
cell01: DATA01_CD_00_cell01   14000G   active
cell01: RECO01_CD_00_cell01   4000G    active
cell01: DATA01_CD_01_cell01   14000G   active
cell01: RECO01_CD_01_cell01   4000G    active
...
cell03: DATA01_CD_11_cell03   14000G   active
cell03: RECO01_CD_11_cell03   4000G    active

Step 4: Verification from the ASM DB Node

Finally, you move away from the storage cell CLI and log onto your database instance to confirm that Grid Infrastructure discovers your new disks as clean candidates.

Command: Query Candidate Disks inside SQL*Plus

SQL
SELECT path, header_status, os_mb FROM v$asm_disk WHERE header_status = 'CANDIDATE' ORDER BY path;

Expected Output:

Plaintext
PATH                     HEADER_STATUS      OS_MB
------------------------ -------------- ---------
o/192.168.10.11/DATA01_0 CANDIDATE       14336000
o/192.168.10.11/RECO01_0 CANDIDATE        4096000
o/192.168.10.12/DATA01_0 CANDIDATE       14336000
...
o/192.168.10.13/RECO01_11 CANDIDATE       4096000

72 rows selected.

(You will see exactly 72 paths: 36 for DATA01 and 36 for RECO01, all showing a status of CANDIDATE, meaning they are ready for your CREATE DISKGROUP commands).

No comments:

Post a Comment

another exadata disk creation examle

 ok lets consider now I have 10 full capacitry storage server  , each provides 264 TB disk capacity  how to create asm disk out of it , usin...