Skip to main content

IX Tips AIX LVM Cheat Sheet

A This is a quick and dirty cheat sheet on LVM using AIX, I have highlighted many of the common attributes for each command however this is not an extensive list, make sure you look up the command. First a quick review on some of the terminology that AIX LVM uses Examples What it means PHYSICAL VOLUME (PV) Represents a hard disk (hdisk0). PHYSICAL PARTITION (PP) The smallest allocation unit in the LVM. All PPs within a VG are the same size, usually 4 or 8 MB. VOLUME GROUP (VG) A set of one or more PVs which form a single storage pool. You can define multiple VGs on each AIX system. LOGICAL VOLUME (LV) One or more PPs. A file system resides on top of an LV. Only one LV is mapped to a file system. A LV can't span across a VG. Up to 255 LVs in a VG LOGICAL PARITITION (LP) One or more PPs. LP represents a mirrored copy of a PP. Up to two copies of a PP can be mirrored resulting in a LP count of three (2 mirrors plus original). Volume Group Descriptor Area(VGDA) Information about all the LVs and PVs within a VG. The first 64K of a PV is reserved for this area - defined in . The VGDA consists of BOOTRECORD: - first 512 bytes. Allows the Read Only System (ROS) to boot system BAD BLK DIRECTORY - found in LVM RECORD - found in Volume Group Status Area(VGSA) Information about which PPs that are stale and which PVs are missing within a VG. The LVM and SCSI driver reserves somewhere between 7-10% of the available disk space for LVM maps, etc. Physical Volume ID (PVID) The PVID is an amalgamation of the machine’s serial number (from the systems EPROMs) and the date that the PVID is being generated. This combination insures theextremely low chance of two disks being created with the same PVID. Finally, when a system is booted, the disk configurator goes and looks at the PVID sitting on each disk platter and then compares that to an entry in ODM. If the entry is found, then the disk is given the hdiskX name that is associated with the ODM entry for the PVID. Quorum Quorum is a sort of “sanity” check that LVM uses to resolve possible data confliction and prevent data corruption. Quorum is a method by which 51% or more quorum votes must be available to a volume group before LVM actions can continue. Quorum is issued to a disk in a volume group according to how the disk was created within the volume group. When a volume group consists of one disk, there are two VGDA’s on that disk. Thus, this single disk volume group has a quorum vote of 2. When another disk is added to the volume group with an “extendvg”, then this new disk gets one VGDA, but the original, first disk still retains the two VGDA’s. When the volume group has been extended to three disks, the third disk gets the spare VGDA sitting on the first disk and then each disk has a quorum vote of 1. Every disk after the third disk is automatically given one VGDA, and thus one vote. Volume Group ID (VGID) Just as the PVID is a soft serial number for a disk, the VGID is the soft serial number for the volume group. It is this serial number, not the volume group’s ascii name, which all low level LVM commands reference. Additionally, it is the basis for the LVIDs created on that VGID. Logical Volume Control Block (LVCB) The logical volume control block (lvcb) consists of the first 512 bytes of a logical volume. This area holds important information such as the creation date of the logical volume, information about mirrored copies, and possible mount points in a journaled filesystem. Logical Volume ID (LVID) The LVID is the soft serial number used to represent the logical volume to the LVM libraries and low level commands. The LVID is created from the VGID of the volume group, a decimal point, and a number which represents the order which the logical volume was created on the volume group. Now for the cheet sheet Directory and Files Directories and Files Tools diagnostic diag - used to hot swap the disk cfgmgr - used mak sure the new disk is seen # to add new disk from the scsi0 controller cfgmgr -l scsi0 Create/Remove hard disk cfgmgr -l scsi0 mkdev -c disk -l rmdev -dl Physical Volumes display lspv lspv (detailed) lspv -l (list logical volumes) lspv -p (physical partition usage) PVID chdev -l -a pv=yes chdev -l -a pv=clear Note: PVID's are automatically added when the disk is placed into a vg adding chdev -l -a pv=yes (new) chpv -v a (adds back the removed disk) removing chpv -v r change physical attributes chpv -a y (changes allocatable state to YES) chpv -a n (changes allocatable state to NO) moving migratepv Volume Groups display lsvg lsvg (detailed) lsvg -l (list all logical volumes in goup) lsvg -p (list all physical volumes in group) lsvg -o (lists all varied on) lsvg -M (lists assicated disks and state) ## Details volume group info for the hard disk lqueryvg -Atp lqueryvg -p -v (Determine the VG ID# on disk) lqueryvg -p -L (Show all the LV ID#/names in the VG on disk) lqueryvg -p -P (Show all the PV ID# that reside in the VG on disk) varyon varyonvg varyonvg -f (force) varyonvg -s (maintenance mode can use VG commands but lv 's cannot be opened for i/o access) varyoffvg Note: the varyon command activiates the volume goup which means it is available for use ODM related ## Determine if the ODM and VGDA are correct (in sync) getlvodm -u ## tries to resync VGDA, LV control blocks and ODM synclvodm ## If the message 0516-366 lsvg: Volume group is locked is ever seen putlvodm -K `gtlvodm -v ` creating mkvg -y -s mkvg -y datavg -s 4 hdisk1 Note: the PP size will be the size of the physical partition size you want 4MB, 8MB extending extendvg reducing reducevg -d ## removes the PVID from the VGDA when a disk has vanished without using the reducevg command reducevg removing varyoffvg exportvg Note: the export command nukes everything regardingthe volume goup in the ODM and /etc/filesystems checking ## check to see if underlying disk has grown in size chvg -g Note: use this command if you are using SAN LUN's that have increased in size change volume attributes ## auto vary on a volume at system start chvg -a y # Turns on/off quorum checking on a volume group chvg -Q [y|n] renaming varyoffvg lsvg -p (obtain disk names) exportvg import -y varyonvg mount -a importing importvg -y importvg (will use rootvg as default vg) exporting varyoffvg exportvg Note: if the volume has an active paging space this must be turned off before Logical Volumes display lslv lslv -l (list all physical volumes in logical volume) lslv -m (list ppartition mapping) ## Display lv control block information getlvcb -AT creating mklv <# of PP's> mklv -y <# of PP's> ## Create a mirrored named logical volume mklv -y -c <# of PP's> ## create a JFSlog logical Volume mklv -y -t jfslog <# of PP's> extending extendlv extendlv reducing/resizing see filesystem below removing rmlv moving migratepv -l adding a mirror to a non-mirrored volume mklvcopy -s n removing a mirror copy from a mirrored volume rmlvcopy rmlvcopy (specified pv) unmirrorvg synchronize logical volume syncvg -p syncvg -v syncvg -l mirror any unmirrored volumes mirrorvg change volume attributes ## Enable the bad-block relocation policy chlv -b [y|n] renaming chlv -n Miscellaneous ## Initialises an LV for use as an JFSlog logform Filesystems display lsfs lsfs -q (detailed) Note: use the '-q' to see if the logical volume size is bigger than the filesystem size create ## create new filesystem, -A means to mount after restart crfs -v jfs -d -m -A yes ## Create logical volume, filesystem, mountpoint, add entry to /etc/filesystems at the specified size crfs -v jfs2 -g -m -a size= Note: if all filesystems have been removed from a logical volume then the logical volume is removed as well. resize chfs -a size= chfs -a size=1G /var (specific size, can be used to increase and decrease) chfs -a size=+1G /var (increase by 1GB) chfs -a size=-1GB /var (reduce by 1GB) Note: this will automatically increase or decrease the underlying logical volume as well freeze/unfreeze chfs -a freeze=

