Sun Microsystems, Inc.  Oracle System Handbook - ISO 7.0 May 2018 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-72-2306637.1
Update Date:2017-10-25
Keywords:

Solution Type  Problem Resolution Sure

Solution  2306637.1 :   Oracle ZFS Storage Appliance: Performance Issue during Dedupv1 to Dedupv2 Migration after upgrade to OS8.7  


Related Items
  • Sun ZFS Storage 7420
  •  
  • Oracle ZFS Storage ZS5-2
  •  
  • Oracle ZFS Storage ZS3-2
  •  
  • Oracle ZFS Storage ZS4-4
  •  
  • Oracle ZFS Storage ZS5-4
  •  
  • Sun ZFS Storage 7120
  •  
  • Oracle ZFS Storage Appliance Racked System ZS5-2
  •  
  • Oracle ZFS Storage ZS3-4
  •  
  • Oracle ZFS Storage Appliance Racked System ZS4-4
  •  
  • Sun ZFS Storage 7320
  •  
  • Oracle ZFS Storage ZS3-BA
  •  
Related Categories
  • PLA-Support>Sun Systems>DISK>ZFS Storage>SN-DK: ZS
  •  




In this Document
Symptoms
Changes
Cause
Solution
References


Applies to:

Sun ZFS Storage 7120 - Version All Versions and later
Oracle ZFS Storage ZS5-2 - Version All Versions and later
Oracle ZFS Storage Appliance Racked System ZS5-2 - Version All Versions and later
Oracle ZFS Storage ZS4-4 - Version All Versions and later
Oracle ZFS Storage Appliance Racked System ZS4-4 - Version All Versions and later
7000 Appliance OS (Fishworks)

Symptoms

Issue after upgrade from 2013.06.05.4.2,1-1.1 (2103.1.4.2)  to  2013.06.05.7.4,1-1.1 (OS 8.7.4).

NOTE:  This issue can occur after deferred updates are applied to a system using dedup (version 1) after an upgrade to OS 8.7.x

 

No data access from the Exadata system to the ZFS Storage.

Customer rebooted the head. The head took approx 4 hours to rejoin the cluster.

Deduplication was enabled on pool 'pool-0'.

Note: The deduplication algorithms have been changed in the OS 8.7.x Release ("deduplication version 2")

[ 2013.1.6.x and below used "deduplication version 1" ]

 

Pool status :

  pool: pool-0
 state: ONLINE
  scan: resilvered 9.29M in 1s with 0 errors on Fri Jul 28 23:16:49 2017

config:

        NAME                       STATE    READ WRITE CKSUM
        pool-0                     ONLINE      0     0     0
          raidz2-0                 ONLINE      0     0     0
            ........
          raidz2-1                 ONLINE      0     0     0
            ........
          raidz2-2                 ONLINE      0     0     0
            ........
      logs
        mirror-3 ONLINE 0 0 0
          c0t5000CCA04E0C01F4d0 ONLINE 0 0 0
          c0t5000CCA04E0C31B4d0 ONLINE 0 0 0
      spares
        c0t5000CCA05CB23658d0 AVAIL
        c0t5000CCA05CB24180d0 AVAIL

errors: No known data errors

DDT entries 109831612, size 2376 on disk

bucket              allocated                       referenced
______   ______________________________   ______________________________
refcnt   blocks   LSIZE   PSIZE   DSIZE   blocks   LSIZE   PSIZE   DSIZE
------   ------   -----   -----   -----   ------   -----   -----   -----
     1     105M   13.1T   13.1T   13.1T     105M   13.1T   13.1T   13.1T
     2    6.23K    791M    791M    791M    12.5K   1.55G   1.55G   1.55G
     4      718   89.4M   89.4M   89.3M    4.02K    512M    512M    512M
     8      367   45.9M   45.9M   45.9M    3.79K    485M    485M    485M
    16      218   27.2M   27.2M   27.2M    4.81K    615M    615M    615M
    32      630   78.8M   78.8M   78.7M    31.2K   3.90G   3.90G   3.90G
    64      797   99.6M   99.6M   99.6M    74.3K   9.29G   9.29G   9.29G
   128      956    120M    120M    119M     178K   22.2G   22.2G   22.2G
   256    1.73K    222M    222M    221M     630K   78.8G   78.8G   78.7G
   512      535   66.9M   66.9M   66.8M     341K   42.6G   42.6G   42.6G
    1K       23   2.88M   2.88M   2.87M    34.6K   4.32G   4.32G   4.32G
    2K      103   12.9M   12.9M   12.9M     307K   38.4G   38.4G   38.4G
    8K        1    128K    128K    128K       8K      1G      1G   1024M
 Total     105M   13.1T   13.1T   13.1T     106M   13.3T   13.3T   13.3T

 

