Contenedores VS Máquinas Virtuales

Blue containership with a lot of containers 7

Contenedores frente a las máquinas virtuales:  ¿Cómo decir cual es la mejor opción para su empresa? ¿Necesita una distribución de Linux específica del contenedor?.

Los contenedores pueden permitir a su empresa desplegar una gran cantidad de aplicaciones en un único servidor físico, más que en una máquina virtual (VM) .

VM ocupan más cantidad de recursos del sistema. En cada máquina virtual se ejecuta no sólo una copia completa de un sistema operativo, si no también una gran cantidad de ciclos de RAM y CPU. Por el contrario, todo lo que requiere un contenedor son los programas, el apoyo a las bibliotecas y los recursos del sistema para ejecutar un programa específico.

Lo que esto significa en la práctica es que usted puede poner de dos a tres veces más aplicaciones en un único servidor con los contenedores que en una máquina virtual.

Además, con los contenedores puede crear un entorno operativo portátil y consistente para el desarrollo, prueba y despliegue. Esa es una tripleta ganadora!!!!!.

Entonces, ¿son mejores los contenedores?. Mi respuesta es NO. Todo depende del trabajo y objetivo que tengas para desarrollar tu proyecto.

¿Qué se necesita para ejecutar la cantidad máxima de aplicaciones particulares en un mínimo de servidores? Si este es usted, entonces usted desea utilizar contenedores – teniendo en cuenta que va a tener que hacer una estrecha vigilancia sobre lo sistemas que ejecutan los contenedores. Ya que todas las aplicaciones se sostienen sobre el mismo sistema.

Si necesita ejecutar varias aplicaciones en los servidores y / o tienen una amplia variedad de sistemas operativos entonces tiene que inclinarse por máquinas virtuales.

En el mundo real,  la mayoría de nosotros seguirá usando las dos opciones, contenedores y máquinas virtuales en nuestras nubes y centros de datos. La razón  es porque la economía de los contenedores tiene demasiado sentido financiero para que cualquiera pueda ignorarla y al mismo tiempo, las máquinas virtuales todavía tienen muchas virtudes que demostrar.

A medida que la tecnología del contenedor madure,  se creé que las VM y los contenedores se unirán para formar una nube TOTAL. “No estamos allí todavía, pero llegaremos”, según comento Thorsten von Eicken, director de la empresa RightScale,

Actualmente hay varias empresas española de Servicios Cloud como NubeVPS donde ya nos ofrecen la posibilidad de contratar VPS (Virtual Private Server) con plantillas Docker para poder trabajar con contenedores, esto es “la virtualización de la virtualización“, pero la verdad es que abre un abanico enorme de posibilidades al cliente de Cloud para desplegar sus entornos de pruebas, desarrollo o incluso producción.

¿Que es PXE?

PXE es la tecnología con la que podremos bootear diferentes distros de GNU/Linux en nuestro cliente sin necesidad de CDrom, ya que este boot se hace mediante la red. Ni que decir tiene que para poder hacerlo la BIOS tiene que permitir arraque por red.
En la wikipedia inglesa encontraremos una gran definicion.

¿Quien es Colfire?

Coldfire es un servidor PXE que se a montado en zylk con IP 192.168.1.215, su sistema operativo es Ubuntu Edgy Eft (6.10), tiene una capacidad en disco de unos 4GB de los cuales después de tener imágenes de dapper, edgy. sarge. etch, fedora code 6 y openSuSE 10.1 esta es su disponibilidad de disco:

[email protected]:~$ df −H

Filesystem /dev/sda1 varrun varlock procbususb udev devshm

Size Used 4,1G 647M

84M 46k 84M 0

11M 82k 11M 82k

84M 0

Avail Use% Mounted on 3,2G 17% /

84M 1% /var/run 84M 0% /var/lock

11M 1% /proc/bus/usb 11M 1% /dev

84M 0% /dev/shm

Para la instalación de un server PXE usaremos los siguiente componentes, tfpt, dhcp3−server y por ultimo lftpd.

