May 15, 2008

AIX Logical Volume and Disk Management Commands

Quick Commands:

lslv <logical volume> [-l, m]
             Lists information about the logical volumes.  The -l option lists the disks in the logical volume.

lspv <physical volume> [-l, M, p]
             Lists the disks on the server, including the physical volume will give details about that disk. The -l option will list the details of how the filesystems are distributed on the disk.

lsvg <volume group> [-l]
Lists the volume groups on the server, including the volume group name will give details about that vg. The -l option will list the logical volumes in the volume group.

lsvpcfg
             Lists each vpath and the hdisks that make up the vpath

exportvg <volume group>
             removes a volume group from a machine

extendvg <volume group> <physical volume>
Adds a new physical volume to an existing volume group

importvg -y <volume group> <physical volume>
add a volume group to another machine

reducevg <volume group> <physical volume>
Removes a physical volume from a volume group

lsdev -C -c disk
lists available disks (and the hdisk#) on the server

lscfg -vl hdisk

Shows advanced information on a disk

rmdev -dl hdisk#

 remove a disk

Sample Procedures:

Check to see if  all of the logical volumes in a volume group are mirrored

  • lsvg -l <vg_name>

Procedure to find disks/vpaths that are unallocated

  • lspv|grep None
    • This will show pvs and whether they are asssociated with a volume group
    • Note:  For vpaths, the hdisks will show as none, but they may be allocated to a vpath - you must grep each hdisk with the lsvpcfg

Procedure to make a new lun available to AIX

  • Allocate the new lun on the SAN
  • Run "cfgmgr"
  • Verify the new vpatch/hdisk by running "lsvpcfg"
    • There should be a new vpath and it should be available with no volume group - if not, rerun cfgmgr

May 06, 2008

Favorite Commands on Least Favorite Os

Aixlogo3dHey, take a look at the ugly AIX image that I just stole. Since I ran into the image thought that I would take a bit of time to get my AIX notes together and put my new image to good use.

Here are some of my favorite commands and other info.

prtconf
Shows system config

prtconf
System Model: IBM,9113-550
Machine Serial Number: blahblah
Processor Type: PowerPC_POWER5
Number Of Processors: 4
Processor Clock Speed: 1656 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 1 hostname
Memory Size: 15808 MB
Good Memory Size: 15808 MB
Platform Firmware level: SF230_143
Firmware Version: IBM,SF230_143
Console Login: enable
Auto Restart: true
Full Core: false

ipcs -mob
Shows shared memory config

IPC status from /dev/mem as of Fri Dec 28 10:52:23 EST 2007
T        ID     KEY        MODE       OWNER    GROUP NATTCH     SEGSZ
Shared Memory:
m   4194304 0xffffffff --rw-rw----     root   system      1      4096
m   6291457 0xffffffff --rw-rw----     root   system      1      4096
m   6291458 0xffffffff --rw-rw----     root   system      1      4096
m   9437187 0xdd9369d4 --rw-r-----  dbpcomf      dba     47 1090523136
m  6291460 0xf6e89580 --rw-r-----   dbpisv      dba    104 8640286720v

Memory and Paging

lsattr  -E  -l  sys0  |  grep  realmem
To determine how much physical memory resides on the hardware, use the AIX following command to determine the amount of physical memory:

lsps –a
To determine how much paging space is installed; use the command above. To increase Paging Space; use the following AIX path in SMIT (System Management Interface Tool) Physical and Logical Storage -> Paging Space -> Change/Show Characteristics of Paging Space Do not add a new paging logical volume. Add specified PP’s (as needed) to the existing paging logical volume. Select logical volume and press return. Type 1 for the Number of additional logical partitions.

Networking

netstat -v | grep Speed
Show NIC speed

Collect System Dump on an AIX System

  • Verify dump size by typing sysdumpdev –L at the command line.
  • Find a repository large enough for the dump.
  • Type snap –r at the command line to remove any previous dumps.
  • Type snap  -gfkDGL at the command line to create the new dump.
  • Type snap –c to compress into the pax file.

Intro to SMIT/SMITTY

  • System Management Interface Tool
  • smit will run GUI version if $DISPLAY is set, text version otherwise
  • Use smitty to force use of text version
  • Important keystrokes (If you don't have function keys, use ESC+n for Fn):

Function Keys
F3 > Cancel (go back to previous screen)
F4 > List options for a given field
F6 > Show command that SMIT is executing
F7 > Tag item from list (e.g., when selecting software to install)
F10 > Exit SMIT

Useful files:
smit.log >Logs what you've done (menu selections, command output, etc)
smit.script > listing of all commands SMIT has executed for you (same as shown by F6)

Command prefix naming conventions:
o ch (change)
o ls (list)
o mk or cr (make or create)
o rm (remove)


April 09, 2008

Handy Crontab Header

# minute (0-59),
# |      hour (0-23),
# |      |       day of the month (1-31),
# |      |       |       month of the year (1-12),
# |      |       |       |       day of the week (0-6 with 0=Sunday).
# |      |       |       |       |       commands
3       2       *       *       0,6     /some/command/to/run
3       2       *       *       1-5     /another/command/to/run

April 07, 2008

HPUX LVM Cheat Sheet

Scan for Disks

This step may be done for you already.

 

               ioscan -fnC disk

Make your physical volume

This is the first step in the creation of a physical volume.

pvcreate -f /dev/rdsk/c0t1d0

 

Create the device structure using mknod

Mknon creates a FIFO, character special file, or block special file with the specified name. You will need to do this when you are creating a volume group.

              cd /dev 
              mkdir vgdata 
              cd vgdata 
              mknod group c 64 0x010000 

 

What is above is only an example, your minor number will vary by machine.

     mknod [options]... NAME Type [Major Minor]

 

Create volume group

Using vgcreate,you need to create you volume group and list all the disks that are to make up this volume group. In the example below we are creating a volume group called vgdata.

                vgcreate vgdata  /dev/dsk/c0t1d0 

Below is an example from one of the DCA boxes:

 

                 vgcreate /dev/vgapcj06 /dev/dsk/c7t2d2 /dev/dsk/c7t2d3 /dev/dsk/c7t2d4

Once created use vgdisplay to display information pertaining to your new volume.

                 vgdisplay -v vg01
updca003(root)#vgdisplay vgapcj06
--- Volume groups ---
VG Name                     /dev/vgapcj06
VG Write Access             read/write
VG Status                   available
Max LV                      255
Cur LV                      0
Open LV                     0
Max PV                      16
Cur PV                      3
Act PV                      3
Max PE per PV               8690
VGDA                        6
PE Size (Mbytes)            4
Total PE                    26067
Alloc PE                    0
Free PE                     26067
Total PVG                   0
Total Spare PVs             0
Total Spare PVs in use      0

Create a Logical Volume

See the example below that was created with the -l option which used logical extents to determine the size for the logical volume

updca003(root)#lvcreate -n ndata6 -l 26067 /dev/vgapcj06
Logical volume "/dev/vgapcj06/ndata6" has been successfully created with
character device "/dev/vgapcj06/rndata6".
Logical volume "/dev/vgapcj06/ndata6" has been successfully extended.
Volume Group configuration for /dev/vgapcj06 has been saved in /etc/lvmconf/vgapcj06.conf

 

updca003(root)#lvdisplay /dev/vgapcj06/ndata6
--- Logical volumes ---
LV Name                     /dev/vgapcj06/ndata6
VG Name                     /dev/vgapcj06
LV Permission               read/write
LV Status                   available/syncd
Mirror copies               0
Consistency Recovery        MWC
Schedule                    parallel
LV Size (Mbytes)            104268
Current LE                  26067
Allocated PE                26067
Stripes                     0
Stripe Size (Kbytes)        0
Bad block                   on
Allocation                  strict
IO Timeout (Seconds)        default

Make a filesystem

   updca003(root)#newfs /dev/vgapcj06/rndata6
   newfs: /etc/default/fs is used for determining the file system type
   version 4 layout
   106770432 sectors, 13346304 blocks of size 8192, log size 256 blocks
   unlimited inodes, largefiles not supported
   13346304 data blocks, 13345512 free data blocks
   408 allocation units of 32768 blocks, 32768 data blocks
   last allocation unit has 9728 data blocks

 

Other LVM Commands for HPUX

Export disk group

  • vgexport /dev/disgroup

this deactivates the diskgroup

  • vgchange -a n <diskgroup>

this activates a diskgroup

  • vgchange -a y <diskgroup>

Grow a logical volume

  • lvextend

Online JFS

fsadm

Modifying the Bootlist

Below are instructions on how to modify and confirm your bootlist, which is the list of devices that your AIX system is going to try to boot from. Below is a list of quick and easy commands.

  • To specify the logical volume hd5 on disk hdisk0 for normal boot, typle
    • bootlist -m normal hdisk0 blv=hd5
  • To view the boot list that you set in the example above
    • bootlist -m normal -o      #where normal sepcifies normal boot

  • To specify booting in normal mode from the only boot logical volume on hdisk0, or the boot record hd5 on hdisk1, do the following
    • bootlist -m normal hdisk0 hdisk1 blv=mb_hd5
  • If you are dealing with a new disk you are going to need to initialize the boot block as well.
    • In this example you can see that the boot block on hdisk0 has not been initialized.
      • hdisk1 blv=hd5

        hdisk0

      • # bosboot -ad /dev/hdisk0 #use the bosboot command to initialize it.
      • Now all is well
        • # bootlist -m normal -o

          hdisk1 blv=hd5

          hdisk0 blv=hd5

                                           

 

Below are some quick and dirty commands that maybe usefull.

bootlist -m (normal or service) -o - displays bootlist
bootlist -m (normal or service) (list of devices) - change bootlist
bootinfo -b - Identifies the bootable disk
bootinfo -t   - Specifies type of boot
bosboot -a -d (/dev/pv) - Creates a complete boot image on a physical volume.
mkboot -c -d (/dev/pv)       Zero's out the boot records on the physical volume.
savebase -d (/dev/pv)        Saves customised ODM info onto the boot device.

April 06, 2008

AIX bootdisk removal

Need to replace a failed rootdisk in AIX? The post below outlines the procedure for removing a disk from a mirrored root volume.


First take a look at what disks are in your rootvg. In the example below we have hdisk0 and hdisk1

# lsvg -p rootvg

rootvg:

PV_NAME          PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION

hdisk0           active           542         264        109..00..00..46..109

hdisk1           active           542         278        88..00..00..81..109


# lsvg -l rootvg

rootvg:

LV NAME             TYPE       LPs   PPs  PVs  LV STATE      MOUNT POINT

hd5                boot       1    2     2    closed/syncd  N/A

hd6                paging     64    128  2    open/syncd    N/A

hd8                jfslog     1     2    2    open/syncd    N/A

hd4                jfs        6    12    2    open/syncd    /

hd2                jfs        127   254  2    open/syncd    /usr

hd9var             jfs        4    8     2    open/syncd    /var

hd3                jfs        37    74    2    open/syncd    /tmp

hd1                jfs        3    6     2    open/syncd    /home

hd10opt             jfs        21    42    2    open/syncd    /opt

dumplv             sysdump    14    14    1    open/syncd    N/A

Now lets check to make sure that there’s a 1:2 relationship, meaning that there are copies. Notice dumplv. It’s not copied so we need to make sure dumplv data isn’t on the failing disk.To check, run;


$ lslv -l dumplv

dumplv:N/A

PV                COPIES        IN BAND       DISTRIBUTION

hdisk0           014:000:000   100%          000:014:000:000:000

This is telling us that the logical volume dumplv is on hdisk0.  If hdisk1 is the failing disk, then we are okay.  Otherwise, we would have to migrate the data over to the good drive and proceed.

 

# unmirrorvg rootvg hdisk1

# reducevg rootvg hdisk1

# rmdev -l hdisk1 –d

 

Before you power down, you need to make sure that your system is set to boot off of a disk that is still in the rootvg

 

# bootinfo -b

hdisk1

This tells you what drive it was last booted up.  We want to change this to boot to the new drive, so;

# bosboot -ad /dev/hdisk0

And check bootlist

# bootlist –m normal –o

 

NOW WE CAN POWER DOWN THE BOX AND REPLACE THE DRIVE

 

Once disk has been replaced, power up the server.  Once at command prompt, run;

 

# cfgmgr

 

This will install the new device and allow the OS to see it.

 

# lsdev -Cc disk

hdisk0 Available 40-60-00-4,0 16 Bit LVD SCSI Disk Drive

hdisk1 Available 40-60-00-8,0 16 Bit LVD SCSI Disk Drive

 

Make sure that the OS says it’s available.  If it is, we can assign it to a volume group.

 

# extendvg rootvg hdisk1

 

This will assign it a PVID and assign it to the volumegroup rootvg to make it available for use.  Now we can mirror;

 

# mirrovg rootvg

 

This will take a little while as it’s taking all data now on hdisk0 and making a copy to hdisk1.

 

# lsvg -p rootvg

rootvg:

PV_NAME          PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION

hdisk0           active           542         264        109..00..00..46..109

hdisk1           active           542         278        88..00..00..81..109

 

Once it’s mirroring, we can make sure it’s assigned to rootvg by doing the above.  We can also check to make sure there’s copies;

 

# lsvg -l rootvg

rootvg:

LV NAME             TYPE       LPs   PPs  PVs  LV STATE      MOUNT POINT

hd5                boot       1    2     2    closed/syncd  N/A

hd6                paging     64    128  2    open/syncd    N/A

hd8                jfslog     1     2    2    open/syncd    N/A

hd4                jfs        6    12    2    open/syncd    /

hd2                jfs        127   254  2    open/syncd    /usr

hd9var             jfs        4    8     2    open/syncd    /var

hd3                jfs       37    74    2    open/syncd    /tmp

hd1                jfs        3    6     2    open/syncd    /home

hd10opt             jfs        21    42    2    open/syncd    /opt

dumplv             sysdump    14    14    1    open/syncd    N/A

 

Now we need to modify the bosboot to recreate the boot image;

 

# bosboot –a

 

Double check your bootlist to make sure hdisk1 is in there;

 

# bootlist –m normal –o