Changes

Application of optional deferred updates following upgrade to Oracle ZFS Storage Appliance Release OS 8.7.x

 

Cause

Bug 26513223 (Pool export hung during failback due to ddt1 -> ddt2 migration)

 

Solution

Work towards resolution of this issue is proceeding.

 

Note: Once the deferred updates are applied, there is no way to to stop the migration process. If the system is effected by this issue, disabling dedup on all shares will speed up the process during the DDT migration, and it can be enabled again afterwards, if appropriate.

             A cluster takeover will just continue on with the migration process, after re-starting the initial sequences.

 

Workflow to monitor the dedupv1 to dedupv2 conversion processing - monitor-ddt-conversion.akwf

 

There are several ways to check progress of dedup migration :

CLI> confirm shell
zfssa# zpool monitor -t ddtmigrate pool03
POOL PROVIDER PCTDONE TOTAL SPEED
pool03 ddtmigrat 4.9 68.9M 18
zfssa# zpool monitor -t ddtmigrate 60 4 
POOL PROVIDER PCTDONE TOTAL SPEED
pool03 ddtmigrat 4.9 68.9M 18
pool03 ddtmigrat 4.9 68.9M 18
pool03 ddtmigrat 4.9 68.9M 18
pool03 ddtmigrat 4.9 68.9M 18

 

 

zfssa> confirm shell echo '::spa|::print spa spa_ddm[]' | mdb -k

 

If dedup migration is taking place, a 'non-zero' value is seen in 'ddm_migrating_entries'.

Dedup migration happening :

> ::spa|::print spa spa_ddm[]
    spa_ddm = {
    spa_ddm->ddm_algorithms = [ 0xfffff602d2629680, 0xfffff60302075248 ]
    spa_ddm->ddm_aholds = [ 0x1, 0x1 ]
    spa_ddm->ddm_max_algorithm = 1 (DDA_TYPE_XT)
    spa_ddm->ddm_active_algorithm = 1 (DDA_TYPE_XT)
    spa_ddm->ddm_md = 0xfffff6069edf55c0
    spa_ddm->ddm_migrating_algorithm = 0 (DDA_TYPE_ZAP)
    spa_ddm->ddm_migrated_algorithm = -0t1 (DDA_TYPE_NONE)
    spa_ddm->ddm_migrating_entries = 0x67cb73d              <<<<<<<<
    spa_ddm->ddm_migrated_entries = 0x4a5de9
    spa_ddm->ddm_spa = 0xfffff60ccf721000
    spa_ddm->ddm_os = 0xfffff602754ee3c0
    spa_ddm->ddm_ddt_stat_object = 0x6b
    spa_ddm->ddm_sync_cost_ns = 0x1669
}

 

Dedup migration is NOT happening:

> ::spa|::print spa spa_ddm[]
    spa_ddm = {
    spa_ddm->ddm_algorithms = [ 0, 0xfffff602abf72608 ]
    spa_ddm->ddm_aholds = [ 0, 0x1 ]
    spa_ddm->ddm_max_algorithm = 1 (DDA_TYPE_XT)
    spa_ddm->ddm_active_algorithm = 1 (DDA_TYPE_XT)
    spa_ddm->ddm_md = 0
    spa_ddm->ddm_migrating_algorithm = 1 (DDA_TYPE_XT)
    spa_ddm->ddm_migrated_algorithm = 0 (DDA_TYPE_ZAP)
    spa_ddm->ddm_migrating_entries = 0                      <<<<<<<<
    spa_ddm->ddm_migrated_entries = 0
    spa_ddm->ddm_spa = 0xfffff60340164000
    spa_ddm->ddm_os = 0xfffff60274e913c0
    spa_ddm->ddm_ddt_stat_object = 0x104
    spa_ddm->ddm_sync_cost_ns = 0x30d40
}

 