Bien teniendo en cuenta que ya tenemos hecha la instalación de Ubuntu Edgy Eft (server, ya que no nos harán falta las X en ningún momento) continuemos con el proceso de instalación.

Proceso de instalación

Actuaremos en todo momento como super usuarios de la maquina (root) de lo contrario podría llegar a ser un poco mas incomodo, en mi opinión. Para ello:

Lo primero que haremos sera actualizar el sistema:

El tiempo de espera como siempre dependerá de nuestra conexión de red, es importante disponer de ella ya que el cliente descargara desde ahí los componentes necesarios para la posterior instalación del sistema operativo.

sudo su paswd #

# aptitude update
# aptitude dist−upgrade

5 / 22 Creative Commons by­sa

ArdentIce Poniendo en marcha un servidor PXE 07/04/26 Continuemos pues instalando los servicios y componentes necesarios para la creación de un PXE:

# aptitude install netkit−inetd tftpd−hpa dhcp3−server lftp

Checkearemos que vemos algo parecido a esto:

De no aparecer tendremos que editar el archivo /etc/inetd.conf de la siguiente manera:

vim /etc/inetd.conf

Y rearrancar el demonio inet:

/etc/init.d/inetd restart

Configurando el servidor DHCP

Este el punto casi (por no decir el mas) mas importante de todo el proceso de instalación del server PXE, tenemos que hacer una configuración de acorde a la red en la que se encuentre, lo mas común es encontrarse un red como la que vamos a seguir en este ejemplo:

Comencemos pues conestos parámetros, a configurar el server DHCP. Simplemente tendremos que editar /etc/dhcp3/dhcpd.conf:

[email protected]:~# netstat −uap
Active Internet connections (servers and established)
Proto Recv−Q Send−Q Local Address Foreign Address State PID/Program name udp 0 0 *:tftp

[…]
#:BOOT: Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as “boot servers.”
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd −s /var/lib/tftpb […]

Red: 192.168.1.0
Router: 192.168.1.1
Servidor 192.168.1.215 > En nuestro caso
Rangos: 192.168.1.10 // 192.168.1.200 ‘Rango reservado para el arranque por PXE

6 / 22 Creative Commons by­sa

ArdentIce Poniendo en marcha un servidor PXE 07/04/26

# cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig # cat /dev/null > /etc/dhcp3/dhcpd.conf
# vim /etc/dhcp3/dhcpd.conf

Añadimos las siguientes lineas (lo encontraremos vació):

option domain−name−servers 145.253.2.75, 193.174.32.18; default−lease−time 86400;
max−lease−time 604800;
authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.200; filename “pxelinux.0”;
option subnet−mask 255.255.255.0; option broadcast−address 192.168.1.255; option routers 192.168.1.1;

next−server 192.168.1.215; }

Rearrancamos el demonio:

# /etc/init.d/dhcp3−server restart

Poniendo en marcha el Netboot de Ubuntu Edgy Eft

Lo que haremos a continuación sera meter la distro Ubuntu Edgy Eft en nuestro Netboot, para ello seguiremos los siguientes sencillos pasos:

(Podemos usar otro mirror)

A continuación miraremos si /var/lib/tftpboot/pxelinux.cfg/default tiene una configuracion como la siguiente:

cd /tmp
lftp −c “open http://archive.ubuntu.com/ubuntu/dists/edgy/main/installer−i386/current/images/; mirro mv netboot/* /var/lib/tftpboot
rm −fr netboot

7 / 22 Creative Commons by­sa

ArdentIce Poniendo en marcha un servidor PXE 07/04/26

DISPLAY ubuntu−installer/i386/boot−screens/boot.txt F1 ubuntu−installer/i386/boot−screens/f1.txt
F2 ubuntu−installer/i386/boot−screens/f2.txt
F3 ubuntu−installer/i386/boot−screens/f3.txt

