Skip to content

v4.0 Deployment

Andrey Kurilov edited this page May 28, 2018 · 16 revisions

Environment Requirements

  • JRE 8+ or Docker
  • OS open files limit is at least a bit higher than specified concurrency level
  • Few gigabytes of free memory.

High-load tests may allocate up to 1-2 GB of the memory depending on the scenario.

  • (Remote Storage) Connectivity with the endpoint nodes via the ports used
  • (Distributed Mode) Connectivity with the remote nodes via port #1099 (RMI)
  • (Remote Monitoring) Connectivity with the load controller via port #9010 (JMX)

Deliverable Package

Mongoose is distributed as a single jar file from: https://github.com/emc-mongoose/mongoose/releases/tag/latest

Docker

Mongoose images are stored in the Docker Hub

Base

Note that the base image doesn't contain any storage driver implementations (FS, S3, Swift, Atmos, ...)

See the extensions section to use any additional functionality

Standalone

The base image may be used in the standalone mode:

docker run \
    --network host \
    emcmongoose/mongoose[-<TYPE>] \
    [<ARGS>]

Controller

The base image may be used as a controller in the distributed mode:

docker run \
    --network host \
    emcmongoose/mongoose \
    --load-step-distributed \
    --load-step-node-addrs=<ADDR1,ADDR2,...> \
    [<ARGS>]

Extensions

Provided

Load Step Implementations
  • Linear
  • Chain
  • Weighted
Storage Drivers
  • s3: Amazon S3 generic storage
  • atmos: EMC Atmos cloud storage
  • swift: OpenStack Swift cloud storage
  • fs: Filesystem storage driver

External

Image Name Description
mongoose-storage-driver-emc-s3 Base image + EMC S3 storage driver implementation
mongoose-storage-driver-cifs Base image + CIFS storage driver implementation (planned)
mongoose-storage-driver-hdfs Base image + HDFS storage driver implementation
mongoose-storage-driver-nfs Base image + NFS storage driver implementation (planned)

Storage Driver Service

docker run \
    --network host \
    --expose 1099 \
    emcmongoose/mongoose[-<TYPE>]
    --run-node

Additional Notes

Logs Sharing

The example below mounts the host's directory ./log to the container's /opt/mongoose/log (where mongoose holds its log files).

docker run \
    --network host \
    --mount type=bind,source="$(pwd)"/log,target=/opt/mongoose/log
    emcmongoose/<IMAGE> \
    [<ARGS>]

Debugging

The example below starts the Mongoose in the container with remote debugging capability via the port #5005.

docker run \
    --network host \
    --expose 5005
    --entrypoint /opt/mongoose/entrypoint-debug.sh \
    emcmongoose/<IMAGE> \
    [<ARGS>]
Clone this wiki locally