OVH Community, your new community space.

HOWTO: Instalación "invertida" de SATA + SSD en servidores Hybrid de OVH


PacoSS
04/11/2011, 06:20
Puedes hacer una partición de 2 Gb en el manager e instalar proxmox normalmente.

Luego, con el servidor ya en marcha, configuras los SSD como quieras (yo los tengo LVM stripped hace 2 años), formateas, mueves el contenido de la carpeta de las máquinas virtuales y lo cambias en el /etc/fstab para que sea permanente.
El resto de discos mecánicos, haces partición y la montas en /backups por ejemplo.

carlesrub
02/11/2011, 11:10
Hola Marcos,

Lo primero darte las gracias por tu howto esta francamente bien. El tema es que yo he contratado también un EG Hybrid 2011 con Raid 1 por hardware pero cuando intento reinstalar solo me sale el disco SATA de 2 Tb y claro no puedo usar los ssd para hacer la instalación del sistema base que en este caso es un proxmox 1.9 (debian).

Hay alguna forma de hacerlo ? Con el modo rescue pro o algo por el estilo.

Gracias W\_8

Kilburn
18/10/2011, 08:07
Cita Publicado inicialmente por luis_sanz
fijate que digo Striped y no Linear, con Linear no tendras mayor velocidad eso es solo unir 2 discos como si fueran uno, el Striped es mas o menos como un RAID0 hasta puedes elegir el tamaño de los bloques y tal.
Todísima la razón, mea culpa!

luis_sanz
16/10/2011, 18:46
Cita Publicado inicialmente por Power
Hola luis_sanz,