F4 ubuntu−installer/i386/boot−screens/f4.txt F5 ubuntu−installer/i386/boot−screens/f5.txt F6 ubuntu−installer/i386/boot−screens/f6.txt F7 ubuntu−installer/i386/boot−screens/f7.txt F8 ubuntu−installer/i386/boot−screens/f8.txt F9 ubuntu−installer/i386/boot−screens/f9.txt F0 ubuntu−installer/i386/boot−screens/f10.txt

DEFAULT install

LABEL install
kernel ubuntu-installer/i386/linux
append vga=normal initrd=ubuntu-installer/i386/initrd.gz

ramdisk_size=16417 root=/dev/ram rw — LABEL linux

kernel ubuntu-installer/i386/linux

append vga=normal initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16417 root=/dev/ram rw —
LABEL server

kernel ubuntu-installer/i386/linux

append base-installer/kernel/linux/extra-packages-2.6= pkgsel/install- pattern=~t^ubuntu-standard$ pkgsel/language-pack-patterns= pkgsel/install- language-support=false vga=normal initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16417 root=/dev/ram rw —

LABEL expert
kernel ubuntu-installer/i386/linux
append priority=low vga=normal initrd=ubuntu-installer/i386/initrd.gz

ramdisk_size=16417 root=/dev/ram rw — LABEL server-expert

kernel ubuntu-installer/i386/linux

append base-installer/kernel/linux/extra-packages-2.6= pkgsel/install- pattern=~t^ubuntu-standard$ pkgsel/language-pack-patterns= pkgsel/install- language-support=false priority=low vga=normal initrd=ubuntu- installer/i386/initrd.gz ramdisk_size=16417 root=/dev/ram rw —

LABEL rescue
kernel ubuntu-installer/i386/linux
append vga=normal initrd=ubuntu-installer/i386/initrd.gz

ramdisk_size=16417 root=/dev/ram rw rescue/enable=true —

PROMPT 1
TIMEOUT 0

Tambien miraremos si /var/lib/tftpboot tiene la siguiente estructura: 8 / 22 Creative Commons by­sa

ArdentIce Poniendo en marcha un servidor PXE 07/04/26

[email protected]:~# ls -la /var/lib/tftpboot/

total 25052
drwxr-xr-x 9 root root drwxr-xr-x 21 root root -rw-r–r– 1 root root -rw-r–r– 1 root root -rw-r–r– 1 root root -rw-r–r– 1 root root drwxr-xr-x 2 root root drwxr-xr-x 4 root root

4096 2006-12-14 19:25 .

4096 2006-12-14 15:01 ..
8315725 2006-10-21 02:42 boot.img.gz 8849408 2006-10-21 02:42 mini.iso 8381337 2006-10-21 02:42 netboot.tar.gz

13156 2006-10-21 02:44 pxelinux.0
4096 2006-12-14 19:39 pxelinux.cfg 4096 2006-12-14 16:15 ubuntu-installer

Nuestro primer test

Llego la hora de probar el primer boot mediante PXE, rearrancaremos el cliente y entraremos a la secuencia de arranque F12 (en nuestro caso) y elegiremos la opcion de bootear por red. ¿Funciona?

Felicidades, el PXE esta bien configurado.

¿Como puedo usar el Panel Virtualmin?

Muy buenas a todos, voy a dedicar este articulo a contaros un poco Virtualmin, un panel Opensource con licencia GPL enfocado a la creación de Hosting Virtuales de una manera muy sencilla y cómoda para usuarios que empiecen en este mundo del hosting.

Deciros que con Virtualmin podrás levantar tantos hosting como quieras (Web, correo y FTP) compartiendo la IP Primaria que te ha facilitado tu proveedor.
Podremos  levantar un hosting en menos de un minuto!!!

En el panel podemos gestionar:

Email
Base de datos
Administracion de cuentas de Usuario
Seguridad
Configuración y mantenimiento del Sistema
Cloudmin

