This cookbook allows for a quick setup of the XTREEMFS services in a distributed way. Up to now, only the Ubuntu versions with repositories perpared here are supported in theory, i.e. 9.04 to 12.10. (In practice, only the more recent versions have been tested.)
apt
- for local testing,
chef-solo-search
andautoetchosts
Just spread the recipes xtreemfs::dir
, xtreemfs::mrc
and xtreemfs::osd
over your servers.
Note that until now, only using one directory service is supported.
Also the convention is followed that the OSD's directories are their number, below the object_base_directory
.
Thus, with node[:xtreemfs][:osd][:object_base_directory] = "/var/lib/xtreemfs/objs/"
(the default), the storage directories will be laid out as follows:
/var/lib/xtreemfs/objs/0
/var/lib/xtreemfs/objs/1
/var/lib/xtreemfs/objs/2
...
All attributes are in the node[:xtreemfs]
"namespace":
user
- the user to run the xtreemfs services ("xtreemfs")group
- its group ("xtreemfs")mrc/dir_service_host
(defaults to "localhost")osd/count
- the number of OSD instances on the host (1)osd/first_listen_port
defaults to 32640osd/first_http_port
defaults to 30640osd/object_base_directory
- the directory where objects will be stored ("/var/lib/xtreemfs/objs/")osd/bind_ip
,mrc/bind_ip
,dir/bind_ip
default tonode[:ipaddress]
mrc/listen_port
,dir/listen_port
,mrc/http_port
,dir/http_port
anddir/snmp_port
default to their XtreemFS defaultsmrc/replication
anddir/replication
- if these services use babudb replication - default tofalse
xtreemfs::client
: installs thextreemfs-client
package.xtreemfs::dir
: installs thextreemfs-server
package and enables thextreemfs-dir
service; setsnode[:xtreemfs][:dir][:service]
to true.xtreemfs::mrc
: installs thextreemfs-server
package, configures and enables thextreemfs-mrc
service; searching for the node withxtreemfs_dir_service:true
. Finally, setsnode[:xtreemfs][:mrc][:service]
to true.xtreemfs::osd
: installs thextreemfs-server
package, configures and enables the specified count of OSD instances. DIR is discovered as inxtreemfs::mrc
.
To test these locally, just spin up the three machines defined in the Vagrantfile
and the node
databag:
vagrant up /x/
Each of these features the DIR and MRC service (both set up to replicate) as well as two OSDs.
Author:: Hendrik Volkmer (h.volkmer@cloudbau.de)
Copyright:: 2013, cloudbau GmbH
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.