Greg (shoe) Schuweiler, noviembre de 2004
Muchos consideran que un disco duro viene a ser una caja negra, un pequeño dispositivo donde se almacenan datos, programas y/o un sistema operativo. Este planteamiento no tiene nada que reprochar si eso es todo lo que le importa. Sin embargo, la preocupación primordial de un administrador del sistema debe ser la protección de los datos. Otra prioridad esencial debe ser la transferencia eficaz de los datos entre la memoria y el disco físico. En este artículo quiero analizar una de las utilidades básicas que nos ofrece el sistema operativo Solaris:
format
.La utilidad
format
que sirve para administrar
segmentos en un disco se creó originariamente para administrar discos conectados
mediante SCSI, de ahí que el rendimiento pueda variar en el caso de los discos
conectados mediante IDE. Si están instalados y configurados correctamente los
controladores adecuados, no debe haber problemas para administrar unidades con
conexión Fibre Channel o LUN presentados por dispositivos RAID. Además de
format
, también me ocupo de otros comandos
de dos tipos: no destructivos y destructivos. Siempre destaco los
comandos destructivos en negrita y cursiva precedidos por la palabra
Warning. Por ejemplo, si se ejecuta «Warning: cd / ; rm –r * »
como root se
destruirá el disco del sistema.Otra llamada de atención: los comandos no destructivos deben ser sólo eso, pero es usted quien debe decidir si los ejecuta o no en su sistema. Los comandos destructivos destruyen los datos de un disco. Sólo debe ejecutarlos si sabe con seguridad lo que hace.
En este artículo utilizo los comandos
format
, prtvtoc
, dd
, od
, cat
y fmthard
. Para empezar, me gustaría definir algunos de los
términos de disco que voy a emplear.Etiqueta del disco:
Área especial con información sobre el disco, como la geometría y los segmentos. También se denomina tabla de contenido del volumen (VTOC). La etiqueta del disco ocupa los 512 primeros bytes de un disco. Ahora la mayoría de los discos ya vienen etiquetados de fábrica.
Lista de defectos:
Es la lista de las áreas del disco donde no se puede leer o escribir. Siempre hay una lista de defectos del fabricante y, como veremos, una lista ampliada que crece con los defectos que surgen a medida que pasa el tiempo.
Tabla de particiones:
La tabla de particiones forma parte de la VTOC del disco y contiene los segmentos (o particiones) del disco, los límites y los tamaños de los segmentos. Un segmento está formado por una sucesión continua de bloques en un disco. Un disco consta de ocho segmentos [0-7], salvo que se etiquete como EFI (Extensible Firmware Interface), de lo cual me ocuparé más tarde. En la mayoría de los casos no se utiliza el segmento 2, porque representa todo el disco.
Recuerde lo siguiente a lo largo de este artículo:
- Cada segmento de disco sólo puede contener un sistema de archivos.
- Un sistema de archivos no puede ocupar varios segmentos (suponiendo que no se utilice ningún administrador de volúmenes lógicos).
- Una vez creado un sistema de archivos, no es posible cambiar su tamaño sin reparticionar todo el disco.
- Los segmentos no pueden ocupar varios discos. (En el caso de un dispositivo
RAID que ocupe n discos y los presente al sistema como un solo disco, la
utilidad
format
sólo verá un disco.)
Espero que tenga conectado al sistema un disco con el que practicar, porque me gustaría que este artículo fuera interactivo. En primer lugar, seleccione el disco que vaya a usar con
format
:r_gps@holstein: format Searching for disks...done AVAILABLE DISK SELECTIONS: 0.c0t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> boot /pci@1f,4000/scsi@3/sd@0,0 1.c0t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> home /pci@1f,4000/scsi@3/sd@1,0 2.c2t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> trashme /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0 Specify disk (enter its number):Puede escribir 'quit' para salir, retroceder un menú o usar <Ctrl-D>, que cerrará totalmente la utilidad
format
. En mi caso,
utilizaré "AVAILABLE DISK SELECTION 2". Como mencioné antes, si compra discos a
Sun o a un proveedor que venda equipos de Sun, los discos ya deben llevar las
etiquetas de Sun. En cambio, si tiene un entorno heterogéneo por donde circulan
discos SCSI, no se reconocerá la etiqueta de disco de una unidad de 36 GB de un
servidor HP, AIX o Windows (al menos, con el SO Solaris) y tendrá que agregar
una etiqueta. Por tanto, empezaremos por el principio y nos divertiremos
destruyendo la etiqueta del disco que estoy usando:« Warning: echo "adios data" | dd of=/dev/dsk/c2t1d0s2 bs=1 count=512 »En consecuencia, el comando
format
nos dará lo
siguiente:r_gps@holstein: format Searching for disks...done c2t1d0: configured with capacity of 33.92GB AVAILABLE DISK SELECTIONS: 0. c0t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> boot /pci@1f,4000/scsi@3/sd@0,0 1. c0t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> home /pci@1f,4000/scsi@3/sd@1,0 2. c2t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0 Specify disk (enter its number): 2 selecting c2t1d0 [disk formatted] Disk not labeled. Label it now?Ahora debe escribir "y" si desea etiquetar el disco, lo cual le conviene para poder utilizarlo con Solaris. A continuación, salga del comando
format
y utilice prtvtoc
para
consultar la información sobre la geometría y las particiones del disco: r_gps@holstein: prtvtoc /dev/dsk/c2t1d0s2 * /dev/dsk/c2t1d0s2 partition map * * Dimensions: * 512 bytes/sector * 107 sectors/track * 27 tracks/cylinder * 2889 sectors/cylinder * 24622 cylinders * 24620 accessible cylinders * * Flags: * 1: unmountable * 10: read-only * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 2 00 0 262899 262898 1 3 01 262899 262899 525797 2 5 01 0 71127180 71127179 6 4 00 525798 70601382 71127179El comando
format
ofrece algo de esa información,
pero en este caso podemos constatar que hay cuatro particiones. La columna Tag
indica que tenemos las particiones root (2), swap (3), backup (5) y usr (4). La
columna Flags nos dice que tenemos dos particiones montables, con lectura y
escritura (00), y dos no montables (01). Para cada partición, la columna First
Sector indica dónde empieza la partición, Sector Count muestra el número de
sectores y Last Sector señala la ubicación del último sector de la partición. Si
hubiera un sistema de archivos montado, Mount Directory indicaría dónde está
montada la partición. Antes de lanzarnos a estropear y arreglar cosas, veamos
qué nos dice el comando format
sobre el disco recién
etiquetado. Ejecute el comando siguiente: r_gps@holstein: format /dev/rdsk/c2t1d0s2En la solicitud
format
, escriba partition
y, después, en el menú de la partición, introduzca
print
. Así obtendrá esta tabla: Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0 partition>Parte de la información es la misma que proporciona el comando
prtvtoc
. El formato varía un poco y vemos las particiones no
utilizadas. Quizá haya notado que le estoy diciendo a format
qué disco voy a usar. Lo hago para evitar problemas no
intencionados con los demás discos del sistema. Otra manera de consultar la
etiqueta del disco es volcarla con el comando dd
: r_gps@holstein: dd if=/dev/dsk/c2t1d0s2 of=wart.bin bs=512 count=1 1+0 records in 1+0 records outAsí obtenemos un archivo binario que podemos usar con el comando
od
. r_gps@holstein: od -x wart.bin 0000000 5355 4e33 3647 2063 796c 2032 3436 3230 0000020 2061 6c74 2032 2068 6420 3237 2073 6563 0000040 2031 3037 0000 0000 0000 0000 0000 0000 0000060 0000 0000 0000 0000 0000 0000 0000 0000 * 0000200 0000 0001 0000 0000 0000 0000 0008 0002 0000220 0000 0003 0001 0005 0001 0000 0000 0000 0000240 0000 0000 0000 0004 0000 0000 0000 0000 0000260 0000 0000 0000 0000 0000 0000 600d deee 0000300 0000 0000 0000 0000 0000 0000 0000 0000 * 0000640 0000 0000 2729 602e 0000 0000 0000 0001 0000660 602c 0002 001b 006b 0000 0000 0000 0000 0000700 0004 02f3 0000 005b 0004 02f3 0000 0000 0000720 043d 508c 0000 0000 0000 0000 0000 0000 0000740 0000 0000 0000 0000 0000 0000 0000 00b6 0000760 0435 4aa6 0000 0000 0000 0000 dabe 4297 0001000El volcado octal contiene abundante información, que se describe muy bien en un documento de Sun, así que no voy a repetirla aquí. Busque el ID de documento 74087 en SunSolve. Cabe señalar que
od
siempre omite las líneas repetitivas (el carácter *),
VTOC_SANE siempre es 0x600ddeee en el desplazamiento 0xbc, mientras que
DKL_MAGIC siempre es 0xdabe en el desplazamiento 0x1fc, justo antes de la suma
de comprobación. Ahora que ya hemos etiquetado el disco, ¿qué podemos hacer con
él (y el comando format
)? Primero observe el listado de
menús siguiente. Con excepción de la opción volname
,
empezaré ocupándome de las opciones no destructivas del menú de formato. Son las
que aparecen en negrita a continuación. r_gps@holstein: format /dev/rdsk/c2t1d0s2 selecting /dev/rdsk/c2t1d0s2 [disk formatted] FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format>Para que el sistema sea más personal, me gusta asignar siempre a cada disco un nombre de volumen. También resulta muy útil cuando varios sistemas ven las mismas unidades de disco, como puede suceder en un clúster de alta disponibilidad. He visto más de 120 discos presentados por un par de dispositivos RAID, todos ellos visibles para 15 sistemas en un clúster VERITAS. Si cada disco tiene un nombre de volumen, es más fácil identificar los discos que ya se han usado. Los discos sin nombre de volumen no se han utilizado. Hay que tener en cuenta algo al utilizar la opción de menú
volname
, como muestra el ejemplo siguiente: format> volname Enter 8-character volume name (remember quotes)[""]:"pigsnot" Ready to label disk, continue? y format>La opción
volname
escribirá en la etiqueta del
disco. Yo lo he hecho en discos que tenían sistemas de archivos montados y
contenían datos válidos. La primera vez fue por casualidad. No estalló el
universo y la gravedad siguió actuando. Así que hice pruebas en unidades de
disco, cambiando el nombre de volumen en discos con sistemas de archivos
montados y en discos con sistemas de archivos no montados. Aunque cambiara la
etiqueta, nunca perdí los datos. Por supuesto, se aplican las exenciones de
responsabilidad habituales: "sus resultados pueden variar, actúe bajo su propia
responsabilidad, no se asume responsabilidad por errores tipográficos, etc.,
etc." La opción
disk
permite cambiar de disco dentro de la
utilidad format
, pero como ya he seleccionado el disco
que quiero usar, sólo muestra dicho disco. format> disk AVAILABLE DISK SELECTIONS: 0. /dev/rdsk/c2t1d0s2 <SUN36G cyl 24620 alt 2 hd 27 sec 107> pigsnot /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0 Specify disk (enter its number)[0]:La opción
current
nos ofrece el disco actual
seleccionado tras ejecutar el comando format
. En este
artículo he utilizado el disco 2, de manera que la opción current
muestra lo siguiente: Current Disk = c2t1d0: pigsnot <SUN36G cyl 24620 alt 2 hd 27 sec 107> /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0La opción
current
nos da la ubicación física del
disco en la última línea. La ubicación física debe precederse con /devices
, y una letra representa el número de partición. r_gps@holstein: ls /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0* /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h,rawEl nombre del dispositivo físico con la palabra "raw" es el dispositivo de carácter, mientras que el otro es el de bloque. La letra 'a' es la partición 0, 'b' es la partición 1, etc.
La opción
defect
abre el menú Defect, que permite
ver cuántos defectos tenía el disco al salir de la fábrica. Para comprobarlo,
use la opción primary. Mi equipo tiene tres discos con un intervalo de defectos
principales de 72 a 2922. Pero la opción grown
resulta
más interesante. Dado que los defectos de un disco pueden crecer con el tiempo,
nos conviene saber la tasa de crecimiento. Si la tasa de crecimiento es alta,
puede haber un fallo de disco pendiente. La opción
print
proporciona una lista de los
defectos y sus ubicaciones en el disco. También es posible volcar (guardar) la
lista de defectos del disco en un archivo. Yo lo he hecho en breves lapsos de
tiempo cuando sospechaba de un disco. La opción
verify
aporta abundante información que ya
hemos visto con el comando prtvtoc
y al visualizar las
particiones con el comando format
. format> verify Primary label contents: Volume name = < pigsnot> ASCII name = <SUN36G cyl 24620 alt 2 hd 27 sec 107> pcyl = 24622 ncyl = 24620 acyl = 2 nhead = 27 nsect = 107 Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0La opción
save
genera un archivo format.dat
(o con el nombre que le asignemos). Este archivo
dat
contiene información que orienta al comando format
al realizar la configuración. (Consulte man -s4 format.dat
para obtener más información sobre este
archivo.) Si aplica cat
al archivo format.dat
recién creado en una ventana y después ejecuta el
comando verify
en otra ventana, gran parte de la
información obtenida será la misma, pero con otro formato o con un formato más
legible para algunas personas. El archivo format.dat
que se crea con la opción save
amplia un poco la
información con las rpm del disco. # # New disk/partition type saved on Fri Aug 6 06:34:05 2004 # disk_type = "SUN36G" \ : ctlr = SCSI : ncyl = 24620 : acyl = 2 : pcyl = 24622 \ : nhead = 27 : nsect = 107 : rpm = 10025 ...Por último, en la lista de opciones que nos sirven para recopilar información sobre el disco tenemos
inquiry
,que proporciona
información bastante básica, como indica el ejemplo siguiente. format> inq Vendor: FUJITSU Product: MAN3367M SUN36G Revision: 1502 format>Conviene recordar el nivel de revisión, porque aparecen actualizaciones del firmware para las unidades de disco. Esta opción permite comparar los niveles de revisión de los discos con lo que ofrece el proveedor. Algunos de mis proveedores actualizan el firmware de las unidades de disco en grandes matrices RAID, pero lo hacen sobre la marcha. Hace mucho tiempo actualicé el firmware de los discos SCSI. Ya no me tomo esa molestia, sobre todo por los numerosos discos que hay en los entornos actuales y por el elevado tiempo de inactividad que necesitaría. (Y por un sabio principio: "si no está roto, no lo arregles", que a veces tiene sentido.) No he logrado averiguar cómo actualizar sin que haya tiempo de inactividad. Todavía.
Una de las ventajas del comando
format
es que se
puede incluir en un archivo de comandos. Por ejemplo, el archivo de comandos
siguiente nos podría servir para volcar la lista de defectos en un archivo: defect both dump /disks/c2t1d0-defect.dat r_gps@holstein: format -f c2t1d0.cmd /dev/rdsk/c2t1d0s2No obstante, ante el poder destructivo del comando
format
, no debemos incluirlo en un archivo de comandos si hay
particiones montadas en el disco. Si cree que le puede resultar útil, le
aconsejo que utilice Perl y Expect para obtener esta información. Advertencia: He reproducido el menú de
format
y, las demás opciones que quedan pueden
destruir los datos del disco. Tenga mucho cuidado, porque si destruye datos
serán los suyos. r_gps@holstein: format /dev/rdsk/c2t1d0s2 selecting /dev/rdsk/c2t1d0s2 [disk formatted] FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format>La opción
type
apenas se utiliza en la actualidad.
Antes se usaba mucho cuando los discos (principalmente no SCSI) no siempre
incluían información sobre sí mismos. Los administradores de los sistemas
antiguos se acuerdan de cuando introducían información como el número de
cilindros, cilindros alternativos, cilindros físicos, número de pilas, número
físico de cabezas, número de sectores de datos/pista y un sinfín de elementos
más. En muchos casos aplicábamos los valores predeterminados porque simplemente
no lográbamos encontrar la información. Los proveedores de discos, que por aquel
entonces eran muchos, protegían con celo la información de su propiedad. A veces
probábamos valores hasta que conseguíamos el correcto. Puede intentarlo, pero
primero debe guardar toda la información que antes ha recopilado sobre el disco.
Ya sé que esa información debe estar en algún dispositivo de sólo lectura del
disco, pero es mejor asegurarse que trabajar hasta la madrugada. Quizá tenga que
restablecer los valores correctos de los parámetros del disco, sobre todo si
está siguiendo este artículo con un disco viejo. Solíamos hacer esto con unidades IPI y SMD. Busque "disco ipi smd" en Google para averiguar un poco de la historia y dónde se pueden comprar todavía este tipo de unidades si le interesan.
La opción
partition
es seguramente la más empleada
con la utilidad format
. Al seleccionar esta opción se
accede al menú de particiones, donde podemos modificar las particiones de un
disco. Recuerde que la segunda partición (número 2) o de copia de seguridad
ocupa todo el disco. No nos interesa modificar la partición de copia de
seguridad. Sin embargo, en raras ocasiones se crea un sistema de archivos en la
partición de copia de seguridad y se monta sólo eso, normalmente con bases de
datos. De todos modos, recuerde que no es una buena idea. Puede tener problemas
si utiliza software que se liga a una partición en disco. Trabajé con una
aplicación que lo hacía y se convirtió en una pesadilla en cuanto a
mantenimiento, actualizaciones y demás. Si los proveedores no tienen cuidado,
cuando necesitamos que sus productos utilicen el segmento 2, el software puede
acabar con la VTOC. Aquí empieza a aflorar un aspecto en el que disiento radicalmente de Sun. Por ejemplo, Sun y sus ingenieros de sistemas que conozco recomiendan últimamente una partición raíz y otra para todo lo demás en el disco del sistema. Me parece un disparate. El sistema operativo percibe como un disco distinto cada segmento de un disco, así que voy a explicar por qué estoy en desacuerdo con Sun antes de segmentar nuestro disco de prueba. Usted también puede estar en desacuerdo conmigo, o lo que es mejor aún: escriba su propio artículo.
¿Qué ocurre si
/ (root)
se llena porque una
aplicación se vuelve loca (y a su vez llena /var/tmp
)?
El sistema operativo no sufrirá daños, incluso es posible que tampoco los sufra
la aplicación problemática. Sin embargo, una vez más es posible que esto impida
cualquier otro procesamiento hasta que se corrija dicha aplicación. Por tanto,
necesitamos una partición para construir un sistema de archivos y montar /
. En este caso coincido con Sun: una única partición. Pero
también necesitamos ese /var
en un sistema de archivos
distinto. En consecuencia, necesitamos otra partición para /var
. Dos particiones. Yo también sitúo /usr
en una partición separada. El sistema de archivos /usr
sólo debe contener archivos ejecutables y ASCII. Tres
particiones. Como lo que incluyo en /opt
no es
necesario para ejecutar el sistema, también lo coloco en otro sistema de
archivos. Cuatro particiones. Además, creo un sistema de archivos /tmp
, que sólo debe albergar los archivos temporales
generados por el sistema. Cinco particiones. Como se trata de nuestro disco del
sistema, necesitamos una partición de intercambio. Eso hace seis. Y me queda una
partición libre para lo que quiera. Si bloqueo el sistema por motivos de
seguridad, todos los sistemas de archivos son de sólo lectura, excepto /tmp
y /var/tmp
. El sistema operativo percibe cada partición como un sistema de archivos distinto. Esto significa que crea caché y búferes para cada uno de estos sistemas de archivos. La caché y los búferes extra dispersan ligeramente la carga de E/S. Por supuesto, está la limitación de la copia de seguridad, la velocidad de interconexión y el controlador de disco. Sin embargo, es menos probable que surjan problemas cuando la carga de E/S sea muy alta.
Vale, me bajaré de la parra y seguiré con el menú de particiones. Aparece otro menú como éste:
PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quitLa manera más fácil que he encontrado para trabajar con las particiones es así: en la pantalla Partition Menu me limito a pulsar la tecla 'P' para la opción
print
. Así vemos con qué vamos a empezar.
Obtenemos la información siguiente, que también hemos visto antes. Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0Ésta es la tabla de particiones predeterminada, que necesitamos cambiar, sin olvidar que de ningún modo queremos particiones solapadas. La forma más segura de modificar las particiones es utilizar la opción
modify
. Ello conlleva el llamado segmento de monopolio libre
(Free Hog Slice), una partición temporal que por arte de magia se amplía y
reduce automáticamente según las opciones de partición. El segmento de monopolio
libre sólo se produce cuando se ejecuta la utilidad format
. Si introduce
modify
, tiene la posibilidad de
seleccionar una base de partición y puede modificar la partición actual o la de
monopolio totalmente libre (All Free Hog). partition> modify Select partitioning base: 0. Current partition table (original) 1. All Free Hog Choose base (enter number) [0]?Normalmente se modifica la partición actual, lo cual está bien. En realidad el resultado no es muy diferente. Cuando se selecciona la tabla de particiones actual, la utilidad
format
muestra primero las
particiones actuales. Si selecciona All Free Hog, verá que la única partición
que tiene espacio asignado es la de copia de seguridad. La opción modify
ofrece la oportunidad de modificar todas las
particiones excepto la de copia de seguridad. Una cosa que no me gusta de la
opción modify
es que no me permite asignar tag o
definir flag en las particiones que creo. Aunque puedo hacerlo después
seleccionando cada partición por separado, me parece redundante. Si decido no usar la opción
modify
, puedo cambiar
cada partición individualmente. Como estoy usando una unidad de 36 GB, también
puedo agrandar un poco la partición raíz. Para empezar, selecciono la partición
que quiero modificar, defino los permisos de la partición, le asigno un cilindro
inicial y, por último, un tamaño. partition> 0 Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 Enter partition id tag[root]: Enter partition permission flags[wm]: Enter new starting cyl[0]: Enter partition size [262899b, 91c, 90e, 128.37mb, 0.13gb]: 256mbTambién se puede introducir un signo '?' en la etiqueta identificadora (id tag) de la partición, así como preguntas en los identificadores de permiso (permission flags), para obtener respuestas aceptables. Si vuelvo a pulsar la tecla 'P', vemos un problema que es preciso resolver.
Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 181 256.74MB (182/0/0) 525798 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 ...La partición 0 se solapa con la partición 1. A medida que cree las particiones, cerciórese de que no se solapen. El número y el tamaño de las particiones que cree depende realmente de su sitio, necesidades, experiencias, etc. Al terminar tenemos lo siguiente:
Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 181 56.74MB (182/0/0) 525798 1 swap wu 182 - 272 128.37MB (1452/0/0) 4194828 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 3540 - 4265 1.00GB (726/0/0) 2097414 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 4266 - 4991 1.00GB (726/0/0) 2097414 6 usr wm 273 - 2087 2.50GB (1815/0/0) 5243535 7 var wm 2088 - 3539 2.00GB (1452/0/0) 4194828Todavía hay que generar la tabla de particiones. Para ello basta con introducir
label
y responder 'Y' a la pregunta
"continue?". Seguramente se preguntará dónde está /home
. Yo no suelo poner nada en el disco del sistema. Así es
más fácil pasar de un nivel a otro del SO. En realidad no debería hacer falta usar la opción
format
si los discos se compran a Sun. En caso de que
adquiera discos usados, los traslade desde otro sistema operativo o tenga una
lista de defectos abundantes, la opción format
los
preparará para Solaris. Si la lista de defectos es grande, puede limpiar un poco
el disco. Esta opción puede resultarle útil si el sistema tiene conectados
dispositivos RAID que no son bastante avanzados como para presentar los LUN
creados de manera que Solaris los entienda. Si tiene hardware así, seguramente
le interesa conseguir nuevos equipos. Según el tamaño, le convendrá empezar a
formatear el disco antes de irse a casa o al iniciar la jornada laboral. En mi
estación de trabajo Ultra Enterprise (UE-60), el tiempo de duración estimado
para una unidad de 36 GB es de 332 minutos. La opción
repair
puede servir para reparar un bloque
defectuoso en el disco, tal vez. No la he usado en estos años. De hecho, la
había olvidado hasta que empecé a redactar estas líneas. Con el bajo coste de
los discos actuales, resulta más seguro y, probablemente más barato, sustituir
un disco que perder horas y horas amañándolo para intentar recuperar un bloque
aquí y otro allí. Quizá no sea muy divertido, pero probablemente sí más seguro.
Como antes ya he dicho más que suficiente sobre la opción
label
, me centraré directamente en analyze
. Al igual que la opción defect, analyze
abre otro menú. Yo ya casi no uso la opción analyze
, salvo a veces cuando hago pruebas o escribo un
artículo. Puede utilizar los elementos del menú Analyze para analizar un disco,
claro. Observará que algunos elementos indican que deterioran los datos. La opción
backup
busca etiquetas de copia de
seguridad. Primero busca una etiqueta primary y, si la encuentra, format
le pregunta si desea continuar. Si continúa, la opción
backup
sustituye la etiqueta primary por la de copia de
seguridad que encuentra. Nunca he tenido que hacer esto, y me pregunto cómo se
utiliza. Por lo que yo sé, sin la etiqueta primary no es posible acceder a la
opción backup en el comando format
. Supongo que Sun
podría decirnos cómo utilizar el comando dd
para
trasladar una etiqueta backup a la posición de la etiqueta primary en el disco,
pero es sólo una suposición mía. ¿Se ha divertido? Asignar formato y definir particiones en un par de discos no es un problema; hay que teclear mucho, pero es soportable. En cambio, ¿qué ocurre si acabamos de conectar una matriz RAID grande y necesitamos configurar de manera idéntica 10 o incluso 200 discos? Una buena amiga tuvo que hacerlo en un voluminoso proyecto de producción de imágenes. Utilizó
fmthard
y algo de secuencia de comandos para conseguirlo de
un tirón. Como siempre,
man -s1m fmthard
brinda más
información, pero resumiré brevemente el uso de fmthard
. De entrada, necesitará un archivo de datos ASCII
para indicar a fmthard
cómo configurar las particiones
en los discos de destino. Puede crearlo con el editor que prefiera o con el
propio comando fmthard
. Al observar el archivo de
texto, notará que debe especificar el primer sector y el número de sectores de
cada partición en cada disco. Como vengo insistiendo, no queremos en absoluto
que se solapen las particiones. * Partition Tag Flag First Sector Sector Count 0 2 00 4194828 1048707 1 7 00 5243535 4145715 2 5 00 0 71127180 3 3 01 0 4194828 4 0 00 9389250 2097414 5 0 00 11486664 8389656 6 4 00 19876320 6292242Por tanto, lo mejor sería emplear la utilidad
format
para particionar uno de los discos con la configuración necesaria y después
ejecutar el comando fmthard
para crear el archivo de
datos correspondiente a las particiones de los demás discos. fmthard -i -n "" /dev/rdsk/c2t1d0s2 > ./mypartition.datEl comando anterior genera las particiones del disco
c2t1d0
en el archivo mypartition.dat
. A continuación debe usar este archivo dat
con el comando fmthard
para
todos los discos en que desee definir las mismas particiones. « fmthard -s mypartition.dat -n "volumename" /dev/rdsk/cxtydzs2 »El inconveniente de
fmthard
es que actualiza la
VTOC. Así que si los discos no tienen etiquetas válidas con las que empezar,
fmthard
no funciona. Si prevé utilizar o definir el
nombre del volumen con el comando fmthard
, quizá acabe
teniendo una secuencia de comandos con 200 (o cualquiera que sea el número de
discos que modifique). No obstante, sigue siendo mejor que configurar lentamente
las particiones en un montón de discos con la utilidad format
. Si ha leído la página sobre
format
del manual,
observará lo siguiente: -e Enable SCSI expert menu. Note this option is not recommended for casual use.Nos dice que es una opción reservada a los expertos, pero yo he tenido que usarla, no sé usted. Al acceder a la utilidad
format
,
otras dos líneas del menú advierten sobre SCSI: scsi - independent SCSI mode selects cache - enable, disable or query SCSI disk cacheIncluso aparece una advertencia rotunda si se introduce la opción
scsi
. Si en la vida real no es usted un experto en SCSI,
seguramente querrá un buen libro donde se explique el protocolo SCSI, sobre
todos las selecciones de modo que se pueden cambiar con la opción scsi
de la utilidad format
. Yo le
recomendaría The SCSI Bus and IDE Interface: Protocols, Applications, and
Programming, de Friedhelm Schmidt. Aunque a veces he jugueteado con esto,
nunca me he arriesgado con un servidor de producción. A veces es mejor dejar las
cosas como están. Un aviso si va a probar con la opción
scsi
: inicie
primero la utilidad format
con la opción de registro
(-l c2t1d0.log
) y después recorra cada pantalla de la
utilidad format
; así se guardará todo en el archivo de
registro. Además, la selección de formato con la opción scsi
no es la misma que en el nivel de menús superior. La opción cache ofrece un menú para la caché de lectura y escritura en disco. No todos los discos SCSI tienen caché y, de los que la tienen, no todos permiten cambiar las opciones de caché. Esta caché es una pequeña cantidad de memoria en el disco, no tiene nada que ver con la memoria del sistema. Ello significa que cada disco puede ser un poco distinto y actuar de diferente manera cuando se usan estas opciones. He comprobado que la caché de lectura suele estar activada, lo que tiene sentido si se va la luz durante una operación de lectura. Los datos deben seguir en el disco. Análogamente, siempre he encontrado desactivada la caché de escritura. También tiene sentido, porque si se va la luz perderá todo lo que hay en la caché de escritura. Cuando la he activado y comparado las cargas de E/S mediante IOzone, las operaciones de lectura mejoraron desde muy poco hasta mucho. Esta mejora varía según el modelo de disco y el proveedor.
Ya que estamos en la utilidad
format
con la opción
-e
, veamos otro elemento. Escriba label
y obtendrá esta respuesta: format> label [0] SMI Label [1] EFI Label Specify Label type[0]:Creo que SMI significa Sun Microsystems. Ésta es la opción predeterminada, que aparece cuando se inicia la utilidad
format
sin la
opción -e
. La opción SMI proporciona la configuración
estándar de ocho particiones, de las cuales la segunda es la de copia de
seguridad. Si selecciona la etiqueta EFI (Extensible Firmware Interface), la partición obtenida es la siguiente:
ascii name = <FUJITSU MAN3367M SUN36G 1502 43d671f> bytes/sector = 512 sectors = 71132958 accessible sectors = 71132925 Part Tag Flag First Sector Size Last Sector 0 root wm 34 128.35MB 262898 1 swap wu 262899 128.37MB 525797 2 unassigned wm 0 0 0 3 unassigned wm 0 0 0 4 unassigned wm 0 0 0 5 unassigned wm 0 0 0 6 usr wm 525798 33.66GB 71116540 7 unassigned wm 0 0 0 8 reserved wm 71116541 8.00MB 71132924 format>En la página Extensible Firmware Interface de la web de Intel encontrará abundante información sobre EFI.
¿Dónde nos lleva esto? Espero haberle aclarado algunas cosas que puede hacer con la utilidad
format
y lo que la utilidad format
puede hacer por usted.
y luego esta de EMC te explica
cómo crear el FileSystem y montar/desmontar la unidad.
Creating and mounting a file system for a Solaris
server
To make the partition usable, you must create a file system in the
partition:
1. Create a file system:
newfs /dev/rdsk/disk_name_parition_number
Installing a CX3-20f Storage System in a Fibre Channel
Direct Configuration
with a Solaris Server with EMC PowerPath 93
where:
disk_name is the LUN device name
partition_number is the partition number
For example:
newfs /dev/rdsk/emcpower5a
2. When you are prompted to confirm the construction of a new file
system, enter y and press Enter.
3. Create a mount directory for the file system:
mkdir mount_ point
For example:
mkdir /temp
4. Mount the file system:
mount /dev/dsk/disk_name_partition_number_mount_point
For example:
mount /dev/dsk/emcpower5a /temp
This mounts the partition /dev/dsk/emcpower5a
onto the mount
point temp.
To verify that the file system was mounted, enter df -k.
This mount command is required every time the server is rebooted.
If you prefer, you can have the file system mount automatically at
boot time by adding this mount
command to the /etc/vfstab file.
94 Installing a
CX3-20f Storage System in a Fibre Channel Direct Configuration with a Solaris
Server
with EMC PowerPath
The server can now write data to and read data from the file system.
Unmounting a file system for a Solaris server
1. Make sure you are out of the mount point directory by entering cd /.
2. Enter
umount mount_point.
For example:
umount /temp
Y si te
interesa mas documentación, aquí dejo el enlace del PDF Oficial de Sun:
System Administration Guide: Devices and File Systems (A partir del capitulo 10 esta lo interesante):
Guidelines for Using the format Utility
Fuente: EMC y SUN
Jorge.
No hay comentarios:
Publicar un comentario