Gonzhalito
Usuario (Argentina)
Buenas a todos. Quiero compartir con Uds., algunos comandos útiles que pueden llegar a resultar de utilidad si están incursionando en el ambiente AIX. Poseen algunas explicaciones y son de tipo elementales, pero quizás les resulten de utilidad. ...y como no podía faltar, el chistecito nerd del comienzo... comencemos pues... Que es AIX? .....La Wik$#"$, nos dice que... "AIX es un sistema operativo UNIX System V propiedad de IBM. Inicialmente significaba "Advanced IBM Unix" pero probablemente el nombre no fue aprobado por el departamento legal y fue cambiado a "Advanced Interactive eXecutive" AIX corre en los servidores IBM, utilizando procesadores de la familia IBM POWER de 32 y 64 bits. Algunas de las características únicas de AIX incluyen el Object Data Manager (ODM, una base de datos de información del sistema). La integración de AIX del "Logical Volume Management" (administrador volumen lógico) dentro del núcleo está siendo incluido gradualmente a varios sistemas operativos libres similares a UNIX." Estructuras de datos en el LVM La información que requiere el LVM para operar es almacenada en un número de estructuras. Volúmenes físicos A cada disco le es asignado un Physical Volume Identifier (PVID) cuando es agregado a un grupo de volúmenes. El PVID es una combinación del número de serie de la máquina y la fecha y hora de la operación. El PVID es guardado en el mismo disco y en la Object Data Manager (ODM) de la máquina cuando un grupo de volúmenes es creado o importado. No se debe usar el comando dd para copiar los contenidos de un volumen físico a otro, porque el PVID también sería copiado; esto resultaría en dos discos con el mismo PVID lo que puede confundir al sistema. Volúmenes lógicos Cada volumen lógico tiene un Logical Volume Control Block (LVCB) que es almacenado en los primeros 512 bytes del volumen lógico. EL LVCB mantiene detalles importantes del volumen lógico, entre otros su fecha y hora de creación, información de espejado y el punto de montaje (si contiene un Journaled File System). Cada volumen lógico tiene un Logical Volume Identifier (LVID) que es usado para representar el volumen lógico en las librerías de LVM y los comandos de bajo nivel. El LVID se genera de VGID.<num>, donde <num> es el orden en que fue creado dentro del grupo de volúmenes. Que estados puede tener un lv: Open indica que el lv esta activo mediante un filesystem o proceso que lo esta accediendo Closed indica que el lv esta inactivo Syncd indica que todas las copias son iguales Stale indica que alguna copia no es igual Grupos de volúmenes Cada grupo de volúmenes tiene una Volume Group Descriptor Area (VGDA). Hay (normalmente) múltiples copias de la VGDA en un grupo de volúmenes. Una copia de la VGDA es almacenada en cada disco del grupo de volúmenes. La VGDA almacena información sobre el grupo de volúmenes, como los volúmenes lógicos y los discos en el grupo de volúmenes. La VGDA es analizada por el comando importvg cuando importa un grupo de volúmenes al sistema. Para un grupo de volúmenes de un solo disco, hay dos VGDAs en el disco. Cuando un segundo disco es añadido para hacer un grupo de volúmenes de dos discos, el disco original retiene dos VGDAs y el nuevo disco toma una VGDA. Agregando un tercer disco resulta que la VGDA extra del primer disco es movida a este tercer disco para un quórum de tres con cada disco teniendo un voto. Agregando este disco adicional añade una nueva VGDA por disco. Un grupo de volúmenes con chequeo de quórum activado (por defecto) debe tener al menos un 51 por ciento de las VGDAs en el grupo de volúmenes disponible antes de que éste pueda ser activado. Un grupo de volúmenes también tiene un Volume Group Identifier (VGID), un número de serie “soft” para el grupo de volúmenes, similar al PVID para discos. Algunos comandetes ahora.... Ver informacion del hdisk: root@lpar:/# lspv hdisk2 PHYSICAL VOLUME: hdisk2 VOLUME GROUP: vgname PV IDENTIFIER: 0000000000000 VG IDENTIFIER xxxxxxxxxxxxxxxxxx PV STATE: active STALE PARTITIONS: 0 ALLOCATABLE: yes PP SIZE: 128 megabyte(s) LOGICAL VOLUMES: 6 TOTAL PPs: 719 (92032 megabytes) VG DESCRIPTORS: 2 FREE PPs: 18 (2304 megabytes) HOT SPARE: no USED PPs: 701 (89728 megabytes) MAX REQUEST: 256 kilobytes como ponerle pvid: chdev -l hdiskx -a pv=yes como eliminar un hdisk: rmdev -dl hdiskx como ver los lv que contiene: root@lpar: / # lspv -M hdisk4 hdisk4:1 bblv:920 hdisk4:2 bblv:921 Ver como esta usado un hdisk root@host:/home/root# lslv -p hdisk0 hdisk0::: USED USED USED USED USED USED USED USED USED USED 1-10 USED USED USED 11-13 USED FREE USED USED USED USED USED USED USED USED 14-23 USED USED USED 24-26 root@lpar:/home/root# lsvg rootvg VOLUME GROUP: rootvg VG IDENTIFIER: xxxxxxxxxxxxxxxxxx VG STATE: active PP SIZE: 256 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 64 (16384 megabytes) MAX LVs: 256 FREE PPs: 2 (512 megabytes) LVs: 18 USED PPs: 62 (15872 megabytes) crear un vg: mkvg -s 128 -y vgname hdiskx # donde x nro de hdisk, -s pp size y -y indica el vgname como importar un vg? importvg -y vgname hdiskx # donde x es el numero de hdisk como ver la información de un vg? root@lpar:/# lsvg vgname Como se elimina un vg del sistema operativo? para eliminar un vg del sistema operativo no exite un comando rmvg , se elimina del so con un exportvg de la siguiente forma: varyoffvg vgname # antes desactivamos el vg para poder exportarlo exportvg vgname # exportamos el vg Como se le agrega un disco al vg: extendvg vgname hdiskx # donde x es el numero de hdisk a agregar Como se le saca un disco al vg: reducevg vgname hdiskx # donde x es el numero de hdisk a agregar * tomar en cuenta que el hdisk para poder ser sacado del vg tiene que estar libre Como mover la información de un hdisk del vg a otro: migratepv hdisko hdiskd # donde o es el hdisk origen y d el destino Tipos de vgs: VG type Maximum PVs Maximum LVs Maximum PPs per VG Maximum PP size Normal VG 32 256 32,512 (1016 * 32) 1 GB Big VG 128 512 130,048 (1016 * 128) 1 GB Scalable VG 1024 4096 2,097,152 128 GB Como cambiar el factor: chvg -t x vgname # donde x es el valor del factor como se calcula: Normal VG: 32/factor = new value of MAX PVs Big VG: 128/factor= new value of MAX PVs Display de la información del lv: root@lpar:/home/root# lslv hd2 Mover una lp de un lv de disco dentro del mismo vg: migratelp testlv/1/2 hdisk5/123 # esto migra la primera lp del testlv de la copia al disco hdisk5 pp 123, en caso de no contar con mirror es mas fácil hacemos "migratelp/1 hdisk5", Si queremos mover el lv entero podemos hacer: migratepv -l lvname hdiskorigen hdiskdestino Crear un nuevo loglv: 1. mklv -t jfs2log -y lvname vgname 1 pvname 2. logform -V jfs2 /dev/lvname .....otro chistecito, para desenfocar (si es que alguien leyó algo de toda esta mierd#"#!!!).... ....y algunos mas... donde se encuentra la definición de los filesystems? esta en /etc/filesystems Nota Por defecto, los file systems /, /usr, /var, y /tmp tienen el atributo check=FALSE en el archivo /etc/filesystems. El atributo está en FALSE por las siguientes razones: 1. El proceso de boot explícitamente corre el comando fsck en los file systems /, /usr, /var, y /tmp. 2. Los file systems /, /usr, /var, y /tmp son montados cuando se corre el archivo /etc/rc. El comando fsck no modificará un file system montado y por otro lado, los resultados del fsck en un file system montado son imprevisibles. Que filesystem son del so? /, /home, /usr, /proc, /tmp, y /var crear filesystems: crfs -v jfs2 -d lvname -m /mountpoint -A yes -p rw Eliminar un filesystem: Cuando se debe borrar un JFS, este debe ser desmontado antes de que pueda ser eliminado. El comando para borrar file systems es rmfs. En el caso de un JFS, el comando rmfs borra el volumen lógico en el que reside el file system y la entrada asociada en el archivo /etc/filesystems. Si el file system no es un JFS, el comando borra únicamente la entrada asociada en el archivo /etc/filesystems, como se ve en el siguiente ejemplo: # lsvg -l testvg Extender filesystem: 1. extendvg vgname hdiskx <-- extendemos el vg 2. chlv -x 1024 lvapp <-- esto se ejecuta si es necesario, si no no 3. extendlv lvapp 20 hdiskx <-- extendemos el lv 4. lslv -m lvapp <-- miramos los cambios en el lv 5. lsfs -q /mountpoint <-- miramos el size del fs y del lv 6. chfs -a size=146800640 /mountpoint <-- extendemos el fs cambiar opciones: chfs -a options='rw' /mountpoint cortar copia: chfs -a splitcopy=/backup -a copy=2 /testfs Reparar un filesystem: recuperar el superbloque: dd count=1 bs=4k skip=31 seek=1 if=/dev/lvxx of=/dev/lvxx <-- restaura el superbloque #31 dumpfs /mountpoint | more <-- muestra el superblock, i-node map y mapa de disco para controlar la integridad y reparar un fs: umount /mountpoint <-- Desmontamos el filesystem fsck -y /mountpoint <-- le pasamos fsck # -y la da yes a todo si no podemos desmontar un fs por que esta en uso: root@lpar:/# fuser -c /mountpoint Como matar los procesos que estan haciendo uso del filesystem: fuser -cuxk /montpoint # ojo hay que estar seguro de tirar este comando Donde puedo ver el historial de comandos lvm ejecutados? cat /var/adm/ras/lvmcfg.log o alog -ot lvmt . . . bueno estimados....creo que ya es demasiado....y muy poco a la vez... Si esto dispone de un éxito moderado o poseen alguna duda para la que necesiten ayuda me pueden mandar un msj y juntos lo vemos... Espero les sirva....tengan en cuenta que: 1) la introducción es mala y escasa... 2) No seguí un orden de conceptos, solamente como me venían a la cabeza... 3) Lo precedente representa un ápice del total de la información necesaria para jugar con estos SO... Gracias... Abzo a todos! PD: en este post todos pueden comentar, si así lo desean.