Yo ahora mismo tengo varios hosting levantados para mis servicios SEO y lo tengo en una empresa española llamada NubeVPS donde tiene unos VPS con Virtualmin preinstalados y listos para trabajar en pocos minutos. Tener un VPS en exclusiva para tu virtualmin te dá mucha capacidad de maniobra para poder dar un servicio de calidad a tus clientes ya que te evitas compartir tus hosting con otros usuarios del mismo servidor.

Un apartado muy importante de Virtualmin es su apartado de “Script installer”.

Es la posibilidad de disponer de scripts para que nuestros usuarios/clientes puedan instalar en sus sitios virtuales las funcionalidades que necesiten. Los scripts tienen la ventaja para el usuario que simplifican la instalación, y para el administrador, que realiza instalaciones correctas, por lo que reducen el numero de consultas necesarias.

Los Scripts, los podéis escribir vosotros en lenguaje perl o yo en mi caso al trabajar con NubeVPS, ellos me facilitan Plantillas de WordPress, Drupal, Joomla, Prestashop para mis hosting. Simplemente con elegir la plantilla que quiero, me instala el CMS en 1 minuto.

Os voy a pasar un video de su Canal de YouTube donde explica perfectamente la instalación de estos Hosting con Plantillas de CMS.

Recordaros también que si estamos satisfechos con el servicio que nos brinda Virtualmin, pero echamos de menos algunas funcionalidades, podéis comprobar si dichas funcionalidades están en la versión de pago, y si es así, podéis comprar una licencia; con ello, conseguireis un numero que podéis introducir en el apartado de “Licencias” y sin necesidad de ningún cambio más ya tendréis todas las funcionalidades de Virtualmin.

 

¿Como saber nuestra IP Pública desde la linea de comandos?

programming-wallpaper-1920x1080-1080x675

Muchas veces nos encontramos con nuestros sistemas Linux que no tienen cargado ningún entorno gráfico o simplemente que solo accedemos a él por medio de SSH.

Entonces, ¿que pasa si necesitamos conocer por cual IP Externa estamos saliendo?.

Podemos usar el navegador de texto “lynx” para movernos por paginas como http://www.cualesmiip.com, pero no os lo recomiendo suele ser muy tedioso moverse por esa jungla gráfica con un navegador de texto 🙁

Para ello os doy un comando muy útil que simplemente debéis ejecutar en la linea de comandos y automáticamente os dará vuestra IP Pública.

El comando es :

curl -L -s –max-time 10 http://checkip.dyndns.org | egrep -o -m 1 ‘([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}’

Espero que os sirva.

2009-10-instalando-mongodb-driver-php-en-ubuntu-9-04

¿Qué es mongoDB?

Es una base de datos orientada a documentos de código abierto escrita en C++. A diferencia de otros sistemas de gestión de bases de datos, mongoDB no sigue el modelo relacional. La base de datos gestiona colecciones de documentos en objetos JSON. Está orientada a la web 2.0, la nube y las configuraciones de varios servidores de bases de datos. En la entrada Más allá de las bases de datos relacionales hablamos de la utilidad de este tipo de bases de datos.

Más información:

Descargando e instalando mongoDB

Existen dos formas de realizar este proceso: podemos descargar el código fuente y compilarlo o bajar directamente los binarios. En este artículo optaremos por lo segundo por la facilidad y comodidad.

En la sección de descargas de la web de mongodb tenemos varias opciones, aunque las que nos interesa es la correspondiente a la versión 1.0.0 para Linux 32 bits (el que use 64 bits deberá escoger su opción). Tras la descarga, tendremos un archivo tar.gz que descomprimiremos con los comandos habituales:

cd Escritorio
tar -zxvf mongodb-linux-i686-1.0.0.tgz
cd mongodb-linux-i686-1.0.0

Si observamos el contenido del directorio vemos que se organiza en los subdirectorios bin, include y lib. En principio ya podríamos ejecutar mongodb desde ese directorio, pero por cuestiones de orden y claridad, copiaremos el contenido de esas subcarpetas en los directorios de igual nombre bajo /usr/local, operación para la que necesitamos adquirir permisos de root.

sudo -s
mv bin/* /usr/local/bin
mv include/* /usr/local/include
mv lib/* /usr/local/lib

De aquí en adelante asumiremos que estamos logueados en la terminal como root. Como ya tenemos los archivos donde nos interesan, podemos eliminar la carpeta descomprimida y el archivo descargado:

cd ../
rm -fr mongodb-linux-i686-1.0.0 mongodb-linux-i686-1.0.0.tgz

Configuración inicial

Antes de iniciar el demonio de mongodb es necesario crear una serie de directorios de trabajo, ya que al no instalarse, estos directorios no se crean. El más fundamental será el directorio donde el gestor almacenará las estructuras necesarias para almacenar en el disco duro los datos. Por defecto la carpeta es /data/db pero en este tutorial guardaremos los datos bajo /var/lib/mongodb (mysql por ejemplo también guarda los datos bajo /var/lib). Para ello creamos el directorio:

mkdir /var/lib/mongodb

Este directorio es propiedad de root. En este tutorial el demonio mongod se ejecutará bajo el usuario root. Podríamos ejecutarlo bajo otro usuario existente o crear uno específico para ello, tras lo que podríamos cambiar la propiedad del directorio de los datos por la del usuario usado por mongod.

El demonio puede configurarse mediante una serie de parámetros (ejecutar mongod –help para una lista) pasados al ejecutable del demonio, pero esta forma es un poco sucia y puede exponer ciertas configuraciones a la vista de cualquier usuario del sistema que explore la lista de procesos. Por ello, mongodb permite ser llamado especificándole la ruta a un archivo de configuración (de tipo conf). Ya que existe esa posibilidad, nosotros la vamos a hacer de esa forma. Para ello creamos un directorio bajo /etc llamado mongodb:

mkdir /etc/mongodb

Y con cualquier editor creamos el archivo mongodb.conf y le asignamos el contenido:

nano /etc/mongodb/mongodb.conf
# Config file for MongoDB

dbpath = /var/lib/mongodb

Como puede observarse, la directiva de configuración dbpath (que podía fijarse como parámetro del demonio) se usa de forma análoga en el archivo de configuración, especificándole a la aplicación dónde se encuentra el directorio con los datos. Existen directivas que no reciben argumentos, por ejemplo –auth no requiere nada a continuación. En estos casos, en el archivo de configuración deberemos igualarlo a true. Continuando con el ejemplo, –auth quedaría como auth = true. Por el momento no usaremos más directivas. En la web oficial existe un apartado dedicado a cada parámetro que podemos usar para configurar mongodb.

Iniciando el demonio

Para ejecutar el demonio escribiremos (le indicamos la ruta al archivo de configuración con -f):

mongod -f /etc/mongodb/mongodb.conf

Y si todo va bien, obtendremos algo como esto:

Tue Oct 13 21:47:02 Mongo DB : starting : pid = 16139 port = 27017 dbpath = /var/lib/mongodb master = 0 slave = 0  32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations for more

Tue Oct 13 21:47:02 db version v1.0.0, pdfile version 4.4
Tue Oct 13 21:47:02 git version: afe21e02c11f9a923ab1c95edf6fdd95b9a4a51e
Tue Oct 13 21:47:02 sys info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686
Tue Oct 13 21:47:02 waiting for connections on port 27017
Tue Oct 13 21:47:02 web admin interface listening on port 28017

Tras esta operación ya tenemos al demonio listo para atender nuestras peticiones.

Instalar el driver para PHP

Para poder instalar el driver de mongodb para php debemos tener instalado el paquete PEAR y la versión de desarrollo de php. Si no lo tenemos instalado, sólo tenemos que ejecutar:

apt-get install php-pear php5-dev

Y para instalar el driver:

pecl install mongo

Configurar PHP

El siguiente paso y último de la instalación y configuración consiste en indicarle a php que debe cargar la nueva extensión que contiene el driver en sí. Para ello creamos el siguiente archivo:

nano /etc/php5/conf.d/mongodb.ini

Y le asignamos la carga del módulo y sus directivas de configuración:

extension=mongo.so

[mongo]
; If the driver should reconnect to mongo
mongo.auto_reconnect = true

; Whether to allow persistent connections
mongo.allow_persistent = On

; Maximum number of persistent connections (-1 means unlimited)
mongo.max_persistent = -1

; Maximum number of links (persistent and non-persistent, -1 means unlimited)
mongo.max_connections = -1

; Default host for mongo connection
mongo.default_host = www.example.com

; Default port for mongo database
mongo.default_port = 42

; When saving files to the database, size of chunks to split them into
mongo.chunk_size = 1024

; Specify an alternate character to $ to use for special db functions ($set, $push, $exists, etc.)
mongo.cmd = "$"

Tras esta operación debemos reiniciar Apache para que PHP cargue de nuevo la configuración y los módulos (sólo si trabajamos con mod_php).

/etc/init.d/apache2 restart

Razones para usar SqLite en 2016

sqlite

Fácil de manejar

Hay unas cuantas cosas que hay que entender para poder garantizar que el servidor de base de datos está configurado correctamente (buffers compartidos, tamaño efectivo caché, mem trabajo, mem trabajos de mantenimiento, tampones wal …). La actualización puede ser un proceso de miedo. Y además, ¿sabes dónde está su base de datos? ¿Puede señalar algún lugar y decir: “ese es mi base de datos”?

Quiero destacar la diferencia entre la gestión de un SQLite db en comparación con un servidor de base típica.

SQLite es fácil de manejar – es un solo archivo (o en algunos momentos un archivo + de registro de transacciones). El formato de archivo es estable a través de versiones principales, por lo que si tuviera un archivo de base de datos SQLite desde la versión 3.0.0 (en 2004), podría leerlo utilizando la última SQLite 3.10.0. Si quiero tener el archivo de base de datos conmigo en una unidad flash, copia el archivo, o mejor aún guardo en mi carpeta de Dropbox. Si quiero compartir algunos análisis de datos que estoy haciendo con un compañero de trabajo, sólo puede enviar una copia del archivo de base y están listos. Tener la base de datos en un único archivo con un formato estable es una característica.

SQLite es muy fácil de configurar. Las características SQLite son manejadas de dos maneras: banderas de compilación y declaraciones PRAGMA (configuración en tiempo de ejecución).

SQLite es desarrollado activamente por algunos ingenieros de software realmente sorprendentes. Las nuevas características de alta calidad se añaden a un ritmo impresionante. Recientemente SQLite añadió soporte para datos JSON a través de la extensión json1. SQLite también lanzó una versión mejorada de la extensión de búsqueda de texto completo, que incluye como resultado la clasificación utilizando el algoritmo BM25.

SQLite ahora funciona dos veces más rápido que la versión 3.8.0 y tres veces más rápido que la versión 3.3.9

A pesar de todos estos cambios y mejoras, SQLite raramente presenta errores. El conjunto de pruebas SQLite es ampliamente considerado como uno de los mejores en la industria.

Extensible y hackeable

Mi característica favorita de SQLite es su extensibilidad. Debido SQLite está integrado por su aplicación, que se ejecuta en el mismo espacio de direcciones y puede ejecutar código de la aplicación en su nombre. Tanto el conductor Python biblioteca SQLite estándar, pysqlite, y el conductor alternativo proporcionan APSW APIs para la definición de las funciones de encargo SQL, funciones de agregado, y colaciones. APSW va un paso más allá y ofrece APIs para definir tablas virtuales y sistemas de archivos virtuales!

La velocidad del rayo

SQLite es muy rápido. Se ejecuta en la misma máquina, lo que no hay sobrecarga de red al ejecutar consultas o la lectura de los resultados. Se ejecuta en el mismo espacio de direcciones, por lo que no existe un protocolo de alambre.

Modo WAL

La versión 3.7.0 de SQLite añadió un nuevo método de diario que utiliza un registro de escritura anticipada. Por sí mismo esto no es realmente una excelente noticia, pero lo que significa para los desarrolladores de aplicaciones Web (o cualquiera que se relacione con la concurrencia) es que los lectores ya no bloquean a los escritores, y viceversa. O, para decirlo de otro modo, la lectura y escritura puede producirse tanto simultaneamente.

 

database-sqlite

Como usar fsck en Linux desde el terminal

repair-console

El mandato fsck es una indispensable herramienta para verificación y reparación de sistemas de archivos dañados. A continuación hago un resumen de los usos más comunes de fsck.

La verificación de cualquier partición del disco duro requiere, necesariamente, desmontar antes ésta. Utilizar el mandato fsck en una partición montada, puede ocasionar la pérdida o corrupción de datos. Una vez desmontada la partición a verificar, es posible realizar una verificación y/o reparación utilizando cualquiera de los siguientes ejemplos de uso del mandato fsck.

Forzar la verificación del sistema de archivos, responder automáticamente con «Si» (opción -y) a la reparación de cualquier problema que requiera intervención humana (opción -y) y mostrando una barra de progreso (opción -C).

fsck -fyC /dev/sdXX
Forzar la verificación del sistema de archivos y responder automáticamente con «Si» (opción -y) a la reparación de cualquier problema que requiera intervención humana (opción -y).

fsck -fy /dev/sdXX
Lo mismo que el mandato anterior, pero además con verificación de solo-lectura para buscar bloques dañados (opción -c), preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k).

fsck -fykc /dev/sdXX
Lo mismo que el mandato anterior, pero con verificación de lectura-escritura no-destructiva para buscar bloques dañados (opción -cc), preservando la lista de bloques dañados existente donde se añadirán nuevos bloques dañados a ésta (opción -k). Sí se encuentra un bloque dañado, este se añade al inodo de bloques dañados.

Optimizar tu MySQL

query_cache_size:
MySQL 4 proporciona una característica que puede resultar muy útil – una caché de consultas. En una situación en la base de datos tiene que ejecutar varias veces las mismas preguntas en el mismo conjunto de datos, devolviendo el mismo resultado cada vez, MySQL puede cachear resultados, evitando la sobrecarga de ejecución a través de los datos una y otra y es extremadamente útil en servidores con mucha carga.

key_buffer_size:
El valor de key_buffer_size es el tamaño del búfer utilizado con los índices. Cuanto mayor sea el buffer, más rápido terminará el comando SQL y el resultado será devuelto. Se supone que lo mejor es ajustar el key_buffer_size con al menos un cuarto de la memoria del servidor, pero no más de la mitad de la cantidad total. Idealmente, será lo suficientemente grande como para contener todos los índices (el tamaño total de todos los archivos. MYI en el servidor).

table_cache:
El valor predeterminado es 64. Cada vez que MySQL tiene acceso a una tabla, se coloca en la caché. Si el sistema accede a muchas tablas, es más rápido para tener estas en la caché. MySQL al ser multi-threaded, puede ejecutar muchas consultas sobre sobre una tabla a la vez, y cada uno de éstas abrirá una tabla.

sort_buffer:
El sort_buffer es muy útil para acelerar las operaciones de myisamchk (razón por la cual se fija mucho más alto para ese fin en los archivos de configuración por defecto), pero también puede ser útil cuando se realizan todos los días un gran número de ordenaciones o clasificaciones.

thread_cache:
Si se tiene un servidor con mucha carga que está recibiendo una gran cantidad de conexiones rápida, hay que configurar la thread_cache lo suficientemente alto para que el valor d threads_created en SHOW STATUS deja de aumentar. Esto debe tomar parte de la carga fuera de la CPU.

tmp_table_size:
(no incluido en el archivo de configuracion, pero este parámetro también se puede configurar).”Created_tmp_disk_tables” son el número de tablas temporales implícitos en el disco creado durante la ejecución declaraciones y “Created_tmp_tables” están basados en memoria. Obviamente, es malo si tiene que ir a la disco en lugar de la memoria todo el tiempo.

wordpress_mysql_backup