Difference: CloudSuiteV3Installation (11 vs. 12)

Revision 122016-10-07 - HamidMoghaddam

Line: 1 to 1
 
META TOPICPARENT name="CloudSuite"
-- HamidMoghaddam - 18 May 2016
Changed:
<
<
The new version of CloudSuite is developed on Docker files so it needs different installation than last one. The new version needs Ubuntu 14.04 so I cloned one of VM and upgraded it to 14.04.
>
>
Although the installation guide of the CloudSuite's benchmarks are provided by the Cloudsuite developers, sometimes we need to install each part of a benchmark in the different nodes. The following installation steps are used for implementing the web serving benchmark of CloudSuite on the different VMs of our cloud lab.
 

Creating Swarm Manager

In order to connect dockers which are installed on different nods we need installing Swarm.

  1. cloned Vm and named it cs-v3-web-swarmmanager-x64 and assigned it 10.0.100.62.
  2. installed docker by this link guide.
  3. opened terminal and wrote: docker pull swarm
Changed:
<
<
  1. Got error "Cannot connect to the Docker daemon. Is the docker daemon running on this host?" so run sudo usermod -aG docker mike and sudo usermod -aG docker root then logout and login
>
>
  1. If get this error "Cannot connect to the Docker daemon. Is the docker daemon running on this host?" then run sudo usermod -aG docker mike and sudo usermod -aG docker root then logout and login
 
  1. docker pull progrium/consul
Changed:
<
<
  1. add DOCKER_OPTS="-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 \ --cluster-store consul://10.0.100.62:8500 \ --cluster-advertise eth0:2375" to /etc/default/docker(in this link they wrote step 6 completly wrong and take one day to figure out what happens.)
>
>
  1. add DOCKER_OPTS="-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 \ --cluster-store consul://10.0.100.62:8500 \ --cluster-advertise eth0:2375" to /etc/default/docker
 
  1. sudo service docker restart
Changed:
<
<
  1. docker run -d -p 8500:8500 --hostname 10.0.100.62 --name consul-store progrium/consul -server -bootstrap (again in the swarm installation guide by CloudSuite, they made this line mistake and consumed a lot of time to solve it)
  2. docker run -d --name swarm-agent swarm join --advertise=10.0.100.62 :2375 consul://10.0.100.62:8500 (again CloudSuite team writed this line wrongly. )
  3. repeat step 2,3,4,6,7,9 on every VMs but just in step 9 replace --advertise IP address with each VM IP address.
  4. docker -H tcp://10.0.100.62:22222 network create --driver overlay swarm-network
>
>
  1. docker run -d -p 8500:8500 --hostname 10.0.100.62 --name consul-store progrium/consul -server -bootstrap
  2. docker run -d --name swarm-agent swarm join --advertise=10.0.100.62:2375 consul://10.0.100.62:8500
  3. docker run -d -p 22222:2375 --name swarm-manager swarm manage consul://10.0.100.62:8500
  4. docker -H tcp://10.0.100.62:22222 network create --driver overlay --subnet=172.28.0.0/16 --ip-range=172.28.5.0/24 my_net
 

Frontend

Changed:
<
<
I did following steps on frontend machine(Please check swarm-agent is running: docker start 'swarm-agent')
>
>
In the Frontend machine(IP:10.0.100.12)
 
Changed:
<
<
1. docker pull cloudsuite/web-serving:web_server

2. docker -H tcp://10.0.100.62:22222 run -dt -e constraint:node==cs-v3-web-frontend-x64 --net=swarm-network --name=web_server cloudsuite/web-serving:web_server /etc/bootstrap.sh I got subnet conflict in this stage (Thanks again to CloudSuit team) After one they searching I found out creating overlay network (step 11 of swarm manager creation) should be change to docker -H tcp://10.0.100.62:22222 network create --driver overlay --subnet=172.28.0.0/16 --ip-range=172.28.5.0/24 swarm-network

>
>
1. docker run -d --name swarm-agent swarm join --advertise=10.0.100.12:2375 consul://10.0.100.62:8500
 

Backend

Changed:
<
<
  1. docker pull cloudsuite/web-serving:db_server
  2. docker -H tcp://10.0.100.62:22222 run -dt -e constraint:node==cs-v3-web-backend-x64 --net=swarm-network --name=mysql_server cloudsuite/web-serving:db_server
>
>
In the Backend machine(IP:10.0.100.2)
  1. docker run -d --name swarm-agent swarm join --advertise=10.0.100.12:2375 consul://10.0.100.62:8500
 

