[ Pantallas ] [ Descargar ] [ Soporte ] [ Pedidos ] [ Sourceforge ] [ FUSE ] |
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