Comments

Popular posts from this blog

Cisco SG300 CLI Commands

Cisco SG300 CLI Commands Other parts were obtained using the CLI PDF provided by Cisco Remove a Trunk and switch to access config t int gi44 switchport trunk allowed vlan remove 2 switchport mode access switchport access vlan 2 or config t int gi44 switchport mode general switchport general allowed vlan remove 2 switchport mode access switchport access vlan 2 Change CDP Device ID Format to Hostname opposed to default MAC address s-sg300#sh cdp Global CDP information:         CDP is globally enabled         CDP log duplex mismatch is globally enabled         CDP log voice VLAN mismatch is globally enabled         CDP log native VLAN mismatch is globally enabled         Mandatory TLVs validation is disabled         Sending CDPv2 advertisements is enabled         Sending Appliance TLV is enabled       ...

Branches, Part II

Now that we’ve covered the mechanics behind Git branches, we can discuss the practical impact that they have on the software development process. Instead of introducing new commands, this module covers how the typical Git user applies this workflow to real projects, as well as some of the problems that arise in a branched environment. To Git, a branch is a branch, but it’s often useful to assign special meaning to different branches. For example, we’ve been using master as the stable branch for our example project, and we’ve also used a temporary branch to add some CSS formatting. Temporary branches like the latter are called topic branches because they exist to develop a certain topic, then they are deleted. We’ll work with two types of topic branches later in this module. Amid our exploration of Git branches, we’ll also discover that some merges cannot be “fast-forwarded.” When the history of two branches diverges, a dedicated commit is required to combine the branches. This ...

Distributed Workflows

Now that we know how to share information via a centralized workflow, we can appreciate some of the drawbacks of this collaboration model. While it may be convenient, allowing everyone to push to an “official” repository raises some legitimate security concerns. It means that for anyone to contribute content, they need access to the entire project. This is fine if you’re only interacting with a small team, but imagine a scenario where you’re working on an open-source software project and a stranger found a bug, fixed it, and wants to incorporate the update into the main project. You probably don’t want to give them push-access to your central repository, since they could start pushing all sorts of random snapshots, and you would effectively lose control of the project. But, what you can do is tell the contributor to push the changes to their own public repository. Then, you can pull their bug fix into your private repository to ensure it doesn’t contain any undeclared code. If y...