strip/block size y otros temas de RAID (largo)
Aldrin Martoq
amartoq en dcc.uchile.cl
Mar Dic 30 14:29:30 CLST 2008
Hola Victor, muy largo lo que escribiste, tratare de aportar un poco ;)
On Tue, 2008-12-30 at 12:21 -0300, Victor Hugo dos Santos wrote:
> bien, estoy mirando algunos documentos de como mejorar la peformance
> de accesos a los discos duros:
> 1 http://thias.marmotte.net/archives/2008/01/05/Dell-PERC5E-and-MD1000-performance-tweaks.html
> 2 http://kbase.redhat.com/faq/docs/DOC-2893
> 3 http://wiki.centos.org/HowTos/Disk_Optimization
> 4 http://insights.oetiker.ch/linux/raidoptimization/
>
> y tengo algunas dudas "existenciales" que tal vez alguno pueda
> ayudarme a entender
> Obs.:
> 1 - El SO es un RHEL 5.2
> 2 - no tengo problemas de performance en estes momentos, pero quiero
> descubrir hasta donde puedo llegar (en mejoria) manteniendo los datos
> seguros.
> 3 - los 4 servidores que tengo para pruebas, son
> PowerEdge 2950 ( 2 x Intel(R) Xeon(R) CPU X5460 @ 3.16GHz) y 32768 MB
> Controladora PERC 6/i Integrated (con bateria) con 6 (4 en el canal 0
> y 2 en el canal 1) discos Seagate Cheetah NS SAS (3Gb/s 400-GB y 16 MB
> de cache)
> 4 - dichos equipos estarian destinados a trabajar con BD (oracle y postgresql)
En mi experiencia, LVM es LENTO, segun las ultimas pruebas que hice (un
tarro parecido al que muestras). Cambia alguna particion (/var ?) y haz
alguna prueba sencilla y nos avisas, pues no tengo numeros!
> bien.. en estes momentos tengo un solo RAID-10 creado en la
> controladora que alberga todos los 6 discos y me genera un unico
> volume de 1,116.00 GB
> y dentro del sistema operativo tengo las siguientes particiones y LVM
En mis pruebas, separar el arreglo "fisico" similar al _USO_ que tendra
en el sistema operativo ayuda bastante. La primera vez hice lo mismo: un
puro arreglo RAID-6 con 8 discos, al final era mas lento porque tenia
varias aplicaciones escribiendo en el disco y si bien el arreglo _era_
muy rapido, tenias lecturas/escrituras que estaban encoladas. Se veia a
simple vista: todas las lucecitas constantemente moviendose de TODOS los
discos.
Esto es mas lento porque en el fondo tienes un puro disco con varios
platos, esto influye en el seek time y se encolan si tienes varias
aplicaciones "distintas" corriendo al mismo tiempo.
La solucion fue respaldar todo, rehacer el arreglo en 2 arreglos RAID-5
y dejar unas aplicaciones usando 1 grupo de discos y otras aplicaciones
usando el otro grupo de discos. La cola de lecturas/escrituras disminuyo
enormemente, y ahora las lucecitas eran a un lado o al otro.
Varios:
- recuerda que los discos de un lote son mas propensos a fallar una vez
que fallo el primero: apenas falle un disco comienza a buscar
reemplazos!
http://lwn.net/Articles/237924/
- luego: cuando tienes esta cantidad de espacio, busca donde dejar los
respaldos (data y APLICACIONES).
> despues de leer varios documentos en internet... pienso que el mejor seria:
> - crear en la controladora un volume de discos para las particiones
> "/boot" y "swap" (~ 5GB)
> - crear en la controladora un volume de discos para la particion "/" (~ 20 GB)
> - crear en la controladora un volume de discos para las particiones
> de datos "/var/data" con todo el espacio que sobre de los discos (unos
> 1.1TB ~)
Separalos en base al USO. Yo tenia varias maquinas virtuales, lo que
hice fue poner unas en 1 arreglo y otras en el otro arreglo; alternadas
segun cuando se usan.
Me parece que RAID-5 seria lo mejor para performance/confiabilidad.
Te recomiendo separar en dos grupos de 3 y 3 discos, en cada grupo crea
mas de un arreglo RAID (cada arreglo lo veras como un disco sdX). Luego
en la marcha, segun el uso, puedes mover un arreglo entre un grupo y el
otro. Algo asi:
grupo 1 grupo 2
|D1 D2 D3| |D4 D5 D6|
| sda | | sde |
| sdb | | sdf |
| sdc | | sdg |
+--------+ +--------+
Entonces, puedes dejar por ejemplo:
sda / sde /backup
sdb /database1 sdf /database2
sdc swap sdg /test
> aca me entra las siguientes dudas:
> * ahora, el strip size de los volumenes esta configurado en 64 K (con
> Write-Back y Adaptive Read Ahead habilitados tambien), pero cuales
> serian los mejores valores para:
> - particion "/" en general
> - base de datos oracle y postgresql (considerar instalación por
> defecto, sin cambios significativos)
Creo que todo esto lo sabriamos si tuvieramos DTrace, asi no tendriamos
que adivinar...
Por ejemplo, podrias sacar la distribucion del taman~o del block usado
_en tu aplicacion_, que es lo que importa al final:
http://wikis.sun.com/display/DTrace/io+Provider#ioProvider-Examples
Podrias intentarlo con systemtap o por ultimo strace y nos cuentas ;)
--
Aldrin Martoq <amartoq en dcc.uchile.cl>
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/pgp-signature
Tamaño : 197 bytes
Descripción: This is a digitally signed message part
Url : http://listas.inf.utfsm.cl/pipermail/linux/attachments/20081230/130af770/attachment.bin
Más información sobre la lista de distribución Linux