petterl / friendfs Goto Github PK
View Code? Open in Web Editor NEWA filesystem using storage at friends
Home Page: http://petterl.github.com/friendfs
A filesystem using storage at friends
Home Page: http://petterl.github.com/friendfs
PREREQ: The fuserl c driver has to be installed. You can find it here: http://fuserl.googlecode.com/files/fuserldrv-2.0.3.tar.gz If you are have root just follow the instructions and install it in the default location. If you are not root or want to install the c driver someplace else you need to update lib/fuserl-2.0.5/src/fuserl.appSrc. The thing you need to change is fuserldrvprefix from auto_detect to the path where you have the fuserl c driver installed: i.e. {env,[{fuserldrvprefix,"/home/lukas/fuserlcdrv/"}]} INSTALL: Just doing a make should be enough to install the system make STARTING FRIENDFS: First you need to configure friendfs copy friendfs/doc/friendfs.conf.example to a good place Set FRIENDFS_CONF to the path to the updated config file If you put it as /etc/friendfs.conf or $HOME/.friendfs.conf you dont need to set the FRIENDFS_CONF. You then can start and connect to the erlang VM using the command: scripts/friendfsctl start USING FRIENDFS: You wont have any fun without a mount point where you can put your files. You create a mountpoint with: scripts/friendfsctl mount <mountpoint> <options> <options> is fs=<filesystem> remember that /dir/to/mount/to has to exist before you can mount you new friendfs filesystem into it! You connect to the erlang VM by issuing this command: scripts/friendfsctl shell If you have any question rtfs!
Building friendfs according to instructions in README does not work:
~/friendfs$ make && make check_environment make[1]: Entering directory `~/friendfs/lib/fuserl-2.0.5/src' Compiling and loading fuserl.erl Compiling and loading fuserlcodec.erl Compiling and loading fuserlportable.erl Compiling and loading fuserlsrv.erl Compiling fuserl.app make[1]: Leaving directory `~/friendfs/lib/fuserl-2.0.5/src' make[1]: Entering directory `~/friendfs/lib/friendfs-0.1.0/src' Compiling and loading ffs_fat.erl ./ffs_fat.erl:471: Warning: function get_path_to_inode/2 is unused ./ffs_fat.erl:473: Warning: function get_path_to_inode/3 is unused ./ffs_fat.erl:482: Warning: function path_parse/4 is unused Compiling and loading ffs_filesystem.erl Compiling and loading ffs_filesystem_sup.erl Compiling and loading ffs_lib.erl ./ffs_lib.erl:44: Warning: function path_split/1 is unused ./ffs_lib.erl:47: Warning: function path_split/2 is unused ./ffs_lib.erl:56: Warning: function urlunsplit/1 is unused ./ffs_lib.erl:63: Warning: function urlunsplit_path/1 is unused ./ffs_lib.erl:206: Warning: function new_store/0 is unused ./ffs_lib.erl:208: Warning: function put_value/3 is unused ./ffs_lib.erl:210: Warning: function get_value/2 is unused Compiling and loading ffs_mountpoint.erl ./ffs_mountpoint.erl:623: Warning: function to_unix/1 is unused ./ffs_mountpoint.erl:626: Warning: variable 'Gid' is unused ./ffs_mountpoint.erl:626: Warning: variable 'Uid' is unused ./ffs_mountpoint.erl:627: Warning: variable 'Atime' is unused ./ffs_mountpoint.erl:627: Warning: variable 'Mtime' is unused ./ffs_mountpoint.erl:628: Warning: variable 'Ctime' is unused ./ffs_mountpoint.erl:629: Warning: variable 'Size' is unused Compiling and loading ffs_mountpoint_sup.erl Compiling and loading ffs_storage_file.erl ./ffs_storage_file.erl:90: Warning: variable 'Offset' is unused ./ffs_storage_file.erl:141: Warning: function get_files_n_dirs/3 is unused ./ffs_storage_file.erl:146: Warning: variable 'RecAcc' is unused Compiling and loading ffs_storage_mem.erl Compiling and loading ffs_storage_mgr.erl Compiling and loading ffs_storage_sup.erl Compiling and loading filesystem.erl Compiling and loading friendfs.erl Compiling and loading friendfs_sup.erl Compiling and loading ffs_config.erl Compiling friendfs.app rm ffs_config.erl make[1]: Leaving directory `~/friendfs/lib/friendfs-0.1.0/src' make[1]: Entering directory `~/friendfs/lib/fuserl-2.0.5/src' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `~/friendfs/lib/fuserl-2.0.5/src' make[1]: Entering directory `~/friendfs/lib/friendfs-0.1.0/src' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `~/friendfs/lib/friendfs-0.1.0/src' ln -s /vobs/otp/otp_delivery/sles10_32/erts-.o cc erts-.o -o erts- cc: erts-.o: No such file or directory cc: no input files make: *** [erts-] Error 1 rm erts-.o
Running the system afterwards yields:
~/friendfs$ scripts/friendfsctl start scripts/friendfsctl: line 10: ./bin/start_friendfs: No such file or directory
If fuserl crashes/unmounts and the mountpoint is on a NFS the following error messages are displayed and the mountpoint folder is then unuable without a reboot.
umount: /home/qluclar/private/friendfs/ffs: block devices not permitted on fs
umount: /home/qluclar/private/friendfs/ffs: block devices not permitted on fs
=SUPERVISOR REPORT==== 14-Oct-2009::10:17:53 ===
Supervisor: {local,ffs_mountpoint_sup}
Context: child_terminated
Reason: {bad_return_value,not_implemented}
Offender: [{pid,<0.86.0>},
{name,"ffs/"},
{mfa,{ffs_mountpoint,start_link,["ffs/","fs=home"]}},
{restart_type,permanent},
{shutdown,10000},
{child_type,worker}]
fuse: failed to access mountpoint ffs/: Transport endpoint is not connected
=CRASH REPORT==== 14-Oct-2009::10:17:53 ===
crasher:
initial call: fuserlsrv:init/1
pid: <0.88.0>
registered_name: []
exception exit: driver_aborted
in function gen_server:init_it/6
ancestors: [ffs_mountpoint_sup,friendfs_sup,<0.61.0>]
messages: []
links: [<0.68.0>,#Port<0.929>]
dictionary: []
trap_exit: true
status: running
heap_size: 377
stack_size: 24
reductions: 261
neighbours:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.