Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Support cuttlefish#1

  • Loading branch information...
commit 6629a985af97425ca66d6e75e9a66efaa06adace 1 parent a7b3e79
@yosukehara yosukehara authored
View
BIN  cuttlefish
Binary file not shown
View
162 priv/leo_storage.conf
@@ -0,0 +1,162 @@
+#======================================================================
+# LeoFS - Storage Configuration
+#
+# See: http://www.leofs.org/docs/configuration.html#leofs-storage
+#======================================================================
+## --------------------------------------------------------------------
+## SASL
+## --------------------------------------------------------------------
+## See: http://www.erlang.org/doc/man/sasl_app.html
+##
+## The following configuration parameters are defined for
+## the SASL application. See app(4) for more information
+## about configuration parameters
+
+## SASL error log path
+## sasl.sasl_error_log = ./log/sasl/sasl-error.log
+
+## Restricts the error logging performed by the specified sasl_error_logger
+## to error reports, progress reports, or both.
+## errlog_type = [error | progress | all]
+## sasl.errlog_type = error
+
+## Specifies in which directory the files are stored.
+## If this parameter is undefined or false, the error_logger_mf_h is not installed.
+# sasl.error_logger_mf_dir = ./log/sasl
+
+## Specifies how large each individual file can be.
+## If this parameter is undefined, the error_logger_mf_h is not installed.
+## sasl.error_logger_mf_maxbytes = 10485760
+
+## Specifies how many files are used.
+## If this parameter is undefined, the error_logger_mf_h is not installed.
+## sasl.error_logger_mf_maxfiles = 5
+
+## --------------------------------------------------------------------
+## Manager's Node(s)
+## --------------------------------------------------------------------
+## Name of Manager node(s)
+manager.1 = manager_0@127.0.0.1
+manager.2 = manager_1@127.0.0.1
+
+## --------------------------------------------------------------------
+## STORAGE
+## --------------------------------------------------------------------
+## LeoFS version
+## storage.system_version = 0.16.5
+
+## Object container
+obj_containers.path.1 = "./avs"
+obj_containers.num_of_containers.1 = 8
+
+## obj_containers.path.2 = "./avs/2"
+## obj_containers.num_of_containers.2 = 16
+
+
+## A number of virtual-nodes for the redundant-manager
+## num_of_vnodes = 168
+
+
+## --------------------------------------------------------------------
+## STORAGE - MQ
+## --------------------------------------------------------------------
+## A number of mq-server's processes
+mq.num_of_mq_procs = 8
+
+## MQ recover per_object
+mq.recover_per_object.num_of_batch_process = 1
+mq.recover_per_object.interval_min = 1
+mq.recover_per_object.interval_max = 1
+
+## MQ synchronize objects by vnode-id
+mq.sync_by_vnode_id.num_of_batch_process = 1
+mq.sync_by_vnode_id.interval_min = 8
+mq.sync_by_vnode_id.interval_max = 32
+
+## MQ rebalance objects
+mq.rebalance.num_of_batch_process = 1
+mq.rebalance.interval_min = 1
+mq.rebalance.interval_max = 1
+
+## MQ delete objects
+mq.delete_object.num_of_batch_process = 1
+mq.delete_object.interval_min = 1
+mq.delete_object.interval_max = 1
+
+## MQ recover a node's object
+mq.recovery_node.num_of_batch_process = 1
+mq.recovery_node.interval_min = 8
+mq.recovery_node.interval_max = 32
+
+
+## --------------------------------------------------------------------
+## STORAGE - Replication/Recovery object(s)
+## --------------------------------------------------------------------
+## Rack-id for the rack-awareness replica placement
+## replication.rack_awareness.rack_id = ""
+
+## Size of stacked objects (bytes)
+## replication.recovery.size_of_stacked_objs = 67108864
+
+## Stacking timeout (msec)
+## replication.recovery.stacking_timeout = 5000
+
+
+## --------------------------------------------------------------------
+## STORAGE - Log
+## --------------------------------------------------------------------
+## Log level: [0:debug, 1:info, 2:warn, 3:error]
+## storage.log.log_level = 1
+
+## Output log file(s) - Erlang's log
+## storage.log.erlang = ./log/erlang
+
+## Output log file(s) - app
+## storage.log.app = ./log/app
+
+## Output log file(s) - members of storage-cluster
+## storage.log.member_dir = ./log/ring
+
+## Output log file(s) - ring
+## storage.log.ring_dir = ./log/ring
+
+
+## --------------------------------------------------------------------
+## STORAGE - Other Directories
+## --------------------------------------------------------------------
+## Directory of queue for monitoring "RING"
+## storage.queue_dir = ./work/queue
+
+## Directory of SNMP agent configuration
+## storage.snmp_agent = ./snmp/snmpa_gateway_0/LEO-GATEWAY
+
+#======================================================================
+# For vm.args
+#======================================================================
+## Name of the leofs-gateway node
+nodename = gateway_0@127.0.0.1
+
+## Cookie for distributed node communication. All nodes in the same cluster
+## should use the same cookie or they will not be able to communicate.
+distributed_cookie = 401321b4
+
+## Enable kernel poll
+erlang.kernel_poll = true
+
+## Number of async threads
+erlang.asyc_threads = 32
+
+## Increase number of concurrent ports/sockets
+erlang.max_ports = 64000
+
+## Set the location of crash dumps
+erlang.crash_dump = ./log/erl_crash.dump
+
+## Raise the ETS table limit
+erlang.max_ets_tables = 256000
+
+## Raise the default erlang process limit
+process_limit = 1048576
+
+## Path of SNMP-agent configuration
+##snmp_conf = ./snmp/snmpa_storage_0/leo_storage_snmp
View
775 priv/leo_storage.schema
@@ -0,0 +1,775 @@
+%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*-
+%%======================================================================
+%%
+%% LeoFS
+%%
+%% Copyright (c) 2012-2013 Rakuten, Inc.
+%%
+%% This file is provided to you 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.
+%%
+%% @author: Yosuke Hara
+%%
+%%======================================================================
+%% --------------------------------------------------------------------
+%% SASL
+%% --------------------------------------------------------------------
+%% See: http://www.erlang.org/doc/man/sasl_app.html
+%%
+%% The following configuration parameters are defined for
+%% the SASL application. See app(4) for more information
+%% about configuration parameters
+%%
+%% @doc SASL error log path
+{mapping,
+ "sasl.sasl_error_log",
+ "sasl.sasl_error_logger",
+ [
+ {datatype, string},
+ {default, "./log/sasl/sasl-error.log"}
+ ]}.
+
+{translation, "sasl.sasl_error_logger",
+ fun(Conf) ->
+ Path = cuttlefish_util:conf_get_value("sasl.sasl_error_log", Conf),
+ {file, Path}
+ end}.
+
+%% @doc Restricts the error logging performed by the specified sasl_error_logger
+%% to error reports, progress reports, or both.
+%% errlog_type = [error | progress | all]
+{mapping,
+ "sasl.errlog_type",
+ "sasl.errlog_type",
+ [
+ {datatype, atom},
+ {default, error}
+ ]}.
+
+%% @doc Specifies in which directory the files are stored.
+%% If this parameter is undefined or false, the error_logger_mf_h is not installed.
+{mapping,
+ "sasl.error_logger_mf_dir",
+ "sasl.error_logger_mf_dir",
+ [
+ {default, "./log/sasl"}
+ ]}.
+
+%% @doc Specifies how large each individual file can be.
+%% If this parameter is undefined, the error_logger_mf_h is not installed.
+%%
+{mapping,
+ "sasl.error_logger_mf_maxbytes",
+ "sasl.error_logger_mf_maxbytes",
+ [
+ {datatype, bytesize},
+ {default, 10485760}
+ ]}.
+
+%% @doc Specifies how many files are used.
+%% If this parameter is undefined, the error_logger_mf_h is not installed.
+{mapping,
+ "sasl.error_logger_mf_maxfiles",
+ "sasl.error_logger_mf_maxfiles",
+ [
+ {datatype, integer},
+ {default, 5}
+ ]}.
+
+
+%% --------------------------------------------------------------------
+%% MANAGER
+%% --------------------------------------------------------------------
+%%
+%% Manager
+%%
+%% @doc Nodes of manager
+{mapping,
+ "manager.1",
+ "storage.managers",
+ [
+ {datatype, atom},
+ {default, 'manager_0@127.0.0.1'}
+ ]}.
+
+{mapping,
+ "manager.2",
+ "storage.managers",
+ [
+ {datatype, atom},
+ {default, 'manager_1@127.0.0.1'}
+ ]}.
+
+{translation, "storage.managers",
+ fun(Conf) ->
+ Manager_1 = cuttlefish_util:conf_get_value("manager.1", Conf),
+ Manager_2 = cuttlefish_util:conf_get_value("manager.2", Conf),
+ [Manager_1, Manager_2]
+ end}.
+
+
+%% --------------------------------------------------------------------
+%% STORAGE
+%% --------------------------------------------------------------------
+%% @doc LeoFS version
+{mapping,
+ "storage.system_version",
+ "storage.system_version",
+ [
+ {default, "0.16.5"}
+ ]}.
+
+%% @doc Path of object-container
+{mapping,
+ "obj_containers.path.1",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, "./avs"}
+ ]}.
+{mapping,
+ "obj_containers.path.2",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, ""}
+ ]}.
+{mapping,
+ "obj_containers.path.3",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, ""}
+ ]}.
+{mapping,
+ "obj_containers.path.4",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, ""}
+ ]}.
+{mapping,
+ "obj_containers.path.5",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, ""}
+ ]}.
+{mapping,
+ "obj_containers.path.6",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, ""}
+ ]}.
+{mapping,
+ "obj_containers.path.7",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, ""}
+ ]}.
+{mapping,
+ "obj_containers.path.8",
+ "storage.obj_containers",
+ [
+ {datatype, string},
+ {default, []}
+ ]}.
+
+
+{mapping,
+ "obj_containers.num_of_containers.1",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 8}
+ ]}.
+{mapping,
+ "obj_containers.num_of_containers.2",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 0}
+ ]}.
+{mapping,
+ "obj_containers.num_of_containers.3",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 0}
+ ]}.
+{mapping,
+ "obj_containers.num_of_containers.4",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 0}
+ ]}.
+{mapping,
+ "obj_containers.num_of_containers.5",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 0}
+ ]}.
+{mapping,
+ "obj_containers.num_of_containers.6",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 0}
+ ]}.
+{mapping,
+ "obj_containers.num_of_containers.7",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 0}
+ ]}.
+{mapping,
+ "obj_containers.num_of_containers.8",
+ "storage.obj_containers",
+ [
+ {datatype, integer},
+ {default, 0}
+ ]}.
+
+{translation, "storage.obj_containers",
+ fun(Conf) ->
+ Ret = lists:foldl(
+ fun(Index, Acc) ->
+ IndexStr = integer_to_list(Index),
+ case cuttlefish_util:conf_get_value(
+ lists:append(["obj_containers.path.",
+ IndexStr]), Conf) of
+ [] -> Acc;
+ Path ->
+ Num = cuttlefish_util:conf_get_value(
+ lists:append(["obj_containers.num_of_containers.",
+ IndexStr]), Conf),
+ [[{path, Path},
+ {num_of_containers, Num}]|Acc]
+ end
+ end, [], lists:seq(1,8)),
+ Ret
+ end}.
+
+%% @doc A number of virtual-nodes for the redundant-manager
+{mapping,
+ "num_of_vnodes",
+ "storage.num_of_vnodes",
+ [
+ {datatype, integer},
+ {default, 168}
+ ]}.
+
+%% @doc A number of virtual-nodes for the redundant-manager
+{mapping,
+ "num_of_vnodes",
+ "storage.num_of_vnodes",
+ [
+ {datatype, integer},
+ {default, 168}
+ ]}.
+
+
+%% --------------------------------------------------------------------
+%% STORAGE - MQ
+%% --------------------------------------------------------------------
+%% @doc A number of mq-server's processes
+{mapping,
+ "mq.num_of_mq_procs",
+ "storage.num_of_mq_procs",
+ [
+ {datatype, integer},
+ {default, 8}
+ ]}.
+
+%% @doc MQ recover per_object
+%%
+{mapping,
+ "mq.recover_per_object.num_of_batch_process",
+ "storage.cns_num_of_batch_process_per_object",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.recover_per_object.interval_min",
+ "storage.cns_interval_per_object_min",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.recover_per_object.interval_max",
+ "storage.cns_interval_per_object_max",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+
+%% @doc MQ synchronize objects by vnode-id
+%%
+{mapping,
+ "mq.sync_by_vnode_id.num_of_batch_process",
+ "storage.cns_num_of_batch_process_sync_by_vnode_id",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.sync_by_vnode_id.interval_min",
+ "storage.cns_interval_sync_by_vnode_id_min",
+ [
+ {datatype, integer},
+ {default, 8}
+ ]}.
+
+{mapping,
+ "mq.sync_by_vnode_id.interval_max",
+ "storage.cns_interval_sync_by_vnode_id_max",
+ [
+ {datatype, integer},
+ {default, 32}
+ ]}.
+
+
+%% @doc MQ rebalance objects
+{mapping,
+ "mq.rebalance.num_of_batch_process",
+ "storage.cns_num_of_batch_process_rebalance",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.rebalance.interval_min",
+ "storage.cns_interval_rebalance_min",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.rebalance.interval_max",
+ "storage.cns_interval_rebalance_max",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+
+%% @doc MQ delete objects
+{mapping,
+ "mq.mq.delete_object.num_of_batch_process",
+ "storage.cns_num_of_batch_process_async_deletion",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.mq.delete_object.interval_min",
+ "storage.cns_interval_async_deletion_min",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.mq.delete_object.interval_max",
+ "storage.cns_interval_async_deletion_max",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+
+%% @doc MQ recover a node's object
+{mapping,
+ "mq.recovery_node.num_of_batch_process",
+ "storage.cns_num_of_batch_process_recovery_node",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.recovery_node.interval_min",
+ "storage.cns_interval_recovery_node_min",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+{mapping,
+ "mq.recovery_node.interval_max",
+ "storage.cns_interval_recovery_node_max",
+ [
+ {datatype, integer},
+ {default, 1}
+ ]}.
+
+
+%% --------------------------------------------------------------------
+%% STORAGE - Replication/Recover
+%% --------------------------------------------------------------------
+%% @doc Rack-id for the rack-awareness replica placement
+{mapping,
+ "replication.rack_awareness.rack_id",
+ "storage.grp_level_2",
+ [
+ {datatype, string},
+ {default, ""}
+ ]}.
+
+
+%% @doc Size of stacked objects (bytes)
+{mapping,
+ "replication.recovery.size_of_stacked_objs",
+ "storage.size_of_stacked_objs",
+ [
+ {datatype, integer},
+ {default, 67108864}
+ ]}.
+
+%% @doc Stacking timeout (msec)
+{mapping,
+ "replication.recovery.stacking_timeout",
+ "storage.stacking_timeout",
+ [
+ {datatype, integer},
+ {default, 5000}
+ ]}.
+
+
+%% --------------------------------------------------------------------
+%% STORAGE - LOG
+%% --------------------------------------------------------------------
+%% @doc Log level
+{mapping,
+ "storage.log.log_level",
+ "storage.log_level",
+ [
+ {datatype, integer}, %% >> enum
+ {default, 1}
+ ]}.
+
+%% @doc Output log file(s) - erlang
+{mapping,
+ "storage.log.erlang",
+ "storage.log_dir",
+ [
+ {datatype, string},
+ {default, "./log/erlang"}
+ ]}.
+
+%% @doc Output log file(s) - app
+{mapping,
+ "storage.log.app",
+ "storage.log_appender",
+ [
+ {datatype, string},
+ {default, "./log/app"}
+ ]}.
+
+{translation, "storage.log_appender",
+ fun(Conf) ->
+ Path = cuttlefish_util:conf_get_value("storage.log.app", Conf),
+ {file, [{path, Path}]}
+ end}.
+
+%% @doc Output log file(s) - members of storage-cluster
+{mapping,
+ "storage.log.member_dir",
+ "leo_redundant_manager.log_dir_member",
+ [
+ {datatype, string},
+ {default, "./log/ring"}
+ ]}.
+
+%% @doc Output log file(s) - ring
+{mapping,
+ "storage.log.ring_dir",
+ "leo_redundant_manager.log_dir_ring",
+ [
+ {datatype, string},
+ {default, "./log/ring"}
+ ]}.
+
+
+%% --------------------------------------------------------------------
+%% STORAGE - DIR
+%% --------------------------------------------------------------------
+%% @doc Directory of queue for monitoring "RING"
+{mapping,
+ "storage.queue_dir",
+ "storage.queue_dir",
+ [
+ {default, "./work/queue"}
+ ]}.
+
+%% @doc Directory of SNMP agent configuration
+{mapping,
+ "storage.snmp_agent",
+ "storage.snmp_agent",
+ [
+ {default, "./snmp/snmpa_gateway_0/LEO-GATEWAY"}
+ ]}.
+
+
+
+%%======================================================================
+%% Other libs
+%%======================================================================
+%% @doc
+{mapping,
+ "leo_backend_db.profile",
+ "leo_backend_db.profile",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_logger.profile",
+ "leo_logger.profile",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_mq.profile",
+ "leo_mq.profile",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_mq.backend_db",
+ "leo_mq.backend_db",
+ [
+ {datatype, atom},
+ {default, 'bitcask'}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_object_storage.profile",
+ "leo_object_storage.profile",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_object_storage.metadata_storage",
+ "leo_object_storage.metadata_storage",
+ [
+ {datatype, atom},
+ {default, 'bitcask'}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_object_storage.metadata_storage",
+ "leo_object_storage.metadata_storage",
+ [
+ {datatype, atom},
+ {default, 'bitcask'}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_object_storage.is_strict_check",
+ "leo_object_storage.is_strict_check",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_ordning_reda.profile",
+ "leo_ordning_reda.profile",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_ordning_reda.send_after_interval",
+ "leo_ordning_reda.send_after_interval",
+ [
+ {datatype, integer},
+ {default, 100}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_redundant_manager.profile",
+ "leo_redundant_manager.profile",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+%% @doc
+{mapping,
+ "leo_redundant_manager.notify_mf",
+ "leo_redundant_manager.notify_mf",
+ [
+ {default, []}
+ ]}.
+
+{translation, "leo_redundant_manager.notify_mf",
+ fun(_Conf) ->
+ [leo_manager_api, notify]
+ end}.
+
+%% @doc
+{mapping,
+ "leo_redundant_manager.sync_mf",
+ "leo_redundant_manager.sync_mf",
+ [
+ {default, false}
+ ]}.
+
+{translation, "leo_redundant_manager.sync_mf",
+ fun(_Conf) ->
+ [leo_manager_api, synchronize]
+ end}.
+
+%% @doc
+{mapping,
+ "leo_statistics.profile",
+ "leo_statistics.profile",
+ [
+ {datatype, {enum, [true, false]}},
+ {default, false}
+ ]}.
+
+
+%%======================================================================
+%% For vm.args
+%%======================================================================
+%%%% Tunables
+%% @doc Name of the riak node
+{mapping,
+ "nodename",
+ "vm_args.-name",
+ [
+ {default, "gateway_0@127.0.0.1"}
+ ]}.
+
+%% @doc Cookie for distributed node communication. All nodes in the same cluster
+%% should use the same cookie or they will not be able to communicate.
+{mapping,
+ "distributed_cookie",
+ "vm_args.-setcookie",
+ [
+ {default, "leofs"}
+ ]}.
+
+{mapping,
+ "erlang.kernel_poll",
+ "vm_args.+K",
+ [
+ {default, "true"}
+ ]}.
+
+{mapping,
+ "erlang.asyc_threads",
+ "vm_args.+A",
+ [
+ {default, "32"}
+ ]}.
+
+%% @doc Increase number of concurrent ports/sockets
+{mapping,
+ "erlang.max_ports",
+ "vm_args.-env ERL_MAX_PORTS",
+ [
+ {default, "64000"}
+ ]}.
+
+%% @doc Tweak GC to run more often
+{mapping,
+ "erlang.fullsweep_after",
+ "vm_args.-env ERL_FULLSWEEP_AFTER",
+ [
+ {default, "0"},
+ {level, advanced}
+ ]}.
+
+%% @doc Set the location of crash dumps
+{mapping,
+ "erlang.crash_dump",
+ "vm_args.-env ERL_CRASH_DUMP",
+ [
+ {default, "./log/erl_crash.dump"}
+ ]}.
+
+%% @doc Raise the ETS table limit
+{mapping,
+ "erlang.max_ets_tables",
+ "vm_args.-env ERL_MAX_ETS_TABLES",
+ [
+ {default, "256000"}
+ ]}.
+
+%% @doc Raise the ETS table limit
+{mapping,
+ "erlang.hidden_flag",
+ "vm_args.-hidden",
+ [
+ {default, ""}
+ ]}.
+
+%% @doc Raise the default erlang process limit
+{mapping, "process_limit", "vm_args.+P",
+ [
+ {datatype, integer},
+ {default, 1048576}
+ ]}.
+
+{translation, "vm_args.+P",
+ fun(Conf) ->
+ Procs = cuttlefish_util:conf_get_value("process_limit", Conf),
+ integer_to_list(Procs)
+ end}.
+
+
+%% @doc configuration path of the leofs gateway's snmp-agent
+%% See: http://www.leofs.org/docs/configuration.html#snmpa-setup
+{mapping,
+ "snmp_conf",
+ "vm_args.-config",
+ [
+ {default, "./snmp/snmpa_gateway_0/leo_gateway_snmp"}
+ ]}.
View
46 priv/test/app.2013.12.05.18.54.56.config
@@ -0,0 +1,46 @@
+[{leo_statistics,[{profile,false}]},
+ {leo_redundant_manager,[{profile,false},
+ {log_dir_ring,"./log/ring"},
+ {log_dir_member,"./log/ring"},
+ {notify_mf,[leo_manager_api,notify]},
+ {sync_mf,[leo_manager_api,synchronize]}]},
+ {leo_ordning_reda,[{send_after_interval,100},{profile,false}]},
+ {leo_object_storage,[{is_strict_check,false},
+ {metadata_storage,bitcask},
+ {profile,false}]},
+ {leo_mq,[{backend_db,bitcask},{profile,false}]},
+ {leo_logger,[{profile,false}]},
+ {leo_backend_db,[{profile,false}]},
+ {storage,[{snmp_agent,"./snmp/snmpa_gateway_0/LEO-GATEWAY"},
+ {queue_dir,"./work/queue"},
+ {log_dir,"./log/erlang"},
+ {log_level,1},
+ {stacking_timeout,5000},
+ {size_of_stacked_objs,67108864},
+ {grp_level_2,[]},
+ {cns_interval_recovery_node_max,32},
+ {cns_interval_recovery_node_min,8},
+ {cns_num_of_batch_process_recovery_node,1},
+ {cns_interval_async_deletion_max,1},
+ {cns_interval_async_deletion_min,1},
+ {cns_num_of_batch_process_async_deletion,1},
+ {cns_interval_rebalance_max,1},
+ {cns_interval_rebalance_min,1},
+ {cns_num_of_batch_process_rebalance,1},
+ {cns_interval_sync_by_vnode_id_max,32},
+ {cns_interval_sync_by_vnode_id_min,8},
+ {cns_num_of_batch_process_sync_by_vnode_id,1},
+ {cns_interval_per_object_max,1},
+ {cns_interval_per_object_min,1},
+ {cns_num_of_batch_process_per_object,1},
+ {num_of_mq_procs,8},
+ {num_of_vnodes,168},
+ {system_version,"0.16.5"},
+ {managers,['manager_0@127.0.0.1','manager_1@127.0.0.1']},
+ {obj_containers,[[{path,"\"./avs\""},{num_of_containers,8}]]},
+ {log_appender,{file,[{path,"./log/app"}]}}]},
+ {sasl,[{error_logger_mf_maxfiles,5},
+ {error_logger_mf_maxbytes,10485760},
+ {error_logger_mf_dir,"./log/sasl"},
+ {errlog_type,error},
+ {sasl_error_logger,{file,"./log/sasl/sasl-error.log"}}]}].
View
11 priv/test/vm.2013.12.05.18.54.56.args
@@ -0,0 +1,11 @@
+-config ./snmp/snmpa_gateway_0/leo_gateway_snmp
+-hidden
+-env ERL_MAX_ETS_TABLES 256000
+-env ERL_CRASH_DUMP ./log/erl_crash.dump
+-env ERL_FULLSWEEP_AFTER 0
+-env ERL_MAX_PORTS 64000
++A 32
++K true
+-setcookie 401321b4
+-name gateway_0@127.0.0.1
++P 1048576
Please sign in to comment.
Something went wrong with that request. Please try again.