11.12 ReZIDing Volumes in an NSS Pool

When a file is created it is assigned a unique file number, called a ZID. In NSS, the maximum number of file IDs available is a 64-bit number, which provides for up to 8 trillion (8E12) ZIDs, so NSS was designed to not re-use ZIDs. However, NCP clients and other traditional applications can only work with 32-bit IDs, which supports up to 4 billion (4E9) ZIDs. NSS restricts ZIDs, thus the number of files, to the lower value.

It is possible for a file system to reach the 32-bit limit on the ZID number. For example, if a lot of files and directories are regularly created, exist for a short time, and are then deleted, the ZIDs are used up at that rate. Otherwise, reaching the upper limit is something that happens rarely.

11.12.1 Understanding ReZID

The ReZID option for a pool rebuild changes the ZIDs for all the files on the volume, freeing ZIDs in the less than 32-bit range so they are available for creating new files and directories. The ZID of a file is an internal file system bit of information and is not viewable. However, you can view the highest ZID number for each volume is reported when you verify a pool.

IMPORTANT:Adding the ReZID step adds a third review of the pool and can increase the time of a rebuild by 50%.

11.12.2 When to ReZID Volumes During a Pool Rebuild

There are no errors reported if ZIDs are nearing the upper limit of 4 billion for a volume. However, you can view the highestZid field for the volume, and if the number is close to the 32-bit limit (4 billion), you should reZID the volume.

For OES on Linux, if the highest ZID is 2 billion or greater, the reZID option occurs automatically when you rebuild a pool.

You might get errors creating a file or directory that will suggest a reZID needs to be done. For example:

  • NDS database is locked.

  • Server hangs at the end of loadstage 1.

  • Cannot copy to a volume.

  • Cannot copy to sys: volume.

The NSS error that NSS (internally) returns is 20108 zERR_ZID_GREATED_THAN_32_BITS. It also sends a volume alert that reZID needs to be done to the server console. The application only gets a generic error when creating the file.

After rebuilding a pool with the Rezid option, the errors you were getting when creating files and directories no longer occur. You can also verify the pool, then check the highestZID number to know that it is well under the 4 billion ZIDs limit.

11.12.3 ReZIDing Volumes on Linux

  1. Before you verify or rebuild, you must place the pool in maintenance mode.

    1. At a terminal prompt, enter

      nsscon
      
    2. In nsscon, enter

      nss /poolmaintenance=poolname
      
  2. If you have not already verified the volume, enter the following at a command prompt

    ravsui verify poolname
    

    For information, see Section A.13, RAVSUI (Linux).

  3. Review any errors on screen or in the filename.vbf file, located where you specified.

    For information, see Section 11.11.5, Reviewing Log Files for Errors.

  4. Rebuild a pool by entering the following at a command prompt

    ravsui --rezid=zid rebuild poolname
    

    Replace zid with the value of a threshold to cause a rezid of a volume. The default value is 0xefffffff. For information, see Section A.13, RAVSUI (Linux) for options to set the pruning parameters for the rebuild.

    For NSS on OES Linux, rebuild automatically causes a reZID of a volume if rebuild finds a ZID over 2 billion.

    This checks all blocks in the system. Rebuilding can take several minutes to several hours, depending on the number of objects in the pool. For all systems, rezid adds a third pass to rebuild which increases the time to rebuild a volume by about 50%.

  5. Review the log on screen or in the filename.rtf file to learn what data has been lost during the rebuild.

    For information, see Section 11.11.5, Reviewing Log Files for Errors.

  6. Do one of the following:

    • Errors: If errors still exist, the pool remains in the maintenance state. Repeat the pool verify to determine the nature of the errors, then contact Technical Support for assistance.

    • No Errors: If errors do not exist, the pool’s volumes are mounted automatically.

11.12.4 ReZIDing Volumes on NetWare

  1. Place the pool in maintenance mode. At a terminal prompt, enter

    nss /poolmaintenance=poolname
    
  2. If you have not already run a pool verify, verify the pool to determine if a rebuild is needed.

    At the server console, enter

    nss /poolverify=poolname
    
  3. Review any errors on screen or in the filename.vlf file, located at the root of the DOS drive.

    For information, see Section 11.11.5, Reviewing Log Files for Errors.

  4. To run Rebuild with the ReZID option, enter the following command at the server console:

    nss /poolrebuild=poolname /rezid
    

    Replace poolname with the name of the pool you want to rebuild.

    This checks all blocks in the system. Rebuilding can take several minutes to several hours, depending on the number of objects in the pool. For all systems, rezid adds a third pass to rebuild which increases the time to rebuild a volume by about 50%.

  5. Review the log on screen or in the filename.rtf file to learn what data has been lost during the rebuild.

    For information, see Section 11.11.5, Reviewing Log Files for Errors.

  6. Do one of the following:

    • Errors: If errors still exist, the pool remains in the maintenance state. Repeat the pool verify to determine the nature of the errors, then call technical support for assistance.

    • No Errors: If errors do not exist, the pool’s volumes are mounted automatically.