Memcache

Changed:
<
<
  1. docker pull cloudsuite/web-serving:memcached_server
  2. docker -H tcp://10.0.100.62:22222 run -dt -e constraint:node==cs-v3-web-memcached-x64 --net=swarm-network --name=memcache_server cloudsuite/web-serving:memcached_server
>
>
In the Memcached machine(IP:10.0.100.42)
  1. docker run -d --name swarm-agent swarm join --advertise=10.0.100.42:2375 consul://10.0.100.62:8500
 

Client

Changed:
<
<
  1. docker pull cloudsuite/web-serving:faban_client
  2. docker inspect --format '' web_server
  3. docker run --net=my_net --name=faban_client cloudsuite/web-serving:faban_client [put IP address of step 2 in here]
>
>
In the Client machine(IP:10.0.100.32)

  1. docker run -d --name swarm-agent swarm join --advertise=10.0.100.32:2375 consul://10.0.100.62:8500

Swarm Manager

Again in the Swarm Maganer Machine:

  1. First check all nodes are healthy : docker -H tcp://10.0.100.62:22222 info (Note: all nodes status should be equal to Health)
  2. docker -H tcp://10.0.100.62:22222 pull cloudsuite/web-serving:db_server
  3. docker -H tcp://10.0.100.62:22222 pull cloudsuite/web-serving:memcached_server
  4. docker -H tcp://10.0.100.62:22222 pull cloudsuite/web-serving:web_server
  5. docker -H tcp://10.0.100.62:22222 pull cloudsuite/web-serving:faban_client
  6. docker -H tcp://10.0.100.62:22222 run -dt -e constraint:node==cs-v3-web-backend-x64 --net=my_net --name=mysql_server cloudsuite/web-serving:db_server
  7. docker -H tcp://10.0.100.62:22222 run -dt -e constraint:node==cs-v3-web-memcached-x64 --net=my_net --name=memcache_server cloudsuite/web-serving:memcached_server
  8. docker -H tcp://10.0.100.62:22222 run -dt -e constraint:node==cs-v3-web-frontend-x64 --net=my_net --name=web_server cloudsuite/web-serving:web_server /etc/bootstrap.sh
 

Running benchmark

Changed:
<
<
Step 3 in client section runs benchmark but I can not change running time of benchmarking so I would like have faban client web page so I do following steps:
  1. docker -H tcp://10.0.100.62:22222 run -it --entrypoint=/bin/bash -e constraint:node==cs-v3-web-memcached-x64 --net=swarm-network --name=faban_client cloudsuite/web-serving:faban_client
>
>
Now it for running benchmark just use following command in the swarm manager machine:
  1. Get IP address of web_server by : docker -H tcp://10.0.100.62:22222 inspect --format '' web_server
  2. Then run benchmark: docker -H tcp://10.0.100.62:22222 run --net=my_net --name=faban_client cloudsuite/web-serving:faban_client [put IP address of step 1 in here]

If you want to see faban(Elgg) web consol then used following steps instead of above two:

  1. docker -H tcp://10.0.100.62:22222 run -it --entrypoint=/bin/bash -e constraint:node==cs-v3-web-client-x64 --net=my_net --name=faban_client cloudsuite/web-serving:faban_client
 
  1. If not loggined automatically then login to faban client by docker -H tcp://10.0.100.62:22222 attach faban_client
Changed:
<
<
  1. I run faban faban/master/bin/startup.sh
  2. Then cd /home/web20_benchmark/build
  3. java -jar Usergen.jar https://web_server:8080
  4. now I can see faban client web page however increasing steady time in it make "java.lang.Exception: Driver failed to complete benchmark run" error some people said it happened because of Openjdk 7 so I should switch to Oracle Java in client docker
  5. add-apt-repository ppa:webupd8team/java made "add-apt-repository: command not found" error so I used apt-get install software-properties-common python-software-properties
  6. sudo apt-get update
  7. apt-get install oracle-java8-installer
  8. used /usr/lib/jvm/java-8-oracle in java home field of faban client web page
  9. The error still remains.(I will work on it tommorrow)
>
>
  1. Then run faban: faban/master/bin/startup.sh
  2. Then cd /home/web20_benchmark/build
  3. java -jar Usergen.jar https://[put IP address of web_server in here]:8080
  4. Now use ifconfig to find IP address of faban_client(something like 172.18.0.2)
  5. Access to faban web consol by: https://[IP address of step 6]:9980
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback