Registrarse
Home
Foros
Miembros
Calendario
Normas
Ayuda

Foros de usuarios de openSUSE
Retroceder   ForoSUSE > Zona Técnica > FAQs, Manuales y Tutoriales


Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook

Tema Cerrado
 
Herramientas Desplegado

Acelerando los discos duros en GNU/Linux
  #1  
Antiguo 31-oct-2006, 20:42
Avatar de DiabloRojo
DiabloRojo DiabloRojo está desconectado
Super Moderador
 
Fecha de Ingreso: 19-marzo-2005
Ubicación: En un lugar del planeta Tierra
Versión: La ultima estable
Mensajes: 16.473
Agradecimientos: 563
Agradecido 2.415 Veces en 1.626 Mensajes
Poder de Credibilidad: 10
DiabloRojo llegará a ser famoso muy pronto
Acelerando los discos duros en GNU/Linux

MANUAL EN CONSTRUCCION, TEMA CERRADO

Este tema permanecerá cerrado mientras este en Construcción, como es normal no admitiré consultas privadas con aspectos relacionados con este tema y ningún otro tema que sea publicable en el foro. Solo admitiré mensajes privados que me indiquen erratas, sugerencias en la construcción de este manual y los nombres de los ficheros de arranque de las distribuciones de GNU/Linux.

Acelerando disco duro de Compaq Presario R3420EA

El propósito de este manual es que sea valido para cualquier distribución de GNU/Linux, para conseguirlo utilizare el comando asociado al manejo de los discos duros hdparm y la edición del fichero del arranque de la distribución de GNU/Linux que utilicemos para hacer permanentes los cambios, he preferido evitar la edición de los ficheros de configuración existentes en /etc/sysconfig o en otro sitio como /lib/udev debido a que cada distribución es un mundo y el propósito de este manual es muy limitado.

NOTA
Todo lo indicado en este manual requiere un nivel de conocimientos intermedios sobre GNU/Linux para su compresión y entendimiento, por dicho motivo desaconsejo esclarecidamente su utilización a los principiantes y/o novatos.
Este manual NO es aplicable a todos los discos duros y ordenadores o computadoras existentes en el mercado sino a la marca y modelo de disco duro de la marca y modelo de mi portátil. Cada marca y modelo de disco duro y computadora es un mundo, lo que es aplicable a uno de ellos puede no ser aplicable a otro y todo ello debido a la configuración de la BIOS y al cable de conexión.

Más adelante publicare más manuales sobre otros discos duros de otras computadoras.

Querido amigo, aplica con precaución y tiento las enseñanzas de este manual y no me pidas responsabilidad alguna si por una mala interpretación de ellas te cause inestabilidad o problemas con tu distribución GNU/Linux. Así que quedas advertido. No obstante, me alegrare por ti si este manual te es útil para acelerar los discos duros en tu distribución GNU/Linux.

PRELIMINARES
Este manual no explica sobre la nomenclatura de los discos duros, ni sus conexiones con los canales IDE, SATA y SCSI, simplemente requiere saber que discos duros tienes y como se llama, información que te lo proporcionara la salida del comando:
Código:
# fdisk -l | grep -i disk
Disk /dev/hda: 60.0 GB, 60011642880 bytes
En este caso, vemos que solo hay un disco duro llamado /dev/hda.


Es muy aconsejable leer la ayuda de hdparm, que se puede hacer de varias formas:
1.- Abre un Terminal para teclear “man hdparm”, utilizaremos las teclas de avance y retroceso de pagina para leerlo incluido las flechas arriba y abajo.
2.- Abre un Terminal para teclear “xman”, utilizar el ratón para seleccionar “Manual Page”->Options->Search->hdparm y pulsar Enter, tendras el manual para leerlo.
3.- Si tienes instalado el escritorio KDE, abre el navegador de ficheros Konqueror para introducir en la casilla de “Dirección:” lo siguiente: “man:/hdparm” y utiliza el ratón para leerlo.

La ejecución del comando hdparm y la edición del fichero de arranque de nuestra distribución GNU/Linux debe hacerse como súper usuario root, para ello se debe abrir un “Terminal del root” o, en su defecto, abrir un Terminal para ejecutar “su –“ e introducir la contraseña de root.
Nota: Para aquellos que tenga instalado una distribución GNU/Linux basada en Debian como Ubuntu, Knoppix, etc… y no utilice un Terminal de súper usuario root deberá anteponer delante de los comandos indicados en el manual el comando “sudo” como este ejemplo: “sudo hdparm –i /dev/hda”.

