Tengo un disco iSCSI en/dev/rdsk/c5t6d0
He hecho una partición (porción con etiqueta UEFI) en:/dev/rdsk/c5t6d0s0
Ahora escribo algunos datos en el segmento:
echo "xyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxy" >/text
dd if=/text of=/dev/dsk/c5t6d0s0
Si descarto el contenido del disco, veo la etiqueta UEFI y también mis datos en el desplazamiento 0x5000:
dd if=/dev/rdsk/c5t6d0 bs=512 | xxd
0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
...
0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000190: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001b0: 0000 0000 0000 0000 0eb5 7760 0000 00ff ..........w`....
00001c0: ffff eeff ffff 0100 0000 ff3f 0300 0000 ...........?....
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa ..............U.
0000200: 4546 4920 5041 5254 0000 0100 5c00 0000 EFI PART....\...
0000210: 7187 d278 0000 0000 0100 0000 0000 0000 q..x............
0000220: ff3f 0300 0000 0000 2200 0000 0000 0000 .?......".......
0000230: de3f 0300 0000 0000 fd59 3d67 51a0 4d13 .?.......Y=gQ.M.
0000240: abdd a5e8 8251 c7ac 0200 0000 0000 0000 .....Q..........
0000250: 8000 0000 8000 0000 7e8c 8e06 0000 0000 ........~.......
0000260: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000270: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000280: 0000 0000 0000 0000 0000 0000 0000 0000 ................
...
0005000: 7879 7879 7879 7879 7879 7879 7879 7879 xyxyxyxyxyxyxyxy
0005010: 7879 7879 7879 7879 7879 7879 7879 7879 xyxyxyxyxyxyxyxy
0005020: 7879 7879 7879 7879 7879 7879 7879 7879 xyxyxyxyxyxyxyxy
0005030: 7879 7879 7879 7879 7879 7879 0ab6 db6d xyxyxyxyxyxy...m
0005040: 6db6 db6d 6db6 db6d 6db6 db6d 6db6 db6d m..mm..mm..mm..m
0005050: 6db6 db6d 6db6 db6d 6db6 db6d 6db6 db6d m..mm..mm..mm..m
0005060: 6db6 db6d 6db6 db6d 6db6 db6d 6db6 db6d m..mm..mm..mm..m
0005070: 6db6 db6d 6db6 db6d 6db6 db6d 6db6 db6d m..mm..mm..mm..m
0005080: 6db6 db6d 6db6 db6d 6db6 db6d 6db6 db6d m..mm..mm..mm..m
0005090: 6db6 db6d 6db6 db6d 6db6 db6d 6db6 db6d m..mm..mm..mm..m
Pero si hago el mismo volcado en el lado del almacenamiento (destino iSCSI), ¡no veo mis datos escritos! Icerrarla máquina SPARC/solaris y¡voilá!los datos ahora están ahí.
¿Cómo puede ser esto? ¿Solaris almacena en caché mis datos en la memoria? ¿Cómo puedo desactivar esto?
Nota 1: intenté usarlo sync
pero no ayudó y de todos modos está relacionado con archivos en un sistema de archivos, que no tengo en mi escenario.
Nota 2: Mi máquina es un servidor T5220 UltraSPARC T2 con Solaris 11.3
Nota 3: 'almacenamiento' es un servidor Ubuntu con destino iSCSI en el almacén de respaldo del disco local.
Respuesta1
Está escribiendo en el dispositivo de bloque ( dsk
) que está almacenado en el búfer. Si desea omitir el búfer, puede escribir directamente en el dispositivo sin formato ( rdsk
, consulte¿Qué son los archivos especiales de caracteres y de bloque en un sistema Unix?) mediante la ejecución:
dd if=/text of=/dev/rdsk/c5t6d0s0
Sin embargo, su /text
archivo probablemente necesitará tener un tamaño exactamente múltiplo del tamaño de bloque para dd
tener éxito.
Alternativamente, aún puedes usar el dispositivo de caracteres pero indicarle dd
que sincronice su salida:
dd if=/text of=/dev/dsk/c5t6d0s0 conv=sync
o, si desea registros de salida de ancho fijo:
dd if=/text of=/dev/rdsk/c5t6d0s0 cbs=512 conv=sync,block