Loading ifs/include/daemon/classes/fs_data.hpp +0 −17 Original line number Diff line number Diff line Loading @@ -27,10 +27,7 @@ private: std::string rootdir_; std::string mountdir_; std::string metadir_; std::string inode_path_; std::string dentry_path_; std::string chunk_path_; std::string mgmt_path_; // hosts_ std::string hosts_raw_; // raw hosts string, given when daemon is started. Used to give it to fs client Loading Loading @@ -79,8 +76,6 @@ public: bool is_local_op(size_t recipient); size_t hash_path(const std::string& path); // getter/setter const std::unordered_map<std::string, std::string>& hashmap() const; Loading Loading @@ -115,22 +110,10 @@ public: void metadir(const std::string& metadir_); const std::string& inode_path() const; void inode_path(const std::string& inode_path_); const std::string& dentry_path() const; void dentry_path(const std::string& dentry_path_); const std::string& chunk_path() const; void chunk_path(const std::string& chunk_path_); const std::string& mgmt_path() const; void mgmt_path(const std::string& mgmt_path_); const std::shared_ptr<rocksdb::DB>& rdb() const; void rdb(const std::shared_ptr<rocksdb::DB>& rdb); Loading ifs/scripts/startup_adafs.py +16 −10 Original line number Diff line number Diff line Loading @@ -2,9 +2,8 @@ # -*- coding: utf-8 -*- import argparse import time import os import time from util import util Loading Loading @@ -41,6 +40,8 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu metadir (str): Path to metadata directory where metadata is stored mountdir (str): Path to mount directory where adafs is used in nodelist (str): Comma-separated list of nodes where adafs is launched on cleanroot (bool): if True, root and metadir is cleaned before daemon init numactl (str): numactl arguments for daemon init """ global PSSH_PATH global PRETEND Loading @@ -48,8 +49,12 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu # get absolute paths daemon_path = os.path.realpath(os.path.expanduser(daemon_path)) mountdir = os.path.realpath(os.path.expanduser(mountdir)) metadir = os.path.realpath(os.path.expanduser(metadir)) rootdir = os.path.realpath(os.path.expanduser(rootdir)) # Replace metadir with rootdir if only rootdir is given if len(metadir) == 0: metadir = rootdir else: metadir = os.path.realpath(os.path.expanduser(metadir)) pssh_nodelist = '' nodefile = False if os.path.exists(nodelist): Loading @@ -73,7 +78,7 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu print 'Running: %s' % cmd_rm_str pssh_ret = util.exec_shell(cmd_rm_str, True) err = False for line in pssh_ret: pi for line in pssh_ret: if 'FAILURE' in line.strip()[:30]: err = True print '------------------------- ERROR pssh -- Host "%s" -------------------------' % \ Loading @@ -88,18 +93,18 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu # Start deamons if nodefile: if len(numactl) == 0: cmd_str = '%s "nohup %s -r %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup %s -r %s -d %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, daemon_path, rootdir, metadir, mountdir, nodelist) else: cmd_str = '%s "nohup numactl %s %s -r %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup numactl %s %s -r %s -d %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, numactl, daemon_path, rootdir, metadir, mountdir, nodelist) else: if len(numactl) == 0: cmd_str = '%s "nohup %s -r %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup %s -r %s -d %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, daemon_path, rootdir, metadir, mountdir, nodelist) else: cmd_str = '%s "nohup numactl %s %s -r %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup numactl %s %s -r %s -d %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, numactl, daemon_path, rootdir, metadir, mountdir, nodelist) if PRETEND: Loading Loading @@ -166,8 +171,6 @@ if __name__ == "__main__": help='path to the daemon executable') parser.add_argument('rootdir', type=str, help='path to the root directory where all data will be stored') parser.add_argument('metadir', type=str, help='Path to metadata directory where metadata is stored') parser.add_argument('mountdir', type=str, help='path to the mount directory of the file system') parser.add_argument('nodelist', type=str, Loading @@ -175,6 +178,9 @@ if __name__ == "__main__": or a path to a nodefile (one node per line)''') # optional arguments parser.add_argument('-i', '--metadir', metavar='<METADIR_PATH>', type=str, default='', help='''Path to separate metadir directory where metadata is stored. If not set, rootdir will be used instead.''') parser.add_argument('-p', '--pretend', action='store_true', help='Output adafs launch command and do not actually execute it') parser.add_argument('-P', '--pssh', metavar='<PSSH_PATH>', type=str, default='', Loading ifs/src/daemon/adafs_daemon.cpp +3 −12 Original line number Diff line number Diff line Loading @@ -308,9 +308,9 @@ int main(int argc, const char* argv[]) { po::options_description desc("Allowed options"); desc.add_options() ("help,h", "Help message") ("mountdir,m", po::value<string>()->required(), "User Fuse mountdir.") ("mountdir,m", po::value<string>()->required(), "User Fuse mountdir") ("rootdir,r", po::value<string>()->required(), "ADA-FS data directory") ("metadir,d", po::value<string>(), "ADA-FS meta-data directory, if not provided rootdir will be automatically selected ") ("metadir,i", po::value<string>(), "ADA-FS metadata directory, if not set rootdir is used for metadata ") ("hostfile", po::value<string>(), "Path to the hosts_file for all fs participants") ("hosts,h", po::value<string>(), "Comma separated list of hosts_ for all fs participants"); po::variables_map vm; Loading Loading @@ -403,22 +403,13 @@ int main(int argc, const char* argv[]) { ADAFS_DATA->host_size(hostmap.size()); ADAFS_DATA->rpc_port(fmt::FormatInt(RPC_PORT).str()); ADAFS_DATA->hosts_raw(hosts_raw); //set all paths ADAFS_DATA->inode_path(ADAFS_DATA->metadir() + "/meta/inodes"s); // XXX prob not needed anymore ADAFS_DATA->dentry_path(ADAFS_DATA->metadir() + "/meta/dentries"s); // XXX prob not needed anymore ADAFS_DATA->chunk_path(ADAFS_DATA->rootdir() + "/data/chunks"s); ADAFS_DATA->mgmt_path(ADAFS_DATA->rootdir() + "/mgmt"s); ADAFS_DATA->spdlogger()->info("{}() Initializing environment. Hold on ...", __func__); // Make sure directory structure exists bfs::create_directories(ADAFS_DATA->dentry_path()); bfs::create_directories(ADAFS_DATA->inode_path()); bfs::create_directories(ADAFS_DATA->chunk_path()); bfs::create_directories(ADAFS_DATA->mgmt_path()); bfs::create_directories(ADAFS_DATA->metadir()); // Create mountdir. We use this dir to get some information on the underlying fs with statfs in adafs_statfs bfs::create_directories(ADAFS_DATA->mountdir()); Loading ifs/src/daemon/classes/fs_data.cpp +0 −24 Original line number Diff line number Diff line Loading @@ -70,22 +70,6 @@ void FsData::metadir(const std::string& metadir) { FsData::metadir_ = metadir; } const std::string& FsData::inode_path() const { return inode_path_; } void FsData::inode_path(const std::string& inode_path_) { FsData::inode_path_ = inode_path_; } const std::string& FsData::dentry_path() const { return dentry_path_; } void FsData::dentry_path(const std::string& dentry_path_) { FsData::dentry_path_ = dentry_path_; } const std::string& FsData::chunk_path() const { return chunk_path_; } Loading @@ -94,14 +78,6 @@ void FsData::chunk_path(const std::string& chunk_path_) { FsData::chunk_path_ = chunk_path_; } const std::string& FsData::mgmt_path() const { return mgmt_path_; } void FsData::mgmt_path(const std::string& mgmt_path_) { FsData::mgmt_path_ = mgmt_path_; } const rocksdb::Options& FsData::rdb_options() const { return rdb_options_; } Loading ifs/src/daemon/db/db_util.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ using namespace std; bool init_rocksdb() { rocksdb::DB* db; ADAFS_DATA->rdb_path(ADAFS_DATA->metadir() + "/meta/rocksdb"s); ADAFS_DATA->rdb_path(ADAFS_DATA->metadir() + "/rocksdb"s); rocksdb::Options options; // Optimize RocksDB. This is the easiest way to get RocksDB to perform well options.IncreaseParallelism(); Loading Loading
ifs/include/daemon/classes/fs_data.hpp +0 −17 Original line number Diff line number Diff line Loading @@ -27,10 +27,7 @@ private: std::string rootdir_; std::string mountdir_; std::string metadir_; std::string inode_path_; std::string dentry_path_; std::string chunk_path_; std::string mgmt_path_; // hosts_ std::string hosts_raw_; // raw hosts string, given when daemon is started. Used to give it to fs client Loading Loading @@ -79,8 +76,6 @@ public: bool is_local_op(size_t recipient); size_t hash_path(const std::string& path); // getter/setter const std::unordered_map<std::string, std::string>& hashmap() const; Loading Loading @@ -115,22 +110,10 @@ public: void metadir(const std::string& metadir_); const std::string& inode_path() const; void inode_path(const std::string& inode_path_); const std::string& dentry_path() const; void dentry_path(const std::string& dentry_path_); const std::string& chunk_path() const; void chunk_path(const std::string& chunk_path_); const std::string& mgmt_path() const; void mgmt_path(const std::string& mgmt_path_); const std::shared_ptr<rocksdb::DB>& rdb() const; void rdb(const std::shared_ptr<rocksdb::DB>& rdb); Loading
ifs/scripts/startup_adafs.py +16 −10 Original line number Diff line number Diff line Loading @@ -2,9 +2,8 @@ # -*- coding: utf-8 -*- import argparse import time import os import time from util import util Loading Loading @@ -41,6 +40,8 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu metadir (str): Path to metadata directory where metadata is stored mountdir (str): Path to mount directory where adafs is used in nodelist (str): Comma-separated list of nodes where adafs is launched on cleanroot (bool): if True, root and metadir is cleaned before daemon init numactl (str): numactl arguments for daemon init """ global PSSH_PATH global PRETEND Loading @@ -48,8 +49,12 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu # get absolute paths daemon_path = os.path.realpath(os.path.expanduser(daemon_path)) mountdir = os.path.realpath(os.path.expanduser(mountdir)) metadir = os.path.realpath(os.path.expanduser(metadir)) rootdir = os.path.realpath(os.path.expanduser(rootdir)) # Replace metadir with rootdir if only rootdir is given if len(metadir) == 0: metadir = rootdir else: metadir = os.path.realpath(os.path.expanduser(metadir)) pssh_nodelist = '' nodefile = False if os.path.exists(nodelist): Loading @@ -73,7 +78,7 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu print 'Running: %s' % cmd_rm_str pssh_ret = util.exec_shell(cmd_rm_str, True) err = False for line in pssh_ret: pi for line in pssh_ret: if 'FAILURE' in line.strip()[:30]: err = True print '------------------------- ERROR pssh -- Host "%s" -------------------------' % \ Loading @@ -88,18 +93,18 @@ def init_system(daemon_path, rootdir, metadir, mountdir, nodelist, cleanroot, nu # Start deamons if nodefile: if len(numactl) == 0: cmd_str = '%s "nohup %s -r %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup %s -r %s -d %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, daemon_path, rootdir, metadir, mountdir, nodelist) else: cmd_str = '%s "nohup numactl %s %s -r %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup numactl %s %s -r %s -d %s -m %s --hostfile %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, numactl, daemon_path, rootdir, metadir, mountdir, nodelist) else: if len(numactl) == 0: cmd_str = '%s "nohup %s -r %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup %s -r %s -d %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, daemon_path, rootdir, metadir, mountdir, nodelist) else: cmd_str = '%s "nohup numactl %s %s -r %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ cmd_str = '%s "nohup numactl %s %s -r %s -d %s -m %s --hosts %s > /tmp/adafs_daemon.log 2>&1 &"' \ % (pssh, numactl, daemon_path, rootdir, metadir, mountdir, nodelist) if PRETEND: Loading Loading @@ -166,8 +171,6 @@ if __name__ == "__main__": help='path to the daemon executable') parser.add_argument('rootdir', type=str, help='path to the root directory where all data will be stored') parser.add_argument('metadir', type=str, help='Path to metadata directory where metadata is stored') parser.add_argument('mountdir', type=str, help='path to the mount directory of the file system') parser.add_argument('nodelist', type=str, Loading @@ -175,6 +178,9 @@ if __name__ == "__main__": or a path to a nodefile (one node per line)''') # optional arguments parser.add_argument('-i', '--metadir', metavar='<METADIR_PATH>', type=str, default='', help='''Path to separate metadir directory where metadata is stored. If not set, rootdir will be used instead.''') parser.add_argument('-p', '--pretend', action='store_true', help='Output adafs launch command and do not actually execute it') parser.add_argument('-P', '--pssh', metavar='<PSSH_PATH>', type=str, default='', Loading
ifs/src/daemon/adafs_daemon.cpp +3 −12 Original line number Diff line number Diff line Loading @@ -308,9 +308,9 @@ int main(int argc, const char* argv[]) { po::options_description desc("Allowed options"); desc.add_options() ("help,h", "Help message") ("mountdir,m", po::value<string>()->required(), "User Fuse mountdir.") ("mountdir,m", po::value<string>()->required(), "User Fuse mountdir") ("rootdir,r", po::value<string>()->required(), "ADA-FS data directory") ("metadir,d", po::value<string>(), "ADA-FS meta-data directory, if not provided rootdir will be automatically selected ") ("metadir,i", po::value<string>(), "ADA-FS metadata directory, if not set rootdir is used for metadata ") ("hostfile", po::value<string>(), "Path to the hosts_file for all fs participants") ("hosts,h", po::value<string>(), "Comma separated list of hosts_ for all fs participants"); po::variables_map vm; Loading Loading @@ -403,22 +403,13 @@ int main(int argc, const char* argv[]) { ADAFS_DATA->host_size(hostmap.size()); ADAFS_DATA->rpc_port(fmt::FormatInt(RPC_PORT).str()); ADAFS_DATA->hosts_raw(hosts_raw); //set all paths ADAFS_DATA->inode_path(ADAFS_DATA->metadir() + "/meta/inodes"s); // XXX prob not needed anymore ADAFS_DATA->dentry_path(ADAFS_DATA->metadir() + "/meta/dentries"s); // XXX prob not needed anymore ADAFS_DATA->chunk_path(ADAFS_DATA->rootdir() + "/data/chunks"s); ADAFS_DATA->mgmt_path(ADAFS_DATA->rootdir() + "/mgmt"s); ADAFS_DATA->spdlogger()->info("{}() Initializing environment. Hold on ...", __func__); // Make sure directory structure exists bfs::create_directories(ADAFS_DATA->dentry_path()); bfs::create_directories(ADAFS_DATA->inode_path()); bfs::create_directories(ADAFS_DATA->chunk_path()); bfs::create_directories(ADAFS_DATA->mgmt_path()); bfs::create_directories(ADAFS_DATA->metadir()); // Create mountdir. We use this dir to get some information on the underlying fs with statfs in adafs_statfs bfs::create_directories(ADAFS_DATA->mountdir()); Loading
ifs/src/daemon/classes/fs_data.cpp +0 −24 Original line number Diff line number Diff line Loading @@ -70,22 +70,6 @@ void FsData::metadir(const std::string& metadir) { FsData::metadir_ = metadir; } const std::string& FsData::inode_path() const { return inode_path_; } void FsData::inode_path(const std::string& inode_path_) { FsData::inode_path_ = inode_path_; } const std::string& FsData::dentry_path() const { return dentry_path_; } void FsData::dentry_path(const std::string& dentry_path_) { FsData::dentry_path_ = dentry_path_; } const std::string& FsData::chunk_path() const { return chunk_path_; } Loading @@ -94,14 +78,6 @@ void FsData::chunk_path(const std::string& chunk_path_) { FsData::chunk_path_ = chunk_path_; } const std::string& FsData::mgmt_path() const { return mgmt_path_; } void FsData::mgmt_path(const std::string& mgmt_path_) { FsData::mgmt_path_ = mgmt_path_; } const rocksdb::Options& FsData::rdb_options() const { return rdb_options_; } Loading
ifs/src/daemon/db/db_util.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ using namespace std; bool init_rocksdb() { rocksdb::DB* db; ADAFS_DATA->rdb_path(ADAFS_DATA->metadir() + "/meta/rocksdb"s); ADAFS_DATA->rdb_path(ADAFS_DATA->metadir() + "/rocksdb"s); rocksdb::Options options; // Optimize RocksDB. This is the easiest way to get RocksDB to perform well options.IncreaseParallelism(); Loading