Otro sitio para obtener información es buscar el comando hdparm por Internet, donde encontraremos abundante información como este excelente manual: HOWTO Hdparm

COMENZADO
Tener presente que los cuadros de ejecución de los comandos que están marcados en negrita y, además:
Código:
Notas: 
> indica usuario normal
# indica superusuario root; para los Debianitas indica anteponer el comando "sudo"
"su" el comando se ejecuta sin comilla
Utilizaremos OpenSuse 10.0 con la siguiente versión del kernel y hdparm, cosa importante, ya que cada nueva versión de hdparm incluye nuevas funcionalidades que no aplicaremos.
Código:
> uname -r
2.6.13-15.12-default
> rpm -qa | grep hdparm
hdparm-6.1-2
Ahora vamos a obtener la mas completa información del disco duro, es la opción -I:
Código:
# hdparm -I /dev/hda

/dev/hda:

ATA device, with non-removable media
        Model Number:       IC25N060ATMR04-0
        Serial Number:      MRG31YKCHVN0PH
        Firmware Revision:  MO3OAD5A
Standards:
        Used: ATA/ATAPI-6 T13 1410D revision 3a
        Supported: 6 5 4 3
Configuration:
        Logical         max     current
        cylinders       16383   65535
        heads           16      1
        sectors/track   63      63
        --
        CHS current addressable sectors:    4128705
        LBA    user addressable sectors:  117210240
        LBA48  user addressable sectors:  117210240
        device size with M = 1024*1024:       57231 MBytes
        device size with M = 1000*1000:       60011 MBytes (60 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        bytes avail on r/w long: 4      Queue depth: 1
        Standby timer values: spec'd by Vendor, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 16
        Advanced power management level: 128 (0x80)
        Recommended acoustic management value: 128, current value: 254
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=240ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    NOP cmd
           *    READ BUFFER cmd
           *    WRITE BUFFER cmd
           *    Host Protected Area feature set
           *    Look-ahead
           *    Write cache
           *    Power Management feature set
                Security Mode feature set
                SMART feature set
           *    FLUSH CACHE EXT command
           *    Mandatory FLUSH CACHE command
           *    Device Configuration Overlay feature set
           *    48-bit Address feature set
           *    Automatic Acoustic Management feature set
           *    SET MAX security extension
                Address Offset Reserved Area Boot
           *    SET FEATURES subcommand required to spinup after power up
                Power-Up In Standby feature set
           *    Advanced Power Management feature set
           *    General Purpose Logging feature set
           *    SMART self-test
           *    SMART error logging
Security:
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
                frozen
        not     expired: security count
        not     supported: enhanced erase
        50min for SECURITY ERASE UNIT.
HW reset results:
        CBLID- above Vih
        Device num = 0 determined by CSEL
Checksum: correct
El apartado “Capabilities:” , mas conocido como Capacidades del disco duro, marco en negrita lo mas importante de mi disco duro que me indica el valor obtenido y el existente; el que pone "Recommended acoustic..." me recomienda pasar de 254 a 128; el que comienza por "R/W multiple..." el valor indicado es el mismo que tengo configurado y, por ultimo, el DMA mi valor es el máximo existente ya que esta marcado en asterisco.

En apartado “Commands/features:” y “Enabled Supported:” que significa "Comandos, características y soporte habilitado" lo marcado en asterisco es lo que esta habilitado en mi disco duro.

En “Security” o Seguridad, no hablaremos de ello, ya que mi versión de hdparm no es capaz de configurarlo.

Y por ultimo, el modelo de mi disco duro lo busco en Internet y doy con las características de el: http://www.hitachigst.com/hdd/support/80gn/80gn.htm


Vamos hacerle un test de velocidad al disco duro antes de empezar los cambios, ejecutaremos tres veces el comando “hdparm -tT /dev/hda” y escogeremos el valor intermedio de los tres valores de Timing cached... y Timing buffered... debido a las diferencias de valores existentes en la ejecución de los 3 comandos en tan breve tiempo; pero antes hay que cerrar todas las aplicaciones en activo y utilizar solo el Terminal
Código:
# hdparm -tT /dev/hda

/dev/hda:
 Timing cached reads:   1940 MB in  2.00 seconds = 969.94 MB/sec
 Timing buffered disk reads:   86 MB in  3.19 seconds =  26.97 MB/sec
Ya hemos visto la información completa de la opción -I, pero no la utilizaremos de momento, vamos a utilizar esta otra mas resumida, la opción -i:
Código:
# hdparm -i /dev/hda

/dev/hda:

 Model=IC25N060ATMR04-0, FwRev=MO3OAD5A, SerialNo=MRG31YKCHVN0PH
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=DualPortCache, BuffSize=7884kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=117210240
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a:

 * signifies the current active mode
Los valores marcados en negrita son los mas interesantes; el MaxMultSect y el udma5, fijaros en el asterisco delante indicándome que es el valor actual activo. Y me informa que esta habilitada la cache de escritura.


Vamos a obtener los datos de la configuración del disco duro para cambiarlo a los datos obtenidos del disco duro, opciones -i y -I.
Código:
# hdparm /dev/hda

/dev/hda:
 multcount    = 16 (on)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 16383/255/63, sectors = 117210240, start = 0
¡Fenomenal!, la configuración es buena, pero voy ha explicar cada una de ellas para que lo entendáis
La 1ª opción (multcount) esta activa y el valor corresponde a MaxMultSect=16, así que no hay que tocarlo.
2ª opción (IO_support) esta muy bien, un bus de Entrada y Salida de 32 bit al disco duro, pero voy a mirar si mi disco duro soporta sincronismo a 32 bits parra mejorar la transferencia.
3ª opción (unmaskirq) esta bien, utiliza la interrupción de la BIOS y la de disco duro que mejorar la transferencia.
4ª opción (using_dma) es la famosa activación de la DMA.
5ª opción (keepsettings) la de perseverancia de los valores definidos en una secuencia de recuperación de errores del disco duro no esta activada.
El resto no tiene importancia.


MANOS A LA OBRA
Me ha decidido explicarlo en función de la información proporcionada por las salidas de las opciones -i, -I y de la configuración existente que es muy explicita, ver cuadro anterior.
Utilizare un código de colores como los semáforos para indicar la peligrosidad de hacer lo indicado en el párrafo: Negro:Ningún peligro; Azul:Posible corrupción en disco duro y Rojo:Peligroso, aparte de poner como encabezado a los textos que hace necesario la ejecución de la opción indicada.

1.- “R/W multiple sector transfer: Max = XX Current = XX”; “MaxMultSect=XX” y “multcount = XX (on/off)”.
Establecemos el máximo numero de sectores múltiples por la interrupción de I/O en el disco, cuanto mas alto es el numero mayor sera la transferencia en el disco duro, responsable de aumentar el rendimiento del disco duro hasta un 50%, pero este valor esta limitado al valor que nos devuelve las frases del encabezado del parrafo, en mi caso es de 16, la opción responsable de cambiar este valor es “-m valor_a_cambiar”, siendo los posibles valores: 2, 4, 8, 16 sectores; en la ayuda avisa que puede causar corrupción en el sistema de ficheros :
Código:
# hdparm -m16 /dev/hda

/dev/hda:
 setting multcount to 16
 multcount    = 16 (on)
2.- “IO_support = X (32-bit)”
Habilita el soporte de entrada y salida de 32 bits a la controladora (E)IDE, para hacer esto es necesario habilitar en la BIOS dicho soporte, una vez habilitado podemos cambiarlo con la opción -c cuyos valores actualmente soportados incluyen 0 para inhabilitar la ayuda 32-bit de I/O, 1 para permitir a transferencias de datos 32-bit, y 3 permitir transferencias de datos 32-bit con una secuencia especial de la sincronización requerida por muchos chipsets.
En mi caso voy habilitar la sincronización, aunque puede provocarme corrupción de datos.
Código:
# hdparm -c3 /dev/hda

/dev/hda:
 setting 32-bit IO_support flag to 3
 IO_support   =  3 (32-bit w/sync)
3.- “unmaskirq = X (on/off)”
Esta opción permite al sistema utilizar otras interrupciones durante las interrupciones del disco duro, es decir, compartir la IRQ del disco duro, esto aumenta la velocidad de respuesta del sistema pero puede causar corrupción de datos. La opción es la -u cuyos valores son 0 para inhabilitar, 1 para permitirlo:
Código:
# hdparm -u1  /dev/hda

/dev/hda:
 setting unmaskirq to 1 (on)
 unmaskirq    =  1 (on)
4.- “using_dma = X (on/off)”
Usar el acceso directo de memoria da casi siempre el mejor funcionamiento, con rendimiento de procesamiento rápido de I/O y uso bajo de la CPU, es recomendable tenerlo activado si nuestro disco duro lo soporta. La opción es la -d cuyos valores son 0 para inhabilitar, 1 para habilitar:
Código:
# hdparm -d1  /dev/hda

/dev/hda:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)
5.- “keepsettings = X (on/off)”
Esta opción SOLO se utiliza en el fichero de arranque de la distribución GNU/Linux, sirve para fijar los valores que configuremos con las demás opciones durante la secuencia de la recuperación de error, es decir, que una vez probado el correcto funcionamiento del sistema lo fijaremos. En la práctica, es necesario probar una configuración (antes de usar - k) debe verificar que no se genera ningunos registros de errores (mensajes del núcleo) en el proceso. Dicha opción “-k1” no se usa como prueba, solo lo introduciremos en el fichero de arranque de la distribución GNU/Linux.

