[ Pantallas ] [ Descargar ] [ Soporte ] [ Pedidos ] [ Sourceforge ] [ FUSE ]

Proyecto alojado en
SourceForge.net Logo


Introducción

virtual800 nació de la necesidad de realizar pruebas de tráfico en redes, transfiriendo archivos de una computadora a otra y observando el comportamiento de los equipos en la red. Dado que los archivos a transferir estaban alojados en el disco rígido de la máquina transmisora y eran escritos en el disco rígido de la máquina receptora, esto introducía latencia y muchas veces no se llegaba a transferir a la velocidad deseada.

Una solución fue utilizar el sistema de archivos tmpfs, que aloja los archivos en memoria RAM, evitando la demora que introducen los discos rígidos. El inconveniente es que al ser alojados en RAM, el tamaño de estos archivos es limitado. Como en estas transferencias se necesitaban pasar archivos sin importar su contenido, desarrollé virtual800.

Que es virtual800

virtual800 es un sistema de archivos que permite contener archivos virtuales de gran tamaño para poder realizar este tipo de pruebas. Al leer el archivo, el contenido es generado en tiempo real con un valor predefinido o al azar. Al escribir en el archivo, el sistema se comporta tal como si la escritura hubiera ocurrido, incrementando el tamaño del archivo si es necesario. De esta manera se pueden tener archivos de gran tamaño sin ocupar memoria RAM y sin que intervengan los discos rígidos en la transferencia de datos.

Que no es virtual800

virtual800 no es un disco en RAM (ramdisk) ni un sistema de archivos temporales (tmpfs). Si bien se comporta como uno, el contenido de los archivos no se conserva, sólo se conserva el nombre, tamaño y los permisos. Tampoco hay compresión de datos ni formato de sistema de archivos. Todo archivo escrito en virtual800 pierde irremediablemente su contenido, por lo que no se lo debe usar para almacenar datos.

Licencia

virtual800 se distribuye bajo la licencia GPL (General Public License) versión 2 o superior (a su elección):

Ejemplos

miguelo@saturno:~$ mkdir test
miguelo@saturno:~$ virtual800 -t syssize=768T,sysfiles=28 test
miguelo@saturno:~$ cd test

miguelo@saturno:~/test$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1  9.3G 2.9G 6.4G  32%  /
virtual800 768T 256T 513T  34%  /home/miguelo/test