Vale, ya lo he entendido.
Te referías a usar un solo servidor pero sólo con SSD grandes en RAID-0 (o mejor aún en LVM linear (para evitar el problema del TRIM que comentaba Kilburn)
yo he probado tanto el RAID0 como el LVM Striped para las maquinas virtuales sobre SSD, y las 2 opciones funcionan bien aunq actualmente me decante por LVM Striped, fijate que digo Striped y no Linear, con Linear no tendras mayor velocidad eso es solo unir 2 discos como si fueran uno, el Striped es mas o menos como un RAID0 hasta puedes elegir el tamaño de los bloques y tal.

para discos SSD lo mejor es
4GB (no te hace falta mas) para / en RAID0
swap al gusto
y el resto en LVM striped
(pero el LVM hazlo manualmente una vez instalado el SO)

Power
16/10/2011, 17:57
Hola luis_sanz,

Vale, ya lo he entendido.
Te referías a usar un solo servidor pero sólo con SSD grandes en RAID-0, o mejor aún en LVM linear striped (para evitar el problema del TRIM que comentaba Kilburn)
Editado: cambiado "linear" por "striped"

Me gusta la idea.
Con 600 GB de la suma de los 2 SSD de un EG 2011 SSD Max se tendría una máquina ultrarápida y bastante más segura, al no tener discos mecánicos.
Lo iré rumiando.
Gracias.

Saludos

luis_sanz
16/10/2011, 17:04
Cita Publicado inicialmente por Power
Hola luis_sanz,

No sé si te he entendido.
Creo que te refieres a crear una VM independiente sólo para MySQL.
Y que todas las conexiones a MySQL de todas las VMs, en lugar de hacerse a localhost se hiciesen al nombre de esa nueva VM.
si correcto, esa era la idea
lo de cambiar localhost por una ip fija o por 127.0.0.X que tambien funciona se hace desde SSH en un minuto y automaticamente.

Cita Publicado inicialmente por Power
Ahí el problema es que se me va de precio tener un servidor adicional, de 150€/mes, sólo para MySQL.
(Aparte del mismo problema de tener que cambiar todas las conexiones de MySQL)
lo que te decia no era alquilar un SSD para mysql, sino un SSD para todo "proxmox y tus MV"



por otro lado y volviendo a tu pregunta inicial, si sigues con tu idea de usar un hybrid, tambien lo tienes facil para usar mysq en los discos SSD

1º instalas proxmox en los SATA mecanicos y dejas los SSD vacios, en estos creas un sistema de archivo NFS, creas un directorio llamado /mysql-de-la-MV-XX y pones ahi todo el contenido de /var/lib/mysql de la maquina virtual, y en esa url creas un acceso directo al directorio creado, listo.. facil y rapido.
ya tienes tus bases de datos en tus SSD

** es mas, hasta apostaria a que podrias usar los SSD sin formato NFS simplemente usando un enlace simbolico a los discos SSD en la url de la MV /var/lib/mysql, no lo he probado pero todo indica que deberia funcionar sin tener que hacer nada mas, aunq tengo mis dudas, pero recuerda el tema de los permisos en la nueva carpeta creada fuera de la MV

Power
16/10/2011, 08:40
Hola luis_sanz,
Cita Publicado inicialmente por luis_sanz
poder claro q se puede, añades los discos SSD como almacenamiento y colocas ahi una MV solo para mysql y ya lo tienes listo.
No sé si te he entendido.
Creo que te refieres a crear una VM independiente sólo para MySQL.
Y que todas las conexiones a MySQL de todas las VMs, en lugar de hacerse a localhost se hiciesen al nombre de esa nueva VM.

El problema es que, actualmente ya hay cientos de conexiones definidas, en las cuentas de mis clientes, a MySQL utilizando como host localhost.
Sería muy complicado cambiar todas.

Cita Publicado inicialmente por luis_sanz
...pero para mi es una tonteria porq en caso de q se rompa ese disco SSD o alguno de ellos en caso de raid0 te quedas con todas las WEBs off, yo para eso lo haria seria contratar un SSD max, y lo pondria todo en raid0 o lvm Striping a tu gusto y tendrias un disco de 600GB que eso ya te daria para todo y mas.. vamos que usar un hybrid para eso lo veo una tonteria y mas inseguro que un servidor SSD en raid0
Ahí el problema es que se me va de precio tener un servidor adicional, de 150€/mes, sólo para MySQL.
(Aparte del mismo problema de tener que cambiar todas las conexiones de MySQL)

Muchas gracias por tus indicaciones.

Por cierto, creo que me he salido un poco del tema principal del hilo abierto por MarcosBL. Perdón.

Saludos

luis_sanz
15/10/2011, 20:02
Cita Publicado inicialmente por Power
¿Habría alguna manera de hacer que las bases de datos MySQL de las VMs estuvieran en los SSD?

Saludos
poder claro q se puede, añades los discos SSD como almacenamiento y colocas ahi una MV solo para mysql y ya lo tienes listo.

pero para mi es una tonteria porq en caso de q se rompa ese disco SSD o alguno de ellos en caso de raid0 te quedas con todas las WEBs off, yo para eso lo haria seria contratar un SSD max, y lo pondria todo en raid0 o lvm Striping a tu gusto y tendrias un disco de 600GB que eso ya te daria para todo y mas.. vamos que usar un hybrid para eso lo veo una tonteria y mas inseguro que un servidor SSD en raid0

Power
15/10/2011, 18:15
Hola,

Aunque me ha gustado muchísimo el tema, estoy intuyendo que no me va a servir para lo que estaba pensando.

Quería instalar Proxmox, con VMs de OpenVZ.
Una VM tendrá unos 100 GB de tamaño.
Por tanto, no me va a caber en los SSD.
Así que tendría que instalarla en los SATA.
(Sin RAID-1, ya que Proxmox no soporta RAID-1 software)

¿Habría alguna manera de hacer que las bases de datos MySQL de las VMs estuvieran en los SSD?

Saludos

Kilburn
15/10/2011, 16:37
Bueno Marcos, como pides sugerencias, aquí van algunas...

1. Mostrar la tabla disco -> ruta al principio
En la configuración hay cuatro discos, así que estaría bien indicar claramente qué ruta corresponde a cada disco, ya que sino es un poco difícil de seguir. Me refiero a algo tan sencillo como:
Disco SSD1 -> /dev/sda
Disco SSD2 -> /dev/sdb
Disco SATA1 -> /dev/sdc
Disco SATA2 -> /dev/sdd
2. Sistema "inseguro"
Si bien los discos SATA estan en raid1 y por tanto si se escacharra uno no pasaría "nada", la raíz del sistema está en el disco SSD1 sin redundancia, y por tanto si ese disco falla la máquina dejaría de funcionar.

Estaría bien avisar de este hecho, y recomendar que se hagan copias de la partición /dev/sda1 cada vez que se cambien cosas de sistema, para poderlo recuperar si alguna vez falla ese disco.

3. Mostrar fstab completo
Estaría interesante que mostratas cómo queda el /etc/fstab tras finalizar la configuración, para que sirva de referencia a alguien que intente reproducirla.

luis_sanz
15/10/2011, 16:17
marcus!! solo un par de apuntes

comentas en otro post lo de redimensionar particiones y tal, haz la prueba antes, porq no se bien como andara ahora el asunto con LVM pero antes para poder redimensionar se exigia que las particiones fueran ext3, no se yo si con XFS podras hacerlo, como ubuntu lleva las ultimas versiones de todo quiza esto haya cambiado por eso pruebalo antes y nos sacas de dudas.

el tema de formateo de las SSD, esta genial asi, aunq a mi la verdad que me gusta mas de la manera que yo.
Lo que hago antes de crear un RAID0 o RAID1 es dejar las particiones identicas, no me gusta hacer un raid0 de una particion 20G con otra de 19G
Por eso en tu caso yo lo que haria seria.
1º al instalar el SO en el SSD1 asignaria a swap 500MB o 1GB, eso al gusto de cada cual.
2º antes de crear el raid0 igualar el espacio de las 2 particiones, para eso, si en el SSD2 tengo 1GB mas que en el SSD1 pues meto ese sobrante a SWAP, formateandolo y configurandolo luego en fstab para que se use la swap tambien como un 'RAID0', por llamarlo de alguna manera.
/dev/sda2 swap swap pri=1 0 0
/dev/sdb2 swap swap pri=1 0 0
de esta forma, se llenaran las 2 swap a la vez, colocando cada archivo swapeado en una de las particiones y aumentando luego la velocidad de lectura considerablemente si la llegases a usar.

MarcosBL
15/10/2011, 14:53
Saludos chicos !

No lo he colocado en HOWTO's porque aún es un "Trabajo en proceso", hay alguna cosa que no tengo del todo clara, y tenía pendiente probar el tema de TRIM ( que como veo que comenta Kilburn no está soportado en este setup... ouch! )

Voy a seguir instalando todo el soft en la máquina, y a comentar con WuShell el tema TRIM, y voy actualizando con lo que vaya viendo/me comente él. En cuanto esté mínimamente "estable", lo edito y lo publico en HOWTO's.

Si veis cualquier cosa que no os convenzca, por favor, comentad, y lo probamos; toda ayuda se agradece siempre

Kilburn
15/10/2011, 11:29
Ojo: como ya se ha comentado otras veces, linux soft raid *no* tiene soporte TRIM para SSDs. Yo recomiendo que ese raid0 que configuráis entre los SSDs lo cambiéis por un "lvm linear", que sí soporta TRIM...

Power
15/10/2011, 11:13
Hola,

Sólo puedo decir: ¡¡¡ Gracias, gracias, gracias !!!
¡¡¡ Alucinante el manual !!!

Creo que me será una gran fuente de inspiración durante mucho tiempo.

Me uno a la petición de que lo pongas en los How-To.

Saludos y, de nuevo, gracias.

albertdb
14/10/2011, 19:09
Muy completo .

Solo un problema: subforo equivocado, se perderá en la inmensidad de posts comparativamente poco importantes.

Salu2

xavisent
14/10/2011, 18:45
Gracias por este estupendo tutorial,
no olvides postearlo tambien en howto's ;-)

Saludos,

MarcosBL
14/10/2011, 18:09
Lo prometido es deuda... como veo que hay más gente estos días "peleando" con los Hybrid para pasar el máximo posible de sistema a los discos SATA, y aprovechar de esta forma los SSD, y gracias a la ayuda y el permiso del amigo WuShell, he pensado compartir el documento de instalación aqui, en el foro, por si a alguien le viene bien una ayuda con este tema.

Lo pego aquí a modo de archivo, pero quizá os sea más "Legible" en la versión "documento web", fuera del foro.

Un saludo a todos, gracias a todos los que hicieron sugerencias en mi post al respecto ( sdzzds, Power, manoleet, diazjc, luis_sanz ! ), y cualquier nueva sugerencia sobre el método empleado será, por supuesto, muy bien recibida.

http://marcosbl.com/lab/sistemas/hybrid/

Abstract

OVH [1] propone entre sus gamas de servidores máquinas Hybrid, con discos duros SSD y SATA, combinando la velocidad de los primeros con la gran capacidad de los segundos, lo que los hace un producto muy atractivo para muchos de nosotros. En este caso concreto, hablamos de la siguiente máquina, un EG Hybrid 2011 (SSD + SATA2) [2] :

  • Intel Xeon i7 W3520 4x2(HT)x2.66+ GHz
  • 24 GB DDR3
  • SSD Intel SSD 320 - 2x 40 GB
  • SATA 2 - 2x 2TB


Sin embargo, el Manager de instalación de OVH, aunque nos permite seleccionar RAID o sólo un disco, sólo nos mostrará el primer disco SSD, sin darnos acceso a los SATA, por lo que todo el sistema acabará en los discos SSD, dejándonos, por ejemplo, en esta configuración de Ubuntu 11.04, con sólo 27 GB de discos SSD libres, de los 80 GB originales.

En el caso que nos ocupa, se solicitó a OVH un cambios de arranque a los SATA, para poder instalar el sistema en ellos, y aprovechar al máximo el espacio y velocidad de los discos SSD, pero nos fue denegada ya que es un servicio que sólo se ofrece con RAID Hardware, y no Software, el incluído con este tipo de máquina.

Esta es la historia de cómo se logró una aproximación a este fin, con varias ventajas adicionales:
  • Una configuración con casi todo el sistema montado en los discos SATA
  • Una disponibilidad final de 66 GB en los discos SSD en lugar de los 27 GB iniciales con RAID 1
  • Una partición concreta dentro de /home/ssd con todo el espacio disponible SSD
  • Una mejora de un 100% en la velocidad de los SSD, uniendo el sobrante del primero con la totalidad del segundo, en RAID 0
  • La habilidad de poder cambiar los tamaños de las particiones SATA en caliente (fácilmente extensible al espacio SSD también)


Autores

Versión 0.1 Work in progress - Faltan algunos detalles de redacción/limpieza

Wu - Borja
Sysadmin y cabeza pensante
sistemas@codigo23.net
http://codigo23.net
WuShell en Twitter
MarcosBL - Marcos
Generador del problema original y proveedor de bizcochitos
soy@marcosbl.com
http://marcosbl.com
MarcosBL en Twitter
Consideraciones previasç

Todos los comandos reflejados en este documento se han ejecutado como root, a menos que se especifique lo contrario.

En este documento se asume que estamos usando Debian [3] o una distribución derivada (como Ubuntu [4] por ejemplo). Prácticamente todo es aplicable a cualquier otra distribución de Linux, simplemente habrá que cambiar las lineas en las que se usa apt [5] por los comandos correspondientes en otra distribución (pacman [6] en archlinux [7], emerge [8] en gentoo [9] o yum [10] en fedora [11], por ejemplo)

Paso 1 - Particionado e Instalación iniciales

Reinstalamos el server desde el manager de OVH, seleccionando particionado manual e indicando que simplemente utilice el primer disco (esto hará que la instalación se realice en el primer disco SSD).

Creamos dos particiones:
Partición (primaria) de 2GB formateada con ext4, punto de montaje /
Partición (secundaria) de 1GB, swap
Y procedemos con la instalación del sistema Linux que hayamos elegido previamente.

Paso 2 - Particionar discos SATA y crear RAID1

Una vez que tenemos el sistema instalado y podemos acceder al mismo, instalamos gdisk [12] para poder particionar los discos SATA (no nos sirve cfdisk [13], por ejemplo, por que estos discos tienen una tabla de particiones GPT [14] (GUID partition table):

apt-get install gdisk
Usamos gdisk para crear una particion en cada disco SATA. gdisk es una herramienta que dispone de una interfaz similar a la de una consola o terminal, podemos invocarlo y luego pasarle comandos para que los ejecute:

root@nsXXXXX:~# gdisk /dev/sdc
GPT fdisk (gdisk) version 0.6.14

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help)
Disk /dev/sdc: 3907029168 sectors, 1.8 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): FDD1B989-ACFB-49CB-BAC3-290D42C4E716
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 3907029134
Partitions will be aligned on 8-sector boundaries
Total free space is 181001791 sectors (86.3 GiB)