6.- “readonly = X (on/off)”
Esta opción solo sirve para poner nuestro disco duro en “modo solo lectura” para evitar crear errores en el sistema de ficheros, necesario para probar todo este manual, la opción es -r cuyos valores son 0 para inhabilitar el modo de lectura, 1 para habilitarlo. Evidentemente si lo activamos nunca podemos escribir en el disco duro.

7.- “readahead = XXX (on/off)”


CONTINUARA CON MAS OPCIONES.....


EDITAMOS EL FICHERO DE ARRANQUE
Esta es la relación del fichero de arranque y su distribución, segun me informe, lo ampliare.
Código:
Ficheros a editar segun la distribuccion
/etc/rc.d/rc.local      Mandrake, RedHat, Fedora Core, Ubuntu, Debian, CentOS, etc....
/etc/init.d/boot.local  OpenSuse, Suse Enterprise
Ahora editamos el fichero de arranque correspondiente, en este caso es /etc/init.d/boot.local, para introducir una nueva linea del comando y las opciones a arrancar:
hdparm -c3 /dev/hda

Ya que el resto de las opciones las tengo activadas, pasado un tiempo sin mensajes de error del kernel sera cuando fije dicha opción, añadiendo la opción explicada en el punto 5, donde la linea quedara así:
hdparm -c3 -k1 /dev/hda


