ElasticDrive provides the ability for a remote storage resources to be mounted over the internet in a variety of innovative usages, including Disk Mirroring, Backups, Content Replication, Load Balancing, web caching and many more. Please select from the menu above to learn about the many various use cases.
Facebook Data Store API Amazon Mechanical Turk
Data Store API
Falconstor
EMC
Amazon EC2
Amazon S3
Amazon S3 Filesystem
Amazon Simple Storage Service
EC2 Filesystem
EC2 Raid
Global Filesystem
Grid Filesystem
JungleDisk
Mount Amazon S3 as a File System
S3 Backup
S3 Data System
S3 EC2
Amazon Mechanical Turk
Data Store API
S3 EC2 File system
S3 File system
S3 Filesystem
S3 Raid
S3 Raid Array
S3 migration
S3DFS
S3FS
S3InfiDisk
Server Backup
VM backup
Xdrive Filesystem
ec2 filesystem
glusterFS
hadoop
offsite remote backup
openfount
remote backup
remote backup automated
remote backup service
remote backup services
remote backup software
remote backup solution
remote backup solutions
remote backup storage
remote backup system
remote server backups
remote storage
rightscale
s3 drive
s3drive
secure remote backup
server backup storage
server backup tape
virtual server backup
virtual server migration
vmware backup
vmware migration
vmware s3
High Availablity
Online applications are now more sophisticated, reaching more users globally, and require increased innovation cycles to operate in this new fast pace environment. They require:
- Anytime, anywhere, always-on architecture, for seamless operations
- Intuitive, feature-rich web services API for fast integration and deployment
- Unlimited scalability in a single namespace
- Pay-as-you-go service model
- Built-in functionality for media management and manipulation
File and Block-Level Replication
ElasticDrive supports block-level replication. High-speed block-level replication enables the movement of transactional workloads such as mail servers and database servers. With block-level transfer, only the portion of a file that has changed is replicated, making it ideal for incrementally synchronizing large database servers and enabling efficient offsite data transfers.
Easy clustering and sharing of DataInsert Description
Data Availability
ElasticDrive is a key component in strong Data Availability strategy. The degree to which databases and other information storage systems faithfully record and report system transactions is a key issue in data availability . Information management specialists often focus separately on data availability in order to determine acceptable (or actual) data loss with various failure events.
Backups
Server Backups
Virtual Tape Backups (VTL)
ElasticDrive can be configured to act as VTLs or disk-based arrays that are configured to look like tape libraries to host servers and to back up data. They allow data to be streamed to hard drives as if it were being stored on LTO or other formats of tape, with all backup and restore operations handled by a customer’s existing data- protection software.
Disaster recovery and long-term retention
ElasticDrive provides the unique capability of writing backups to a local disk and a remote storage system simultaneously. The very same data could be available on-line for quick restores from a disk and off-site.
Cost-Effectively Back Up Your Servers
Perform server & virtual server backup at any time. ElasticDrive provides an easy-to-use, centralized backup facility that leverages a remote distributed storage environment via Amazon S3 and other.
Perform full and incremental file backups of virtual & physical machines or create full image backups.
Centrally manage backups to simplify management of IT resources by using a single agent running on a remote server rather than an agent on every virtual or physical machine.
ElasticDrive's Elastic Time System (ETS)
ElasticDrive's Elastic Time System (ETS) is a platform for data compliance that enables versioning and auditability requirements. ETS provides a time-shifting interface that permits a real-time and continuous view of data in the past by simply mounting a drive with a specific date.
An advantage of ETS is that when ElasticDrive writes new data, the blocks containing the old data can be retained, allowing a snapshot version of the file system to be maintained. ElasticDrive snapshots are created very quickly, since all the data composing the snapshot is already stored; they are also space efficient, since any unchanged data is shared among the file system and its snapshots.
Writable snapshots ("clones") can also be created, resulting in two independent file systems that share a set of blocks. As changes are made to any of the clone file systems, new data blocks are created to reflect those changes, but any unchanged blocks continue to be shared, no matter how many clones exist. Recovering data from any point in time is as simple as mounting a drive with a data & time.
Continuous data protection
Continuous data protection (CDP), also called continuous backup, refers to backup of computer data by automatically saving a copy of every change made to that data, essentially capturing every version of the data that the user saves. It allows the user or administrator to restore data to any point in time.
ElasticDrive's CDP is a service that captures changes to data to a separate storage location. There are multiple methods for capturing the continuous changes involving different technologies that serve different needs. CDP-based solutions can provide fine granularities of restorable objects ranging from crash-consistent images to logical objects such as files, mail boxes, messages, and database files and logs.
Recommend Backup Software
Amanda: Open Source Backup
Amanda is the most popular open source backup and recovery software in the world. Amanda protects more that half a million of servers and desktops running various versions of Linux, UNIX, Mac OS-X and Microsoft Windows operating systems worldwide.
Migration
Server Migrations
Perform anywhere-to-anywhere workload migrations with broad multiplatform support.
Move and protect all workloads regardless of hardware, operating system or virtual host.
Protect all workloads in the data center with live incremental replication.
Implement flexible, efficient and affordable workload protection and recovery solutions.
ElasticDrive Is Easy to Integrate
ElasticDrive implements the first true multi-tenant file system for the Internet. Unlike competing services, ElasticDrive's Narvanix support includes full file system calls to move, copy, rename, delete, upload, and download of files and folders in each end-user account via REST and SOAP web services.
Key Advantages
ElasticDrive's Narvanix User account management provides granular monitoring and control for multi-user applications. With built-in multi-tenant support, storage usage policies are set and enforced for each end-user that each application supports. Billing and metering of storage usage is already built and integrated, accelerating time to market.
Applications are simplified with server-side media processing. Unique media processing calls are implemented in the API to perform common media manipulation operations, like image resize/rotate for thumbnails, and soon video/audio transcoding along with advanced search functionality.
Reduced complexity with HTTP upload, which enables web-based application to upload content directly to a ElasticDrive account without having to proxy through a website that doubles bandwidth cost.
ElasticDrive further shortens time-to-market by providing reference code in popular programming languages for accelerated integration, including file managers, Windows-compatible backup.
Global Load Balancing
Global load balancing is a technique to spread work between many geographically disperse computers, processes, hard disks or other resources in order to get optimal resource utilization and decrease computing time. ElasticDrive provides the ability to easily mount the same data across local or remote several servers or resource pools.
Miscellaneous
Content Delivery Networks
ElasticDrive can be configured to act as a Content Delivery Network (CDN).
CDN nodes, either physical or virtual servers can be deployed in multiple geographical locations, connected via a central content repository mount on each server. These nodes cooperate with each other to satisfy requests for content by end users, transparently moving content behind the scenes to optimize the delivery process. Optimization can take the form of reducing bandwidth costs, improving end-user performance, or both.
Web Cache
Because closer is better, web caches store popular content closer to the user. A shared network drive such as ElasticDrive can reduce bandwidth requirements, reduce server load, and improve the client response times for content stored in the cache.
ElasticDrive Web caches can be deployed in a variety of ways. User agent caches, such as those in web browsers, are private caches, operating on behalf of a single user. Intermediaries can also implement shared caches that serve more than one person.
Proxy caches, also known as forward proxy caches, are usually deployed by internet service providers, schools and corporations to save bandwidth. Interception proxy caches (sometimes called "transparent caches") are a variant that doesn't require clients to be explicitly configured to use them.
Gateway caches, sometimes known as reverse proxy caches, surrogate caches, or web accelerators, operate on behalf of the origin server, and to clients are indistinguisable from it. A number of gateway caches can work together to implement a Content Delivery Network.
Intermediaries that cache often perform other duties, such as user authentication and content filtering. Multiple caches can also be coordinated using peering protocols like Internet Cache Protocol and HTCP.
Distributed Database
ElasticDrive is ideal for usage as a distributed database or a database that is under the control of a central database management system (DBMS) in which storage devices are not all attached to a common CPU. It may be stored in multiple computers located in the same physical location, or may be dispersed over a network of interconnected computers. Could be used with several DBMS such as Mysql, PostgreSQL or Oracle.
Recommend Software
Dcache is a system for storing and retrieving huge amounts of data, distributed among a large number of heterogenous server nodes, under a single virtual filesystem tree with a variety of standard access methods. Depending on the Persistency Model, dCache provides methods for exchanging data with backend (tertiary) Storage Systems as well as space management, pool attraction, dataset replication, hot spot determination and recovery from disk or node failures. Connected to a tertiary storage system, the cache simulates unlimited direct access storage space. Dataexchanges to and from the underlying HSM are performed automatically and invisibly to the user. Filesystem namespace operations may be performed through a standard nfs(2) interface.
- dCache makes a multi-terabyte server farm look like one coherent and homogeneous storage system.
- Rate adaptation between the application and the tertiary storage resources.
- Optimized usage of virtual and real tape robot systems and drives by coordinated read and write requests.
- No explicit staging is necessary to access the data (but pre staging possible and in some cases desirable).
- The data access method is unique independent of where the data resides.
- High performance and fault tolerant transport protocol between applications and data servers.
Can be accessed directly from your application (e.g. /MNT/BIGDRIVE )
FAQ
Where can I get FREE Support?
You can hire us, or visit
http://developer.amazonwebservices.com/connect/thread.jspa?threadID=16326
How does the storage based pricing work?
ElasticDrive pricing is based on storage, 250gb for $249, 500gb for $449 and 1TB for $749. 1 License per OS installation (virtual or physical). If you're using a dynamic or virtual hosting environment where the amount of servers changes such as Amazon EC2. You may want to consider the infinite version.
Does ElasticDrive provide installation support?
ElasticDrive provides installation support package for $2,500. This includes up to 8 hours installation setup, configuration and consulting. 1 year of upgrades, and application integration. Access to an online support ticketing system. (integration includes setup of shared file systems and file level optimization)
What if I need more then 8 hours of support?
Custom support packages are available on a hourly basis and start at 2500 or more, give us a call.
If a new version comes out, do I need to pay again?
Upgrades are free for a year from the point of purchase, after which a new license(s) is required.
What does the Infinite version offer?
Unlimited usage of both storage and installations. Install and use as many times as you like on as many machines as you want.
Can we use our own storage system?
Yes, the infinite version allows for usage of your own SAN, NAS etc
Why not just use JungleDisk?
Jungle disk is basically a file transfer application similar to that of an FTP it’s currently limited to Amazon’s S3 service. ElasticDrive enables actual formating of multiple geographically disperse storage resources to act like a local hard drive. This is handy in a lot of enterprise contexts where a native file system is easier to use then trying to re-architect your app to fit the confines of a web service call.
Whats so great about Nirvanix?
The cool thing about Nirvanix you can target specific geographical regions, so lets say an office in London may have access to the local UK data center, where an office in China gets the Asian data center.
I can't seem to get ElasticDrive installed, can you provide an example?
## Sample ElasticDrive Installation Procedure
1) cd /opt
2) wget elasticdrive.com/uploads/media/elasticdrive_last.tar.gz
3) tar zxf elasticdrive_last.tar.gz
4) cd elasticdrive_X
5) modprobe nbd
6) edit elasticdrive.cfg to add S3 credentials and disk size
7) run './install' to setup dependencies
8) cd .. ; // move one level up
9) run elasticdrive service 'dir/elasticdrive /etc/elasticdrive.cfg -d'
10) verify ps aux |grep elasticdrive
11) choose your usecase from README file
Is there a way to resize the virtual drive we have created on S3 ?
Just change the configuration to have the new block count you want, then run resize2fs against it.
Is there a way to resize the virtual drive we have created on S3 ?
readme.txt
=== ElasticDrive 0.4.2 README ===
ElasticDrive is a pluggable network storage infrastructure system with
built-in support for storage on local files, Amazon S3 (Simple Storage
Service), and with pending preliminary support for the Nirvanix storage
system. ElasticDrive provides a caching block device driver which pushes
blocks to and from pluggable storage engines as if they were being written
to a physical hard drive.
ElasticDrive provides this service through a virtual block device (VBD)
service. The VBD service translates File or S3 blocks into a virtual block
device transparently, so that the client (the kernel) sees a generic block
device. The FUSE based VBD is supported on almost every linux kernel,
including EC2. ElasticDrive is compatible with virtually all linux
distributions. Simply modprobe fuse and you are ready to use ElasticDrive.
ElasticDrive is not intended to replace your existing hard drives or network
filesystems directly. ElasticDrive is intended to provide seamless backup,
RAID target devices, or backing stores for higher level distributed
filesystems.
=== Prerequisites ===
THIS IS IMPORTANT! ELASTICDRIVE WILL NOT WORK IF YOU DON'T READ THIS SECTION!
Before elasticdrive will work, you will need some other software installed on
your server. You will need the fuse kernel module, the fuse userspace
utilities, and the development libraries. This is a pretty easy step for most
linux distributions. If you are running a debian based distribution (like
Ubuntu, or, um, Debian), just type the following line:
sudo apt-get install libfuse-dev libfuse2 fuse-utils python-dev python-ctypes \
python-fuse
On the other hand, if you are running a redhat or fedora base distribution,
you can type the following line:
sudo yum install fuse fuse-devel python-devel python-ctypes python-fuse
If you are running on Centos5/RHEL5, you may also need:
sudo yum install dkms-fuse
=== License ===
The free version of ElasticDrive is limited to 5GB per installation.
A license is required for each OS installation (virtual or physical).
Full license details are available at www.elasticdrive.com.
If you require greater storage capacity, please visit www.elasticdrive.com.
We offer enhanced versions with 250GB, 500GB, or 1TB storage, and
an infinite version with unlimited storage and installations.
=== Support ===
ElasticDrive includes free upgrades for one year from the point of purchase.
For support options and pricing, please contact us at
+1-212-203-4734 (U.S.) or +1-416-710-5831 (Canada). Support is available
for installation setup, configuration, consulting, and application
integration (includes setup of shared file systems and file level
optimization).
=== What's New? ===
* ElasticDrive now has an ordered write engine which ensures that data is
always written to disk in the correct order. This engine is the s3simple
storage engine. This engine is about 10% slower than the previous one, but it
should be more reliable for RAID devices. If you want more performance, you can
now RAID multiple elasticdrives in parallel (RAID0). The old s3 fast engine has
been removed.
* At the request of one of our customers, ElasticDrive now supports gzip
encoding on your stripes; which gives a significant speed (and cost) improvement
for a lot of use cases.
* ElasticDrive also has preliminary support for the tcp_window_scaling option,
which increases window size for much faster transfers. We expect this one to
grow legs as Amazon pushes window scaling into production. This option is
currently in testing at Amazon, and is not recommended for production use.
* SSL can be turned on and off at will with the no_ssl option. Good for higher
speed and lower CPU usage transfers.
* CPU usage is much, much lower.
* ElasticDrive's new caching algorithm is simpler, smaller, and faster for
data reads.
* ElasticDrive now comes with the ed_bucket_mgr tool for listing your buckets,
and deleting the ones you are no longer using. Useful for cleaning out file-
systems that you are no longer using.
=== Configuring ElasticDrive (elasticdrive.ini) ===
The ElasticDrive configuration file (elasticdrive.ini) is a standard windows
style INI file. No XML here! Your configuration file looks like this:
#elasticdrive.ini
[global]
configured=1
fusermount="/usr/bin/fusermount"
pidfile="/var/run/elasticdrive.pid"
[logging]
filename='/var/log/elasticdrive.log'
#WARNING: Using a logging level other that WARN or ERROR will impact both
# performance AND stability!!! DEBUG can actually block the kernel
# when you push a large amount of data. You have been warned!
level=logging.ERROR
[servers]
modules=""
[engines]
modules=""
[drives]
#Path to fuse is the path to the device mount folder. NOT your fuse libraries
fuseblock|/path/to/fuse="s3://S3ACCESSKEY:S3SECRETKEY@aws.amazon.com/
?bucket=YOURBUCKET&stripesize=65536&blocksize=4096&blocks=6553600&
sizebyblocks=1"
Most of the configuration should be left as is. Just modify the stripesize,
bucket, XXXYOURAWSKEYXXX and XXXYOURAWSSECRETKEYXXX in the
S3 configuration URL.
When you see the term /path/to/fuse , you should replace it with the path to an
empty directory where you are going to mount the s3 virtual block device. For
example, you may want to create a directory called /mnt/s3device and mount the
elasticdrive there.
If you are creating a RAID Stripe, the blocksize and blocks should match
the size of your physical hard drive. If you are using a smaller than
1TB hard disk, you can format the url instead like this:
&size=BYTESINDEVICE
Remove the sizebyblocks, blocks, and blocksize variables if you do this.
Once you have configured your installation, make sure to comment this line:
#raise Exception('Elasticdrive has not been configured.')
Once you're done modifying your configuration file, be sure to backup the file
to a remote location.
--- S3 Options ---
Please follow the example of the S3 configuration. The resource path is the
bucket name for the drive to be stored in.
size - The size of the block device in bytes.
stripesize - The size, in bytes, of the file chunks which will be written
back to S3. Larger files will lower per transaction fees, at
the expense of more total bandwidth. Acceptable values are
4096, 8192, 16384, 32768, or 65536.
blocksize - The block size that the kernel will see. 4096 is a good default.
sizebyblocks - Size the drive by the number of blocks x the blocksize.
Required when the drive is larger than 2GB or so.
blocks - The number of blocks in the filesystem when using sizebyblocks.
bucket - The bucket inside which to save the block objects. This will be
created if it does not already exist.
user - Your S3 access key.
passwd - Your S3 secret key.
gzip - If this is enabled. Blocks will be gzipped when saved to S3. Use
gzip=1 to enable, gzip=0 to disable. Default is off.
no_ssl - Disable SSL. THIS IS A SECURITY RISK, but does add a little bit
of performance. Use no_ssl=1 to disable ssl no_ssl=0 to enable
ssl. By default ssl is enabled.
All other options are now ignored.
=== Starting/Stopping ElasticDrive===
To run ElasticDrive, simply enter:
> elasticdrive /path/to/config/file.cfg [-d]
The -d option will daemonize ElasticDrive for use as a system daemon.
To shut down ElasticDrive, send it a single SIGTERM (or control-c from
the console). The PID of the master elasticdrive process is stored in the file
/var/run/elasticdrive.pid by default. ElasticDrive will flush all commands to
disk and exit safely. ElasticDrive will also correctly close all kernel
connections. Do not send multiple kills or ElasticDrive may lose data. The
command line to easily kill elasticdrive from bash is:
kill -SIGTERM `cat /var/run/elasticdrive.pid`
Please take note of the backticks.
=== USE CASES ===
--- Direct Network Storage for S3 ---
To use ElasticDrive directly as a storage device, simply run the ElasticDrive
binary from /opt/elasticdrive-x.x.x, then create a filesystem on it and use it
like a normal filesystem. After unmounting, the drive can be remounted on any
system that can see S3.
> elasticdrive /etc/elasticdrive.ini -d
> mke2fs -b 4096 /path/to/fuse/ed0
> mkdir /s3
> mount /path/to/fuse/ed0 /s3 -o loop
--- Virtual Backup Tape ---
You can also copy an existing filesystem directly to ElasticDrive:
> elasticdrive /etc/elasticdrive.ini -d
> dd if=/dev/sda1 of=/path/to/fuse/ed0 bs=4096 count=sizeofyourdrive
Note that this method of backing up preserves all the little things about your
filesystem (like atime, mtime, hardlinks) which get missed by webdav or
minimal FUSE based storage.
--- Software RAID (Preferred) ---
Software RAID is our favourite way to use ElasticDrive. By mounting a virtual
RAID device, you can have pervasive remote storage which keeps a remote hot
copy of your data, while using the local drive for high speed read/write
access. The RAID mirror will catch up in the background with your filesystem
changes. In the event of an unexpected failure, you have one side of a RAID
mirror ready to recover with! This works especially well with EC2 instances ;)
> elasticdrive /etc/elasticdrive.ini -d
> losetup /dev/loop1 /path/to/fuse/ed0
> mdadm --create /dev/md0 -n2 --level 1 /dev/sda2 --write-mostly /dev/loop1
> mke2fs -b 4096 /dev/md0
> mkdir /s3
> mount /dev/md0 /s3
In the event of a failure, on the rebooted machine (or a different machine):
> elasticdrive /etc/elasticdrive.ini -d
> losetup /dev/loop1 /path/to/fuse/ed0
> mdadm -A /dev/md0 /dev/sda2 /dev/loop1
Note that the ElasticDrive configuration file on the recovering machine must
be the same as the configuration file on the failed machine. Be sure to
back up your configuration file in advance to a remote location.
--- Software RAID (File Backed Storage) ---
One interesting side effect of having file backed raid devices is that you can
back them on your existing filesystem. This is not as efficient as writing
directly to the disk, but it also means you do not give up your partitions
(think EC2). Create a
'fuseblock:/home/youruser/elasticdrive0/ed0':'file:///?size=yoursize'
entry in the drives configuration, then try this recipe:
> elasticdrive /etc/elasticdrive.ini -d
> losetup /dev/loop1 /path/to/s3/fuse/ed0
> losetup /dev/loop2 /home/youruser/elasticdrive0/ed0
> mdadm --create /dev/md0 -n2 --level 1 /dev/loop2 --write-mostly /dev/loop1
> mke2fs -b 4096 /dev/md0
> mkdir /s3
> mount /dev/md0 /s3
Note that you could also make a ram backed drive the same way, although that
would only be useful for high read access, low write usage, like a small
database file, for example.
=== Common Problems ===
There are some pretty common problems that you might run into while working
with ElasticDrive, and some issues which will LOOK like problems, but are
really correct behaviors.
--- Really Slow Performance ---
If you are running over the internet on a slow connection (ie: cable modem or
adsl), you may feel like ElasticDrive is slow. That is because it is, relative
to your hard drive speed. You should be able to saturate your home internet
connection pretty easily with ElasticDrive. Just remember, the average
internet connection is about a thousand times slower than even a decent hard
disk drive.
--- Long delays after flushing ---
If you unmount a drive, or run a bonnie++ test, or create a REALLY big file
all of a sudden, the last process you run may seem to hang. DO NOT KILL IT,
and DO NOT KILL ELASTICDRIVE!!! ElasticDrive will fight to keep running
until all of your data is safely flushed to disk. This is a GOOD THING(tm).
Please be patient and wait until ElasticDrive starts responding again. You may
want to check the /var/log/elasticdrive.log file.
--- Strange "file not found" errors on startup ---
This is probably because the system cannot find fusermount, which usually
lives in a package called fuse-utils, fuse, or similar. You need to have
fuse support in your operating system before ElasticDrive will work.
--- CFLAGS related errors during install ---
Generally this is caused because python-devel is not installed. Review the
section about prerequisites and try again. Usually this can be fixed by
installing python-devel/python-dev and trying again. This can also be caused by
a missing libfuse-dev or fuse-devel package.
--- Will not install on OSX ---
While we plan to add OSX support in the near future, it has not been tested
yet, so your mileage may vary.
Note: We do actually run on OSX, but it is not yet a supported package. You
will need to install macfuse and the developer libraries to get this working.
--- No filesystem found errors ---
You need to format the filesystem at /mount/path/to/fuse/ed0 before you
can mount it.
--- Build problems on Fedora/Centos/RHEL ---
You need the following packages installed:
- python-devel
- fuse-devel
- gcc
Further, you may have problems starting elasticdrive, with something about
not being able to start fuse. You will need to install the fuse bindings
and userspace tools. On Centos5/RHEL5, these are:
- dkms-fuse
- fuse
The big catch-all yum line is therefore:
yum install fuse fuse-devel dkms-fuse gcc python-devel
and the equivalent apt-get:
sudo apt-get install libfuse-dev libfuse2 fuse-utils python-dev
Do this before trying the install script again.



