Mostrando las entradas con la etiqueta Comando. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Comando. Mostrar todas las entradas

6 de junio de 2017

Como redimensionar un disco virtual #KVM

Desde hace tiempo estoy trabajando a diario con servidores virtuales, particularmente con esquemas qemu-kvm pese a que en varias oportunidades he tenido la suerte de probar otros hipervisores tales como Hyper-V, VMWare y VirtualBox.

Figura 1: Como redimensionar un disco virtual #KVM

Aún recuerdo cuando comencé a utilizar infraestructura de virtualización, realizar todas las operaciones en servidores virtuales sobre un mismo dispositivo físico es genial, por que uno logra una abstracción al hardware realmente muy interesante sin perder performance y escalando rápidamente.

Sin embargo, esta semana me tocó volver a los libros y realizar una tarea que resultó ser más interesante de lo que pensaba y se basaba en la siguiente ejemplo.

Sobre un servidor virtual ya creado, se estaba quedando ajustado de espacio físico en su disco virutal, por ejemplo un disco virtual de 40GB en un formato qcow2 llamado "servidor-0010.qcow2".

Sea por las razones que fueran, el disco ya estaba casi completo, por lo que el objetivo era aprovechar el potencial de la virtualización, agrandar el disco virtual por lo menos al doble y finalmente hacer que el sistema operativo lo reconozca.

Otra de las opciones interesante de la virtualización, es tener la posibilidad de montar escenario de pruebas, a partir de un respaldo anterior, jugar y romperlo hasta que se cumpla la tarea. Claro que no voy a comentar mucho las veces que "rompí" máquinas virtuales, sino mejor entrar en los detalles de la solución.

Lo primero que les recomiendo es trabajar con el servidor virtual apagado, para evitar corromper el sistema de archivos o algo, por lo cuál lo más probable es que este tipo de tareas lo llevemos adelante en un stop programado con poca carga en ese servidor.

$ virsh shutdown servidor-0010

Con este comando, enviamos una señal para apagar el servidor. Si estamos acostumbrados a utilizar virt-manager como interface gráfico, es un procedimiento similar, incluso más simple.

Figura 2: virt-manager

El siguiente punto, es utilizar la herramienta qemu-img para proporcionar más espacio del disco virtual, y eso lo podemos hacer de la siguiente manera:

$ qemu-img resize /var/lib/libvirt/images/servidor-0010.qcow2 +20GB

Muy simple verdad? Pues ahora falta lo más complicado y se los explico.

Así como está, si volvemos a iniciar el servidor virtual, solo va a reconocer que está en un disco más grande pero ese espacio en disco al no tener partición asignada en este momento no se podría utilizar.

En este punto es necesario acomodar el sistema de particiones conforme a lo necesario y dependiendo de como están distribuidas las particiones.

Quienes tengan los conocimientos y la experiencia para hacerlo utilizando la herramienta fdisk está muy bien, pues allí pueden trabajar y jugar con las particiones. Por mi parte encontré un LiveCD de Gparted donde es posible bootear este Live para acomodar de forma gráfica el sistema de particiones.

Con esto, redimensionamos el espacio de un disco virtual e hicimos que el sistema operativo lo reconozca.

Saludos!

27 de septiembre de 2016

Conexiones activas en #SQUID3

Hoy les voy a compartir un poco de información valiosa, para aquellos administradores que utilizan el Servidor Proxy Squid3 en sus redes.

Figura 1: Conexiones activas en SQUID3

Es posible que en varias oportunidades sea indispensable conocer la cantidad de conexiones activas que está soportando el servidor en este momento. Lamentablemente, no existe un solo comando mágico que muestre esa información, pero de todas maneras lo vamos a resolver jugando con algunos comandos.

Generalmente Squid3 utiliza el puerto TCP/3128, es por ello que al ejemplo lo vamos a hacer con este número de puerto, aunque puede variar según como lo tengan configurado.

Conexiones activas en el servido Proxy Squid3


Primero iniciamos con el comando netstat, que no es más que una herramienta que permite obtener información de las conexiones sobre nuestro servidor.

$ netstat -nat

para ello hacemos uso de tres flag (-n) para que especifique los números de puertos, (-a)  para que se especifiquen todas las conexiones de todas las interfaces y finalmente (-t) para que se filtren conexiones TCP.

A esta salida se le aplica un filtro para que liste aquellas que corresponde al puerto 3128 de nuestro servidor Proxy.

$ netstat -nat | grep :3128

Y de esta manera el listado inicial comienza a reducirse.

El siguiente paso consiste nuevamente en aplicar un filtro para acotar las conexiones a su estado ESTABLISHED

$ netstat -nat | grep :3128 | grep ESTABLISHED

Ahora quitamos las conexiones localhost que tenga el servidor.

$ netstat -nat | grep :3128 | grep ESTABLISHED | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128

el flag (-v) del comando grep se utiliza para invertir la coincidencia, algo similar a una negación de lo que se quiere filtrar.

Falta muy poco para llegar al final, y para ello gracias al uso de awk, podemos visualizar los orígenes de las conexiones con el proxy.

$ netstat -nat | grep :3128 | grep ESTABLISHED | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128 | awk '{ print $5 }'

Como se puede apreciar, los puertos que está especificados, son puertos altos aleatorios con los que se negoció junto al proxy para establecer la conexión.

En el listado lo podríamos eliminar, una vez más haciendo uso de awk o de sed.

$ netstat -nat | grep :3128 | grep ESTABLISHED | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128 | awk '{ print $5 }' | awk -F\: '{ print $1 }'

Con el comando sort le podemos dar un orden descendiente en las direcciones IPs.

$ netstat -nat | grep :3128 | grep ESTABLISHED | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128 | awk '{ print $5 }' | awk -F\: '{ print $1 }' | sort

Una vez aplicado este filtro es posible aplicar el comando uniq

$ netstat -nat | grep :3128 | grep ESTABLISHED | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128 | awk '{ print $5 }' | awk -F\: '{ print $1 }' | sort | uniq 

Si utilizamos el flag uniq -c es posible conocer la cantidad de conexiones de cada dirección IP.

Y para finalizar y obtener un solo valor, se puede utilizar el comando wc -l que va a mostrar la cantidad de líneas generada, que en este caso corresponde a las direcciones ip conectadas de forma activa con el servidor proxy.

$ netstat -nat | grep :3128 | grep ESTABLISHED | grep -v 0.0.0.0:3128 | grep -v 127.0.0.1:3128 | awk '{ print $5 }' | awk -F\: '{ print $1 }' | sort | uniq | wc -l

Para muchas tareas cotidianas, no existe un solo comando o herramienta que lo soluciones, sin embarga concatenando pequeñas soluciones y haciendo uso de la imaginación es posible crear script muy interesantes.

Saludos!

13 de mayo de 2015

Ver el historial de comandos en Redis

Redis es un excelente motor de Base de Datos en memoria, basado en el concepto key/value, pero con la posibilidad de utilizarlo con persistencia.


Se trata nada más y nada menos que de este nuevo paradigma de trabajo basado en NoSQL que aporta una mejora en el acceso a la información utilizando estrategias diferentes que las que estamos acostumbrados a utilizar en los modelos relacionales.

Cuando comenzamos a realizar las primeras operaciones dentro de Redis, estoy seguro que nos conectamos con el cliente que trae por defecto llamado redis-cli, que no es más que una consola interactiva con redis para almacenar y consultar las key/value.

$ redis-cli
127.0.0.1:6379>

Para recordar todos los comandos que fuimos ejecutando, Redis almacena en el directorio $HOME de cada usuario un archivo oculto llamado .rediscli_history donde podremos consultarlo en todo momento.

$ less ~/.rediscli_history

Saludos!

Entradas populares