You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Source code (main branch) and documentation is available on Github under Apache Licenses, Version 2.0.

This page contains some additional guides and hints provided by users installing the platform:

  • Staszek Jankowski, Maciej Brzeźniak (PSNC)
  • Dirk Dupont (BELNET)
  • Jakub Peisar (CESNET)
  • Gui Maluf (RNP)


PSNC - TRUSTED CLOUD DRIVE INSTALLATION INSTRUCTION

Tested configuration:

    Centos 5.8
    Oracle Java 1.7.0_07-b10

    This is a single node installation. All components are installed on the same node.

Instruction:


1. Unzip archive:
    unzip VirtualCloudDrive-CloudDrive-88d54c2.zip

2. Run voldemort:
    cd VirtualCloudDrive-CloudDrive-88d54c2/binaries/metadata/voldemort-0.90.1-patched/bin
    ./voldemort-server.sh ../config/clouddrive_node_cluster/ &


3. Install and setup MySQL:
    yum install mysql-server mysql
    /etc/init.d/mysqld start

    Set root password:
        mysqladmin -u root password “newpassword”
        mysqladmin -u root -h host_name password “newpassword”
        /etc/init.d/mysqld restart
    
    Create database:
        mysql -u root -p
        create database rightfabric;
        quit

4. Setup and run virtual clouddrive webdav module:
    mkdir /etc/rightfabric
    cd .../VirtualCloudDrive-CloudDrive-88d54c2/config/clouddrive
    cp config.txt /etc/rightfabric/config.txt

    vi /etc/rightfabric/config.txt

        change: voldemort = tcp://10.0.0.5:6666
        to:    voldemort = tcp://localhost:6666

    cd .../VirtualCloudDrive-CloudDrive-88d54c2/src/clouddrive
    ./sbt console
        :load ./addme.scala
        :quit
    ./sbt run

    test with cadaver:
        cadaver localhost:9090
            user: maarten
            pass: geheim

5. Setup clouddrive website:

     Replace the value of db.password with mysql password on src/main/resources/props/default.props file

     cd .../VirtualCloudDrive-CloudDrive-88d54c2/src/web_clouddrive
    ./sbt update
    ./sbt ~jetty-run

    Open http://localhost:8080 in your favourite webbrowser and enjoy!

Authors:

  • Staszek Jankowski (staszek ---at--- man.poznan.pl)
  • Maciej Brzeźniak (maciekb ---at--- man.poznan.pl)

TODO:

  • the instruction to be cross-checked by someone else than the author
  • to be checked for other popular distributions

BELNET - TRUSTED CLOUD DRIVE INSTALLATION INSTRUCTION

Tested configuration:

   Ubuntu 10.04 32bit

   Single node setup

Pre-installations:

   apt-get install mysql-server

         root password must be geheim

        (geheim is Dutch for secret)

   apt-get install openjdk-6-jdk

Credits:

Dirk Dupont (dirk.dupont-at-belnet.be)


CESNET - TRUSTED CLOUD DRIVE INSTALLATION INSTRUCTIONS


A) Single VM installation:

All virtual machines were Ubuntu 64-bit 12.04 LTS with OpenJDK 1.7

For a single VM installation I followed the PSNC guide

I didn't bother with setting up SimpleSamlPHP and Apache, I was using just Jetty to serve the webcontent.

 

cloud@clouddriveApp1:~$ uname -a
Linux clouddriveApp1 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
 
cloud@clouddriveApp1:~/CloudDrive-master$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.04.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)

Only issue I found was with the jquery.js paths (see below)

 

B) Multiple VMs installation:

I didn't bother with setting up SimpleSamlPHP and Apache, I was using just Jetty to serve the webcontent.

For the multiple VMs installation I followed the https://github.com/VirtualCloudDrive/CloudDrive/wiki/Two-Quick-starts

I made 5 VMs for this setup :

  • Voldemort1
  • Voldemort2 (I wanted to try the multi-node cluster)
  • App1 (WebDAV daemon and the Scala application)
  • MySQL (distinct VM for the database)
  • Webserver1 (just a one webserver VM to server the traffic, can easily scale)

On all machines I downloaded the source tar from github. All the machines also have the same /etc/rightfabric/config.txt file, which I edited to suit my architecture (file attached). Then on Voldemort machines I changed the CloudDrive-master/binaries/metadata/voldemort-0.90.1-patched/config/clouddrive_node_cluster/config/cluster.xml to have 2 nodes (file attached).

On the MySQL machine I obviously installed the mysql-server and set up the database for the application. For this i used the SQL script at CloudDrive-master/config/database/mysql/mysql-setup.sql.

On the App server I created the directory structure to hold the user files and compiled the WebDAV daemon with sbt. After running the daemon with "./sbt run" the daemon was up and serving requests.

This is how the "storage" looks :

