Custom Search

Monday, July 04, 2005

Managing Devices Within the VxVM Architecture

Topics:
Managing Components in the VxVM Architecture
Discovering Disk Devices
Administering the Device Discovery Layer
Dynamic Multipathing
Preventing Multipathing for a Device
Managing DMP
Controlling Automatic Restore Processes


VxVM Daemons

vxconfigd – The VxVM configuration daemon maintains disk and group configurations, communicates configuration changes to the kernel, and modifies configuration information stored on disks. When a system is booted, the command “vxdctl enable” is automatically executed to start vxconfigd. VxVM reads the /etc/vx/volboot file to determine disk ownership and automatically imports disk groups owned by the host.

vxiod – The VxVM I/O daemon provides extended I/O operations without blocking calling processes. Several vxiod daemons are usually started at boot time, and they continue to run at all times.

vxrelocd – is the hot-relocation daemon that monitors events that affect data redundancy.


VxVM Configuration Database
- Contains all disk, volume, plex, and subdisk configuration records
- Is stored in the private region of a VxVM disk
- Is replicated to maintain a copy on multiple disks in a disk group
- Is updated by the vxconfigd process


Displaying VxVM Configuration Database Information
vxdg list diskgroup

Displaying Disk Header Information
vxdisk –g diskgroup list disk_name


VxVM Disk Types and Formats
- auto:cdcdisk
- auto:simple
- auto:sliced
- auto:none

simple – Public and private regions are contiguous on the same partition
sliced – Public and private regions are on separate partitions.
nopriv – No private region.


VxVM Configuration Daemon

vxconfigd:
- Maintains the configuration database
- Synchronizes changes between multiple requests, based on a database transaction model:
* All utilities make changes through vxconfigd
* Utilities identify resources needed at the start of the transaction.
* Transactions are serialized, as needed.
* Changes are reflected in all copies immediately
- Does not interfere with access to data on disk
- Must be running for changes to be made to the configuration database.

If vxconfigd is not running, VxVM operates, but configuration changes are not allowed and queries of the database are not possible.

- vxconfigd reads the kernel log to determine current states of VxVM components and updates the configuration database.
- Kernel logs are updated even if vxconfigd is not running. For example, upon startup, vxconfigd reads the kernel log and determines that a volume needs to be resynchronized.

- vxconfigd modes:
enabled – normal operating state
disabled – Most operations not allowed
booted – Part of the normal system startup while acquiring the boot disk group


The vxdctl Command
Use vxdctl to control vxconfigd

vxdctl mode – Displays vxconfigd status
vxdctl enable – Enables vxconfigd
vxdctl disable – Disables vxconfigd
vxdctl stop – Stops vxconfigd
vxdctl –k stop – Sends a kill -9
vxconfigd – Starts vxconfigd
vxdctl license – Checks licensing
vxdctl support – Displays version information


The volboot File

/etc/vx/volboot contains:
- The host ID (this is really the hostname) that is used by VxVM to establish ownership of physical disks
- The values of defaultdg and bootdg if these values were set by the user.

Caution: Do not edit volboot, or its checksum is invalidated.

To display the contents of volboot:
vxdctl list

To change the host ID in volboot:
vxdctl hosted new_hostid
vxdctl enable

To re-create volboot:
vxdctl init hosted


Device Discovery Layer (DDL)
Device discovery is the process of locating and identifying disks attached to a host

Prior to VxVM 3.2, device discovery occurred at boot time. With VxVM 3.2 and later, device discovery occurs automatically whenever you add a new disk array.


Adding Disk Array Support
To add support for a new type of disk array, add vendor-supplied libraries.

Then scan for new devices:
vxdctl enable

This invokes vxconfigd to scan for all disk devices, updates the device list, and reconfigures DMP


Partial Device Discovery

Discover newly added devices previously unknown to VxVM:
vxdisk scandisks new

Discover fabric devices:
vxdisk scandisks fabric

Scan for the specific devices:
vxdisk scandisks device=c1t1d0,c2t2d0

Scan for all devices except those that are listed:
vxdisk scandisks !device=c1t1d0,c2t2d0

Scan for devices that are connected to logical or physical controllers:
vxdisk scandisks ctlr=c1,c2

Discover devices that are connected to the specified physical controller:
vxdisk scandisks pctlr=/pci@1f,4000/scsi@3/


Administering DDL

To add/remove/list support for disk arrays:
vxddladm listsupport
vxddladm excludearray libname=library
vxddladm excludearray vid=ACME pid=X1
vxddladm includearray libname=library
vxddladm includearray vid=ACME pid=X1
vxddladm listexclude

To add/remove/list support for JBODs:
vxddladm listjbod
vxddladm addjbod vid=vendor_ID pid=prod_ID
vxddladm rmjbod vid=vendor_ID pid=prod_ID

To add a foreign device:
vxddladm addforeign blockdir=path chardir=path


Dynamic Multipathing (DMP)
Dynamic multipathing is a method that VxVM uses to manage two or more hardware paths directing I/O to a single drive. VxVM arbitrarily selects one of the two names and creates a single device entry, and then transfers data across both paths to spread the I/O.

VxVM detects multipath systems by using the Universal World-Wide-Device Identifiers (WWD IDs) and manages multipath targets, such as disk arrays, which define polices for using more than one path.


Types of Multiported Arrays
A multiported disk array is an array that can be connected to host systems through multiple paths. The two basic types of multiported disk arrays are:
1) active/active disk arrays
2) active/passive disk arrays


Preventing DMP for a Device
If an array cannot support DMP, you can prevent multipathing for the device by using vxdiskadm:
“Prevent multipathing/Suppress devices from VxVM’s view”

Warning: If you do not prevent DMP for unsupported arrays:
- Commands like “vxdisk list” show duplicate sets of disks as ONLINE, even through only one path is used for I/O.
- Disk failures can be represented incorrectly.

- The option “Suppress all paths through a controller from VxVM’s view” continues to allow the I/O to use both paths internally. After a reboot, “vxdisk list” does not show the suppressed disks.

- “Prevent multipathing of all disks on a controller by VxVM” does not allow the I/O to use internal multipathing. The “vxdisk list” command shows all disks as ONLINE. This option has no effect on arrays that are performing dynamic multipathing or that do not support VxVM DMP.


Listing Controllers
vxdmpadm listctlr all


Displaying Paths
vxdmpadm getsubpaths ctlr=controller_name

To display paths connected to a LUN:
vxdmpadm getsubpaths dmpnodename=node_name


Displaying DMP Nodes
vxdmpadm getdmpnode nodename=c3t2d1


Disabling I/O to a controller

VEA:
Select Actions -> Disable/Enable

CLI:
To disable I/O to a particular controller:
vxdmpadm disable ctlr=ctlr_name

To disable I/O to a particular enclosure:
vxdmpadm disable enclosure=enc0

To reenable I/O to a particular controller:
vxdmpadm enable ctlr=ctlr_name


Displaying I/O Statistics for Paths

Enable the gathering of statistics:
vxdmpadm iostat start [memory=size]

Reset the I/O counters to zero:
vxdmpadm iostat reset

Display the accumulated statistics for all paths:
vxdmpadm iostat show all


Setting I/O Policies and Path Attributes

To change the I/O policy for balancing the I/O load across multiple paths to a disk array or enclosure:
vxdmpadm setattr enclosure enc_name iopolicy=policy

Policies:
adaptive – automatically determines the paths that have the least delay
balanced – (default) takes the track cache into consideration when balancing I/O across paths.
minimumq – sends I/O on paths that have the minimum number of I/O requests in the queue.
priority – assigns the path with the highest load carrying capacity as the priority path.
round-robin – sets a simple round-robin policy for I/O
singleactive – channels I/O through the single active path

To set path attributes for a disk array or enclosure:
vxdmpadm setattr path path_name pathtype=type

Type:
active – changes a standby path to active
nomanual – restores the original primary or secondary attributes of a path
nopreferred – restores the normal priority of the path
preferred [priority=N] – specifies a preferred path and optionally assignes a priority to it.
primary – assignes a primary path for an Active/Passive disk array
secondary - assignes a secondary path for an Active/Passive disk array
standby – marks a path as not available for normal I/O scheduling.


Managing Enclosures

CLI:
To display attributes of all enclosures:
vxdmpadm listenclosure all

To change the name of an enclosure:
vxdmpadm setattr enclosure orig_name name=new_name

VEA:
Highlight an enclosure, and select Actions -> Rename Enclosure.


Controlling the Restore Daemon

The DMP restore daemon is an internal process that monitors DMP paths. To check status:
vxdmpadm stat restored.

To change daemon properties:

Stop the DMP restore Daemon:
vxdmpadm stop restore

Restart the daemon with new attributes:
vxdmpadm start restore interval=400 policy=check_all