Virtual I/O Server (VIOS) Maintenance Strategy

Virtual I/O Server (VIOS) Maintenance Strategy

Updated with description for new Minipack and change to fix level numbering scheme (May 2015)

What is VRMF?
   Version-Release-Maintenance-Fix level; describes the level of a VIOS
  • VIOS release: reflected by an increase to the version, release, and / or maintenance level
    eg. v1.5.0, v2.2.3, v2.2.4, v3.1.0
  • VIOS servicepack: reflected by an increase to the fix level
    eg. v2.2.1.7, v2.2.3.4, v2.2.3.50 (new format, see description below)
  • VIOS minipack: reflected by an increase to the fix level
    eg. v2.2.3.51, v2.2.3.52 (new format, see description below)
  • VIOS interim fix: no change to VIOS VRMF, use emgr for iFIX management
    Update to the VIOS fix level numbering scheme:
    There has been a change to the numbering scheme used for the VIOS fix level l (last nibble in the VIOS VRMF). VIOS fix level is associated with servicepack level. Prior to June 2015, the VIOS fix level was always single digits, incremented by 1 for each servicepack. Beginning in June 2015:
    The fix level for VIOS servicepacks are always a multiple of 10 (ie. 2.2.3.50, 2.2.3.60, 2.2.3.70)
    The fix level for VIOS minipacks will increment by 1's off the associated servicepack (ie. 2.2.3.51, 2.2.3.52, etc)
    For example, a servicepack VRMF could be 2.2.3.50, and the minipacks associated to that servicepack could be 2.2.3.51, 2.2.3.52, 2.2.3.53, etc.
    Note: applying a VIOS servicepack or minipack will always result in a change to the VIOS Fix Level (4th nibble, see VRMF section).


VIOS release

