Redimensionar disco linux, discos no gestionados por LVM

hd

Disc partitions

En ocasiones debemos redimensionar discos simples, los discos gestionados mediante LVM son mucho más sencillos de redimensionar. Pero en esta caso no contamos con ellos, vamos a proceder a un redimendionado sin pérdida de datos.

 

El escenario inicial es este:

Source   
[root@oradb ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_oradb-lv_root
                       37G  6.7G   30G  19% /
tmpfs                 1.9G  224K  1.9G   1% /dev/shm
/dev/sda1             485M   34M  426M   8% /boot
/dev/sdb1            1004M   19M  935M   2% /mnt
 
[root@oradb ~]# parted /dev/sdb unit s print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4194304s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
 
Number  Start  End       Size      Type     File system  Flags
 1      63s    2088449s  2088387s  primary  ext4
 
[root@oradb ~]# ls /mnt/ | wc -l
118

Es decir tenemos un HD /dev/sdb de 2GB (4194304 sectores*512 bytes), en estos momentos solo existe una partición de 1GB (2088387 sectores*512 bytes=1GB aproximadamente), que está montada y contiene 118 ficheros/directorios.

Continue reading

mount bind linux vs reconfiguración de aplicación

Cuando montamos sistemas Linux una de las reglas de oro es externalizar la configuración y los datos de la aplicación a otro volumen. Esto se puede hacer fácilmente por ejemplo montando /opt sobre otro disco y realizando las instalaciones sobre /opt.

Las instalaciones sobre otros volúmenes son sencillas siempre y cuando no recurramos al repositorio de la distribución que estemos usando, en este caso vamos a tener configuración y datos en unos cuantos sitios. En una situación así podemos hacer 2 cosas:

  1. Pasearnos por todos los ficheros de configuración de la aplicación en cuestión y modificar rutas de logs, datos, configuración, etc… un trabajazo vamos.
  2. Usar mount con la opcion –bind y no tocar absolutamente nada de la aplicación.

Continue reading

Oracle estadísticas base de datos, generación, velocidad y actividad redolog (Oracle DB)

Cada nueva versión del optimizador cada vez es más dependiente de las estadísticas, la calidad de ellas puede ser suficiente para una versión anterior pero para la actual no.

Como regla general se ha de analizar una tabla (en casacada, es decir incluyendo índices) cuando se realizan modificaciones importantes sobre ella. Por ejemplo:

  • truncates
  • Insert into .. select …
  • Cualquier inserción, actualización y borrado masivo (se entiendo por masivo que afecte a más de un 20% del total de los registros)

Las estadísticas se pueden obtener de muchas maneras, algunas más rápidas que otras (estimaciones parciales, completas, etc…) y con más o menos generación de redologs.

Por ejemplo si usamos el paquete DBMS_STATS (https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_stats.htm#ARPLS059) concretamente el subprograma GATHER_TABLE_STATS (https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_stats.htm#ARPLS68582), la sintaxis es muy similar para los subprogramas:

Continue reading

Pasar redologs de sistema de ficheros a RAW

No es una cosa que me guste especialmente, pero es posible que nos encontremos con personas que digan que si el rendimiento de la BD mejora mucho con los redolog en raw, frente a un sistema de ficheros (ext4 por ejemplo).

Para salir de dudas podemos trabajar con los redologs en modo RAW de forma muy sencilla. Vamos a poner un ejemplo hecho en Red Hat 4, con una BDD de pruebas con 3 redologs de 51 MB cada uno:

Source   
[oracle@clu01 DBU]$ ls -l
total 1502076
-rw-r-----  1 oracle oinstall   9748480 Jun 25 20:38 control01.ctl
-rw-r-----  1 oracle oinstall   9748480 Jun 25 20:38 control02.ctl
-rw-r-----  1 oracle oinstall   7061504 Jun 12 11:36 control03.ctl
-rw-r-----  1 oracle oinstall  52429312 Jun 25 11:06 redo01.log
-rw-r-----  1 oracle oinstall  52429312 Jun 25 10:39 redo02.log
-rw-r-----  1 oracle oinstall  52429312 Jun 25 10:39 redo03.log
-rw-r-----  1 oracle oinstall 545267712 Jun 25 20:38 sysaux01.dbf
-rw-r-----  1 oracle oinstall 744497152 Jun 25 20:38 system01.dbf
-rw-r-----  1 oracle oinstall  20979712 Jun 23 21:22 temp01.dbf
-rw-r-----  1 oracle oinstall  36708352 Jun 25 20:38 undotbs01.dbf
-rw-r-----  1 oracle oinstall   5251072 Jun 25 20:38 users01.dbf

Continue reading

Rescan scsi linux, forzar rescan de unidades SCSI en Linux

Si añadimos discos en caliente (desde cualquier sistema de virtualización) es posible que el SO no se entera hasta que hagamos un rescan del bus scsi, esto se puede hacer con la herramienta:

Source   
rescan-scsi-bus.sh -a

Para instalarla en RedHat/Centos:

Source   
yum install sg3_utils

Continue reading

LVM external drive, aceder a datos en HDs con particiones LVM (por ejemplo un HD USB)

Los volúmenes LVM tienen muchas ventajas pero cuando pinchamos un disco duro (con LVM) a un sistema operativo (mediante USB por ejemplo) y queremos acceder a los datos, vemos que no es algo automático.

Para acceder a los datos podemos montar directamente el volumen porque el device simplemente no existe, esto se puede solucionar fácilmente. La secuencia de acciones es:

1- Pinchar el HD (lógicamente)
2- Realizar un vgscan
3- Realizar un lvscan
4- Activar el volumen LVM deseado
5- Montar el device y acceder a los datos

Para extraer el HD hay que:

Continue reading

Sustitución de HD en un RAID por software mdRAID

En esta ocasión vamos a ver como regenerar un RAID por software en Linux.

Se ha detectado un error de tipo SMART mediante:

Diagnostico smarctl:

Source   
[root@simba ~]# smartctl -H /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-279.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0x002f   001   001   051    Pre-fail  Always   FAILING_NOW 330223

Continue reading

Uso de smartctl (monitorización de discos) en Linux

Vamos a ver como obtener el estado de un HD mediante la tecnología SMART (monitorización y análisis de HD http://es.wikipedia.org/wiki/S.M.A.R.T.).

Lo primero que necesitamos instalar es el paquete smartmontools (en Red Hat o CentOS es así, en otras distribuciones el comando es diferente):

Source   
yum install smartmontools

Podemos obtener información de un disco con:

Continue reading

Linux montar discos UUID y /etc/fstab

Quien más o quien menos sabe como añadir un montaje automático en /etc/fstab, lo que quizá no se use tanto como debería es el montaje usando UUIDS.

El UUID (Universally Unique Identifier) es un identificador único para cada sistema de ficheros. Es muy interesante porque permite utilizarlo como referencia para un montaje, es decir en lugar de usar /dev/sdb1 (referencia física de conexión) podemos usar su UUID y de esta forma podríamos cambiar las conexiones de los discos sin que los puntos de montaje se viesen afectados.

La herramienta para conocer los UUID de los discos es:

Source   
[root@test ~]# blkid
/dev/sdb1: UUID="a210f4aa-0333-4827-b4f0-4a987c3364cf" TYPE="ext4"
/dev/sdb2: UUID="2133ef48-5eb9-4413-8b42-2f5f023a765b" TYPE="ext4"
/dev/sda1: UUID="0cdd3b92-349c-407f-87d2-63242782b531" TYPE="ext4"
/dev/sda2: UUID="rNf0sI-d44o-5c3f-VJMJ-zdhk-eT4q-Lc8xXT" TYPE="LVM2_member"
/dev/mapper/vg_test-lv_root: UUID="6c9fa623-8bc4-4143-b8a5-f7d0966980c9" TYPE="ext4"
/dev/mapper/vg_test-lv_swap: UUID="b382f6a5-0a63-4ab8-aaf4-8b8c1c0b969d" TYPE="swap"

Continue reading

Volúmenes encriptados (LUKS, Linux Unified Key Setup) en RedHat/CentOS 6

En esta entrada vamos a crear un volumen encriptado, algo muy útil si trabajamos con un portátil y queremos asegurar los datos ante la posible perdida.

Se pueden hacer cosas muy interesantes, como que nos pida la clave al arrancar o tener la clave por ejemplo en un USB. A mi me parece muy buena la opción de un dispositivo USB con la clave para poder arrancar.

Vamos al asunto, los pasos a seguir son:

1- Asegurarnos que tenemos cargado el módulo de kernel dm_crypt con:

Source   
[root@test ~]# lsmod | grep dm_crypt
dm_crypt 10848 2
dm_mod 63859 11 dm_crypt

Continue reading