Number Start (sector) End (sector) Size Code Name
1 34 3726027343 1.7 TiB FD00 primary

Command (? for help): d 1
Using 1

Command (? for help): p
Disk /dev/sdc: 3907029168 sectors, 1.8 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): FDD1B989-ACFB-49CB-BAC3-290D42C4E716
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 3907029134
Partitions will be aligned on 8-sector boundaries
Total free space is 3907029101 sectors (1.8 TiB)

Number Start (sector) End (sector) Size Code Name

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-3907029134, default = 34) or {+-}size{KMGTP}:
Information: Moved requested sector from 34 to 40 in
order to align on 8-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (40-3907029134, default = 3907029134) or {+-}size{KMGTP}:
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): L
0700 Linux/Windows data 0c01 Microsoft reserved 2700 Windows RE
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8301 Linux reserved 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery be00 Solaris boot bf00 Solaris root
bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup
bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se
bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3
bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data
c002 HP-UX service ef00 EFI System ef01 MBR partition scheme
ef02 BIOS boot partition fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 0700):
Changed type of partition to 'Linux/Windows data'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed, possibly destroying your data? (Y/N): Y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
En este caso hemos listado la tabla de particiones, hemos borrado una primera partición existente y hemos creado una nueva, marcando que el tipo de partición es de datos (Linux/Windows), aunque ésto último no sería necesario ya que las herramientas que usaremos luego para crear el RAID 1 [15] y el sistema de ficheros [16]