VIOS releases (TL's) contain product enhancements, new feature / function, new hardware support and fixes. VIOS releases are typically released once per year. A VIOS release is reflected by an increase to the version, release, and/or maintenance level number(s).

VIOS service strategy

VIOS follows the standard IBM software lifecycle which provides three years of standard support per release. Extended support may be at an additional cost. Contact your IBM representative for more information.
The VIOS service stream has four delivery vehicles: 
Fixpacks, 
Servicepacks, 
Minipacks(New), and 
Interim Fixes:

Fixpack

A fixpack (FP) updates the VIOS software to the latest level. It contains new feature / function, product enhancements, new hardware enablement, and fixes. It is used to upgrade an existing VIOS to a new VIOS release level while preserving existing customized information. Applying a fixpack to a VIOS will update one or all of the VIOS's version, release, or maintenance level (see VRMF section).

Servicepack

Servicepacks contain fixes and new hardware enablement (Power servers and I/O). Servicepacks do not typically introduce new feature function.
A servicepack (SP) applies to a specific VIOS release level only. For example, a v2.2.6 SP (ie. 2.2.6.20) could only be applied to a v2.2.6 VIOS.
Servicepacks are cumulative. For example, SP5 for a particular VIOS release (VRM) will contain all fixes and HW enablement that was in SP's 1-4.
Applying a servicepack will result in an update to the fix level (last nibble) of the VIOS version, it does not change the VIOS version-release-maintenance level (see VRMF section). For example, applying a SP update to VIOS 2.2.6.10 could result in a VRMF of 2.2.6.20.
Minipack
Minipacks (MP) introduced June 2015
A minipack is a supplement to a servicepack. A minipack is very similar to a servicepack in that it contains a bundle of fixes (same PTF format), but it is targeted to specific enablement (ie HW, PowerVC, ectc). This enablement would typically be delivered via iFIX in the past. Minipacks are being introduced to provide an improved lifecycle management option in limited cases. iFIX will continue to be a service delivery vehicle.
A minipack always has a prereq to a specific servicepack. For example, MP 2.2.3.51 may be targeted for HW specific enablement. SP 2.2.3.50 is a prereq for MP 2.2.3.51. This relationship can be easily determined by “fix level numbering scheme (see the VRMF section).
Minipacks are cumulative only back to the parent servicepack. For example, MP 2.2.3.55 for a particular VIOS SP (fix level) will contain all fixes and HW enablement contained in MP's 2.2.3.51 – 2.2.3.54. SP 50 is a prereq.
Minipacks are intended for specific enablement (ie HW, other solutions). While it is generally recommended to apply SP's for general fixes, MP's are recommended in cases where enablement of a specific solution is needed, otherwise they are optional.
Interim fix
An interim fix (iFix) applies to a specific VIOS servicepack (ie. fix level) and provides a fix for a specific issue. The official fixes are typically bundled in the next VIOS servicepacks and / or fixpacks. Applying one or more iFIX's will not alter the VIOS VRMF level.

For More Details, Please refer: 

CAA - Cluster Aware AIX



Disclaimer Note: The following information is gathered by referring various sources and credit should go to them.
If any updated version added with the uncovered function then please do try with your own risk.
_________________________________________________________________________________
Was CAA introduced from AIX 7.1 ?
No,
The Cluster Aware function of AIX was introduced with AIX 7.1 and AIX 6.1 TL6. This new technology builds clustering technologies into the AIX base operating system. Cluster Aware provides the AIX kernel with heartbeating, health management and monitoring capabilities.
Using Cluster Aware AIX you can easily create a cluster of AIX nodes with the following capabilities (Please note, CAA is not for High Availability (HA):

  • Clusterwide event management - The AIX Event Infrastructure allows event propagation across the cluster so that applications can monitor events from any node in the cluster.
    • Communication and storage events
      • Node UP and node DOWN
      • Network adapter UP and DOWN
      • Network address change
      • Point-of-contact UP and DOWN
      • Disk UP and DOWN
    • Predefined and user-defined events
  • Clusterwide storage naming service - When a cluster is defined or modified, the AIX interfaces automatically create a consistent shared device view across the cluster. A global device name, such as cldisk5, would refer to the same physical disk from any node in the cluster.
  • Clusterwide command distribution - The clcmd command provides a facility to distribute a command to a set of nodes that are members of a cluster. For example, the command clcmd date returns the output of the date command from each of the nodes in the cluster.   
  • Clusterwide communication making use of networking and storage communication Cluster Aware AIX is not a high availability solution taken alone and does not replace existing high availability products. It can be seen as a set of commands and services that the cluster software can exploit to provide high availability and disaster recovery support to external applications. CAA does not provide the application monitoring and resource failover capabilities that PowerHA provides. In fact, IBM PowerHA SystemMirror 7.1 and even (RSCT) Reliable Scalable Cluster Technology use the built-in AIX clustering capabilities. The reason for the introduction of cluster built-in functions of AIX was to simplify the configuration and management of high availability clusters. It also lays a foundation for future AIX capabilities and the next generation of PowerHA SystemMirror.

Note: Cluster Aware AIX capability is included in AIX 7.1 Standard or Enterprise Editions, but is not included in AIX 7.1 Express Edition.

Creating the cluster

Before creating the cluster there are some things to consider.
CAA uses IP based network communications and storage interface communication through Fibre Channel and SAS adapters. When using both type of communication, all nodes in the cluster can always communicate with any other nodes in the cluster configuration and thus eliminating "split brain" incidents.

Network

A multicast/unicast address is used for cluster communications between the nodes in the cluster. Therefore, you need to ensure proper network configuration on each node. Each node must have at least one IP address configured on its network interface. The IP address is used as a basis for creating an IP multicast/unicast address, which the cluster uses for internal communications. Check also if entries of the IP addresses exist in every node’s /etc/hosts file.

Storage

Each node of the cluster should have common storage devices available, either SAN or SAS disks. These storage devices are used for the cluster repository disk and for any clustered shared disks. If Fibre Channel devices will be used, the following procedure must be followed before creating the cluster (SAS adapters do not require special setup):
  1. Run the following command:
rmdev -Rl fcsX
Note: X is the number of your adapter. If you booted from the Fibre Channel adapter, you do not need to complete this step.
  1. Run the following command:
chdev -l fcsX -a tme=yes 
Note: If you booted from the Fibre Channel adapter, add the -P flag. The target mode enabled (TME) attribute is needed in order FC adapter to be supported.
  1. Run the following command:
chdev -l fscsiX -a dyntrk=yes -a fc_err_recov=fast_fail
  1. Run the cfgmgr command.

Note: If you booted from the Fibre Channel adapter and used the -P flag, you must reboot.
  1. Verify the configuration changes by running the following command:
lsdev -C | grep sfwcom
The following is an example of the output displayed from the lsdev -C | grep sfwcom command:
lsdev -C | grep sfwcom
sfwcomm0 Available 01-00-02-FF Fiber Channel Storage Framework Comm
sfwcomm1 Available 01-01-02-FF Fiber Channel Storage Framework Comm
The above procedure has to be performed on all nodes of the cluster.
The cluster repository disk is used as the central repository for the cluster configuration data. A disk size of 10 GB is recommended. The minimum is 1 GB.


The following commands can be used for creating and managing the cluster:
lscluster Used to list cluster configuration information.
mkcluster Used to create a cluster.
chcluster Used to change a cluster configuration.
rmcluster Used to remove a cluster configuration.
clcmd Used to distribute a command to a set of nodes that are members of a cluster.


See Man pages for different options.

Create the cluster:

Create the cluster with mkcluster command:
# mkcluster -n mycluster -m nodeA,nodeB -r hdisk1 -d hdisk2,hdisk3
mkcluster: Cluster shared disks are automatically renamed to names such as
cldisk1, [cldisk2, ...] on all cluster nodes. However, this cannot take place while a disk is busy or on a node which is down or not reachable. If any disks cannot be renamed now, they will be renamed later by the clconfd daemon, when the node is available and the disks are not busy.


The name of the cluster is mycluster, the nodes are nodeA and nodeB, the repository disk is hdisk1 and the shared disks are hdisk2 and hdisk3. Note that repository disk and shared disks will be automatically renamed as caa_private0 and cldisk1 and cldisk2 respectively. These names will be the same over both nodes, no matter what was their initial hdisk number (which could be different on each node).
Before mkcluster command:
# lspv
hdisk0 0050187a43833dc5 rootvg active
hdisk1 0050187a8de3af7d None active
hdisk2 0050187a70d8c6cf None
hdisk3 none None
After mkcluster command:
# lspv
hdisk0 0050187a43833dc5 rootvg active
caa_private0 0050187a8de3af7d caavg_private active
cldisk1 0050187a70d8c6cf None
cldisk2 none None
When the cluster is ready a special volume group (caavg_private), new logical volumes and filesystems are created.
When you create a cluster with mkcluster command the following actions are performed (taken from http://pic.dhe.ibm.com/infocenter/aix/v7r1/index.jsp?topic=%2Fcom.ibm.aix.clusteraware%2Fclaware_architecture.htm):
  • The cluster is created using the mkcluster command.
  • The cluster configuration is written to the raw section of the cluster repository disk.
  • Special volume groups and logical volumes are created on the cluster repository disk.
  • Cluster file systems are created on the special volume group.
  • Cluster services are made available to other functions in the operating system, such as Reliable Scalable Cluster Technology (RSCT) and PowerHA® SystemMirror.
  • Storage framework register lists are created on the cluster repository disk.
  • A global device namespace is created and interaction with LVM starts for handling associated volume group events.
  • A clusterwide multicast address is established.
  • The node discovers all of the available communication interfaces.
  • The cluster interface monitoring starts.
  • The cluster interacts with Autonomic Health Advisory File System (AHAFS) for clusterwide event distribution.
  • The cluster exports cluster messaging and cluster socket services to other functions in the operating system, such as Reliable Scalable Cluster Technology (RSCT) and PowerHA SystemMirror.

To check the status of the cluster use lscluster with the following options:
-c Lists the cluster configuration.
-d Lists the cluster storage interfaces.
-i Lists the cluster configuration interfaces on the local node.
-m Lists the cluster node configuration information.

To check if the cluster is operating properly execute any clusterwide command:
#clcmd date
-------------------------------
NODE nodeA
-------------------------------
Wed Jun 6 11:19:44 EEST 2012
-------------------------------
NODE nodeB
-------------------------------
Wed Jun 6 11:19:44 EEST 2012


To remove the cluster just type:
# rmcluster -n mycluster
rmcluster: Removed cluster shared disks are automatically renamed to names such
as hdisk10, [hdisk11, ...] on all cluster nodes. However, this cannot
take place while a disk is busy or on a node which is down or not
reachable. If any disks cannot be renamed now, you must manually
rename them by removing them from the ODM database and then running
the cfgmgr command to recreate them with default names. For example:
rmdev -l cldisk1 -d
rmdev -l cldisk2 -d
cfgmgr
Cluster Aware AIX helps to create very easily cluster with minimum set of commands and user intervention. In our opinion, one of the best features it provides is the common disk names used in all the participating nodes in the cluster.


Examples

  1. To list the cluster configuration for all nodes, enter:
lscluster –m
The sample of the output follows:
# lscluster -m
Calling node query for all nodes...
Node query number of nodes examined: 2

                    Node name: nodeA.ibm.com
                    Cluster shorthand id for node: 1
                    uuid for node: 84088524-b124-11e3-8210-32c8e74b1e02
                    State of node:  UP  NODE_LOCAL
                    Smoothed rtt to node: 0
                    Mean Deviation in network rtt to node: 0
                    Number of clusters node is a member in: 1
                    CLUSTER NAME       TYPE  SHID   UUID
                    Sample local        84ee37f4-b124-11e3-8210-32c8e74b1e02

                    Number of points_of_contact for node: 0
                    Point-of-contact interface & contact state
                     n/a

            ------------------------------

                    Node name: nodeB.ibm.com
                    Cluster shorthand id for node: 2
                    uuid for node: 8492a5a6-b124-11e3-8210-32c8e74b1e02
                    State of node:  UP
                    Smoothed rtt to node: 70
                    Mean Deviation in network rtt to node: 82
                    Number of clusters node is a member in: 1
                    CLUSTER NAME       TYPE  SHID   UUID
                    Sample local        84ee37f4-b124-11e3-8210-32c8e74b1e02

                    Number of points_of_contact for node: 2
                    Point-of-contact interface & contact state
                    dpcom  UP  RESTRICTED
                    en0  UP
  1. To list the cluster configuration for the local node, enter:
lscluster -s
The sample of the output follows:
 # lscluster -s
            Cluster Network Statistics:

            pkts seen: 33861217                   passed: 32052241
            IP pkts: 5778096                      UDP pkts: 1934943
            gossip pkts sent: 1463320             gossip pkts recv: 688759
            cluster address pkts: 0               CP pkts: 1808962
            bad transmits: 5                      bad posts: 4
            Bad transmit (overflow - disk ): 0
            Bad transmit (overflow - tcpsock): 0
            Bad transmit (host unreachable): 0
            Bad transmit (net unreachable): 0
            Bad transmit (network down): 0
            Bad transmit (no connection): 0
            short pkts: 0                         multicast pkts: 1808880
            cluster wide errors: 0                bad pkts: 0
            dup pkts: 0                           dropped pkts: 14
            pkt fragments: 1                      fragments queued: 0
            fragments freed: 0
            pkts pulled: 0                        no memory: 0
            rxmit requests recv: 10               requests found: 3
            requests missed: 7                    ooo pkts: 0
            requests reset sent: 7                reset recv: 0
            remote tcpsock send: 0                tcpsock recv: 0
            rxmit requests sent: 0
            alive pkts sent: 0                    alive pkts recv: 0
            ahafs pkts sent: 2                    ahafs pkts recv: 0
            nodedown pkts sent: 0                 nodedown pkts recv: 1
            socket pkts sent: 62                  socket pkts recv: 54
            cwide pkts sent: 275321               cwide pkts recv: 275318
            socket pkts no space: 0               pkts recv notforhere: 0
            Pseudo socket pkts sent: 0            Pseudo socket pkts recv: 0
            Pseudo socket pkts dropped: 0
            arp pkts sent: 1                      arp pkts recv: 2
            stale pkts recv: 0                    other cluster pkts: 4
            storage pkts sent: 1                  storage pkts recv: 1
            disk pkts sent: 174                   disk pkts recv: 0
            unicast pkts sent: 275364             unicast pkts recv: 82
            out-of-range pkts recv: 0
            IPv6 pkts sent: 0                     IPv6 pkts recv: 122
            IPv6 frags sent: 0                    IPv6 frags recv: 0
            Unhandled large pkts: 0
            mrxmit overflow     : 0               urxmit overflow: 0
  1. To list the interface information for the local node, enter:
lscluster –i
The sample of output follows:
# lscluster -i
            Network/Storage Interface Query

            Cluster Name:  Sample
            Cluster uuid:  84ee37f4-b124-11e3-8210-32c8e74b1e02
            Number of nodes reporting = 2
            Number of nodes expected = 2

            Node nodeA.ibm.com
            Node uuid = 84088524-b124-11e3-8210-32c8e74b1e02
            Number of interfaces discovered = 2
                    Interface number 1 en0
                            ifnet type = 6 ndd type = 7
                            Mac address length = 6
                            Mac address =  32:C8:E7:4B:1E:02
                            Smoothed rrt across interface = 0
                            Mean Deviation in network rrt across interface = 0
                            Probe interval for interface = 100 ms
                            ifnet flags for interface = 0x1E080863
                            ndd flags for interface = 0x0021081B
                            Interface state  UP
                            Number of regular addresses configured on interface = 1
                            IPv4 ADDRESS: 9.3.199.216  broadcast 9.3.199.255  netmask 255.255.254.0
                            Number of cluster multicast addresses configured on interface = 1
                            IPv4 MULTICAST ADDRESS: 228.3.199.216  broadcast 0.0.0.0  netmask 0.0.0.0
                    Interface number 2 dpcom
                            ifnet type = 0 ndd type = 305
                            Mac address length = 0
                            Mac address =  00:00:00:00:00:00
                            Smoothed rrt across interface = 750
                            Mean Deviation in network rrt across interface = 1500
                            Probe interval for interface = 22500 ms
                            ifnet flags for interface = 0x00000000
                            ndd flags for interface = 0x00000009
                            Interface state  UP  RESTRICTED  AIX_CONTROLLED
                    Pseudo Interface
                            Interface State DOWN

            Node nodeB.ibm.com
            Node uuid = 8492a5a6-b124-11e3-8210-32c8e74b1e02
            Number of interfaces discovered = 2
                    Interface number 1 en0
                            ifnet type = 6 ndd type = 7
                            Mac address length = 6
                            Mac address =  32:C8:EF:AD:7C:02
                            Smoothed rrt across interface = 0
                            Mean Deviation in network rrt across interface = 0
                            Probe interval for interface = 990 ms
                            ifnet flags for interface = 0x1E084863
                            ndd flags for interface = 0x0021081B
                            Interface state  UP
                            Number of regular addresses configured on interface = 1
                            IPv4 ADDRESS: 9.3.199.128  broadcast 9.3.199.255  netmask 255.255.254.0
                            Number of cluster multicast addresses configured on interface = 1
                            IPv4 MULTICAST ADDRESS: 228.3.199.216  broadcast 0.0.0.0  netmask 0.0.0.0
                    Interface number 2 dpcom
                            ifnet type = 0 ndd type = 305
                            Mac address length = 0
                            Mac address =  00:00:00:00:00:00
                            Smoothed rrt across interface = 750
                            Mean Deviation in network rrt across interface = 1500
                            Probe interval for interface = 22500 ms
                            ifnet flags for interface = 0x00000000
                            ndd flags for interface = 0x00000009
                            Interface state  UP  RESTRICTED  AIX_CONTROLLED
                    Pseudo Interface
                            Interface State DOWN
  1. To list the storage interface information for the cluster, enter:
lscluster -d
The sample of output follows:
# lscluster -d
            Storage Interface Query

            Cluster Name:  Sample
            Cluster uuid:  84ee37f4-b124-11e3-8210-32c8e74b1e02
            Number of nodes reporting = 2
            Number of nodes expected = 2
            Node nodeA.ibm.com
            Node uuid = 84088524-b124-11e3-8210-32c8e74b1e02
            Number of disk discovered = 1
                    hdisk4
                      state : UP
                      uDid  :
                      uUid  : 76c94719-7335-ded6-10e2-77d61ff7998c
                      type  : REPDISK
            Node nodeB.ibm.com
            Node uuid = 8492a5a6-b124-11e3-8210-32c8e74b1e02
            Number of disk discovered = 1
                    hdisk0
                      state : UP
                      uDid  : 382300c4f4f700004c0000000140799c6e39.3105VDASD03AIXvscsi
                      uUid  : 76c94719-7335-ded6-10e2-77d61ff7998c
                      type  : REPDISK
  1. To list the cluster configuration, enter:
lscluster -c
The sample of the output follows:
# lscluster -c
Cluster Name: Sample
Cluste UUID: 8e1d89da-b39d-11e3-91e7-d24dc2d9d309
Number of nodes in cluster = 2
        Cluster ID for node nodeA.ibm.com: 1
        Primary IP address for node r5r3m25.aus.stglabs.ibm.com: 9.3.207.132
        Cluster ID for node nodeB.ibm.com: 2
        Primary IP address for node r5r3m26.aus.stglabs.ibm.com: 9.3.207.218
Number of disks in cluster = 1
        Disk = hdisk6 UUID = 57208624-fda4-d404-a7c0-8e425e2941a4 cluster_major = 0 cluster_minor = 1
Multicast for site LOCAL: IPv4 228.3.207.132 IPv6 ff05::e403:cf84
Communication Mode: multicast
Local node maximum capabilities: HNAME_CHG, UNICAST, IPV6, SITE
Effective cluster-wide capabilities: HNAME_CHG, UNICAST, IPV6, SI




CAA (Cluster Aware AIX)

CAA is an AIX feature, and with that AIX kernel has the capability to provide specific cluster services, like heartbeating and node monitoring. Beside these, using Cluster Aware AIX you can easily create a cluster of AIX nodes. CAA does not replace PowerHA, it provides several services for PowerHA. PowerHA 7.1 and RSCT use the built-in AIX clustering capabilities, which simplifies the configuration and management of cluster.

CAA needs the following ports on all nodes for network communication:
4098 (for multicast)
6181
16191
42112


These CAA commands can be used for managing clusters:

lscluster list cluster configuration information
-c cluster configuration
-d disk (storage) configuration
-i interfaces configuration
-m node configuration
mkcluster create a cluster
chcluster change a cluster configuration
rmcluster remove a cluster configuration
clcmd run a command on all nodes of a cluster

----------------
PowerHA uses a shared disk to store Cluster Aware AIX (CAA) information. At least a 512 MB (and no more than 460 GB) shared disk is needed, for this cluster repository disk. (This disk cannot be used for application storage or any other purpose.)

CAA stores the repository disk related information in the ODM CuAt, as part of the cluster information.

# odmget CuAt | grep -p cluster

CuAt:
name = "cluster0"
attribute = "node_uuid"
value = "52a6b8be-fff8-11e5-8e37-56a1a7627864"
type = "R"
generic = "DU"
rep = "s"
nls_index = 3

CuAt:
name = "cluster0"
attribute = "clvdisk"
value = "d7063c81-3f64-b5f7-d82b-fa8ed99bfe61"
type = "R"
generic = "DU"
rep = "s"
nls_index = 2

In case this ODM entry is missing (which can cause that a node will fail to join the cluster) it can be repopulated (and the node forced to join the cluster) using clusterconf command:

clusterconf -r hdiskx  //hdiskx is the repository disk

PowerVC-Openstack

What is OpenStack?

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard (like GUI front-end tool) that gives administrators control while empowering their users to provision resources through a web interface.

OpenStack at its core is an open source project - it's free code. But what makes OpenStack come alive are the vendors that have contributed to make that raw code and then turned it into a product businesses can use.

Some companies have used OpenStack as the basis for their public clouds; Rackspace, for example, has proven that OpenStack can power a massive, geographically distributed cloud. Others are packaging the components that make up OpenStack into an easy-to-digest product sold to enterprises for building their own private cloud.

What is PowerVC?

IBM Power Virtualization Center (PowerVC) is a new tool that lets you manage virtual machines (VM) deployed on pools of POWER servers. Support is provided for both AIX and Linux on Power VMs.

PowerVC is based on OpenStack, which is open-source cloud management software backed by significant industry support.

PowerVC is designed to simplify the management of virtual resources in IBM Power Systems environments.

PowerVC has a powerful yet simple and intuitive GUI and a deep integration with IBM Power Virtualization Management (PowerVM®) virtualization technologies. PowerVC enables virtualization without limits for the IBM Power Systems family of servers running IBM AIX®, IBM i, or IBM PowerLinuxTM.

Why OpenStack for PowerVC?

One of the big differences between PowerVC and other cloud management solutions is the use of OpenStack as a foundation.

The overall goal for PowerVC was to provide robust management for clouds built on IBM Power Systems. Managing a cloud-computing infrastructure requires a different approach than managing a traditional IT infrastructure

IBM identified several key architectural requirements for this product:

    The management software had to encompass servers, storage, and networking. The management silos of the past simply did not meet the needs of a cloud environment.

    The management architecture needed to be flexible, reliable, and scalable. A management architecture based on a loosely coupled service-oriented architecture with well-defined interfaces fulfills this requirement well. The general concept was a kernel of core services surrounded by plug-in modules to provide management of specific resources. The management application also needed to scale both vertically and horizontally.

    The architecture had to be adaptable to allow expansion to new resource types and new management operations without requiring changes to the underlying architecture.

OpenStack fits these requirements well. OpenStack has the concept of drivers to support different resources (plug-ability), a built in foundation of middleware (service-oriented architecture) and well defined APIs tying everything together. There is an extensive open source community around OpenStack and it has a well-established governance model, and design tenets based on a loosely coupled, resilient architecture that scales horizontally.

There was another pragmatic reason for IBM to use OpenStack as the base for PowerVC: by building on OpenStack, IBM was able to get PowerVC to the market much more quickly and spent more energy working on capabilities with higher client value rather than building infrastructure “plumbing”.

It is important to note that PowerVC is a solution based on OpenStack, it is not OpenStack.

IBM built PowerVC based on the OpenStack architecture using OpenStack components, but IBM also provides enhancements and components that are not part of OpenStack, such as the management user interface and the Platform Enterprise Grid Optimizer (Platform EGO).

These extensions are designed to provide additional capability for our clients compared to the base capabilities provided by OpenStack. IBM  contributes to the OpenStack community, but some of our enhancements will remain proprietary to IBM.

PowerVC is more than just OpenStack for Power. While other companies have delivered OpenStack offerings that are just big bags of technology, IBM built PowerVC on OpenStack technology to deliver a virtualization management solution for Power Systems.

As they say, “the proof is in the pudding” By building PowerVC on OpenStack, IBM has been able to deliver two releases in one year. This would have been impossible building it from scratch.

Why they’re important: IBM publicly announced that OpenStack would be a central part of the company’s cloud plans moving forward. Since then, though it’s unclear just how big of a part OpenStack plays in the company’s cloud plans.

IBM has certainly been committed to contributing toward the development of OpenStack. IBM is one of the leading contributors to the project, along with every other company on this list. IBM is using its experience in working with enterprise customers to improve areas such as quality assurance and aligning the OpenStack API to key standards. But, the company has not made OpenStack central to its own products it sells. IBM bought SoftLayer, an IaaS provider, and is in the process of expanding OpenStack support in SoftLayer’s cloud. Since that OpenStack announcement IBM has also made commitments to Cloud Foundry, another open source project for application development. And it has announced BlueMix, a PaaS offering that’s still in its early stages.

SoftLayer, an IBM Company, provides cloud Infrastructure as a service from a growing number of data centers and network points of presence around the world. Our customers range from Web startups to global enterprises.

Products and services include bare metal and virtual servers, networking, turnkey big data solutions, private cloud solutions, and more. Our unique advantages include the industry's first Network-Within-a-Network topology for true out-of-band access, and an easy-to-use customer portal and robust API for full remote-access of all product and service management options.

SoftLayer was founded in 2005 and is headquartered in Dallas, Texas. We were acquired by IBM in July, 2013.

Bluemix, IBM Bluemix is a cloud Platform as a service (PaaS) developed by IBM. It supports several programming languages and services as well as integrated DevOps to build, run, deploy and manage applications on the cloud. Bluemix is based on Cloud Foundry open technology and runs on SoftLayer infrastructure.

It enables organizations and developers to quickly and easily create, deploy, and manage applications on the cloud.

Cloud Terminologies,

Infrastructure as a Service (IaaS):
Cloud infrastructure services in which a virtualized environment is delivered as a service by the cloud provider. This infrastructure can include servers, network equipment, and software, including a complete desktop environment such as Windows or Linux.

Platform as a Service (PaaS):
Cloud platform services, whereby the computing platform (operating system and associated services) is delivered as a service over the internet by the provider.

Software as a Service (SaaS):
Cloud application services, whereby applications are delivered over the internet by the provider so the applications don't have to be purchased, installed, and run on the customer's computers. SaaS providers were previously referred to as application service providers.

Private cloud:
Services offered over the internet or over a private internal network to select users. These services are not available to the general public.

Public cloud:
Services offered over the public internet. These services are available to anyone who wants to purchase the service.

Hybrid cloud:
The combination of a public cloud provider (such as AWS) with a private cloud platform. The public and private cloud infrastructures operate independently of each other, and integrate using software and processes that allow for the portability of data and applications

Cloud portability:
The ability to move applications and data from one cloud provider to another. See also Vendor lock-in.

Cloud provider:
A company that provides cloud-based platform, infrastructure, application, or storage services to other organizations and/or individuals, usually for a fee.

Cloudsourcing:
Replacing traditional IT operations with lower-cost, outsourced cloud services.

Cloud storage:
A service that allows customers to save data by transferring it over the internet or another network to an offsite storage system maintained by a third party.

Consumption-based pricing model:
A pricing model whereby the service provider charges its customers based on the amount of the service the customer consumes, rather than a time-based fee. For example, a cloud storage provider might charge per gigabyte of information stored.

Subscription-based pricing model:
A pricing model that lets customers pay a fee to use the service for a particular time period, often used for SaaS services.

Elastic computing:
The ability to dynamically provision and deprovision computing and storage resources to stretch to the demands of peak usage, without the need to worry about capacity planning and engineering around uneven usage patterns.

Cloudsourcing:
Replacing traditional IT operations with lower-cost, outsourced cloud services.

Abbreviations:

API: Application Programming Interface

EGO: Enterprise Grid Orchestrator

OVF: Open Virtualization Format

AMQP: Advanced Message Queuing Protocol

DBMS: Database management system

 Disclaimer: Above information is collected from various sources.

Sysdump Device

Dump - Core

AIX generates a system dump when a severe error occurs. A system dump creates a snap of the system's memory contents. If the AIX kernel crashes kernel data is written to the primary dump device. After a kernel crash AIX must be rebooted. During the next boot, the dump is copied into a dump directory (default is /var/adm/ras). The dump file name is vmcore.x (x indicates a number, e.g. vmcore.0)

When installing the operating system, the dump device is automatically configured. By default, the primary device is /dev/hd6, which is a paging logical volume, and the secondary device is /dev/sysdumpnull.

A rule of thumb is when a dump is created, it is about 1/4 of the size of real memory. The command "sysdumpdev -e" will also provide an estimate of the dump space needed for your machine. (Estimation can differ at times with high load, as kernel space is higher at that time.)

When a system dump is occurring, the dump image is not written to disk in mirrored form. A dump to a mirrored lv results in an inconsistent dump and therefore, should be avoided. The logic behind this fact is that if the mirroring code itself were the cause of the system crash, then trusting the same code to handle the mirrored write would be pointless. Thus, mirroring a dump device is a waste of resources and is not recommended.

Since the default dump device is the primary paging lv, you should create a separate dump lv, if you mirror your paging lv (which is suggested.)If a valid secondary dump device exists and the primary dump device cannot be reached, the secondary dump device will accept the dump information intended for the primary dump device.

IBM recommendation:
IBM recommends us to force a dump the next time the problem should occur. This will enable us to check which process was hanging or what caused the system to not respond any more. We can do this via the HMC using the following steps:
   Operations -> Restart -> Dump
As a general recommendation we should always force a dump if a system is hanging. There are only very few cases in which we can determine the reason for a hanging system without having a dump available for analysis.



Traditional vs Firmware-assisted dump:

Surprised !!! 

Yes there are two types of dumps,

Up to POWER5 only traditional dumps were available, and the introduction of the POWER6 processor-based systems allowed system  dumps to be firmware assisted. When performing a firmware-assisted dump, system memory is frozen and the partition rebooted, which allows a new instance of the operating system to complete the dump.



Traditional dump: it is generated before partition is rebooted.
(When system crashed, memory content is trying to be copied at that moment to dump device)

Firmware-assisted dump: it takes place when the partition is restarting.
(When system crashed, memory is frozen, and by hypervisor (firmware) new memory space is allocated in RAM, and the contents of memory is copied there. Then during reboot it is copied from this new memory area to the dump device.)

Firmware-assisted dump offers improved reliability over the traditional dump, by rebooting the partition and using a new kernel to dump data from the previous kernel crash.

When an administrator attempts to switch from a traditional to firmware-assisted system dump, system memory is checked against the firmware-assisted system dump memory requirements. If these memory requirements are not met, then the "sysdumpdev -t" command output reports the required minimum system memory to allow for firmware-assisted dump to be configured. Changing from traditional to firmware-assisted dump requires a reboot of the partition for the dump changes to take effect.

Firmware-assisted system dumps can be one of these types:

Selective memory dump: Selective memory dumps are triggered by or use of AIX instances that must be dumped.
Full memory dump: The whole partition memory is dumped without any interaction with an AIX instance that is failing.



Use the sysdumpdev command to query or change the primary or secondary dump devices.
    - Primary:    usually used when you wish to save the dump data
    - Secondary: can be used to discard dump data (that is, /dev/sysdumpnull)


Flags for sysdumpdev command:
    -l                list the current dump destination
    -e                estimates the size of the dump (in bytes)
    -p                primary
    -s                secondary
    -P                make change permanent
    -C                turns on compression
    -c                turns off compression
    -L                shows info about last dump
    -K                turns on: alway allow system dump

sysdumpdev -P -p /dev/dumpdev    change the primary dumpdevice permanently to /dev/dumpdev

root@aix1: /root # sysdumpdev -l
primary              /dev/dumplv
secondary            /dev/sysdumpnull
copy directory       /var/adm/ras
forced copy flag     TRUE
always allow dump    TRUE          if it is on FALSE then in smitty sysdumpdev it can be change
dump compression     ON            if it is on OFF then sysdumpdev -C changes it to ON-ra (-c changes it to OFF)



Other commands:

sysdumpstart            starts a dump (smitty dump)(it will do a reboot as well)
kdb                     it analysis the dump
/usr/lib/ras/dumpcheck  checks if dump device and copy directory are able to receive the system dump
If dump device is a paging space, it verifies if enough free space exists in the copy dir to hold the dump
If dump device is a logical volume, it verifies it is large enough to hold a dump
(man dumpcheck)


 SNAP:

snap
    -a                copies all system config. information to /tmp/ibmsupt directory tree
    -c                creates a  compressed tar image (snap.tar.Z) of all files in the /tmp/ibmsupt
    -g                gather general information

    -e                for HACMP, it runs clverification and gathers the data creating a snap

1. snap -r        removes old snap from /tmp/ibmsupt
2. snap -gc     creates a new snap file

Reading a compressed snap file:
1. snap -ac          creates a compressed snap file (/tmp/ibmsupt/snap.pax.Z)
2. uncompress snap.pax.Z        uncompresses it, we will have a snap.pax file
3. pax -rvf snap.pax           unpack files, after files can be read



Creating a dump device

Creating a dump device

1. sysdumpdev -e                                    shows an estimation, how much space is required for a dump
2. mklv -t sysdump -y lg_dumplv rootvg 3  hdisk0    it creates a sysdump lv with 3 PPs
3. sysdumpdev -Pp /dev/lg_dumplv                    making it as a primary device (system will use this lv now for dumps)


System dump initiaded by a user

!!!reboot will take place automatically!!!

1. sysdumpstart -p              initiates a dump to the primary device
(Reboot will be done automatically)
(If a dedicated dump device is used, user initiated dumps are not copied automatically to copy directory.)
(If paging space is used for dump, then dump will be copied automatically to /var/adm/ras)

2. sysdumpdev -L               shows dump took place on the primary device, time, size ... (errpt will show as well)
3. savecore -d /var/adm/ras    copy last dump from system dump device to directory /var/adm/ras (if paging space is used this is not needed)


Specifying the default gateway on a specific interface

When you're using HACMP, you usually have multiple network adapters installed and thus multiple network interface to handle with. If AIX configured the default gateway on a wrong interface (like on your management interface instead of the boot interface), you might want to change this, so network traffic isn't sent over the management interface. Here's how you can do this:

First, stop HACMP or do a take-over of the resource groups to another node; this will avoid any problems with applications when you start fiddling with the network configuration.

Then open up a virtual terminal window to the host on your HMC. Otherwise you would loose the connection, as soon as you drop the current default gateway.

Now you need to determine where your current default gateway is configured. You can do this by typing:
# lsattr -El inet0
# netstat -nr
The lsattr command will show you the current default gateway route and the netstat command will show you the interface it is configured on. You can also check the ODM:
# odmget -q"attribute=route" CuAt
Now, delete the default gateway like this: (Do this after understand it fully)
# lsattr -El inet0 | awk '$2 ~ /hopcount/ { print $2 }' | read GW
# chdev -l inet0 -a delroute=${GW}
If you would now use the route command to specifiy the default gateway on a specific interface, like this:
# route add 0 [ip address of default gateway: xxx.xxx.xxx.254] -if enX
You will have a working entry for the default gateway. But... the route command does not change anything in the ODM. As soon as your system reboots; the default gateway is gone again. Not a good idea.

A better solution is to use the chdev command:
# chdev -l inet0 -a addroute=net,-hopcount,0,,0,[ip address of default gateway]
This will set the default gateway to the first interface available.

To specify the interface use:
# chdev -l inet0 -a addroute=net,-hopcount,0,if,enX,,0,[ip address of default gateway]
Substitute the correct interface for enX in the command above.

If you previously used the route add command, and after that you use chdev to enter the default gateway, then this will fail. You have to delete it first by using route delete 0, and then give the chdev command.

Afterwards, check fi the new default gateway is properly configured:
# lsattr -El inet0
# odmget -q"attribute=route" CuAt
And ofcourse, try to ping the IP address of the default gateway and some outside address. Now reboot your system and check if the default gateway remains configured on the correct interface. And startup HACMP again!

AIX - Filesystem space management

Fix for the AIX filesystems and general search techniques:

If the file system recently overflowed, use the -newer flag to find recently modified files.

To produce a file for the -newer flag to find against, use the following touch command:
touch mmddhhmm filename   (eg: touch 01192000 test_mohi)
Where mm is the month, dd is the date, hh is the hour in 24–hour format, mm is the minute, and filename is the name of the file you are creating with the touch command.
 
After you have created the touched file, you can use the following command to find newer large files:
find /filesystem_name -xdev -newer touch_filename -ls
(eg: fine /var -xdev -newer /test_mohi -ls)
 
You can also use the find command to locate files that have been changed in the last 24 hours, as shown in the following example:
find /filesystem_name -xdev -mtime 0 -ls
 
******
 

/ (root) overflow

Check the following when the root file system (/) has become full.
  • Use the following command to read the contents of the /etc/security/failedlogin file:
    who /etc/security/failedlogin
    The condition of TTYs recreating too rapidly can create failed login entries. To clear the file after reading or saving the output, execute the following command:
    cp /dev/null /etc/security/failedlogin
  • Check the /dev directory for a device name that is typed incorrectly. If a device name is typed incorrectly, such as rmto instead of rmt0, a file will be created in /dev called rmto. The command will normally proceed until the entire root file system is filled before failing. /dev is part of the root (/) file system. Look for entries that are not devices (that do not have a major or minor number). To check for this situation, use the following command:
    cd /dev
    ls -l | pg
    In the same location that would indicate a file size for an ordinary file, a device file has two numbers separated by a comma. For example:
    crw-rw-rw-   1 root     system    12,0 Oct 25 10:19 rmt0
    If the file name or size location indicates an invalid device, as shown in the following example, remove the associated file:
    crw-rw-rw-   1 root     system   9375473 Oct 25 10:19 rmto
    Note:
    • Do not remove valid device names in the /dev directory. One indicator of an invalid device is an associated file size that is larger than 500 bytes.
    • If system auditing is running, the default /audit directory can rapidly fill up and require attention.
  • Check for very large files that might be removed using the find command. For example, to find all files in the root (/) directory larger than 1 MB, use the following command:
    find / -xdev -size  +2048 -ls |sort -r -n +6
    This command finds all files greater than 1 MB and sorts them in reverse order with the largest files first. Other flags for the find command, such as -newer, might be useful in this search. For detailed information, see the command description for the find command.
    Note: When checking the root directory, major and minor numbers for devices in the /dev directory will be interspersed with real files and file sizes. Major and minor numbers, which are separated by a comma, can be ignored.
    Before removing any files, use the following command to ensure a file is not currently in use by a user process:
    fuser filename
    Where filename is the name of the suspect large file. If a file is open at the time of removal, it is only removed from the directory listing. The blocks allocated to that file are not freed until the process holding the file open is killed.
 
******
 

Resolving overflows in the /var file system

Check the following when the /var file system has become full.
  • You can use the find command to look for large files in the /var directory. For example:
    find /var -xdev -size  +2048 -ls| sort -r  +6
    For detailed information, see the command description for the find command.
  • Check for obsolete or leftover files in /var/tmp.
  • Check the size of the /var/adm/wtmp file, which logs all logins, rlogins and telnet sessions. The log will grow indefinitely unless system accounting is running. System accounting clears it out nightly. The /var/adm/wtmp file can be cleared out or edited to remove old and unwanted information. To clear it, use the following command:
    cp /dev/null  /var/adm/wtmp
    To edit the /var/adm/wtmp file, first copy the file temporarily with the following command:
    /usr/sbin/acct/fwtmp < /var/adm/wtmp >/tmp/out
    Edit the /tmp/out file to remove unwanted entries then replace the original file with the following command:
    /usr/sbin/acct/fwtmp -ic < /tmp/out > /var/adm/wtmp
  • Clear the error log in the /var/adm/ras directory using the following procedure. The error log is never cleared unless it is manually cleared.
    Note: Never use the cp /dev/null command to clear the error log. A zero-length errlog file disables the error logging functions of the operating system and must be replaced from a backup.
    1. Stop the error daemon using the following command:
      /usr/lib/errstop
    2. Remove or move to a different filesystem the error log file by using one of the following commands:
      rm /var/adm/ras/errlog
      or
      mv /var/adm/ras/errlog filename
      Where filename is the name of the moved errlog file.
      Note: The historical error data is deleted if you remove the error log file.
    3. Restart the error daemon using the following command:
      /usr/lib/errdemon
    Note: Consider limiting the errlog by running the following entries in cron:
    0 11 * * * /usr/bin/errclear -d S,O 30    
    0 12 * * * /usr/bin/errclear -d H 90
  • Check whether the trcfile file in this directory is large. If it is large and a trace is not currently being run, you can remove the file using the following command:
    rm /var/adm/ras/trcfile
  • If your dump device is set to hd6 (which is the default), there might be a number of vmcore* files in the /var/adm/ras directory. If their file dates are old or you do not want to retain them, you can remove them with the rm command.
  • Check the /var/spool directory, which contains the queuing subsystem files. Clear the queueing subsystem using the following commands:
    stopsrc -s qdaemon
    rm /var/spool/lpd/qdir/*
    rm /var/spool/lpd/stat/*
    rm /var/spool/qdaemon/*
    startsrc -s qdaemon
  • Check the /var/adm/acct directory, which contains accounting records. If accounting is running, this directory may contain several large files.
  • Check the /var/preserve directory for terminated vi sessions. Generally, it is safe to remove these files. If a user wants to recover a session, you can use the vi -r command to list all recoverable sessions. To recover a specific session, usevi -r filename.
  • Modify the /var/adm/sulog file, which records the number of attempted uses of the su command and whether each was successful. This is a flat file and can be viewed and modified with a favorite editor. If it is removed, it will be recreated by the next attempted su command. Modify the /var/tmp/snmpd.log, which records events from the snmpd daemon. If the file is removed it will be recreated by the snmpd daemon.
    Note: The size of the /var/tmp/snmpd.log file can be limited so that it does not grow indefinitely. Edit the /etc/snmpd.conf file to change the number (in bytes) in the appropriate section for size.