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

lunes, 4 de enero de 2016

Evitar que el SSH hacia instancia GCE se rompa.

Feliz 2016 a todos =)

En mi experiencia con GCE (Google Compute Engine) he tenido la mala fortuna que al realizar una tarea larga como un "dd" para hacer el respaldo del disco duro o al comprimir el imagen que crear el "dd" el SSH después de un rato de inactividad me marca:

Write failed: Broken pipe
ERROR: (gcloud.compute.ssh) [/usr/local/bin/ssh] exited with return code [255].

Bueno lo que he estado utilizando y me ha ayudado no solo a evitar el broken pipe si no también para poder darme cuenta de lo que hace la maquina es utilizar:

pv es un comando con el cual podemos añadir una barra de progreso a esos comandos que no cuentan con un modificador o bandera para activar la barra de progreso.

1.- Para usarlo es necesario instalarlo si no se tiene

$ sudo apt-get install pv

 2.- Para usar pv con dd se utiliza el siguiente comando

$ sudo dd if=/dev/disk/by-id/google-temp |pv|sudo dd of=/mnt/tmp/disc.img bs=5M

3.- Para utlizar pv con pigz 
$ pv -tpreb /archivo/a/comprimir | pigz -k --best > comprimido.gz
 
 Con eso obtendrás una barra de progreso similar a esta
17.4GB 0:11:28 [35.5MB/s] [====>                                                  ]  7% ETA 2:25:52

 Con esto evité el broken pipe.

martes, 1 de diciembre de 2015

Otra forma de respaldar VM de GCE a dispositivo local

Esta forma es muy parecida a la anteriormente publicada, solo cambia en algunos puntos, pero a mi parecer esta forma es mas controlada y te da mas seguridad de que se esta respaldando todo el disco duro.


1.- Crear un disco duro del doble de capacidad del que se quiere respaldar, esto con la finalidad de poder guardar la imagen del disco duro a respaldar de manera holgada en el disco duro nuevo creado.

2.- Cuando se tenga el nuevo disco duro hay que entrar a la instancia de GCE para montar el nuevo disco en nuestro SO.

Revisar que discos duros se encuentran disponibles
$ ls -l /dev/disk/by-id/google-*
Hacer la carpeta donde se va a montar el nuevo disco duro
$ sudo mkdir /mnt/tmp
Montar el disco duro donde se guardara el respaldo

$ sudo /usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" /dev/sdb /mnt/tmp

3.- Ahora lo que se hace es una copia entera del nuestro disco duro al nuevo montado
$ dd if=/dev/disk/by-id/[Nuestro disco duro a copiar] of=/mnt/temp/backup/disk.img bs=5M

 4.- El proceso anterior tardara unos minutos (en mi caso fueron 60 min) y ahora solo resta comprimir ese archivo y descargarlo (en la compresión del archivo me llevo 70 min)

Puedes usar pigz para hacer una compresión mas pequeña

5.- Ahora solo descarga el archivo y así tendrás una copia de tu DD mas controlada.




lunes, 30 de noviembre de 2015

Cambiar el tamaño de disco duro en una VM en GCE

Que tal ya me había tardado en poner una entrada, debería ser mas constante, pero publico aquí cosas que aprendo sobre la marcha de mi trabajo.

Así que el día de hoy me tope con el problema de cambiar el tamaño de un disco duro de una maquina virtual que administro en Google Compute Engine (GCE) y pues después de andar buscando aquí tengo el como hacer el resize de un HD en GCE


Los pasos para hacer le resize del disco duro son los siguientes:

  1. Crea un nuevo disco con mas espacio en GCE con la imagen antes creada a la cual quieras incrementar el espacio de disco duro.
  2. Crea una nueva instancia de GCE usando para ser creada el nuevo disco el cual ya tiene mas capacidad que el anterior.
  3. Ingresa en tu instancia y utiliza el siguiente comando
$ sudo resize2fs /dev/sda1 

Con esto tu parición pasara del almacenamiento pasado al nuevo como se puede ver en la imagen de arriba

Y ya con eso tendrás nuevo espacio disponible, debes recordar que si incrementas el espacio del disco o de otro componente en GCE puede venir un cargo extra en la factura.

Información vía : stackoverflow

lunes, 12 de octubre de 2015

Exportar instance (VM) de Google Compute engine para resguardo local (LINUX VM)

Para hacer un respaldo de la VM de GCE debes de hacer lo siguientes:

1.- Crear un nuevo disco temporal este debe ser una copia del disco actual que estas utilizando, para esto debes de hacer un "snapshot" de tu disco y con ese crear el nuevo.





 


2.-Debes de ejecutar el comando attach-disk desde tu maquina local para poder vincular el disco creador a tu sistema operativo, esto se logra con el siguiente comando:
$ gcloud compute instances attach-disk  [tu instancia]  --disk temp  \--device-name  temporary-disk  \--zone  [zona de tu proyecto]   

4.-Con el proceso anterior finalizado, ingresa por SSH a tu VM y revisa que el vinculo de tu Disco duro temporal se haya realizado y se encuentre montado en tu sistema operativo. para eso deberás listar los discos duros de tu SO con el siguiente comando:
$ ls -l /dev/disk/by-id/google-*
tendrás un salida similar a la siguiente:

$ ls -l /dev/disk/by-id/google-* lrwxrwxrwx 1 root root 9 Jul 29 17:56 /dev/disk/by-id/google-persistent-disk-0 -> ../../sda lrwxrwxrwx 1 root root 10 Jul 29 17:56 /dev/disk/by-id/google-persistent-disk-0-part1 -> ../../sda1 lrwxrwxrwx 1 root root 9 Aug 25 18:16 /dev/disk/by-id/google-temporal-disk -> ../../sdb # El disco temporal reside en: /dev/sdb

