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 Software | Version Limit |
---|---|
Git | 1.9.1+ |
Docker | 1.12.0+ |
When deploying with physical machines, the following conditions must be met.
Required Software | Version Limit |
---|---|
Git | 1.9.1+ |
JDK | 1.7+ |
Maven | 3.0.3+ |
Nginx | 0.8+ |
Procedure - When Deploying with Docker
Obtain the source code of Dragonfly.
git clone https://github.com/dragonflyoss/Dragonfly.git
Enter the project directory.
cd Dragonfly
Build the Docker image.
make build-supernode
Obtain the latest Docker image ID of the SuperNode.
docker image ls|grep 'supernode' |awk '{print $3}' | head -n1
Start the SuperNode.
# Replace ${supernodeDockerImageId} with the ID obtained at the previous step
docker run -d -p 8001:8001 -p 8002:8002 ${supernodeDockerImageId}
Procedure - When Deploying with Physical Machines
Obtain the source code of Dragonfly.
git clone https://github.com/dragonflyoss/Dragonfly.git
Enter the project directory.
cd Dragonfly/src/supernode
Compile the source code.
mvn clean -U install -DskipTests=true
Start the SuperNode.
# If the 'supernode.baseHome’ is not specified, then the default value '/home/admin/supernode’ will be used.
java -Dsupernode.baseHome=/home/admin/supernode -jar target/supernode.jar
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
.server {
listen 8001;
location / {
# Must be ${supernode.baseHome}/repo
root /home/admin/supernode/repo;
}
}
server {
listen 8002;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
Start Nginx.
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
and8002
are available.ps aux|grep nginx
ps aux|grep tomcat
telnet 127.0.0.1 8001
telent 127.0.0.1 8002
Install the Dragonfly client and test if the downloading works.
dfget --url "http://${resourceUrl}" --output ./resource.png --node "127.0.0.1"