jueves, 13 de enero de 2011

¿Cómo maneja GNU/Linux más de 26 discos duros?

Sería sorprendente y difícil de encontrar una respuesta definitiva a la pregunta de qué pasaría con los nombres de los dispositivos de bloques en Linux cuando se sobrepasa la cantidad de 26 discos. Esto es, por ejemplo, si nuestro disco número 1 es /dev/sda y el disco 26 es /dev/sdz, ¿Qué vendrá después si agregamos otro?. Es necesario averiguar porque libguestfs actualmente tiene el límite de 25 discos, y esto necesita ser arreglado.

Como sea, echando una mirada al código Richard Jones, senior software engineer en Red Hat, programador involucrado en Red Hat virtualization management, desde monitoreo (virt-top) hasta administración (libvirt, libguestfs, P2V, V2V). Además trabaja en varios proyectos paralelos de Fedora, incluyendo el Windows cross-compiler project y el OCaml software stack. Recibido con un master degree in Computer Science del Imperial College de Londres; podemos ver brevemente, que esto depende de cuál driver está en uso.
Para virtio-blk (/dev/vd*) es así:

Drive # —Name
1     vda
26    vdz
27    vdaa
28    vdab
52    vdaz
53    vdba
54    vdbb
702   vdzz
703   vdaaa
704   vdaab
18278 vdzzz

Más allá de 18,278 discos virtio-blk puede fallar, pero esto en la actualidad no constituye un tema a tratar.

Para dispositivos SATA y SCSI bajo un Kernel moderno, lo anterior aplica excepto que el código para determinar los nombres trabaja muy bien más allá de sdzzz hasta (en teoría) sd seguido por z 29 veces!  ¿O quizás no?

Como podemos ver virtio y SCSI/SATA no usan un código comun para nombrar los discos. En realidad hay también muchos otros dispositivos de bloques en el kernel, todos utilizando su propia nomenclatura. La mayoría de estos usa números en vez de letras, por ejemplo: /dev/loop0, /dev/ram0, /dev/mmcblk0 y así sucesivamente.

Si los discos están particionados, entonces las particiones son nombradas añadiendo el número de la partición al final (iniciando con 1). Pero si el nombre del dispositivo ya termina con un número entonces  la letra p es añadida entre el nombre de dicho dispositivo y el número de la partición, por lo tanto tendremos: /dev/mmcblk0p1.

Fuente: RWMJ

No hay comentarios:

Publicar un comentario