El mismo proceso que hemos hecho para el primer disco SATA (/dev/sdc en este caso) lo repetimos con el segundo disco SATA (/dev/sdd en este caso)

Con las particiones creadas, creamos el raid 1 por software utilizando mdadm [17]:

root@nsXXXXX:~# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[cd]1 --assume-clean
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
root@nsXXXXX:~#
En este caso estamos creando un nuevo dispositivo (/dev/md0) que será el dispositivo que vamos a utilizar en todo momento en lugar de las particiones tradicionales (/dev/sdc y /dev/sdd) que serán los componentes del RAID.

Al llamar a mdadm le pasamos el parámetro --assume-clean para que no realice un sync inicial de los componentes del RAID (no es necesario, ya que están vacíos).

Una vez creado el RAID, podemos obtener más información sobre el mismo usando el propio mdadm o comprobando el fichero /proc/mdstat:

root@nsXXXXX:~# mdadm --misc --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Oct 13 18:52:12 2011
Raid Level : raid1
Array Size : 1953513387 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953513387 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Thu Oct 13 18:52:12 2011
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : nsXXXXX.ovh.net:0 (local to host nsXXXXX.ovh.net)
UUID : 05fe0aa6:ef5bb851:10d4ac6d:4ca936b6
Events : 0

Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
root@nsXXXXX:~#
root@nsXXXXX:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md0 : active raid1 sdd1[1] sdc1[0]
1953513387 blocks super 1.2 [2/2] [UU]

unused devices:
root@nsXXXXX:~#
Paso 3 - Crear LVM en los discos SATA

En cuanto hemos terminado de crear el RAID, creamos un volumen físico [18] LVM [19] que englobe todo el RAID:

root@nsXXXXX:~# pvcreate /dev/md0
Physical volume "/dev/md0" successfully created
root@nsXXXXX:~#
podemos obtener más información del volumen físico utilizando pvdisplay [20]

root@nsXXXXX:~# pvdisplay
"/dev/md0" is a new physical volume of "1,82 TiB"
--- NEW Physical volume ---
PV Name /dev/md0
VG Name
PV Size 1,82 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 4srLEs-fkh9-nYW9-hUDV-2pfd-fdEj-Dge1P1
Luego creamos un grupo de volumen, llamado "DiscosSATA":

root@nsXXXXX:~# vgcreate DiscosSATA /dev/md0
Volume group "DiscosSATA" successfully created

Podemos consultar la info del grupo de volumenes con vgdisplay [21]:

root@nsXXXXX:~# vgdisplay
--- Volume group ---
VG Name DiscosSATA
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1,82 TiB
PE Size 4,00 MiB
Total PE 476931
Alloc PE / Size 0 / 0
Free PE / Size 476931 / 1,82 TiB
VG UUID 2D7Ge5-eTZA-W4tC-Czh1-9TUZ-VGaV-eebNQ9

Y, por último creamos los volúmenes lógicos [22] (el equivalente a las particiones tradicionales, que será lo que montemos en los puntos de montaje correspondientes):

Creamos un volumen lógico de 10GB para el montaje de /usr:

root@nsXXXXX:~# lvcreate -L 10G DiscosSATA -n lv_usr
The link /dev/DiscosSATA/lv_usr should had been created by udev but it was not found. Falling back to direct link creation.
Logical volume "lv_usr" created
Creamos un volumen lógico de 20GB para el montaje de /var:

root@nsXXXXX:~# lvcreate -L 20G DiscosSATA -n lv_var
The link /dev/DiscosSATA/lv_var should had been created by udev but it was not found. Falling back to direct link creation.
Logical volume "lv_var" created
Creamos un volumen lógico para el montaje de /home, utilizando el resto del espacio en disco disponible:

root@nsXXXXX:/# lvcreate -l +100%FREE DiscosSATA -n lv_home
The link /dev/DiscosSATA/lv_home should had been created by udev but it was not found. Falling back to direct link creation.
Logical volume "lv_home" created

Una vez creados, podemos ver los volúmenes lógicos utilizando lvdisplay [23]:

root@nsXXXXX:/# lvdisplay
--- Logical volume ---
LV Name /dev/DiscosSATA/lv_usr
VG Name DiscosSATA
LV UUID YDxvNN-To3E-SFoj-cAHj-nnKI-jYfR-dtY5dW
LV Write Access read/write
LV Status available
# open 0
LV Size 10,00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

--- Logical volume ---
LV Name /dev/DiscosSATA/lv_var
VG Name DiscosSATA
LV UUID Fzuxmd-oIsP-iR1a-gAsq-gqRe-Ommc-mbGGdX
LV Write Access read/write
LV Status available
# open 0
LV Size 20,00 GiB
Current LE 5120
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

--- Logical volume ---
LV Name /dev/DiscosSATA/lv_home
VG Name DiscosSATA
LV UUID lhrOUL-BX2x-BcpS-Q3J5-dViY-ERKc-wa4L1A
LV Write Access read/write
LV Status available
# open 0
LV Size 1,79 TiB
Current LE 469251
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
Después de crear los volúmenes lógicos, tenemos que formatear esos volúmenes con el sistema de ficheros que creamos mas conveniente (mi recomendación, siempre XFS [24]).

Antes de poder formatear bajo XFS, necesitamos instalar una serie de utilidades que, en Ubuntu por ejemplo, no vienen instaladas:
apt-get install xfsprogs xfsdump

Formateo las particiones con XFS:

root@nsXXXXX:/# mkfs.xfs /dev/DiscosSATA/lv_usr
meta-data=/dev/DiscosSATA/lv_usr isize=256 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
root@nsXXXXX:/# mkfs.xfs /dev/DiscosSATA/lv_var
meta-data=/dev/DiscosSATA/lv_var isize=256 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
root@nsXXXXX:/# mkfs.xfs /dev/DiscosSATA/lv_home
meta-data=/dev/DiscosSATA/lv_home isize=256 agcount=4, agsize=120128256 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=480513024, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=234625, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

Paso 4 - Mover particiones (/var, /usr, etc) a LVM

El siguiente paso consiste en clonar los actuales directorios /usr, /var y /home, copiando sus contenidos a los volúmenes lógicos que hemos creado para utilizarlos para esos contenidos.

Para poder hacer la copia necesitamos montar esos volúmenes lógicos en algún lugar, por lo que creamos unos puntos de montaje temporales:
mkdir /mnt/{home,usr,var}

Para luego montar los volúmenes lógicos en esos puntos de montaje:

mount /dev/DiscosSATA/lv_home /mnt/home
mount /dev/DiscosSATA/lv_usr /mnt/usr
mount /dev/DiscosSATA/lv_var /mnt/var
Podemos verificar que se han montado correctamente utilizando los comandos df [25] o mount [26].

Una vez que hemos montado todos los volúmenes, utilizamos rsync [27] para sincronizar/clonar los contenidos (para /home realmente no es necesario en este caso, ya que está vacío):

rsync -vza /usr/ /mnt/usr/
rsync -vza /var/ /mnt/var/
Cuando rsync acabe, agregamos las entradas correspondientes al fichero /etc/fstab, de forma que en el siguiente arranque, el sistema monte los volúmenes lógicos de forma automática en los puntos de montaje correctos:

echo "/dev/DiscosSATA/lv_usr /usr xfs defaults 0 1" >> /etc/fstab
echo "/dev/DiscosSATA/lv_var /var xfs defaults 0 1" >> /etc/fstab
echo "/dev/DiscosSATA/lv_home /home xfs defaults 0 1" >> /etc/fstab
Reiniciamos la maquina y verificamos que tras el reboot todo esté correcto.

