本文发表在OSDI’06中,是开源存储系统Ceph的原始论文。
Gekkofs的安装和部署
发表于
|
更新于
字数统计:
325
下载最新的稳定版:
1 | wget https://storage.bsc.es/gitlab/hpc/gekkofs/-/archive/v0.8.0/gekkofs-v0.8.0.tar.gz |
解压:
1 | tar -zxf gekkofs-v0.8.0.tar.gz |
下载依赖:
1 | .scripts/dl_dep.sh depend/ |
编译依赖:
1 | .scripts/compile_dep.sh depend/ install/ |
- 安装bmi时,可能会报:
1 | aclocal: not found |
解决办法:
1 | # yum install -y automake |
- 安装libfabric时,可能会报:
1 | 1.Libtool library used but 'LIBTOOL' is undefined |
解决办法:
1 | # yum install -y libtool libnuma-devel |
- 安装libfabric%experimental时,可能会报:
1 | configure: verbs provider: disabled |
解决办法:
1 | apt install -y librdmacm-dev |
- 安装mercury时,可能会报:
1 | Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) |
解决办法:
1 | apt install -y libconfig-dev uuid-dev |
不影响编译的报错:
- 安装syscall_intercept时,可能会会出现如下提示:
1 | pandoc not found |
解决办法:
1 | apt install -y pandoc |
- 安装agios
1 | -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) |
解决办法:
1 | apt install -y doxygen |
编译GekkoFS
- 配置
1 | mkdir build && cd build |
1 | cmake -DCMAKE_PREFIX_PATH=/home/scfs/install -DCMAKE_BUILD_TYPE=Release .. |
在cmake执行的过程中,可能会报如下错误:
1 | Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) |
解决办法:
1 | apt install -y zlib1g-dev |
- 编译
1 | /root/scfs/include/common/rpc/distributor.hpp:38:10: fatal error: boost/icl/interval_map.hpp: No such file or directory |
解决办法:
1 | apt install -y libboost-dev |
- 安装
1 | make install |
记录CPU占用率
本文涉及的命令有date、killall、top、wait和sleep。
服务端
1.CPU记录脚本test-cpu.sh
1 | #!/bin/bash |
2.安装killall工具
1 | yum install -y psmisc |
客户端
1.利用SSH执行远程脚本:
1 | ssh -ttq root@ip 2>&1 > /dev/null << EOF |
2.利用SSH结束执行
1 | ssh root@ip "killall -9 test-cpu.sh" |
完整的测试脚本:
1 | #!/bin/bash |
在服务器间进行时间同步
在Ceph集群的运行中,经常会出现如下问题:
1 | HEALTH_WARN |
问题分析:这是由于服务器之间时钟不同步造成的。