NSS Pools / volumes disappear after rebooting

  • 7003844
  • 10-Jul-2009
  • 27-Apr-2012

Environment

Novell Open Enterprise Server 2 (OES 2) Linux

Situation

Everything works fine until the machine is rebooted, after which the partition, pool and volume on the LUN are no longer visible.  It appears that the device mapper is not able to properly locate and map the
partition. The following symptoms are seen:
  • The nss pools and volumes are not seen in nssmu
  • Devices show up in nssmu, but appear to have no partitions
  • fdisk -l sees the partition type 65 on the disks:
host:~ # fdisk -l /dev/sdb

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       20480    20971504   65  Novell Netware 386
  • Running listpart32 -l returns no devices
  • Running listpart32 -fl or -fc <device> returns 'Can determine device size':
host:~ # ./listpart32 -fl /dev/sdb
Can determine device size
  • In evmsgui, the devices show up in the "Available devices" section but not under any other tabs (not managed by any Segment Manager)
  • The evms_engine.log file shows two of the following entries in rapid succession:
get_mm_disk_private_data: error: get_mm_disk_private_data(sdb) returning NULL
(One instance is not abnormal but two is a problem).
  • Running dmsetup table <partition> returns a zero at the end of the output for table_args.  For instance:
host:~ # dmsetup table sdb1
0 41943008 linear 8:16 0

Resolution

This issue has been reported to Novell Engineering.

The problem is that during the boot process something is registering these physical devices differently than evms does.  As a result, neither the dos segment manager nor the Netware segment manager claims the device.  The zero at the end of the dmsetup table output is the hallmark of this problem.

There is a workaround that can be used to bring the volumes up, but it only lasts until the next restart at which point it must be repeated.

1. Remove the devices in question from the dmsetup table:

host:~ # dmsetup remove sdb1

or

host:~ # dmsetup remove_all  (if there are a large number of devices)

2. Run evms_activate

host:~ # evms_activate

At this point everything will show up properly in nssmu and the pools will activate.  The volumes will still need to be mounted.

Additional Information

The output of dmsetup table specifies a single target per line in the form:
logical_start_sector  num_sectors  target_type  target_args

The table_args column is expected to be one of the following values
  • 32 (DOS Segment Manager)
  • 63 (DOS Segment Manager)
  • 64 (Netware Segment Manager)
  • 95 (Netware Segment Manager)