Installing Dragonfly Server

This topic explains how to install the Dragonfly server.

Tip: For a data center or a cluster, we recommend that you use at least two machines with eight cores, 16GB RAM and Gigabit Ethernet connections for deploying SuperNodes.

Context

There are two layers in Dragonfly’s architecture: server (SuperNodes) and client (hosts). Install the SuperNodes in one of the following ways:

  • Deploying with Docker: Recommended for quick local deployment and test.
  • Deploying with physical machines: Recommended for production usage.

Prerequisites

When deploying with Docker, the following conditions must be met.

Required SoftwareVersion Limit
Git1.9.1+
Docker1.12.0+

When deploying with physical machines, the following conditions must be met.

Required SoftwareVersion Limit
Git1.9.1+
JDK1.7+
Maven3.0.3+
Nginx0.8+

Procedure - When Deploying with Docker

  1. Obtain the source code of Dragonfly.

    1. git clone https://github.com/dragonflyoss/Dragonfly.git
  2. Enter the project directory.

    1. cd Dragonfly
  3. Build the Docker image.

    1. make build-supernode
  4. Obtain the latest Docker image ID of the SuperNode.

    1. docker image ls|grep 'supernode' |awk '{print $3}' | head -n1
  5. Start the SuperNode.

    1. # Replace ${supernodeDockerImageId} with the ID obtained at the previous step
    2. docker run -d -p 8001:8001 -p 8002:8002 ${supernodeDockerImageId}

Procedure - When Deploying with Physical Machines

  1. Obtain the source code of Dragonfly.

    1. git clone https://github.com/dragonflyoss/Dragonfly.git
  2. Enter the project directory.

    1. cd Dragonfly/src/supernode
  3. Compile the source code.

    1. mvn clean -U install -DskipTests=true
  4. Start the SuperNode.

    1. # If the 'supernode.baseHome’ is not specified, then the default value '/home/admin/supernode’ will be used.
    2. java -Dsupernode.baseHome=/home/admin/supernode -jar target/supernode.jar
  5. Add the following configuration items to the Nginx configuration file.

    Tip: The path of the Nginx configuration file is something like src/supernode/src/main/docker/sources/nginx.conf.

    1. server {
    2. listen 8001;
    3. location / {
    4. # Must be ${supernode.baseHome}/repo
    5. root /home/admin/supernode/repo;
    6. }
    7. }
    8. server {
    9. listen 8002;
    10. location / {
    11. proxy_pass http://127.0.0.1:8080;
    12. }
    13. }
  6. Start Nginx.

    1. sudo nginx

After this Task

  • After the SuperNode is installed, run the following commands to verify if Nginx and Tomcat are started, and if Port 8001 and 8002 are available.

    1. ps aux|grep nginx
    2. ps aux|grep tomcat
    3. telnet 127.0.0.1 8001
    4. telent 127.0.0.1 8002
  • Install the Dragonfly client and test if the downloading works.

    1. dfget --url "http://${resourceUrl}" --output ./resource.png --node "127.0.0.1"