Mostrando resultados del 1 al 1 de 1

Tema: Acelerando los discos duros en GNU/Linux

  1. #1
    Fecha de Ingreso
    19-marzo-2005
    Ubicación
    En un lugar del planeta Tierra
    Mensajes
    17.183
    Poder de Credibilidad
    10

    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)
    Última edición por DiabloRojo; 06-nov-2006 a las 19:13
    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

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Temas Similares

  1. Ayuda para montar discos duros usb
    By 123jky in forum General OpenSUSE
    Respuestas: 1
    Último mensaje: 29-nov-2006, 09:34
  2. Respuestas: 2
    Último mensaje: 24-oct-2006, 23:38
  3. Problema Discos Duros
    By Dkas in forum Hardware
    Respuestas: 3
    Último mensaje: 27-ago-2006, 15:41
  4. No detecta CDROM ni discos duros
    By golden_thor in forum Instalación y Actualizaciones
    Respuestas: 5
    Último mensaje: 01-abr-2006, 08:37
  5. Problema con discos duros
    By matteo_jr in forum Hardware
    Respuestas: 8
    Último mensaje: 25-sep-2005, 16:48

Marcadores

Normas de Publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •