strip/block size y otros temas de RAID (largo)
Victor Hugo dos Santos
listas.vhs en gmail.com
Mar Dic 30 12:21:40 CLST 2008
Hola a todos, como van las fiestas para fin de año ???
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)
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
=======
$ sudo fdisk -l
Disco /dev/sda: 1198.2 GB, 1198295875584 bytes
255 heads, 63 sectors/track, 145684 cylinders
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 32 257008+ 83 Linux
/dev/sda2 33 3168 25189920 8e Linux LVM
/dev/sda3 3169 145684 1144759770 5 Extendida
/dev/sda5 3169 65416 500007028+ 8e Linux LVM
/dev/sda6 65417 127664 500007028+ 8e Linux LVM
[victor en blue etc]$ sudo lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
appl VG_DATOS -wi-ao 20,00G
data VG_DATOS -wi-ao 400,00G
raiz VG_SYS -wi-ao 20,00G
swap VG_SYS -wi-ao 4,00G
=======
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 ~)
bien.. hacendo esto, las particiones "/" y "/var/data" usarian el
sector 0 de los volumenes y estarian alinadas "case" que por defecto
con los strip size de los RAIDs
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)
* no tengo certeza, pero el strip size no funciona igual que el block
size de los sistemas de archivos, o si ?? por ejemplo..
se tengo configurado el FS con blocos de 4K y envio 3 archivos de 2K
entonces, utilizaria 3 blocos y estaria ocupando 12K en el FS.
se tengo configurado el strip size en 64K y envio 3 archivos de 40K ,
estes se escriben sequencialmente/en bruto en los discos, sin
perdidas.
no se si me explique bien mi duda !!! (sorry)
* hay algun comando/script para verificar en el FS el tamano promedio
de los archivos y en base a esto saber cual es el mejor block size que
deberia de utilizar ??
bueno, considerando que:
- las particiones estan alinadas con los volumenes
- el strip size sea 64K
- el arreglo en RAID 10
entonces, formateo las particiones con el siguiente comando:
sudo mkfs.ext3 -E stride=16 /dev/VG_DATOS/data
bueno, utilizo el valor 16 en base al calculo (stride = strip size /
block size) y se que el valor por defecto del block size para ext3 es
4K
pero sera este valor (4K) el mejor para BDs ?? alguna otra recomendacion ??
en el enlace (http://wiki.centos.org/HowTos/Disk_Optimization) indica
algunos parametros para montar las particiones:
notime creo que no es tan necesario para las BD, por que son pocos
archivos pero de gran tamano
commit suena interesante, principalmente por que hay la controladora
RAID tiene una bateria.
writeback la verdad, verdadera es que no entendi del todo. :-(
y todo esto ira en el fstab:
/dev/VG_DATOS/data /var/data defaults,noatime,commit=120,data=writeback 0 0
pero son realmente seguros con la actual configuracion que tengo ??
comentarios ??
bien.. por ultimo (finalmente), en el segun y ultimo link (2 y 4)
comentan sobre la posibilidad de aumentar el "read-a-head" de los
dispositivos RAIDs..
en el segundo enlace menciona el comando: /sbin/blockdev --setra 8192 /dev/sdb
y en el ultimo enlace menciona el comando: echo 1024 >
/sys/block/sda/queue/read_ahead_kb
que imagino que en esencia hacen exactamente el mismo..
pero hay alguna formula para obtener el mejor valor para el
"read-a-head" o es en prueba y error ??
y principalmente, cual es el mejor metodo (o archivo de configuracion)
para dejar este valor seteado como predefinido ??
ufff.. sorry por el largo del correo ...
salu2 y atento a cualquier comentarios.
--
--
Victor Hugo dos Santos
Linux Counter #224399
Más información sobre la lista de distribución Linux