NOTE  (from RPE) : The 'ddm_migrating_entries' value is set once on the beginning of migration only.

The 'ddm_migrated_entries' are increased after each entry is processed.

 

Work out the completion percentage using 'bc' :

echo "obase=10;ibase=16;<MIGRATED>*64/<MIGRATING>" | bc

obase              - base of output value (10 = decimal)
ibase               - base of input value (16 = hexadecimal)
64                   - 100 (decimal) converted to hex
MIGRATED    - 'ddm_migrated_entries' with leading '0x' stripped and 'a-f' chars converted to upper case
MIGRATING  - 'ddm_migrating_entries' with leading '0x' stripped and 'a-f' chars converted to upper case

 

spa_ddm = {
spa_ddm->ddm_algorithms = [ 0xfffff60088818e80, 0xfffff6009a7441c8 ]
spa_ddm->ddm_aholds = [ 0x1, 0x1 ]
spa_ddm->ddm_max_algorithm = 1 (DDA_TYPE_XT)
spa_ddm->ddm_active_algorithm = 1 (DDA_TYPE_XT)
spa_ddm->ddm_md = 0xfffff6015778c940
spa_ddm->ddm_migrating_algorithm = 0 (DDA_TYPE_ZAP)
spa_ddm->ddm_migrated_algorithm = -0t1 (DDA_TYPE_NONE)
spa_ddm->ddm_migrating_entries = 0x131a5ae                <<<<<<<<  Total entries to migrate
spa_ddm->ddm_migrated_entries = 0x80990e                  <<<<<<<<  Entries migrated so far ...
spa_ddm->ddm_spa = 0xfffff6014dc7e000
spa_ddm->ddm_os = 0xfffff601d88d16c0
spa_ddm->ddm_ddt_stat_object = 0x2015
spa_ddm->ddm_sync_cost_ns = 0x30d40
}

$ echo "obase=10;ibase=16;80990E*64/131A5AE" | bc
42

=> 42% completed ....

 

spa_ddm = {
{
spa_ddm->ddm_algorithms = [ 0xfffff60088818e80, 0xfffff6009a7441c8 ]
spa_ddm->ddm_aholds = [ 0x1, 0x1 ]
spa_ddm->ddm_max_algorithm = 1 (DDA_TYPE_XT)
spa_ddm->ddm_active_algorithm = 1 (DDA_TYPE_XT)
spa_ddm->ddm_md = 0xfffff6015778c940
spa_ddm->ddm_migrating_algorithm = 0 (DDA_TYPE_ZAP)
spa_ddm->ddm_migrated_algorithm = -0t1 (DDA_TYPE_NONE)
spa_ddm->ddm_migrating_entries = 0x131a5ae                <<<<<<<< Total entries to migrate
spa_ddm->ddm_migrated_entries = 0x12fd1a1                 <<<<<<<< Entries migrated so far ...
spa_ddm->ddm_spa = 0xfffff6014dc7e000
spa_ddm->ddm_os = 0xfffff601d88d16c0
spa_ddm->ddm_ddt_stat_object = 0x2015
spa_ddm->ddm_sync_cost_ns = 0x30d40
}

$ echo "obase=10;ibase=16;12FD1A1*64/131A5AE" | bc
99

=> 99% completed ...

 

Further data collection :

In shared shell, collect the following output a few times (about 15-20 minutes apart) then collect a new bundle.

Check for non zero DDT entries :

echo '::spa|::print spa spa_ddm[] ! grep ddm_migrating_entries' | mdb -k > ddt-entries(1-4).out

echo '::stacks ' | mdb -k >stacks(1-4).out

echo '::stacks -m zfs'|mdb -k > zfsstacks(1-4).out

Save these outputs a few times with different names, suffix 1,2,3 etc.

 


Attachments
This solution has no attachment
  Copyright © 2018 Oracle, Inc.  All rights reserved.
 Feedback