ANEXO:
Relación de las opciones peligrosas del comando hdparm
Código:
# hdparm -h | grep -i dangerous
 -r   get/set device  readonly flag (DANGEROUS to set)
 -R   register an IDE interface (DANGEROUS)
 -U   un-register an IDE interface (DANGEROUS)
 -w   perform device reset (DANGEROUS)
 -W   set drive write-caching flag (0/1) (DANGEROUS)
 -x   tristate device for hotswap (0/1) (DANGEROUS)
 -X   set IDE xfer mode (DANGEROUS)
 --security-unlock PWD          Unlock drive, using password PWD (DANGEROUS)
 --security-set-pass PWD        Lock drive, using password PWD (DANGEROUS)
 --security-disable PWD         Disable drive locking, using password PWD (DANGEROUS)
__________________
NORMAS A CUMPLIR EN LOS FOROS (Lectura obligatoria) Lo siento, no contesto privados sobre problemas con GNU/Linux.
Síguenos en TWITTER y en FACEBOOK
Código:
Buscador de   Alojamiento      Alojamiento     Otros
 paquetes:    de imágenes:     de ficheros:    buscadores:
Search        TinyPic          Ifile Wuala     Simple y Facil
Webpinstant   Paste Suse       SendSpace       TextSnip  Cl1p

Última edición por DiabloRojo; 06-nov-2006 a las 19:13
Tema Cerrado

Marcadores


(0 miembros y 1 visitantes)
 
Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda para montar discos duros usb 123jky General OpenSUSE 1 29-nov-2006 09:34
Suse 10.0 soporta Discos duros de 250 GB ( IDE )?? elbajito Hardware 2 25-oct-2006 00:38
Problema Discos Duros Dkas Hardware 3 27-ago-2006 16:41
No detecta CDROM ni discos duros golden_thor Instalación y Actualizaciones 5 01-abr-2006 08:37
Problema con discos duros matteo_jr Hardware 8 25-sep-2005 17:48



Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook


La franja horaria es GMT +2. Ahora son las 03:41.
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.

Esta página está bajo una licencia de Creative Commons, salvo que no se indique lo contrario.
Creative Commons License

Valid CSS!

Diseño por:Designed by: vbdesigns.devbdesigns.de 
Contáctenos - ForoSUSE - Archivo - Declaración de Privacidad - Arriba