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
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
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).
(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
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)
host:~ # evms_activate
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
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)