5.-Se crea un carpeta temporal, este paso es importante recuerda la ruta:
$ sudo mkdir /mnt/tmp

6.-Monta el nuevo disco:
$ sudo /usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" /dev/sdb /mnt/tmp

7.-Este paso es el mas importante, con el comando "gcimagebundle" se creará un archivo .tar del disco duro montado, y lo pondrá en la carpeta temporal que se creo antes, por eso es importante crear el disco duro temporal con las imagen del disco a resguardar.
$ sudo gcimagebundle \-d /dev/sda -o /mnt/tmp/ --log_file=/tmp/abc.log
nota: el tiempo de ejecución de este proceso, dependerá del tamaño de tu disco y del tipo de VM que estés utilizando.

8.-Cuando el proceso termine, busca un archivo con un nombre conformado de un gran cadena de números hexadecimales  con extensión .tar.gz
/mnt/tmp/HEX-NUMERO.image.tar.gz
9.-Por ultimo copia ese archivo a tu maquina local con el comando de copia que puse anteriormente (Copiar archivos de pc local a VM en Google Compute Engine) y respalda el archivo de la manera que mas te agrade, en mi caso son  dvds




martes, 29 de septiembre de 2015

Copiar archivos de pc local a VM en Google Compute Engine

Si tienes una VM en GCE (Google Compute Engine) y necesitas copiar archivos de tu VM a tu pc local o quieres enviar archivos de tu pc local a tu VM hay un comando que te puede  funcionar

Los ejemplos que se mostraran son en PC con Linux a un VM con Linux (Sí, trabajo con Linux...)

PC a VM

gcloud compute copy-files [/archivo/a/copiar] [Nombre de tu VM]:[/directorio/destino] --zone "[la zona donde reside tu VM]"

VM a PC

gcloud compute copy-files [Nombre de tu VM ]:[/archivo/a/copiar] --zone "[la zona donde reside tu VM]" [/directorio/destino]


Importante:

Para hacer la copia de archivos debes de estar "logueado" en gcloud

gcloud auth loggin  

y tener seleccionado el proyecto donde se encuentra tu VM

gcloud config set [projectnombre-de-tú-proyecto] 
 

jueves, 23 de julio de 2015

Google cloud y App Engine SDK

Bueno, para usar las herramientas de Google como Compute Engine y App Engine, se deben de instalar los SDKs correspondientes.

Aquí los comandos correspondientes para instalarlo en linux, pero también pongo el enlace para hacer las instalaciones en Windows y Mac.

Instalar Cloud SDK

Google Cloud SDK contiene las librerias y herramientas necesarias para el uso de App Engine, Compute Engine, Cloud Storage, BigQuery, Cloud SQL y Cloud DNS.

Descargar e instalar Google Cloud SDK.

curl https://sdk.cloud.google.com | bash

Al terminar la instalación se debe de reiniciar el shell de linux:
exec -l $SHELL
Para el uso de las herramientas de gcloud se debe uno de autentificar/autenticar con el siguiente comando:

gcloud auth login

Enlace y otras instalaciones Aquí (https://cloud.google.com/sdk/)


Google App Engine SDK

Para usar este SDK es necesario descargar el correspondiente SDK que usara nuestra aplicación (Página.appspot.com), en este caso son las instrucciones para usar una aplicación PHP.

Primero se debe descargar el SDK

php : google_appengine_1.9.24

Se descomprime: 
unzip google_appengine_1.9.24.zip 
Se agrega al PATH para su ejecución:
export PATH=$PATH:/path/donde-esta/google_appengine/ 
    nota: Esto solo agrega al PATH hasta el reinicio del Sistema Operativo

 Enlace de instalación de otros SDK Aquí (https://cloud.google.com/appengine/downloads)

¿Que es Google App Engine y Compute Engine?


Hasta hace unos meses no tenia idea de lo que era Google App Engine y Compute Engine, gracias a mi trabajo tuve la oportunidad de trabajar con ellos y descubrir las ventajas que estos servicios te otorgan, cabe mencionar que estos servicios son de pago pero ofrecen versatilidad de precios y hasta en unos caso el uso gratis sin rebasar cierta cuota. 

App Engine. 

Google App Engine es un servicio de alojamiento web que presta Google, este servicio permite ejecutar aplicaciones sobre la infraestructura de Google proporcionado el siguiente dominio, miproyecto.appspot.com, por el momento las cuentas gratuitas tienen un límite de 500 megabyte de almacenamiento permanente y la suficiente cantidad de ancho de banda y CPU para cinco millones de visitas mensuales

Actualmente las aplicaciones Google App Engine se implementan mediante los lenguajes de programación Python, Java, Go y PHP.
 via wikipedia
 
Compute Engine 

Google Compute Engine (GCE) permite a los usuarios crear máquinas virtuales (vm) hospedadas en los servidores de Google, es importante mencionar que este servicio es de paga desde el momento de la creación de la maquina virtual, se cobran por minuto de uso de la VM costando desde los $0.006 dls por una VM michro, hasta los $1.216 dls por una VM con 32 CPUs y 28.8 gb de RAM.

Estas VMs pueden crearse con sistemas operativos de Linux como Ubuntu y Debian Server pero tambien se pueden crear VM con otras distros de linux, Windows Server o con una VM que ya en Virtual Box.

Enlaces :
Ejemplo de pagina con Appengine: ugd.edu.mx