miguelo@saturno:~/test$ ls -l
total 2147482624
-rw-rw-rw- 1 miguelo miguelo         1048576 2007-04-09 18:53 v800-0000-001Mb.bin
-rw-rw-rw- 1 miguelo miguelo         2097152 2007-04-09 18:53 v800-0001-002Mb.bin
-rw-rw-rw- 1 miguelo miguelo         4194304 2007-04-09 18:53 v800-0002-004Mb.bin
-rw-rw-rw- 1 miguelo miguelo         8388608 2007-04-09 18:53 v800-0003-008Mb.bin
-rw-rw-rw- 1 miguelo miguelo        16777216 2007-04-09 18:53 v800-0004-016Mb.bin
-rw-rw-rw- 1 miguelo miguelo        33554432 2007-04-09 18:53 v800-0005-032Mb.bin
-rw-rw-rw- 1 miguelo miguelo        67108864 2007-04-09 18:53 v800-0006-064Mb.bin
-rw-rw-rw- 1 miguelo miguelo       134217728 2007-04-09 18:53 v800-0007-128Mb.bin
-rw-rw-rw- 1 miguelo miguelo       268435456 2007-04-09 18:53 v800-0008-256Mb.bin
-rw-rw-rw- 1 miguelo miguelo       536870912 2007-04-09 18:53 v800-0009-512Mb.bin
-rw-rw-rw- 1 miguelo miguelo      1073741824 2007-04-09 18:53 v800-0010-001Gb.bin
-rw-rw-rw- 1 miguelo miguelo      2147483648 2007-04-09 18:53 v800-0011-002Gb.bin
-rw-rw-rw- 1 miguelo miguelo      4294967296 2007-04-09 18:53 v800-0012-004Gb.bin
-rw-rw-rw- 1 miguelo miguelo      8589934592 2007-04-09 18:53 v800-0013-008Gb.bin
-rw-rw-rw- 1 miguelo miguelo     17179869184 2007-04-09 18:53 v800-0014-016Gb.bin
-rw-rw-rw- 1 miguelo miguelo     34359738368 2007-04-09 18:53 v800-0015-032Gb.bin
-rw-rw-rw- 1 miguelo miguelo     68719476736 2007-04-09 18:53 v800-0016-064Gb.bin
-rw-rw-rw- 1 miguelo miguelo    137438953472 2007-04-09 18:53 v800-0017-128Gb.bin
-rw-rw-rw- 1 miguelo miguelo    274877906944 2007-04-09 18:53 v800-0018-256Gb.bin
-rw-rw-rw- 1 miguelo miguelo    549755813888 2007-04-09 18:53 v800-0019-512Gb.bin
-rw-rw-rw- 1 miguelo miguelo   1099511627776 2007-04-09 18:53 v800-0020-001Tb.bin
-rw-rw-rw- 1 miguelo miguelo   2199023255552 2007-04-09 18:53 v800-0021-002Tb.bin
-rw-rw-rw- 1 miguelo miguelo   4398046511104 2007-04-09 18:53 v800-0022-004Tb.bin
-rw-rw-rw- 1 miguelo miguelo   8796093022208 2007-04-09 18:53 v800-0023-008Tb.bin
-rw-rw-rw- 1 miguelo miguelo  17592186044416 2007-04-09 18:53 v800-0024-016Tb.bin
-rw-rw-rw- 1 miguelo miguelo  35184372088832 2007-04-09 18:53 v800-0025-032Tb.bin
-rw-rw-rw- 1 miguelo miguelo  70368744177664 2007-04-09 18:53 v800-0026-064Tb.bin
-rw-rw-rw- 1 miguelo miguelo 140737488355328 2007-04-09 18:53 v800-0027-128Tb.bin

miguelo@saturno:~/test$ echo "virtual800 filefilltype=byterand" > v800-0001-002Mb.bin
miguelo@saturno:~/test$ hd v800-0001-002Mb.bin | head -n 10
00000000 30 d5 7b 23 65 ab af d2 86 21 9f 51 81 b9 5d 10 |0Õ{#e«¯Ò.!.Q.¹].|
00000010 57 74 53 07 96 1d 85 37 8f d1 7c f4 dc 66 6b 0c |WtS....7.Ñ|ôÜfk.|
00000020 3b e6 2f a0 92 de 72 18 ff 11 69 81 cb c7 91 22 |;æ/ .Þr.ÿ.i.ËÇ."|
00000030 3b e4 29 d1 02 ae 08 91 7f 85 86 5b eb f1 67 26 |;ä)Ñ.®.....[ëñg&|
00000040 d8 96 c6 6a 74 38 82 74 4a eb f5 15 b2 86 37 ee |Ø.Æjt8.tJëõ.².7î|
00000050 6b 61 bf 6d 0f c8 fe 8f 4d 84 ea 38 76 52 5e 4e |ka¿m.Èþ.M.ê8vR^N|
00000060 e8 24 b8 5d 5c 3a d1 a6 25 c6 bb d8 4c f3 c6 b7 |è$¸]\:Ѧ%Æ»ØLóÆ·|
00000070 54 85 24 63 4d 23 f2 9a a7 dd d2 1d 2f 30 6b 17 |T.$cM#ò.§ÝÒ./0k.|
00000080 54 23 74 b1 5d 45 57 83 0b 13 5b 58 06 21 0f 5a |T#t±]EW...[X.!.Z|
00000090 a6 34 bd f4 57 b0 8e fe 8d 61 1c bc 91 87 d3 e6 |¦4½ôW°.þ.a.¼..Óæ|

miguelo@saturno:~/test$ echo "virtual800 filefilltype=bytefixrnd" > v800-0001-002Mb.bin
miguelo@saturno:~/test$ md5sum -b v800-0001-002Mb.bin
bd222758e748f74e381ef80b1a9e75fd *v800-0001-002Mb.bin
miguelo@saturno:~/test$ md5sum -b v800-0001-002Mb.bin
bd222758e748f74e381ef80b1a9e75fd *v800-0001-002Mb.bin