Usando df o mount podemos verificar si los volúmenes se han montado correctamente.

Eliminamos además las carpetas temporales creadas

rm -fr /mnt/{home,usr,var}
Paso 5 - Crear RAID 0 (linear mode) en discos SSD

Ahora vamos a configurar los discos SSD (lo que queda del primer disco y todo el espacio libre del segundo disco) en RAID 0 [28] o linear mode.

Además, vamos a dejar una partición adicional en el primer disco SSD para montarla en /tmp, de forma que podamos sacar el directorio temporal de la misma partición en la que se monta / (y evitar así problemas de llenado de la partición raíz).

Primero creamos dos particiones en el primer disco SSD (/dev/sda) y una en el segundo disco SSD (/dev/sdb). Para ello utilizamos cfdisk o fdisk.

Luego creamos el RAID 0 con mdadm (en este caso no necesitamos pasarle el parámetro --assume-clean ya que RAID 0 no necesita hacer ninguna sincronización inicial):

root@nsXXXXX:~# mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sda7 /dev/sdb1
mdadm: /dev/sda7 appears to contain an ext2fs file system
size=29170420K mtime=Thu Jan 1 01:00:00 1970
mdadm: /dev/sdb1 appears to contain an ext2fs file system
size=39078080K mtime=Thu Jan 1 01:00:00 1970
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

Una vez creadas las particiones y el dispositivo RAID por software, les damos formato bajo el sistema de ficheros que queramos.

mkfs.ext4 /dev/sda6
mkfs.xfs /dev/md1
Creamos el punto de montaje para el raid 0:

mkdir /home/ssd
(NOTA: /home/ssd es solo un lugar, podemos crearlo donde queramos, como /mnt/ssd, /opt/ssd o /ssd)

Agregamos las siguientes líneas al fichero /etc/fstab:

echo "/dev/sda6 /tmp ext4 defaults 0 1" >> /etc/fstab
echo "/dev/md1 /home/ssd xfs defaults 0 1" >> /etc/fstab
Podemos montar el RAID 0 y verificar que todo está correcto:

mount /home/ssd
También podemos comprobar ahora la velocidad de nuestro nuevo md1, frente a los 250 MB/s originales del SSD:

/var/www # hdparm -tT /dev/md1
/dev/md1:
Timing cached reads: 17606 MB in 2.00 seconds = 8811.17 MB/sec
Timing buffered disk reads: 1588 MB in 3.00 seconds = 528.78 MB/sec
No está mal, ~ 525 MB/sec

Finalmente asigamos permisos de escritura a /tmp

chmod 1777 /tmp
Y tenemos que reiniciar de nuevo el servidor para verificar que la partición /dev/sda6 se monta en la susodicha /tmp.

Enlaces de referencia:

[1] http://www.ovh.es
[2] http://www.ovh.es/servidores_dedicados/eg_hybrid.xml
[3] http://debian.org
[4] http://ubuntu.com
[5] http://en.wikipedia.org/wiki/Advanced_Packaging_Tool
[6] https://wiki.archlinux.org/index.php/Pacman
[7] http://archlinux.org
[8] http://www.gentoo.org/doc/en/handboo...?part=2&chap=1
[9] http://gentoo.org
[10] http://fedoraproject.org/wiki/Yum
[11] http://fedoraproject.org
[12] http://www.rodsbooks.com/gdisk
[13] http://en.wikipedia.org/wiki/Cfdisk
[14] http://en.wikipedia.org/wiki/GUID_Partition_Table
[15] http://en.wikipedia.org/wiki/Standar..._levels#RAID_1
[16] http://en.wikipedia.org/wiki/File_system
[17] http://en.wikipedia.org/wiki/Mdadm
[18] http://en.wikipedia.org/wiki/Physical_volume
[19] http://en.wikipedia.org/wiki/Logical...er_%28Linux%29
[20] http://linux.die.net/man/8/pvdisplay
[21] http://linux.die.net/man/8/vgdisplay
[22] http://en.wikipedia.org/wiki/Logical_volume
[23] http://linux.die.net/man/8/lvdisplay
[24] http://en.wikipedia.org/wiki/XFS
[25] http://linux.die.net/man/1/df
[26] http://linux.die.net/man/8/mount
[27] http://en.wikipedia.org/wiki/Rsync
[28] http://en.wikipedia.org/wiki/Standar..._levels#RAID_0