cloud@clouddriveApp1:~$ ls -lh /cloud/data/maarten/
total 8.3M
-rw-r--r-- 1 cloud cloud  128 Nov 26 14:34 01a6cad3-a67a-4129-8457-4aafbd5dceb6
-rw-r--r-- 1 cloud cloud   32 Nov 26 16:54 1b7892b2-281b-4b13-ae7e-9901a1efbba0
-rw-r--r-- 1 cloud cloud  784 Nov 26 14:51 25c61c78-4b0a-4926-8605-978b22157672
-rw-r--r-- 1 cloud cloud  784 Nov 26 16:08 3c43d014-af5c-4a53-95e9-ae1ba6858b0c
-rw-r--r-- 1 cloud cloud  784 Nov 26 16:08 3e0719ab-9458-41f7-a259-65882e08bebf
-rw-r--r-- 1 cloud cloud   16 Nov 28 09:35 5d1520fc-8e78-446a-a7aa-f64ac986f3a3
-rw-r--r-- 1 cloud cloud 8.3M Nov 28 11:30 927058df-09ee-44c6-a05d-8268abaf02b6
-rw-r--r-- 1 cloud cloud  784 Nov 26 16:42 a54b85d6-2f34-4b5d-bdd8-e335365c45ea
-rw-r--r-- 1 cloud cloud 4.1K Nov 28 09:36 d481e8f2-da9f-4957-8e35-17d73eeedc6f
-rw-r--r-- 1 cloud cloud  784 Nov 26 14:47 d9b19d10-1608-45fc-bdb4-5cf841660d75

On the webserver I decided to simply use provided Jetty to start things up. There I only edited the CloudDrive-master/src/web_clouddrive/src/main/props/production.default.props file to connect to the MySQL server on the other VM, packaged it with "./sbt package" and copied the resulting .war file to CloudDrive-master/binaries/website/root.war.

Issuing ./sbt update and then ./sbt ~jetty-run I was able to start the website. You can reach it at http://clouddrivewebserver1.du1.cesnet.cz:8080


Problems:

1)

Both installations have the same problem with serving the jquery.js file. When I am logged in the website and I am at the root of my home directory view, I can click the buttons to create new folder or upload a file with no problems (buttons have javascript onclick listeners on them). The URL of jquery.js file is http://clouddrivewebserver1.du1.cesnet.cz:8080/jquery.js. The URL of the webpage is http://clouddrivewebserver1.du1.cesnet.cz:8080/webdrive .

But when I descend into a subdirectory, say /test/ and I try to create new folder, nothing happens. Back when I check the Jetty log I can see the 404 error and a Java stack trace of NullPointerException (can be seen in included file). My browser is now trying to access the URL http://clouddrivewebserver1.du1.cesnet.cz:8080/webdrive/jquery.js while the URL of the webpage is http://clouddrivewebserver1.du1.cesnet.cz:8080/webdrive/test .

2)

The second problem is with multi-VM setup and downloading files. When I try to download a file via the website in the single-VM setup, it works and I am able to successfully download the file. But when I try to download a file via the website from the multi-VM setup, I get an error webpage and then when I check the folder, the file I tried to download is gone. Debug logging from the Jetty of the failed download attempt can be seen in the atteched file.

After going through the configuration files I suspect the error being in declaration of filesystem_prefix in /etc/rightfabric/config.txt. There it states:

#If you use the local filesystem for data storage, this is the folder or
#mount point to store. Note that it must be shared across all machines in a
#multi-machine setup. E.g. via SMB or NFS or so.
#NOTE THE TRAILING SLASH IN THE PATH
filesystem_prefix = /cloud/data/

 

The thing is, I have this setup as a directory on the local disk of my App VM as that is the place where I store the blobs (I upload files via cadaver which connects directly to App VM). I can see the files being there:

cloud@clouddriveApp1:~$ ls -lh /cloud/data/maarten/
total 17M
-rw-r--r-- 1 cloud cloud  128 Nov 26 14:34 01a6cad3-a67a-4129-8457-4aafbd5dceb6
-rw-r--r-- 1 cloud cloud   32 Nov 26 16:54 1b7892b2-281b-4b13-ae7e-9901a1efbba0
-rw-r--r-- 1 cloud cloud  784 Nov 26 14:51 25c61c78-4b0a-4926-8605-978b22157672
-rw-r--r-- 1 cloud cloud  784 Nov 26 16:08 3c43d014-af5c-4a53-95e9-ae1ba6858b0c
-rw-r--r-- 1 cloud cloud  784 Nov 26 16:08 3e0719ab-9458-41f7-a259-65882e08bebf
-rw-r--r-- 1 cloud cloud   16 Nov 28 09:35 5d1520fc-8e78-446a-a7aa-f64ac986f3a3
-rw-r--r-- 1 cloud cloud 8.3M Nov 28 11:30 927058df-09ee-44c6-a05d-8268abaf02b6
-rw-r--r-- 1 cloud cloud  784 Nov 26 16:42 a54b85d6-2f34-4b5d-bdd8-e335365c45ea
-rw-r--r-- 1 cloud cloud 8.3M Nov 28 12:21 accfe894-5f04-40dc-84b9-7442bb14b27d
-rw-r--r-- 1 cloud cloud 4.1K Nov 28 09:36 d481e8f2-da9f-4957-8e35-17d73eeedc6f
-rw-r--r-- 1 cloud cloud  784 Nov 26 14:47 d9b19d10-1608-45fc-bdb4-5cf841660d75

 

Then on the webserver I can see the directory is created but obviously it is empty:

cloud@clouddriveWebserver1:~/CloudDrive-master$ ls -lh /cloud/data/maarten/
total 0

Do I understand correctly, that I need to have the filesystem with binary blobs of stored files mounted even on the webserver nodes ? I would imagine the WebDAV daemon nodes having the need to see the filesystem as they process the files.

 

  • No labels